So last weekend I started prototyping and working on my next game.
I've planned out a bit on paper how turn based tactics is meant to play out, and now started prototyping as well as learning how to draw in isometric. Which has been quite the challenge. I've been trying to learn from the sprites in Final Fantasy Tactics and Tactics Ogre. But it's proving challenging to represent the detail in 1 bit. So I started trying to make a more abstract tree which appears a little better. Learning a lot!
Here is a progress shot:
Going to start working on the turns and combat tomorrow, so we'll see if we can make something fun!
I decided to jump my tile size up to 48 pixels to zoom in a bit and also give me a bunch of extra pixels to draw with and add more detail, this should hopefully help with visual clarity. This mean re-doing all the tiles.
I've started blocking in the gameplay, with movement, turns, and using the turn menu.
Yeah I released my first playdate game at the end of last month! Some of the tooling I did there has helped get this project off the ground faster. However, there is still a lot to do!
The main set of work was to write a set of navmesh, and pathfinding tools to make checks to see if a tile is 'walkable' or to stop units from being able to jump up block heights more than half a tile.
This took quite a while as I needed to write some of my own data structures to make this work, a dynamic array, and a queue. I wanted these two data-structures to use my custom allocators. Because of the dynamic nature of building this navigation data, I wanted the ability to manage the memory and make sure it wouldn't fragment the default generic allocator in the playdate sdk.
Right now I generate the navigation data and path every frame. However, that's a bit overkill and only needs to be regenerated at the start of a units turn.
Back to work after the holiday break! But I managed to squeeze some time in while visiting the in-laws. I prototyped the main menu.
As well as started working towards fixing the sorting when drawing in isometric.
Up until this point, I've sort have been cheating, very specifically avoiding in gifs and images showing situations where sprites would break draw order. Like moving behind a tile at a higher z depth.
It's still not perfect, but unit, objects and tiles correctly sort. But game elements like highlights or the cursor do not sort. (I hate how this looks with the highlights drawing over the top of units.)
I'm testing over the next day if I can fix this once and for all. Otherwise, I'm going to fallback to making situations where the player can't accidentally break sorting through design rather than technology.
Good news I've fixed the sorting problem. It's significantly more expensive to render the level now. However, it's good enough for now that I can move forward without worrying too much about performance.
(Not pictured in the gif, but I also fixed the weird offset on the trees/shrubs)
I've also put together the dialogue & expressions system so I can play dialogue sequences between characters to help aid in the narrative. This is just test dialogue.
I'm taking some time to focus on the art side, because I need to polish up a few scenes to get a better idea about how long this is going to take to make and what I need to cut from the final game.