Real picture of me
My profile picture elsewhere

$ Austin Slaughter

Computer Science student

Bullet Heck!

[visitor@portfolio bulletheck]$ ./cool-background &
[1] 573
Running cool background. Click here to turn it off.
[visitor@portfolio bulletheck]$ mpv demo.mp4

[visitor@portfolio bulletheck]$ cat bulletheck.md

View on GitHub | Download

Even though I made it in high school, this is still one of my biggest/most ambitious programming projects. Officially titled "Creating a 2D Video Game with Python," I first learned the language from various library books, then applied the experience to an original project. It met my school's requirements of 25 hours of work and covering the criteria of "career-based" (potential job skills) and "personal challenge."

Player ship

The game itself is a 2D horizontal space shooter called “Bullet Heck!” with “fake 3D” player and enemy graphics (made in Blender and rendered to .png sequences). There are 6 types of enemy that show up over time, 4 levels of weapon upgrades for your ship, and an endless score-attack gameplay loop with scaling difficulty. Thanks to the "pickle" library, your high score is saved between sessions.

Health pickup Powerup pickup

Admittedly, it's not incredibly hard, hence the "heck" instead of "hell." Your ship has a tiny hitbox, 3 hit points that can be refilled, AND 3 lives.

Enemy 1 Enemy 2 Enemy 3 Enemy 4 Enemy 5 Enemy 6

Enemies spawn on a timer, which gets shorter the higher your score is. Only enemy #1 spawns at first, but the other 5 become available as your score increases. They all have the potential to drop a health or powerup sphere when blown up.

From left to right:

  1. Small "tri-torus": Rolls straight forward.
  2. Big "tri-torus": Also rolls straight forward, but has more health and drops 2 items!
  3. Enemy ship: Fires a bullet in one of 4 preset directions. Maybe its aim computer is broken?
  4. Circle thing #1: Spins and fires 2 bullets.
  5. Circle thing #2: Spins and fires 4 bullets.
  6. Circle thing #3: Spins and fires 6 bullets.
Explosion

Using the tkinter library, I also wrote a launcher program for editing settings before you play. There's even configurable gamepad support!

Bullet Heck! Launcher 1 Bullet Heck! Launcher 2 Bullet Heck! Launcher 3

Credits

[visitor@portfolio bulletheck]$