Upside Slimin': My First Game Jam Postmortem
Overview:
My First Game Jam: Summer 2021 was my first attempt at actively developing a game project from start to finish, past the conceptualizing phase. As a solo entrant with a full-time job, I knew I had to create a super small and somewhat scalable game. Thus, my goal was to focus on a core mechanic that could hook players with a cool twist. I’m happy with the results and consider Upside Slimin’ a successful project.
The game follows Blob the slime, a simple character that only performs three actions: running, jumping and shifting gravity. As it's a 2D endless runner, players can’t control horizontal movement, with only two inputs for jumping and manipulating gravity. Power-ups and a trail of slimy debris represent his movement speed variation. The background changes depending on the phase Blob is on, and the game’s goal is simply to travel the farthest distance possible.
The jam’s theme was “Free”, and my primary source of inspiration was 2015’s indie game Downwell. In most 2D platformers, falling into gaps or holes means death. Downwell scraps that concept by making the whole gameplay loop about falling. This is where my idea for gravity manipulation was born. Here, continuing a playthrough by shifting to a different phase, inverting gravity, presented a cool twist on the common falling equals death genre convention. With the jam’s two-week timeframe, the endless runner genre offered an accomplishable development opportunity. Besides the genre’s simple setup, the gravity shift mechanic worked well with a fast-paced and well-timed jump approach to the genre.
What went right?
- Iterating around the game’s core mechanics: after implementing the first prototype, I designed the rest of the game solely around its core mechanics: jumping and gravity manipulation. Since the player’s movement input is very limited, I only made additions to the game by focusing on the balance between player reward and punishment. This meant that no features were discarded after implementation during development.
- Difficulty curve: speed variation is the focus of the game’s difficulty, so manipulating the player speed became the key aspect for determining the gameplay loop. Likewise, platform placement needed to consider the player’s movement speed by simulating its jump trajectory, avoiding impossible sections. This meant the game’s difficulty could scale well by following one variable, the player’s movement speed variation, which created cohesion within the game’s systems.
- Chunks vs. single platform: considering the player’s jump trajectory allowed for far more variety when placing single platforms when compared to using pre-authored chunks of multiple platforms. The different combinations of platform size and placement worked a lot better than expected on maintaining variety, avoiding the use of patterns.
- Allowing your art to inform gameplay choices: designing art assets and designing mechanics worked as a two-way street. Seeing my design choices being informed by the art assets made me realize the importance of intuitively designing assets, mechanics and features, instead of adhering to a rigid game concept beforehand.
What went wrong?
- Plan before you implement: my first prototype used 2D sprites to represent the platforms because it seemed faster to implement, even though I was going to use tiles. Unfortunately, the transition from 2D sprites to tilemaps caused the reworking of most scripts, from level generation to collision detection and even player movement. This caused the project’s first major roadblock and cost me 1 full day of work to get things fixed. Always look for scalable solutions before implementing or prototyping a feature. If you’re planning on using tiles from day one, just start straight with placeholder tiles.
- Set up repositories: changing computers mid-way through the two weeks made me realize how important repositories are. If you are working solo, do not wait for your project to break when copying and pasting folders. For working on a team, repositories are a requirement, so get familiar with it.
- Taking the physics engine for granted: it took me the entire project before I realized I was leaving too much at the hands of Unity’s physics engine without understanding its functions. When trying to simulate the player jump trajectory, for example, there was a lot of prototyping, writing, and researching involved. My mistake was not reading Unity’s documentation on the first stages of the project. I also recommend comprehending its inner workings, in this case motion functions and 2D vectors. There’s no magic in physics.
- Getting feedback is hard, start as soon as possible: I did not take part in the jam’s forums during its duration. This happened because I only added the proper art assets in the last days of development and the WebGL build got working only days after the jam ended. Of course, there was also self-doubt creeping in and keeping me from sharing this little game with strangers. Although feedback from friends and family is great and helped me immensely, it was a big mistake not using the jam’s forums and/or discord to set up playtesting. I lost a lot of valuable feedback, and trying to get it on more general game development forums afterward hasn’t yielded many results.
What could be better?
- Improving gameplay loop: I see two big changes to the gameplay loop that could make the game more engaging:
- A small window of gameplay right at the start that allows the player to discover and experience how the game works past its written instructions.
- Adding relaxing moments and rewards momentarily after the difficulty ramps up. This can be done by slowing down the game’s speed, creating a safe zone, or displaying some cool changes to the background/player character art. Currently, there’s a cool random transition that changes the background when pressing ‘W’ to shift the gravity, after a certain distance check is met.
- Adding more narrative elements: A title card introducing Blob and his story, fleshing out the goal of the game, was the only planned feature I haven’t included. I could also integrate story bits as rewards for meeting certain distance checks.
Next Steps?
- More prototyping: I’ve searched my bag of GDDs to find other game mechanics that I could prototype into small self-contained games. I’m also looking forward to entering more Game Jams to further explore learning opportunities.
- Active participation: there’s a lot to learn from actively interacting with other developers and designers, and I’ve lost a lot of valuable insight for being reserved and not taking part enough in gamedev communities. As a starting point, I’m divulging this postmortem on many communities I’m a member of.
- Start a game design blog: I’ll start posting content regarding my current explorations into game design, genres, and mechanics. As of today, there are two posts in the works.
Files
Get Upside Slimin'
Upside Slimin'
An atmospheric 2D endless runner
Status | In development |
Author | Felipe Mello |
Genre | Platformer |
Tags | 2D, Atmospheric, Cute, Endless, infinite-runner, My First Game Jam, Pixel Art, Procedural Generation, Runner |
Leave a comment
Log in with itch.io to leave a comment.