Variations on Pac-Man
I’ve been inspired by a few indie game developers on the internet. In no particular order:
- Anthony Salter, a fellow Ultima Dragon breathing new life into a fantastic classic with Ultima 7: Revisited.
- Ben at Dev Duck makes balancing all aspects of life look simple.
- Game Endeavor who I thought fell off the planet, but I’m glad is back–with a demo!
- Keone, a crazy nutter solo-developing an MMO called Elegon, and making progress!
I’d like to give game development a serious go. I’ve made a lot of silly games no one should play. This one will be the same, but not without a goal. Which was to make something simple, complete, and on a deadline to learn more about what I’m getting myself into.
Simple
I started with a list of ideas that might be completable in a week. These play to my strengths (not a lot of art and music), and are specific. Here is what I wrote for this one:
8. Variations on Pac-Man
- Maze of ~~16~~ 8 rooms (like that dream I had one time)
- Some kind of door and key progression
- Different ghost logic, customizable would be bonus
- Time reverse
- Power up to increase saved up time
Then I rolled a die to pick one. Of course, the die chose the worst one, so I rolled again.
Pac-Man felt good, I’ve spent many hours playing it as a kid on an Atari 400. There was even a time in my life I owned an original Pac-Man arcade machine (not one of those tiny knockoffs, but the huge one that needs friends to help move). I even had the book, Mastering Pac-Man.

I felt like I knew this game well. I was wrong.
Complete
All the variations on “some classic” in my list were to start with a recreation of the original game. Maybe not pixel perfect exact recreation, but in the ball park. Then add “features” I thought would be cool.
The Pac-Man Dossier is an amazing resource. I knew a lot, but not as much as I needed to code it up from memory. Also research led me to shaunlebron/pacman on GitHub, which is an all around better version of what I did.
Variation 1: Maze of Mazes
(like that dream I had one time)
Yeah I’m weird, I have dreamed in Pac-Man at least once. In that dream I, err Pac-Man, moved to new rooms instead of wrapping around the tunnel. Since then I’ve thought about how it’s kind of like a Zelda dungeon. Which inspired the doors and keys. The idea is super simple, most rooms must be complete to move past the corresponding door.
The implementation was less simple. Even though I already had the basic game, there were a lot of changes to make to support moving between rooms (that’s what I get for using magic numbers). I was trying to keep it simple, not optimize too soon, but inheritable scenes became helpful. Creating new kinds of ghosts and rooms was easy after setting them up.
Variation 2: New Ghosts
In addition to the usual suspects: Blinky, Pinky, Inky, and Clyde, we have Glitchy, Skittish, and Zinky.
- Fun fact: Press
~to enable debug mode and see what the ghosts are targeting.
Glitchy, despite having a cool name, targets 6 tiles in front of Pac-Man and has a scatter tile near the ghost house. When they go to scatter mode, Glitchy will hang out in the middle of the screen.
Skittish has a scatter tile almost the same as Blinky because they like to hang out. In chase mode, Skittish picks a random spot and hangs out there with no regard to what Pac-Man or any other ghost is doing. Skittish is also a dark color and hard to spot.
Zinky has a scatter tile similar to Glitchy but offset a bit. If they’re together they scatter to the center but not the same pattern. When entering chase mode Zinky targets where Pac-Man was, so maybe don’t hang out in the same area too long.
Each room has 2-4 of some combination of the 7 ghosts. However the colors can be misleading, don’t trust them. It would be nice to have some consistency to the ghost colors, for example: Blinky is always some shade of red.
Variation 3: Roguelike with Time Rewind
I thought making it “roguelike” (okay not completely Rogue, but death causes you to start over from the beginning) would make it easier and time rewind would be a cool gimmick to make it feel a little more fair for the player. I got a version of it working, but scrapped it when I started adding rooms. This part wasn’t finished in time, but maybe I’ll add it someday because it was fun to work on.
- Fun fact: The Roguelike element is made easier when you learn ghosts do not go through tunnels.
Deadline
Totally self-imposed, the goal here is to better understand how much time it takes for me to solo develop games. I’m decent at estimating other projects, but serious game development is new.
I overestimated (typical engineer), but not by a lot. The deadline came and the product was missing two “levels” and 1 feature. I believe with another couple of days it could have been there, but it’s time to move to something new.
AI
It saved some boiler plate and simple functions (like dealing with tiles and pixel space), but struggled with state and mode transitions. Overall I’m not sure if it was a time saver or cognition saver. It started to not feel great. On one day of development I avoided AI to flex the ‘ol brain muscle.
Next Steps
To be totally honest, I feel a little lost. For the first time in my life I have the opportunity to explore doing what I want. I never realized the structure a job provides so there is a lot of what I’m going to call “growing opportunities”.
Games have been a part of my life for as long as I can remember. They’re what led me down the path to learning about computers and literally shaped my life. They’ve entertained me, frustrated me, given me epic wins, taken me out of my comfort zone, brought people together, and made me see the world from someone else’s perspective. I would love to make programs that do that for others–it’s amazing to me a computer program can do that.
I don’t know exactly yet what my next game will be. I’d like it to be a serious project opposed to my usual just goofing around because it’s fun. Something of my own creation, not playing in someone else’s sandbox. Also, something I can finish and release that doesn’t require too many new skills.
I do want to share my progress with whoever shows up. I’m not great with social media (one of those new skills I need to work on), but I’ve set some up. I’m grateful for anyone who decided to follow them.