Inspiration

The main inspiration around our game is one of the most popular games that messes around with the concept of time, SUPERHOT. We wanted to incorporate this original concept of slowing down or speeding up time relative to the player's pace.

What it does

The player goes faster, the world moves faster, the player moves slower, the world moves slower. We took what superheat did and put it in a top-down shooter involving zombies and gunmen. This part took some more inspiration from the game known as Hotline Miami, one of the most popular (and one of the most fast paced) top-down shooters.

How we built it

We built Chronozone entirely in Java using Java Swing, with each screen built as its own JPanel managed through a CardLayout inside a JFrame. The play screen overrides paintComponent with Java's Graphics2D API for all 2D rendering, while a javax.swing.Timer drives the game loop at 60 ticks per second. Keyboard input is captured through a KeyListener and stored in a HashSet to support simultaneous key presses for movement and aiming.

All physics, movement, bullet travel, enemy AI, collision detection, and particle decay, are updated each tick and multiplied by a dynamic time scale multiplier, the core mechanic that makes the world speed up and slow down with the player. Circle-based collision uses the Pythagorean theorem computed directly in Java, and all active objects are managed as ArrayList collections filtered each tick.

Acceleration and deceleration of the time scale multiplier was developed with the assistance of Claude (Anthropic), which helped us design a smooth interpolation system where the scale ramps toward 1.0 when the player moves and decays back toward 0.08 when idle.

Additionally, towards the end of our project, we used Claude (Anthropic) to help debug code.

Challenges we ran into

Naturally when dealing with this original concept around time manipulation, we had a lot of fundamental struggles with the physics of the whole game. Nearly everything down to the game timer and player acceleration as well as deceleration. We had to rethink how our controls work because we wanted to put a focus into accelerating and decelerating time, so what we did in the end is we reduced movement down to basic controls of moving where the player points while clicking the accelerate button, W.

Accomplishments that we're proud of

The game is really fun, especially after we got our physics and difficulty in check. Slowing down everyone while the player themselves having to slow down gives a challenging twist to the old SUPERHOT concept where you just have to essentially come to a stop to slow down time.

What we learned

Building Chronozone taught us physics concepts we had never had to implement from scratch before. The most fundamental was frame-rate independent motion: understanding that velocity is meaningless without time, and that every position update has to be scaled by how much real time has passed since the last frame. Without that, the game runs at completely different speeds on different machines.

From there we had to understand vector mathematics at a practical level. Every bullet, enemy, and knockback force in the game is driven by decomposing an angle into its X and Y components using cos and sin. What used to be abstract trigonometry became something we could see and feel: point the gun right, cos(0) = 1 pushes the bullet along the X axis. Point it diagonally, the force splits evenly between both axes.

Collision detection using circle geometry was another major concept. Rather than relying on bounding boxes, we implemented distance-based collision using the Pythagorean theorem directly: two objects collide when the distance between their centers is less than the sum of their radii. Clean, fast, and mathematically exact for circular bodies.

The physics concept that surprised us most was drag and decay. We modeled particle friction by multiplying velocity by 0.92 every frame: a deceptively simple idea rooted in exponential decay. That single multiplier produces naturally decelerating motion without any complex force calculations.

What's next for Chronozone

We want to add level design with walls and cover, turning the open arena into spatial puzzles where using slow motion strategically is the only way through. We also want to expand the enemy roster further: giving shooters better flanking AI, adding a heavy enemy type that absorbs multiple hits, and introducing boss encounters at milestone waves. On the technical side we plan to complete the Java front-end integration via our socket bridge, giving Chronozone a polished menu, leaderboard, and settings screen that wraps the Python game engine. Longer term, we'd love to add procedurally generated levels and a soundtrack that dynamically shifts tempo with the time scale.

As a consequence of focusing on the complex physics of the game, we neglected using creative assets such as detailed graphics and sound effects - if only we could've slowed down time. That will be something we add in the future.

Built With

Share this project:

Updates