It’s amazing that this term has flown by so fast. In the span of a few months, our team has gone from having nothing to an “alpha” version of our game. While I’m proud of how much we’ve been able to accomplish, and learn in general, I do want to reflect on the good and bad of our project’s development so far.
Project Reflection
Our game is well over 50% completed.
Considering the few months a small team of 4 has put into learning how to make a game from scratch, I am truly impressed that we’ve been able to reach our current point.
When I suggested Godot for our game engine, I was apprehensive that it would be good for us as new game developers. Unity is the go-to for beginners for its massive support, but Godot appealed so much to me for its open-source nature. I feel Godot has worked out quite nicely for us.
While we’ve run into numerous technical difficulties, the majority stems from a lack of experience.
Towards the beginning of development, we experienced problems setting up our Godot environments so that we could work together. By default, Godot does not have C# support. You have to specifically opt for the C# version when installing it. I advocated for C# support as I’m familiar with the language and preferred that idea to using GDScript, which is Godot’s built-in language.
This turned out to be a bit of a headache for us as we had different versions of .NET installed. We eventually were able to resolve those problems and get on the same page.
While I have used C# a fair bit now, I definitely could’ve gotten used to GDScript instead. GDScript actually has certain advantages over C# that I didn’t realize at first. Looking back, I probably would’ve foregone C# entirely just to save us the few days it took to work through those issues.
Another major thing this project has taught me is that version control can be a nightmare when the entire team is not used to it. I’ve only used version control on solo projects or projects with one other person. This was a complete first for me to be working with a team of 4 and having to maintain a Git repo.
The first half of the term was plagued with many merge conflicts. We would be working on our own features, and when it came time to consolidate, merge conflicts galore. I’ll admit that the first time I dealt with it, I was incredibly frustrated and confused as Git screamed at me with a vague message along the lines of “Cannot merge branches, merge conflict detected.”
That experience taught me that GitHub and GUI tools are vastly inferior to getting deep into the command line to figure out the actual problem. GitHub did not want to tell me what the conflict was, but the CLI pointed me right to it. I’m not one to shy away from the CLI, but I never had a real reason to learn so many git commands until this project. I would 100% recommend learning the Git commands for fixing merge conflicts. It has helped tremendously in recent weeks.
Moving past technical difficulties, I want to touch on how our team has been working together.
I first want to say that I absolutely love how much we all get along and truly help each other. It’s been a common occurrence throughout my life that team projects usually lead to annoying conflicts and headaches trying to get everyone to contribute properly.
That has not been the case at all with our team. There’s been numerous times where someone in our group steps up to get something done. Whether it’s someone being unable to record the presentation and someone else volunteering or Googling to try to figure out someone else’s error, we are always up to help out.
As far as project management goes, I will say that we definitely could’ve been more attentive with getting details figured out earlier.
The first few weeks were mostly technical difficulties and trying to figure out a good workflow. It’s easy to look back knowing what I do now and say we could’ve done more, but I do think there were a few weeks where more progress could’ve been made.
For instance, we didn’t really have our map fully figured out until halfway through the term. While we had a concept for our map in our technical documents from last term, we really only got an ideal setup by talking it out during this term.
I am really proud that we realized the map needed to be finalized ASAP, so we just held a meeting to do that right then and there. We definitely could’ve had that meeting earlier, such as in the first 2 weeks of the term, but it did work out in the end.
Moving Forward onto CS 463!
With CS 462 coming to a close soon, we have only one term left to get everything ready. Most of what we have left to do is the fun, creative work.
There have been a lot of things I’ve learned from this term. Learning a game engine in the span of a few months is not something I ever thought I would do. It’s pretty awesome that I get to use all of this programming knowledge to make something so much larger than what I’ve done before. It’s even better that I get to do it with such an amazing team.