Update: I've removed the code, however you can see the documentation.
Gameplay Demo: https://youtu.be/q-i6jsRGcRA
Development Process Video: https://www.youtube.com/watch?v=vNCHKe4VKBs
I recently completed a project that has been a significant milestone in my journey as a software engineer. I developed a Space Invaders game that required the use of design patterns to create a real-time data-driven application. This project was no small feat, and it took me 10 weeks to complete, during which I followed best practices in software engineering to ensure that I created a high-quality game.
To develop this game, I used a combination of powerful tools and technologies that enabled me to build a robust and visually appealing game. For coding, I used Simple C# with Visual Studio 2019 Enterprise, which provided me with a range of functionalities to streamline my development process. To manage my codebase and enable version control, I used Perforce – Helix Visual Client, which allowed me to track changes, revert to previous versions, and collaborate with other team members. Finally, to create the graphical user interface, I used the Azul GUI Framework, which provided me with an extensive range of UI widgets and tools to create a seamless and engaging user experience.
Throughout the development process, I followed best practices in software engineering to ensure that I created a high-quality game that met all the necessary specifications. I used Iterative Development with weekly sprints, which helped me to break down the development process into smaller, more manageable chunks. I also used Testing to ensure that the game was working correctly and was free of bugs. Continuous Integration was also essential in the development process, as it allowed me to merge code changes from multiple developers and ensure that the codebase remained stable and functional. Finally, I created a final design document that outlined the game's specifications, design, and functionality, which helped me to stay focused and ensure that the final product met all the necessary requirements.
Creating this game was an enjoyable experience, and I did my best to adhere as closely as possible to the original Space Invaders game. However, due to time constraints, I was unable to test or implement all of the specifications. Nonetheless, I was still able to bring the game to life and create an enjoyable gaming experience that I am proud of.
However, as with any project, there is always room for improvement. For instance, I would like to enhance the Alien movement mechanism so that the speed increases over time, making the game more challenging as it progresses. I also noticed some bugs that need fixing and that the Alien Grid Respawn could be improved to make the game more exciting. Additionally, I would like to add a two-player mode, which would allow players to compete against each other, adding an extra level of fun and excitement to the game. I also plan to include graphical noise-based dissolve effects on the Shields and the UFO with its animation, which drops bombs, to make the game more visually appealing and engaging.
Overall, this project was a significant undertaking for me, and one of the most challenging and largest projects that I have completed to date. I am extremely grateful for the assistance provided by Professor Keenan, whose guidance and support were invaluable throughout the development process. Creating this game has taught me many valuable skills and has given me a deeper understanding of the software development process, and I am excited to continue developing and building on the skills that I have acquired.