What is that first game that pops up in your mind when I say… Turn Based Strategy
Advance Wars? No!
Well, I don’t know about you. But to me, it is and will always be… Chess.
Such an intuitive game with so simple rules and a small grid to play on, ideal for a board game.
With just a particular move set for each piece type and the King being the most vital piece, the game immerses the players into such an amazing…
Unknown Guy: ‘HEY Cheema.’
Yeah, what is it?
Unknown Guy: ‘You know that this is PAB Devlog, and not Ches-‘
Oh yeah yeah, I was just getting to that. Thanks though.
Speaking of move set, in Chess, you pick a piece and move it. And that’s exactly what I implemented next in my game.
And by the way, if you are new to this channel, I am developing a turn based strategy game inspired by Advance Wars and I am calling it Project Advance Breach or PAB if you… like acronyms.
Before going for unit selection, I first created a cool indicator for unit selection that snaps to the grid positions. I think it is pretty satisfactory to look at especially how that upper part rotates and floats like a typical pickup in many games that I have played.
So yeah, after that I did the unit selection thingy and after selecting the unit, you move it. Obviously this requires doing pathfinding stuff ahh which honestly… I have never really done it as such.
The best solution: A* most likely. I thought of doing jump point search which is more performant than your typical A* in most scenarios BUT the tiles or terrain in my game will probably have different movement costs and JPS doesn’t account for that.
So, I started looking at many tutorials for A* on YouTube and one of the things missing in many of them is, the concept itself. Like… I am one of those guys who visualize things step by step before really getting into programming a feature or algorithm… whatever it is.
So, most of the videos aren’t really helping me EXCEPT for one… the first video of Sebastian Lague’s A* pathfinding series. Step by step demonstration, clear visualization and even pseudocode at the end. It made things crystal clear as to what A* algo really looks like.
After that, I created a A* path between unit and the target tile to which the unit will move and the rest was quite straight forward really.
Ehhhhh… this entire thing took me like… a day to implement! which honestly seems like a really basic thing. But hey, I don’t wanna DISCOURAGE ANY OF YOU guys, okay!
Even though I like Chess, I don’t want the playing field to be limited to just 64 tiles. And so, I make bigger maps AAANNND bigger maps requires a Camera that can MOVE!
Lerp here, lerp there, lerp above, lerp below, zoom zig zag zooooo. Done!
Making this cam controller is probably one of the most fun parts of this project till now…
EXCEPT for the rotations. This gimbal lock thingy and quaternion shenanigaaans really annoyed me.
But at the end, I found this: Quaternion.AngleAxis (https://docs.unity3d.com/ScriptReference/Quaternion.AngleAxis.html) which fixed all my issues in one big shot. This allowed me to implement the 90 degree cam rotation just like in XCOM even though I didn’t like the game as such.
And after that, guess what… just like any other slacking gamedev… I got distracted.
I ended up joining a little jam with a bunch of my gamedev friends and made this cool little turn based card game.
It is not strategy as such but that doesn’t mean you can play mindlessly. If you do, you will probably lose. I think you will like it if you are into card games. So definitely try out the game, Bitsy Turn Stack.
Play Bitsy Turn Stack on Web: https://boldaestheticcreative.itch.io/bitsy-turn-stack
Let me know your thoughts in the comments. Also, let me know if I should go a little deeper into technical stuff. And that’s it. I hope that you liked it. Good bye!