Skip to content

Repository files navigation

BulletHeaven

BulletHeaven is a fast-paced Java action game inspired by the luminous vector aesthetic and kinetic combat of Geometry Wars. The player fights through increasingly dynamic environments filled with enemies, projectiles, hazards, and emergent interactions.

Unlike traditional bullet-heaven games that rely heavily on automatic attacks, BulletHeaven gives the player direct control over combat. The player can turn, aim their weapon independently, control the angle of fire, and strafe while shooting. Survival therefore depends on positioning, precision, movement, and deliberate target selection—not simply on choosing upgrades and avoiding contact.

The game uses a mostly vector-based visual language: sharp geometric forms, vivid colors, glowing effects, dense particle systems, and highly readable motion. Its environments should feel active and reactive rather than like static arenas. An entity component system supports this design by allowing enemies, hazards, projectiles, environmental objects, and effects to combine behaviors in flexible and surprising ways.

Schools of Upgrades

During a run, the player develops a build through five mythological schools:

  • School of Mercury — Movement: Speed, agility, strafing, evasion, and mobility.
  • School of Jupiter — Strength: Direct offensive power, weapon impact, and destructive force.
  • School of Janus — Duplication: Additional attacks, mirrored effects, copies, and multiplication.
  • School of Minerva — Defense: Protection, resilience, control, and tactical survival.
  • School of Diana — Familiars: Autonomous companions, summoned entities, and coordinated attacks.

Each school represents a recognizable gameplay identity while allowing its upgrades to interact with those from other schools. These combinations should produce distinct builds and encourage experimentation across repeated runs.

The intended experience is a blend of bullet-heaven escalation and skill-based multidirectional combat: immediately readable, visually spectacular, mechanically expressive, and capable of producing unexpected situations through the interaction of many simple entities.

Development

BulletHeaven requires JDK 22 or newer and uses the checked-in Gradle wrapper. No system Gradle installation is required.

On Windows:

.\gradlew.bat test
.\gradlew.bat :core:tier2Benchmark
.\gradlew.bat lwjgl3:run
.\gradlew.bat lwjgl3:jar

On Linux or macOS:

./gradlew test
./gradlew :core:tier2Benchmark
./gradlew lwjgl3:run
./gradlew lwjgl3:jar

The runnable desktop JAR is written beneath lwjgl3/build/libs/. The desktop launcher uses assets/ as its working directory.

The application opens a resizable combat run with independent movement and aim, continuous fire, three CR 1 enemy roles, collectible XP shards, paused school-upgrade choices, health and shield, death, immediate restart, vector effects, cyclic Gravity Spiral and Epoch Wave arena forces, and diagnostics. Its simulation uses an Ashley entity component system with deferred entity changes, spatial collision queries, deterministic replay checks, and explicit population budgets. Run all automated tests and the Tier 2 benchmark before integrating a change.

Prototype controls

Action Keyboard and mouse Gamepad
Move WASD Left stick
Aim Mouse Right stick
Fire Left mouse button Right trigger or shoulder
Restart after defeat Enter or R A button
Choose an upgrade Move into a physical boon Move into a physical boon
Pause / build summary Escape Start button
Continue after victory Enter A button
Fresh run after victory R

About

A Vibe coded love letter to Geometry Wars

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages