Category Archives: Devastro2

D2 log 032 – Flora

Corn

Wheat

Trees

The trees took a long time to get right. I used the Modular Tree Addon for the trunks. I tried using hair particle effects to grow leaves like I did for the corn & wheat but it didn’t look right. So I took a small patch of leaves and stamped it all over the basic shape by using the shrinkwrap modifier. Laborious, yes, but also precise and 100% under my control.

D2 log 031 – Task management

I need some sort of system to help me finish this game. It is now actually easier to list the things to do, instead of things that are done.

Jira? No, thanks. Catnap Games is not a large company. It’s just me. Hopefully I will get some help with the audio but that’s it. An Excel table is just fine.

Columns:

  • Category
  • Subcategory
  • Item
  • Completion %

Rows:

  • About a hundred now
  • Edit as needed

The completion % is a rough estimate but 100% means truly done, I don’t need to touch it again. All items at 100% means the game is actually ready to ship (build & upload).

D2 log 030 – Sketch 101

To practice using Sketch I re-created my menu designs in it and turned them into a clickable prototype. It’s nice to have an overview of what’s already in the game and it can serve as a framework for future extensions or changes to the UI.

Sketch is quite nice for simple things like this. The reusable symbols are very limited and I had to be careful not to fall into Blender mode for basic navigation but other than that everything was quick and easy.

D2 log 029 – Zooooom

Finally. During the development of Superforce, I took a shortcut and didn’t implement proper zoom for the game rendering pipeline. The game did fine without it but I wanted to have it in Devastro 2.

Adding zoom took a while. Besides game objects and the tile map, I also had to support it in all the editor gadgets, such as navmesh nodes and material grid overlays.

Now I can use zoom in the editor to get a better overview of the maps. I will also add a slight +/- zoom to the camera shake effect after explosions.

D2 log 028 – Localization

Shortly after its initial release as online shareware, the first Devastro game had been released in Russia, fully localized. Without any specific scenario in mind, I thought it would be good to make the new game easy to localize as well.

I added support for localization of all texts, including menu items and cutscene dialogs. Texts that had previously been hardcoded are now extracted into an external, easily editable text file and language can be switched at runtime.

D2 log 026 – Asset modeling & import

Based on the environment moodboards, I created the first batch of models for the farm/countryside environment.

I then wasted an entire evening trying to properly import them into the game. My Blender render script was broken and it took me a while to figure out what was wrong.

Now that I have the assets available in the level editor, I’m going to try them out and adjust the scale for each model. I can do this interactively by resizing the sprites directly in-game. When the scale is dialed in I’ll adjust the model size in Blender and do a new render.

I’m also going to extend the render script in a similar way the character animation export works – render multiple angles to add variety and let me reuse models more often.

D2 log 025 – Game controller support

Devastro 2 is going to be a twin stick shooter, so I thought it would be appropriate to add support for game controllers.

I purchased the XBox One Wireless controller for testing. Also ordered the Steam Controller while it was on sale for $5, even though it has zero sticks.

My first implementation used the native game controller API built into macOS but later I switched to the SDL interface. The only major difference is that SDL doesn’t handle dead zones and gives raw readings. It wasn’t too hard to take care of that.

Controlling my game character using the gamepad works really well. I will tweak the button mapping (weapon switch, dash) after some more playtesting.

Menu navigation was a little tricky. All menu items are now linked with next / previous pointers to support DPAD navigation. I’m going to add left / right links as well to better support more complex menus, such as level selection.

D2 log 024 – Collision shape editor

Boxes, boxes everywhere. The only shape a game object could have was a box. Looking at some of the buildings and objects I’m going to be putting into the game, I thought it would be good to add support for arbitrary polygon shapes. With Box2D it should be easy, right?

First thing I had to do was refactor the way objects are added into the Box2D world. This was also a good opportunity to finally change the player and enemy shapes to circles. Sneaking around corners just got a lot smoother.

Second, I had to actually get some shapes. But how? Use the Blender models and generate the shapes by making cross-cuts? While technically an elegant solution, such a tight fit might not be ideal for gameplay.

So I made a shape editor. Each object gets a box by default. Click and drag on any edge to add a new vertex. Right click to remove a vertex. Vertices snap to a grid, holding CTRL turns snapping off for extra precision when needed.

Everything turned out nicely. Using the shape editor is fun.

 

 

D2 log 023 – Environment moodboards

It is time to start building the environments. I’ve been collecting lots of inspiration all over the web. I had folders with hundreds of images that I found interesting and wanted to keep as inspiration for the game.

Last week I sorted through it all and selected what’s going to become my template for making actual game art.

I was hesitant to invest time into this at first, given that none of the images will go into the game. It’s just stuff for inspiration, right? After a while though, the overall tone started getting under my skin and looking at the result, I felt very inspired and motivated.

Here’s a moodboard for the first environment. It is based on US rural areas of the 50s and 60s.

And part of a “nature” moodboard for trees & rocks:

I’m going to use those to make a list of models to create, do a first pass of blocking out the rough shapes and add them to the game for testing. Next step is to dial in the color palette and fill in the details and textures.