I finished this project a couple of months ago, and I'm ready to write a retrospective about it. Feel free to download it for your Mac from my Portfolio page.
Star Feuds, much like Erste, is a modern take on a classic game: Space Invaders. On a basic level, Star Feuds is a Space Invaders clone: you pilot a space ship at the bottom of the screen, move side to side with the arrows, and shoot the enemies at the top of the screen. The enemies also move side to side, and shoot back at the player.
The modern part of the game comes from the fact that unlike the original Space Invaders, there is now a story. See if you can make it to the end of the game to experience a crazy plot twist! Additionally, this game has some amazing music by some talented indie musicians. Check out the credits within the game for info on where to download this bumping music.
Development on Star Feuds
Star Feuds is by far the biggest project that I've finished up until now. I originally started the project in January, but the code became too much, and I chose to start over instead of organizing all of it. By that point, there were about four or five classes that weren't working so well. I decided to scrap everything and start over, but this time, learning from my previous mistakes.
Total development time on this project was about a month, for a few hours each day. Because I worked on this solo, I had to search for all of the assets. I found the art on opengameart.org, sounds effects were created using cfxr, and got the fonts over at dafont.com. I found some music on a few other places, but check out Eclipse by my buddy Mel.
It wasn't until this game that I learned about how much time you can spend on polish. The main game was probably finished within two weeks, and the two other weeks were spent finding cool fonts, adding features such as particle effects, and perfecting the story and dialogue.
While development went smoothly for the most part, there were a few roadblocks that I had to overcome. For one, I was not aware that working with std::vectors can cause weird side effects. Instead, I learned about std::deque, which is basically a more powerful std::vector. Another roadblock had to do with copying elements in vectors and deep linking. Because I was copying sprites, textures weren't deep copying. I ended up creating an empty copy constructor, which eventually fixed the issue.
Lastly, I began to get familiar with smoother animations and movement by using Kairos by Hapaxia, which is amazing. Kairos includes classes for timing, an FPS counter, and even for interpolation. By using interpolation, your game can update at 60 frames per second, but the movement will be smooth instead of being jittery because its position will be predicted. While I used Kairos in the game, it wasn't implemented all the way. However, I have already begun tests on other projects and I can confirm that movement is smooth, even while the computer is doing other CPU intensive tasks. I'll write a blog posts when it's complete.
Overall, I'm glad I finished this project, and that I was able to learn so much from creating something this large. Download Star Feuds by following the link in my Porfolio page to my Itch.io account.