From the lab

Game development with PICO-8

During the first Prototyping Bootcamp of the year, five teams took on the challenge to develop games with the fantasy console PICO-8.

Tech used

  • PICO-8
  • Lua

Prototyping Bootcamp – a week for us to break new digital ground

Each year we set aside two weeks for the internal team building and hackathon concept we call the Prototyping Bootcamp. One week at the start of the year and one when summer’s over. This is when we gather our entire team to break new ground within digital product development together. And, to have fun of course.

The rules are simple! One or a couple of different technology themes are chosen from which our employees will dig into and come up with an idea or concept they’d like to try out. Simply put – to try and create a prototype or Proof-of-Concept. At the end of the week each team gets to present what they have come up with in a demo. They talk us through the process of how they created their solution, what challenges they had and what they learned along the way.

The fantasy console PICO-8

During our first annual Prototyping Bootcamp our co-founder and developer Tobias Rundbom had chosen two technology themes from which the employees could choose from. One of the themes was to develop games with PICO-8.

PICO-8 is a fantasy console and game engine used to create, share and play mini games. A fantasy console is like a regular console without any hardware and could be likened with a retro emulator – but for a machine that never existed. PICO-8 comes with a game engine and a developer environment to create and edit code, music, sounds, sprites and maps straight within the console. You can more or less develop a whole game without leaving the developer environment.

Så här fungerar PICO-8


Five teams took on the challenge of developing games with PICO-8, which resulted in as many groundbreaking game ideas.

Sushi Arrival

During the idea generation the team started to get hungry and got to thinking of sushi. And that’s how the idea of Sushi Arrival was born. Some great ideas come on an empty stomach.

The team:
Johannes Karlsson, Fredrik Hasselgren, Sanna Frese, Villiam Poignant

The idea

The team agreed on a couple of fundamental things they wanted to achieve with their game development. They wanted to create cute sushi sprites as well as giving the player of the game a set of sushi sequences that needs to be remembered, and collected in the right order. But above all one of the goals were to explore as much as possible of the development environment and have as much fun as possible while doing so.

The result

With five days and no previous experience of PICO-8 within the team it took a while to get to know the developer environment. They drawed sprites, moved things around with the controller and more or less just tried what could be done. But once they had their introduction it went quite fast to make progress within the environment. They started to create and test music, animation and different game states for the game, such as; menu, levels and a state for game over.

Thanks to a very narrow scope the team managed to have a game up and running in the console pretty quick. And at the demo day they could show the rest of us participants a mini game that came to be called Sushi Arrival. The game starts where you as a player get to see a sequence of sushi pieces which you have to remember and which you later have to collect in the right order from a conveyor belt.

You could really sense that sushi is not a joke for this team. At the slightest mistake of collecting the sushi it’s game over.

Learnings and insights

Overall the team considers the developer environment of PICO-8 as a pleasant experience. Something they noticed made things a bit easier for them was to use a library for trans binding javascript to PICO-8

Boss rush

Boss Rush is built on the concept of David and Goliath and inspired (as well as a humble homage to) the game Dark Souls which is a game that can be played on most of the modern consoles.

The team:
Joakim Unge, Erik Lindgren

The idea

The idea, as well as the plan, was grandiose! They were to create a bunch of different levels with different, and much bigger bosses, which the player’s small character should fight against. Although the player’s character was supposed to be smaller and had weaker punches it should be faster and therefore able to beat the bosses. And to use it’s special power, the rush.

Resultatet

The team realised quickly that five days is a short time to fulfil their grand ambitions when not having any game development experience. They came to the conclusion of betting everything on developing just one fight instead of many.

As a player of the game you are assigned a small character which will fight against the boss; Protodemon. Protodemon is strong and can eliminate your character with only one punch – but is relatively slow in comparison to the character of the player.

The character of the player gets two meters, one that shows your life and one that shows how much rush power you have left. And rush is something you can do to avoid the Protodemon and to find opportunities to punch the demon without the demon having the time to reach you.

