Crunch is Bad
Some would argue that this is a good version of crunch
Not mentioned in the "What went right" section of our postmortems was the team's passion for the project, and without such enthusiasm the engine and blogs wouldn't have been nearly as successful as they were. However, this is the "What went wrong" section, so we should talk how this passion wasn't useful for the project, but rather how it was harmful. Developing an engine in 15 weeks requires a certain amount of persistence and drive, which translate into working about 70+ hours each week. This project became a 15 week crunch which, while we don't recommend subjecting yourself or others to this, was useful for us to know what game dev crunch feels like so we can recognize it in the future. We didn't treat this project as a marathon so much as a long sprint.
We spoke to some of our faculty near the end about how none of us had any more motivation to pull for making our target demo game. Creating the game at the end was no longer fun. For us, we attributed this to burnout; we were too tired to continue to develop. However, that might not be the full truth. The team was excited to develop the engine because it was a new experience where we had the chance to learn and grow as developers. However, the game signified the end of that. The game wasn't about learning, it was a statement that we were done learning with this engine, and now we were doing what we had already been doing for a year.
Where we weren't excited to develop the game, we were still willing to put time into polishing and adding to the engine. So it's not like we were afraid of developing a game because of bugs or broken features; if we were, we probably wouldn't have held a game jam where other could see the ugly pieces of engine. We couldn't even predict what features of the engine they would be looking at. Developing engine features, even if small, was a new experience when compared to game development, and this excitement is what drove us.
Much like the game Burnout, crunch eventually ends in some form of catastrophic wreck
As much as we say our project was about demystifying engine development, the project was as much about learning. Specifically, it was about learning how game engines work, the intricacies of them, and how to be an effective software developer on a team when making such a tool, but it was all learning nonetheless. Learning was what was driving the work and our motivation. We were excited to problem solve the unknowns of the project, so when the game came to be developed, it was a list of "knowns", problems that we knew how to solve and had solved before. We had developed games before, games much more complicated than the one we were trying to generate; there wasn't a list of unknowns. Having to develop something that isn't challenging, having just a list of tasks that are "knowns", is demotivating, even if we're getting to used our newly minted tool in the process.
As the 15 weeks neared an end, there was this added pressure in the room, as you would expect from a project running out of time. The team was able to combat the stress through the semester by having team dinners throughout the semester and having game nights to relax, but near the end there was less time to do this. The pressure could be traced to be coming from two categories: 1) frustration and 2) "there is still so much work left". The latter is to be expected from any type of project, especially one trying to do so much with such little time. However, the former isn't a positive sign. The frustration came from not learning. We weren't being given explicit feedback about the engine we were developing from our faculty or others, and we were no longer spending even the majority of our time learning game engine development. At some point near the end, the project pivoted from its original goal, and we had to do something that was no longer learning. And it just became a slog.
This may seem like a downer of a postmortem, and that's a little intentional. Crunch isn't inherently bad; at the beginning of our project, the crunch was positive for all of us developers. It eventually transformed into a crunch that left us feeling uncomfortable and unmotivated, and that's something to be wary of in future projects. When that begins to happen, goals need to be evaluated and remapped in an attempt to keep that fire burning, otherwise things will crash and burn.