Blob-Man

Blob-Man is a maze-action arcade game inspired by Pac-Man. Control Blob-Man and navigate your way around a maze to collect as many coins as you can while avoiding all the robots.

Genre: Maze-action arcade

Engine: Pico-8

Team Size: 1

Duration: Nov. 2020 - Dec. 2020

Platform: PC (Itch.io) link to the game

Postmortem

I had learned an introduction of everything that goes into making a video game. Every little component takes time to create and is a necessary part of the whole picture. With this knowledge I have also learned how to communicate across disciplines, such as with artists and other programmers. This allows me to communicate with others more effectively, as I have some knowledge behind the creation of animations, programming practices, and audio design. However what I learned above all else is that problems should be anticipated. Bugs will arise, animations just won’t look right, or sounds may repeat indefinitely. I never expect that my first iteration would be perfect, and learned that the initial product isn’t a reflection of my own capabilities.

Notable Roles and Duties

Gameplay Programming:

  • Implemented Player movement and character controller w/Animations

  • Character collisions with the map

  • Title Menu and Death Menu

  • UI - Hi score, Current score, and life amount tracker

  • Player death respawn

  • Enemy movement patterns w/ Animations

  • Coin generation on the map and functionality of increasing player score

Audio:

  • Created the title and in-game music

  • Created all sound effects

Level Design:

  • Designed and implemented the maze level

  • Enemy and coin placement in the maze level

Gameplay Description

In Blob-Man, the player can use the arrow keys to move around the maze while avoiding enemies and collecting coins. Collecting coins will add 10 points to the player’s current score. If the player collects all of the coins in the maze, the maze will reset for the player to collect all of the coins again to further increase their score. Running into enemies will cost the player one of their lives, and when the life counter reaches zero the game is over.

Design Process

Blob-Man was developed in Lua within Pico-8 with minimal use of 3rd party sources. The game was originally meant to be a snake-game, however I wished to further challenge myself by creating a Pac-Man style arcade game. Also my late Grandfather had a love for the old Atari arcade games, so I wished for my first game to honor his influence on my life. The development cycle took place over the course of 1 month with myself as the Sole Developer. Aside from the sprite and animation of the character Blob-Man, all elements of the game were created by myself. This was an exciting experience, as I had never created a game from scratch, let alone using the Pico-8 game engine. The two biggest hurdles I had faced was the creation of the game’s music tracks, and learning the Lua programming language.

When creating the music tracks, I realized how important every note of the song was. If just one note was off, then either the loop was not seamless or the entire tone of the song was off. Because of this, I took a lot of time perfecting these tracks.

Learning Lua was a different experience altogether. At the time my programming knowledge was limited and I had no experience programming a game. To compensate for this, I started learning the engine and Lua about 3 months prior to development. This time period didn’t teach me everything about the engine and language, but it taught me enough to make my own discoveries during development.

Gameplay Programming

The biggest challenge I ran into was spawning all of the coins onto the map. All of the coins needed to spawn onto the floor tiles and ignore all of the wall tiles. So I created a table full of coins and a looping function that detected if a tile was a wall tile. If that tile was in fact a wall tile, then that position was removed from the table of coins, and the coin wasn’t drawn in that tile. A snippet of my code for this solution, as well as other code snippets, are shown below!

Code Snippets