Hosting a Game Jam
The game jam we held was a stretch goal of our project, thus had we not held one, the product wouldn't have been much different. However, what it got us was a memorable experience and the confidence we had truly developed a game engine. This was no longer based on us saying so—there was something like proof in the form of others using it to make stuff! From the beginning of the semester, one of our team's assumptions was that our engine wouldn't be foolproof, meaning the developers on the team would be able to use the engine effectively but we couldn't avoid the game developer who would shoot themself in the foot. However, this didn't mean that we wouldn't try to develop a usable engine; we used the project as an exercise around "if we had actual game developers...". But we had no illusion of others using the Isetta engine to develop games.
As the engine progressed, the decisions deviated from what was correct to what might be easier to use or harder to abuse. This was used in conjunction with the target game for decisions. Near the end of the engine's development, we thought it would be cool to show off our engine as a whole, something we had struggled to do since the start of the project. We couldn't get the faculty or our industry connections to spend quality time in the engine, and that makes sense—it's a ton of code! So we decided to leverage a game jam because this would force people to look at our engine, if only to use what they needed. It's almost like playtesting the engine.
Holding a game jam was a success for two reasons: 1) it confirmed that our engine was actually usable by others and 2) it was incredibly exciting for the team. Throughout the game jam, participants found bugs that we hadn't found because we hadn't used a feature in that specific way or we didn't look closely enough at side effects. However, the participants were able to work around the bugs, much like you would with a commercial engine that you don't have source code access to, and we were quite surprised that this was possible in our engine. We had also been saying for a while that our engine was a "twin-stick shooter" engine, but it turns out that that was selling the engine short. The game jammers created an array of games in different genres (racing, artistic, simulation, local multiplayer, puzzle, and shooter), only one of which was really a twin-stick shooter game (and that largely copied our example). Saying your game engine is a certain genre doesn't mean the developers will make games for that; it's more just a way to restrict the engine developers to a feature set.
Check out all of the games our participants made!