Tina the Destroyer: Turning Family Photos Into a Playable Arcade Game

I built a small local arcade game called Tina the Destroyer with Python and Pygame.

The idea was simple and personal: I took pictures of my daughter, converted them into game-ready pixel sprites, and built a one-screen game around that character. The result is a fast arcade loop where Tina smashes falling rats before they hit the ground.


The Core Idea

I wanted a game that was:

  • Fast to play
  • Easy to understand
  • Personal and fun

So I designed a tight gameplay loop:

  • Move left and right
  • Press Space to perform a ground smash
  • Squash rats for points
  • Lose a life when a rat reaches the bottom
  • Game over after 3 missed rats

From Photos to Sprites

The visual pipeline started with real photos. I cleaned and adapted the character images to work as sprite sheets and exported key poses:

  • player_idle.png
  • player_smash.png

I also prepared enemy and effect assets:

  • rat.png
  • rat_squashed.png
  • impact.png
  • title.png

For audio, I added smash, miss, and looped music effects, with fallback loading so the game still runs if a file is missing.

Building the Game

The game is organized into small modules:

  • main.py entrypoint
  • game.py state machine and game loop
  • entities.py player, rats, and impact effects
  • settings.py tuning values
  • utils.py asset loading and fallbacks

Key features I focused on:

  • Clean state flow (TITLEPLAYINGGAME_OVERQUITTING)
  • Responsive movement and smash timing
  • Difficulty scaling over time
  • Score/lives HUD
  • Best-score persistence to JSON
  • Graceful fallback behavior for missing assets

Vibe Coding the Project

I vibe coded this with gpt-5-3.codex, iterating quickly on gameplay feel, tuning values, and production details (asset fallbacks, restart flow, audio handling, and UI polish).

Source code: JordiCorbilla/tina-the-destroyer: tina-the-destroyer

That pairing made it easy to keep momentum: prototype fast, test, adjust, repeat.

Why I Loved This Build

This project sits at the intersection of family creativity and engineering. It started as a fun idea with photos and ended up as a fully playable local arcade game I can run anytime with:

pip install pygame
python main.py

Small scope, real personality, and a complete game loop. Exactly the kind of build I enjoy.

Comments

Popular Posts