box art

Badge Blaster 2112

It's the year 2112.

Evil cops have taken over the world, arresting everyone they see and hear only to recruit them shortly thereafter. You're not having any of that so you start the engine of your delightfully pink sports car of death and begin the most awesome getaway the world has ever known!
All assets (except fonts) made from scratch!
Hendrik-jan - Lead Design & Audio
tizilogic - Procedural Generation
Fireclaw - Graphics
rdb - Fireworks
Schwarzbaer - Potato Lord

Watch the trailer on YouTube

Use the arrow keys to control this game. Gamepad is also supported, but note to UNPLUG your gamepad to use the keyboard controls.

Your high score will be submitted to a server, so you can compare your results to other players.

Binary builds are provided below, but if they don't work, use the source, Luke. Requires Python 3.7 or higher to run from source.

NOTE: rdb forgot to pack requirements.txt in the source archive. Run this to install the requirements:

python -m pip install panda3d==1.10.9 panda3d_keybindings


Presented by discretegames

Presented by Cosmologicon

Give this entry an award


Ratings (show detail)

Overall: 4.2
Fun: 4.1
Production: 4.8
Innovation: 3.6

Respondents: 19


File Uploader Date
macOS binary (AS-IS, run from source if it doesn't work)
rdb 2021/04/04 14:11
Binaries for Linux x64 (use ./run_game)
rdb 2021/04/04 12:36
Windows binaries
rdb 2021/04/04 12:07
box art
zwerver 2021/04/04 11:17
trailer video
zwerver 2021/04/04 11:17
animated gameplay gif
zwerver 2021/04/04 11:16
Final source code
rdb 2021/04/03 22:12
rdb 2021/04/01 22:13

Diary Entries

First time w/o even a single Diary Entry?

Yes... and no. No diary entry during the coding time frame of the jam, but we sure don't want to miss out on potential comments to our entry, so here is a quick recap of the week:

I still remember with a broken heart, how in PyWeek 30, our favorite theme wasn't chosen. No such bad luck in 31 tho, since the themes all were so random, we decided as a team to let the trusty "random" module perform that hard choice for us:

import random

choices = [1, 2, 3, 4, 5]
for _ in range(3):

That made sure that we matched the level of randomness of the themes to choose from. So when the theme was announced, no broken hearts were reported by the team members and no one lost trust in the democratic process bestowed upon us by the PyWeek overlords.

With the theme known, we started brainstorming and came up with something that would fit the individual strengths and preferences of our team members. Hendrik-jan had a clear vision of what it should look and feel like to play and gave out appropriate tasks to the rest of the team. rdb got the job of "hell master" in charge of virtual pyrotechnics, Fireclaw was in charge of creating 3D models, tizilogic was advised to mix a potion using PRNG and math trickery to mash everything else together into a playable world (and call it procedural generation), while Schwarzbaer assisted us both with his input handler library, in the brainstorming, play testing and by whipping out his Potato-with-a-GPU-inside to make sure the game would play on ancient hardware. Our team leader composed and produced all the sound and SFX and steered the project admirably (to success the author of this diary entry wants to add), so everyone else on the team could focus on their part and produce great work.

The game came together pretty well, really fast. In no time we had something to start verifying whether reality matched up with our vision and improved on what we had incrementally. Around Wednesday it was already a lot of fun to play and we still had some time left to further improve upon that. On Thursday, we reached the milestone of "feature complete", so the hunt for bugs and the polish process began.

We are very pleased with the end result and sincerely hope the judges like our entry just as much as we do.

PS over half of our team used FreeBSD to develop Badge Blaster 2112, the rest used Linux, so this game was made almost entirely with free and open source software, such as Blender for 3D models, lmms for music/SFX, Piskel for pixel art, etc.
Also, all game art (meaning models, sprites, music, SFX) was made entirely from scratch by this team during the duration of PyWeek 31!



Oh no!  It has been brought to my attention that I forgot to put the requirements.txt file in the source zip.  You can download a fixed zip file here, or just run this command to install the required dependencies:

python -m pip install panda3d==1.10.9 panda3d_keybindings

Happy judging!  Let us know if you run into any issues with our entry.

EDIT: the fixed zip file also includes a fix for an exceedingly rare exception when slamming full-speed into a barrier.

1 comment

Final Leaderboard

Thanks so much to everyone for rating and playing our game! Thanks to the highscore server that tizilogic developed, we were able to see the highscore list update over the course of the judging period as people started playing it, which was quite fun to see.

To give everyone an even chance (and because we did a bunch of balancing changes at the last moment), the leaderboard was reset at the beginning of the judging period so that everyone would have a fair shot. Our own team lead Hendrik-jan took an early lead on the board, but was defeated by an absolutely stellar score from our modeller, fireclaw, whose score still reigns supreme on the board, despite ankith101rar's many respectable attempts to catch up with him, which were nonetheless successful at pushing the rest of the dev team off the board.

The final leaderboard at the end of the judging period stands as follows:

1  	FOX  	413186
2  	ANK  	202991
3  	ANK  	151669
4  	ANK  	148328
5  	FOX  	147462
6  	ANK  	126634
7  	ANK  	115896
8  	ANK  	112719
9  	ANK  	111618
10  	AAL  	111391

Congratulations to Fireclaw, ankith101rar and whoever entered AAL for achieving these great scores!

The high score server is still up and running, if you want to have a go at defeating these champions. A live version of the leaderboard is available and will continue to be available for a while.

Add a comment