Project update

I started this project with something very different in mind. I kind of thought we would create an open world game with idle images for each character. However our team decided on a 2d 8bit style game.

I do believe we managed our project well, though obviously if we all had the game development tech stack from the get-go things might have gone by faster. I did doubt my ability to complete the project many times due to the wonderful event of our son being born, but managed through it with the help of my teammates.

Getting this project up and hosted publicly would be the first step to get some good info on gameplay and required modifications. I do hope we can stick together as a team to further develop this game even after the school quarter ends.

Technologies

In all my coding ventures I’ve come to appreciate GitHub the most. Version control, online editing capabilities, clean UI, … and most critical of all in this project, teamwork support. GitHub supports creating rules for security, pull requests, versioning, and more which ensure clean long asynchronous development.

I really wish I had unity/GitHub in my tech stack, but we’re working on that all now. I’d love to create similar games to the one we have in the future.

On clean code

I took the opportunity to read through some of Clean Code: A Handbook of Agile Software Craftsmanship. There was a lot of discussion on different perspectives regarding “clean code”. Some mentioned that clean code is “enjoyable” and “pleasant to look at” while others focused on readability and how fast a new developer could understand what the code does. Another perspective was that clean code means minimum duplication and entities, while ensuring objects and functions clearly do only one thing instead of several.

Following that reading, as an actionable decision I will try to stick to better naming conventions and try to make a key for myself at the top of my code. I sometimes am guilty of getting lost in using verbs or switching to snake case. What I definitely now want to avoid is having functions do more than one clearly named task. I sometimes find myself rereading my functions to understand what they do.