After the demo both the developing team and the audience concluded that this game is for someone who’s looking for a real challenge. With other words, and like the old school games, it was very hard to beat the Protodemon. 😀

Protodemon Picture above: The purpose of the game is to win against the Protodemon – the first and only boss in Boss Rush.

Try out the game Navigate with the arrow keys and using "Z" and "X".

Learnings and insights

Although the programming language was Lua, which was completely new for the team, the development went pretty smooth. And the consensus was that PICO-8 comes with more or less everything you need in order to develop your own game. Most pleased were they with the built-in editors for sound/music and graphics which were running excellent and just required a couple of hours of tutorials and documentation to get started.

The built-in code editor on the other hand were having some flaws and in the end the team decided to use external code editors of their preference instead.

To create a fighting game as Boss Rush requires a lot of animations – and to draw all of these sprites was time consuming. In terms of code it’s not a complicated game to create but to nail the collision detection and timing of the animations required some thinking.

Top down adventure

The two team members behind the game Top down adventure have experience within game development since their university years. So for them game development was the obvious choice at this edition of the Prototyping Bootcamp.

Top down adventure is an adventure game with different levels where the player needs to solve puzzles or a certain obstacle to advance to the next level. A “ripoff” off the legendary game Zelda as they describe it themselves.

The team:
Ismael Haddad, Omar Garcia

The idea

The idea was to create a sort of an adventure game based on principles from Zelda and Pokémon. And more specifically a game where the player is located outside of the entrance to a cave. When the player enters the cave the adventure starts.

Resultatet

Ismael and Omar succeeded to get pretty far in a week. And maybe this thanks to their previous experience of game development. They managed to create 7 different rooms/levels – in an endless loop of game playing.

Start screen: The game starts with you as a player getting introduced to the game. And at the starting screen you’re also able to choose what music that will be accompanying your adventure. Start-screen

Room 1: The first room is when the player is outside the entrance of the cave. And already there facing a first obstacle – a chasing ghost. A sequence created by using the famous algorithm BFS.

And at this stage the player also gets introduced to the life meter containing three hearts. If the ghost touches the player character one heart gets lost and the level restarts. When all three lives are gone it’s game over.

And by having a glimpse of this room it’s easy to say that the team may have looked into some other games for inspiration as well. 😏

Pico-8-Room-1

Room 2: In the first room inside the cave the player faces fire which is moving around. To reach the next level the player need to maneuver around the fire and go through the next entrance. Pico-8-Room-2

Room 3: In this room the player has to run through a serpentine path meanwhile avoiding flying arrows and press a button and then run back (avoiding the arrows again) and go through the door that opened when the button was pressed. Without doubt, and according to the team, this is the hardest level of the whole game. Pico-8-Room-3

Room 4: This level is based on a famous puzzle from the game Pokémon Esmeralda. You have to reach the next entrance while moving through a slippery field of ice. And because you’re sliding a bit extra when you’re running on the ice you have to think every time before moving. Pico-8-Room-4

Room 5: This level is similar to the previous one. The only difference is that you now again are facing arrows who want to take your lives away from you. And therefore, even harder than its precursor. Pico-8-Room-5

Room 6: In this room you face complete darkness and have to fumble your way forward and try to find the invisible path leading in to the next room. This without being hit by the strain of fire that’s rotating in the center of the room. Pico-8-Room-6

Rum 7: In the last room you have no other choice than to press a button which activates a big rolling ball that hunts you while running through the serpentine path (Indiana Jones style). The goal of this level is to make the player think one step ahead and let the ball pass (while standing on the side of the path) and let it create a big hole in the wall – creating a new entrance.

The new entrance then leads the player back into the starting room where the chasing ghost is.

The endless loop is created and the adventure is consummate. Pico-8-Room-7-1 Pico-8-Room-7-2 Pico-8-Room-7-3

Learnings and insights

