MineFPS is a first-person shooter demo set within a procedurally generated, voxel-like world in the style of Minecraft. It is written entirely by OpenAI’s o1-pro model using iterative prompting. It leverages PyOpenGL and Pygame for rendering and input, and features dynamic chunk loading, basic enemies, projectiles, explosions, and world deformation.
-
Voxel-Style World Generation:
The environment is chunk-based, similar to Minecraft. Blocks are generated on-the-fly, and chunks load and unload as the player moves. -
Procedural Terrain and Obstacles:
Each chunk introduces a varying pattern of blocks, occasional obstacles like leaf blocks, and items. -
Player Movement and Physics:
The player can move, jump, and interact with the world under gravity and collision constraints. The code handles basic collision detection and gravity simulation. -
Weaponry and Projectiles:
The player starts with three weapons:- Pistol (high ammo, moderate damage)
- Shotgun (spread of multiple pellets per shot)
- Rocket Launcher (explosive projectiles that deform the world)
Ammo pickups are scattered around the world.
-
Hostile Enemy - Robodogs:
Patrols the area, occasionally firing at the player. They respond to hits and explosions, and have their own simple AI logic for movement and targeting. -
Hostile Enemy - Robodrones:
Suicide drone that patrols the skies and tries to blow up the player by flying into them. -
Explosions and World Deformation:
Rockets cause explosions that remove blocks and leave bullet marks on impacted surfaces. The world updates rendering dynamically after block removal. -
Bullet Marks and Visual Effects:
Shots leave bullet marks on surfaces, and rocket blasts produce sparks and fireballs rendered as particle systems.
python main.py
If you run unify.py you will get a single text file with all source code for the game organized by tags that you can paste into an AI model's context window like o1-pro to continue development. This method was used to iteratively develop the game.
- W / A / S / D: Move forward/left/back/right.
- Mouse Movement: Look around (pitch and yaw).
- Left Mouse Button: Fire the currently selected weapon.
- Space: Jump.
- Shift (hold): Sprint for increased movement speed.
- 1 / 2 / 3: Switch between the Pistol, Shotgun, and Rocket Launcher.
- Mouse Wheel: Quick-swap through available weapons.
- Escape: Quit the game.
- F11: Toggle fullscreen.
- Pistol: Medium rate of fire, decent accuracy, large ammo pool.
- Shotgun: Fires multiple pellets with wide spread; good for close range.
- Rocket Launcher: Slow fire rate, limited ammo, but destructive explosions that deform the world.
- Ammo pickups appear around the world and can be collected by moving close to them.
