OUR GAME: https://github.com/CSG001-Project/UntitledGame
SOURCE CODE: https://github.com/CSG001-Project/UntitledGame
Trailer: https://youtu.be/X7zBNPeTrxs
This blog post outlines my overall experience developing this game. While I’m happy with what we created and proud of the final product, I’ve realized that game development isn’t really for me.
I found that I much prefer general software development building tools or applications for specific tasks over relying heavily on creativity, a game engine, and the implimentation. I prefer clear requirements and use cases, rather than designing worlds and mechanics from scratch that dont have a strong bases.
i also struggled heavily with writing blog posts to not be one word sentences, as alot of my work involved reviewing code, telling the developers what to fix/improve and help with ideas and design patterns
ill go through the general timeline of development:
Week 1:
The first week was all about laying the groundwork for the project and establishing a solid collaboration network. We set up tools like Figma for design work and GitHub for version control. My main role this week was to teach the team how to use GitHub effectively for version control. This was crucial because it helped us keep track of changes in the codebase and work in parallel without issues. I also worked on setting up the structure for our project files to ensure that we had a consistent and organized approach moving forward.
Week 2:
During week 2, we started to flesh out the game’s lore and the gameplay loop. The team spent time discussing the type of game we wanted to create and the mechanics we’d use. One of the key decisions this week was choosing the game engine and the programming language we would use for development. I played a key role in helping the team decide on the engine, which ended up being Godot, and we also started to design the general structure for the code and file organization. Having a well-planned file structure early on was important because it made navigating the project much easier as we started adding more features and content.
Week 3:
In week 3, we finally decided on the theme for the game. We went with an underwater cyberborg rogue-like concept, and the theme really helped shape the direction of the game. We also planned out three distinct biomes: the Peaceful Ocean Floor, Dark Depths, and a third biome that we hadn’t fully decided on at this point. This week was also dedicated to defining how the player would interact with the world and establishing the types of enemies and environments they would encounter. The focus was on world-building and making sure our theme was consistent across all aspects of the game.
Week 4:
Week 4 brought a significant shift in development, as we made the decision to switch from C# to GDScript for our game development. I was the one to propose this switch due to the challenges we were facing with C# and Godot’s lack of extensive documentation for the language. GDScript, on the other hand, is native to Godot and had much better support in terms of resources and examples. This was a big decision, as it meant rewriting parts of the code, but it ultimately made our development process smoother. It was a group decision, and everyone agreed it was the right move for the project’s long-term success.
Week 5:
Week 5 was primarily focused on art and design. The team worked together to develop the visual style for the game and decide on the artwork direction. This included brainstorming ideas for the look of the biomes, enemies, and characters. On the development side, we spent time planning the procedural map generation system. The goal was to ensure that each level would have randomly generated layouts every time the game was played. This would make each run unique and add replayability to the game. We started by outlining the structure of the map generation system and identifying the key components that would be required to make it work.
Week 6:
In week 6, the development team focused on implementing the new sprites into the game. We made sure that all the animations worked smoothly and that the tilemap collision system was set up correctly. This was a time-consuming process, as it involved checking each tile and sprite to ensure it interacted with the game world as expected. There were a lot of small bugs and issues to fix, but by the end of the week, the game’s visuals were starting to come together, and we could see the progress we had made.
Week 7:
Week 7 was a bit slower because midterms took up a large portion of the team’s time. We couldn’t focus as much on development, but we did manage to get some light tasks done, like discussing potential features and working on some minor bug fixes. It wasn’t a very productive week in terms of major development, but it gave us time to reflect on the progress we had made so far and plan for the upcoming weeks.
Week 8:
In week 8, the development team worked on polishing the ranged weapon implementation, specifically the harpoon. This involved refining the mechanics, ensuring the weapon’s behavior was consistent, and fixing any bugs that came up. Additionally, we spent some time cleaning up the codebase. It was important to maintain a clean and organized codebase as we added more features, so we took the time to refactor and optimize existing code. This was also a good opportunity to improve some of the game’s systems, making sure everything worked smoothly for the next stages of development.
Week 9:
During week 9, we focused on implementing the user interface (UI), which included adding a health bar and other important elements. The health bar was surprisingly difficult to implement, as there were a lot of small technical details to get right. It took longer than expected, but by the end of the week, we had a functional UI in place. This was a big step forward, as it gave the game a more complete feel and improved the player experience.
Week 10:
Week 10 was focused on adding some final touches to the game’s starting sequence. We added a home screen that included a credits page, giving the game a more professional look. We also implemented a respawn function, allowing players to restart after being defeated without having to reload the entire game. These features helped make the game feel more polished and user-friendly, and they contributed to the overall gameplay experience.
Week 11:
In week 11, we ran into a major setback. Leo’s hard drive failed, causing us to lose the original implementation of the procedural map generation. This was a huge setback, as a lot of work had gone into creating that system. We had to rewrite the entire map generation code from scratch, which took additional time and effort. While this was a frustrating experience, we were able to get back on track and continue moving forward with the project.