There were two main projects I worked on this year, and both of them failed.
The first game was tankly. It is a terminal-based tank sim that uses ncurses. At first, I wanted it to be multiplayer, with each player having a position in the tank. I wanted to be anti-modern-multiplayer by maybe slowing down turns by forcing the players to take turns via email or something like that. The README already has a postmortem, but I wanted to expand on it.
I immensely enjoyed working on this at first. I liked C, I liked ncurses, and I was so happy to not have any art or sound to do. The game was going to be simple and text-based, and that was cool! But eventually I started to realize…I would have to do art, and it would be hard. I would have to do ASCII art if I wanted the game to be realistic. I would have to do a decent amount of UI work as well, which can be a little tricky in a terminal.
After writing a lot of the groundwork, I started to dislike C. I was mostly going at it the wrong way. I didn’t understand header files or how to include things. I didn’t really get Makefiles. Things became pretty messy because I wasn’t sure how to do vector-like data in struct members. I realized that if I wanted to do something involving multiplayer, it would be a ton of work.
So, I slimmed the game down a lot. I decided that it wouldn’t be multiplayer, and I would try and limit the art, and it would be less of a tank sim and more just random hits/misses. I still felt pretty bored with the project. Months later, I “finished” the game by making a simple AI and removing a lot of the complexity. It ended as a semi-archived project, but it’s still playable. It’s just not very fun.
The second game was frivolous gravitas. It is a 2D platformer that focuses on flipping gravity as it’s main mechanic. This game largely stayed how it was at its conception. I decided to use C++ and SDL. I learned a ton. I learned how difficult it is to make 2D platformers. Jumping and collisions were my biggest obstacles. The game is playable, but it doesn’t feel that great. I also realized that I was kind of making VVVVVV. It didn’t feel original, and it didn’t feel good. The collision code was very messy. There is more information in the README postmortem if you’re interested.