Created: 2023-11-16
November is my least favorite month – it always seems to drag on forever, gray and wet. To make it a little more tolerable, I like to have some kind of project to work on, so when I heard that GitHub is hosting a game jam that lasts the whole month, I pretty much immediately wanted to do it. I also decided that this would be a perfect opportunity to try making a 3D game in Godot, to see if the engine would hold up for both my hobby projects and for teaching purposes.
I initially thought I would be doing the jam solo, and I mostly am, but one of my friends does occasionally do a little coding, and my boyfriend has made a piece of music for the game.
We're about halfway through the jam now – in my timezone, the theme was revealed late in the evening on November 1st, and the deadline is late evening Decemper 1st. In this post, I want to show some video clips of how the game has changed over the first two weeks of development. There are a lot of video clips from the first few days, and then a few longer ones from the next week and a half. You can also skip down to the current version of the game.
November 3rd, midday: There are boxes, and they can be pushed around.
The theme for the jam is scale, to be interpreted as a verb or a noun and in any of its many meanings. The idea we had, on November 2nd, was to make a puzzle game where two objects can be linked together in such a way that moving one object also causes the other to move. We came up with the idea of different link types – one type of link would make the objects move the same way, another would make them move in opposite directions. How does this tie into the theme? Well, the scale of the objects matters. Reverse-linking a light and a heavy box and then pushing the heavy box off a ledge will make the light box fly, but not the other way around.
November 3rd, early afternoon: Rudimentary link — but the movement is a little funky.
The first day of proper development – November 3rd – was spent making boxes that could be pushed around, and implementing a very rudimentary linking mechanic. By the end of the day, I had the ability to push one box and have another follow it.
November 3rd, late afternoon: It sort of works!
At this point, all of the graphics are just built-in Godot cubes and CSG meshes. The CSG system built into Godot was perfect for prototyping and early level design, as it let us quickly build some simple shapes, and then add collision to them with a single click.
November 4th, afternoon: The first simple puzzle.
On November 4th, I worked out some more details around the link mechanics, including how links would interact with gravity. I decided that there would be two main type of links: Static links, where the boxes only move if both have free space to move into, meaning that you can use it to make a box float, and non-static links, where a box will fall to the ground even if its partner box is standing solidly on the ground, and thus cannot move downwards with it. Later in the day I also added the ability to switch between link types, using colored indicators to show which link type was currently selected.
November 4th, evening: Link selection and colored indicators.
The next big step was figuring out how to make the links work with boxes of different sizes. I got this working a few days later, on November 7th, along with a reverse-direction linked that allowed the player to get a box to float far above the ground.
November 7th: A box hovers menacingly in the air.
With the basic mechanics in place, I started working on the framework for the puzzles — levels, menus, and such. By November 9th, I had two simple tutorial levels, some basic menus, and the ability to continue playing from the last seen puzzle. I did not, however, have a title for my game, so the main menu just has the heading Very Cool Title.
November 9th: The game is taking shape.
Since then, I've been working on two areas: I've created some 3D models for the game and textured them using various Creative Commons resources. I've also been working on getting the boxes out of the player's face. Pushing the boxes around was annoying because you couldn't really see what was happening to the other box in the link. Instead, I've added a grab mechanic that lets you drag the box around with the mouse.
The game in its current state can be seen in the final video below. I think it's coming along nicely — but it still doesn't have a name.
November 16th: The game in its current state.
I have another two weeks to work on this game before the jam deadline on December 1st. Here are some of the major things I intend to add or change:
Those are the main ideas for now, but I am making this up as I go along, so who knows if I'll come up with some new direction during the latter half of the jam? Either way, I'll probably make another post once the jam is over, showing the final version of the game.