Porter

  • Team Size: 1

  • Engine: Pico 8

  • Production Time: 2 Months

  • Roles: Engineer, Gameplay Design, Level Design, Pixel Artist, Community Manager

  • Link to playable game: Porter

Core Considerations:

  • Design for players of all skill levels, from platforming noobs to dedicated speedrunners.

  • Design within a very limiting engine.

  • Engage in the online gaming community through development logs.

Ideation

The idea for Porter, a 2D puzzle-platformer featuring slow platforming and instant teleporting, started as a Unity project with a different design goal. The Unity version of Porter had much larger levels, a time limit, and less environmental mechanics. That iteration of the game was about optimizing platforming and teleporting over and over again, but something about it didn't feel quite right. When I decided to adapt the idea to Pico 8, a fantasy console with many restrictions, I had to re-design much of the gameplay.

Working in the Confines of Pico 8

Choosing to make a game in Pico 8 comes with many restrictions, such as a limited amount of tokens available in the scripts and a limited amount of world space. The old speedrunning levels of Porter simply wouldn't fit into Pico 8. My solution to this was to slow down Yug, the player character, and reduce the distance that the teleporter teleports. I also made the decision to restrict every level to one screen so that the player could sit and contemplate the level before diving in. With these changes, Porter was now a game about beating tiny platforming and puzzling challenges. I still did not want to abandon the speedrunning aspect of Porter, but it was now a secondary "gamemode" rather than a game mechanic. 

When ideating on new mechanics to add into the levels I often had to consider how much space it would take up in the code, as Pico 8 has a hard limit of 8192 tokens. If I had two ideas, but one of them could re-use some part of the existing codebase, then the idea that takes up less code would be chosen. This restriction resulted in some creative re-use of code. For example, the falling boulders use the same physics detection system as my player character, and the Green blocks use the same screen scanning system as the Red and Blue blocks. When I was approaching the end of production I had enough world space to fit in more levels featuring a new mechanic, but I had next to no tokens left and still had to fit in a final cutscene. My solution to this problem was the anti-teleporting fields that prevent Yug from teleporting. This not only opened up many interesting level design opportunities but it also only used a handful of tokens, as it only required flipping a boolean that prevents the teleport function from running.

Harnessing the Power of Spelunky Speedrunners

Back when the indie platformer roguelike, Spelunky 2, first released I was an avid speedrunner for the game. In Spelunky speedruns, the player resets the game until they find a teleport, then use that teleporter to try to reach the end of the game as fast as possible. This is where the initial idea for Porter came from, so when I was making this game I was well aware of the speedrun potential of the teleporting mechanic. I specifically designed the levels in Porter to be approachable for the average player, but also optimizable for a dedicated player.

I designed Porter for all platforming enjoyers, but also for Spelunky speedrunners. This was a resounding success. Porter garnered the attention of some of the most notable Spelunky content creators, including Hectique who is arguably the most prolific Spelunky series speedrunner of all time. Here, you can see Hectique's speedrun of Porter done in 1 minute and 16 seconds.

Designed to be Marketable

Another benefit to having the levels be contained to one screen is that a viewer on social media will be able to see the entire level instantly. Through the use of Twitter development logs and marketing I was able to gather a sizable audience for Porter. I was able to grab the attention of online influencers who would go on to make videos and posts about Porter, bolstering the player base. To this day, Porter has 20,000+ plays across multiple websites.