Gun Slime
Gun Slime was my first solo release, and first release under the HarFrog pseudonym.
Is a difficult 2D platformer where players must traverse levels by using a Gun as means to double jump, reloading or gaining more heights by bouncing off fired bullets.
The game was a small personal project I worked on during lock down, starting in late 2020 and being released in February 2021.
To my surprise, the short nature but high skill ceiling of the game lead to a small Speedrunning community forming.
Genre
2D Platformer
Engine
Pico-8
Language
Lua
Release Date
2021
Project Type
Solo Project
Title Screen
Gameplay
Screenshots
Skills and contributions
Gun Slime was a fully solo endeavour, with everything from art and programming to music and sound effects being made by myself. The game was fully made in the fantasy Pico-8 console, meaning the game was written in Lua and all graphics and audio were created in the console's editor.
2D Character controller written in Lua
Unique double-jump gun mechanic
16 levels spanning 4 different themed worlds, each with unique mechanics
Original chiptune soundtrack
Custom made pixel art and sound effects
Time trial mode to allowing for a variety of speed-running opportunities
Working with limitations
Pico-8, the software Gun Slime was built in, is a fantasy console, meaning it emulates the capabilities of 8-bit systems such as the NES. The most notable limitations that stem from this are the 128x128 resolution, maximum of 16 colours and the 32k of RAM.
This means when working in Pico-8, you need to be very careful when it comes to optimisation. For example, in earlier versions of Gun Slime, having the animated lava option on would periodically cause a noticeable stutter in the game. This was because every 30 frames, the game would loop through each tile in the current level to check if it was lava or not, causing a lag spike every 30 frames.
To resolve this issue, I instead checked each tile for lava at the start of a new level and added the lava tiles to an array. These specific tiles could then be updated each 30 frames rather than every tile. This simple optimisation completely solved the stutter, showing how even little changes can have a large impact in Pico-8.
Optimised lava animation