🚀 I just built my first ever 2D game - Death’s Job! 💀🎮
A little ghost. A sky full of obstacles. And a lot of physics.
I started this project purely out of curiosity -
“How do people make a game from scratch using something low-level like Pygame?”
So, I opened a new Python file… and a few days later, I surprisingly had most of the game logic working.
Gravity, physics, collisions, obstacle generation - all fun to implement.
But then I hit the real boss fight in game development:
🎨 finding assets that actually match.
I was using random images from the internet… and the game looked like a cursed collage.
Then Diwali happened. Then my university exams happened.
And the project sat untouched.
Once exams ended, I returned with fresh energy and decided to finish it properly.
So, I generated matching sprites using Gemini + creative prompting, and honestly… asset creation was harder than the coding 😅
For sound effects and background music, I went digging through Pixabay and finally found pieces that fit the vibe.
Today - after polishing the UI, splash screen, physics, and gameplay.
I’m proud to say the game is complete. 🎉
🎮 Death’s Job — Features
Interactive splash screen with animated buttons
Flappy Bird–style jumping with horizontal controls
Smooth physics (gravity, velocity, damping)
Pixel-perfect mask-based collision detection
Randomized obstacles with recycling system
Infinite scrolling cloud background
Jump/Collision SFX + looping background music
Auto-reset system
Runs at 60 FPS
🎥 Gameplay Recording Gif:
🔗 GitHub Repository:
Death's Game
This project taught me:
How game engines handle physics at a low level
How deceptively hard good asset selection is
How much polish simple games actually need
And how fun it is to give life to something you built from scratch
I’d love feedback, ideas, or critiques - especially from anyone into game dev or Python.
Thanks for reading! 😊

Top comments (0)