The team used the PICO-8 development kit to more or less do everything in the game except writing the code. Their feeling and assessment was that the environment was intuitive and that it could be used to quickly develop all their sprites, music and maps.

Documentation and information about development were sometimes hard to find. The mutual opinion was that the official website could have more of that – or at least link to resources that would be helpful.

Beat space invaders

Space Invaders combined with Guitar hero and you have Beat Space Invaders. And for the person having a bit deeper insight into the gaming world the first inspiration of this game comes from the game Crypt of the NecroDancer.

The team:
Axel Ekwall, Simon Lindholm, Björn Helgeson, Adrian Berger

The idea

As mentioned in the preamble the inspiration primarily comes from the game Crypt of the Necrodancer. A top-down adventure game where you as a player are supposed to move and attack enemies to a beat – and when doing so you get different advantages in the game.

The team saw potential in combining this beat twist with a classic game idea, and then ratherly a game that would be possible to develop in a week’s time and work well in the 8-bit format. They chose Space Invaders.

The result

It took more or less a half day’s work to read into the PICO-8 console and the developer environment. And, because the team had 4 developers who supposedly where to work with the project they identified a challenge straight away – which is to work together in parallel tracks simultaneously.

After a week the game was done! It became a mini game with three levels and a final boss – all three with different music. The player controls a spaceship which can be steered from left to right and shoot laser (as in Space Invaders). If the player shoots in rhythm to the music the laser becomes stronger. Every time the player shoots an invader (an enemy ship) the player’s mega cannon gets charged. And with a full mega cannon meter the player will be able to fire off a missile which penetrates any enemy ship’s armor.

Start Screen: Beat-Space-Invaders-Start

Level 1: Beat-Space-Invaders-Level-1

Level 2: Beat-Space-Invaders-Level-2

Level 3: Beat-Space-Invaders-Level-3

Level Final Boss: Beat-Space-Invaders-Final-Boss

Click HERE to try out the game on GitLab!

Learnings and insights

The whole team liked the inherent limitations with the platform – and that it creates an interesting challenge for them to express their creativity. They consider that PICO-8 gives a decent flexibility of creating different types of Sprites, sound and game functions in the code. And, above all, that it was easy to get started with it. And, in such a way, a great technology theme for a Prototyping Bootcamp.

The biggest challenge with, as a team, co-developing a game through PICO-8 is that the developer environment feels like it's been made for only one developer at a time. And with that comes some difficulties with the version handling.

The team also experiences two particular difficulties in the game engine. Partly the algorithms for hit detection but also background map rolling and overall dealing with game temporality. Since most of the functions are based on doing something imperatively each frame of the game – setting up a simple function like "repeat every 10 seconds" comes with surprising complexity.

Flappy market

A flappy bird inspired game that will guide you through an irregular stock market. And with irregular we mean really irregular. Maybe the most difficult game of all the five games presented during the Prototyping Bootcamp.

The team:
Jacob Broms, Stefan Larsson, Christopher Laursen

The idea

Flappy bird as a concept was on the table already early in the idea generation phase. But the game needed an environment – and rather something that you as a player could refer to as an environment where you have to move carefully and accurately. And then the choice became the stock market. And more specifically the Nasdaq market.

The result

At the demo day Jacob took the lead and presented the game meanwhile playing. He explained the difficulty of developing a constantly changing game map – and then later to play in it (which the audience also noticed). At the demo he achieved a personal best in the game though! 👏

Learnings and insights

Just as the team behind Beat Space Invaders this team also experienced the difficulties of developing constantly changing background map. It created an irregularity that affected the game experience in the end

They also realised that there’s room for improvement when it comes to convert to 60fps as well. Something the platform (currently) doesn’t support well enough today.

Get started and develop your own games with PICO-8

If you think PICO-8 is exciting and want to know more we recommend you the following links:

--

Curious for more? The other half of the Prototypers tried out the Arduinos Oplà IoT kit --> See full story here