GameDev BlogPost 43: Chickens
Vikings, Camera, Brimstone, Chickens11.02.2020 - 17:05
Today I finally finished the 2019 summary blogpost. It took me a while to write, because I wanted to summarize the essential aspects of 2019 and elaborate on the most important points, while still having a short and precise text. I don't think I succeeded at all, but I had to finish the text at some point.
In the evening I started to create a viking house in Blender, because I recently started to watch Vikings on Netflix and I thought about creating a viking themed map at some point.
Working on the viking house yesterday was a lot of fun after not having modelled for a while, so I made a fish drying rack like you would see in the Lofoten for example. And I also created a viking ship, which turned out really nice in my opinion.
I still had to add some finishing touches to my viking house and color it. Then I converted it and the other models to my own format and also created a few more ground texture tiles to be used in the possible viking map. Then it was finally time to get back into "real" programming and I added the functionality to have the camera follow an entity. This required a few smaller engine changes, but it turned out really well and in combination with the slow motion mode it will open up some nice cinematic views. I also had to fix a bug in the building button image creation tool that was preventing me from creating the button images, because the white buttons were bothering me.
Recently the youtube autoplay function had added a Binding of Isaac video to my list and I watched it for a while. It gave me the idea to add a brimstone like attack to my game. And because my photoshop skills are no where good enough to create an animated brimstone texture I created a new class to my image library instead that can automatically create such a texture based on a couple of parameters. It took me a few hours, but now I can create all kind of animated beam attack textures, although there are still a few improvements that could be done to it to make it look better. Also I made an egg tower model in Blender that is going to spawn chickens to attack.
Today I added the brimstone attack to the game, it is very similar to the previous beam attacks like the lightning beam or the light beam, so it was easy to add. I am not entirely happy with how it looks though.
Then I started to work on the chicken spawning attack. Previously I only had bees spawning and bees can fly so I didn't have to worry too much about where they fly, they can clip through taller towers, but fly over the smaller ones, so it looks okay if they go directly to their target. However, chickens shouldn't clip through all towers when moving to their target. Therefore I worked on a local obstacle avoidance system to make them move between towers instead of through them. It took me a while to find a good solution, but I got it working decently. To see it with actual chickens instead of bees flying on the ground, I made a chicken model in Blender. As mentioned I previously only had the bees spawning and they were mostly hardcoded in the game, which is obviously bad. So I worked on the spawned entity rendering, completely removed the old renderer and added them to the projectile renderer instead, because on the rendering side spawned entities are very similar to a model projectile.
When I added the brimstone attack yesterday I noticed that the beam attack rendering still had transparency sorting issues. Depth sorting isn't a solution, because the beams can intersect in the middle and there wouldn't be a clear front and back beam. I probably won't have a huge number of beams to render at the same time so I just disabled the depth mask for them, which costs some performance, but it "should be fine"(tm). Then I added a jumping animation to the chickens, because sliding chickens were looking really bad, and I also fixed their attack animation, because they still had the bee animation and random flying chickens were also looking weird. In the afternoon I spend some more time thinking about names, but I still haven't come up with a clear winner.
by Christian - 11.02.2020 - 17:05