I'm currently working on a tactical game in my spare time. I'm starting out with small-scope prototypes to grease the wheels a little bit. My goal is to have a fully playable game, but it won't be in its completed state.
The game has been in progress for about the last month. It started out that I was going to make a simple 2D version of the game, but that is no longer the case. Now, I'm working on bringing the game into a 3D world. This changes things a lot.
I already had most of the game layout figured out, but after talking it through with Tormod, we decided to "bite the bullet" and transition over to 3D.
It was a difficult and time-consuming task. It was partially due to my own curious nature (kind of dug into math just a little bit), but also because it was literally a change of perspective.
Luckily, the Monogame library abstracts most of the really difficult math away, but you still have to learn the APIs to make things work. The order in which you multiply your rotation and translation matrices matters. Do things in the wrong order and you end up with the completely wrong movement.
3D makes it a lot easier to represent length, width, and height (hence 3D). It will make adjustment of the terrain easier, and it will be completely obvious to the player that there is a height difference between spaces. After all, I want the player focusing on using the environment. If they have to spend too much time discerning height differences, it would probably just lead to frustration.
I plan on having a deeper look at some of my development for future posts. I've learned a lot, and I often felt like an idiot, but I powered through things. I now have a camera (fully controlled by the player) working in a 3D world. It takes time, and if I can do it, so can you.