CHANDLER GUZMAN
GAMEPLAY PROGRAMMER
Jalopy Jetstream
Jalopy Jetstream is a top-down 3D infinite runner for Windows and web initially developed by a team of 6 in Unity.
​
When your jalopy van ship breaks down in the middle of outer space, fight to survive by avoiding seemingly endless asteroids, satellites, and other dangerous space debris!
Project Overview
Length
Ongoing Development
09/05/2025 - Present​
Tools
Unity 6.2
Visual Studio (C#)
GitHub
Role(s)
Project Lead
Game Designer
Gameplay Programmer
Jalopy Jetstream began as a submission for the 48-hour 2025 Space Game Jam and has since moved into ongoing development.
Contributions
Project Lead
-
Created and managed GitHub repository, utilizing Git Large File Storage and GitHub Desktop to enable efficient real-time collaboration with a 6-person team in Unity 6.2.
-
Established and achieved realistic project scope and milestones given the 48-hour time limit.
-
Fostered active communication with the usage of Trello to manage tasks.
-
Led team meetings via Discord to discuss, implement, and finalize creative direction.
-
Oversaw playtesting by recruiting 10 volunteers and gathering detailed feedback.
Game Designer
-
Improved gameplay loop using extensive playtesting data from self and 10 volunteers.
-
Designed and iterated on the main gameplay scene in Unity 6.2, implementing new assets such as music, SFX and VFX to polish and finalize the prototype build.
-
Coordinated with artists and programmers to ensure the game feel was consistent.
Gameplay Programmer
-
Included concise summary and documentation of my work in code and Git commit comments to ensure understanding among the programming team.​​​​​​​​​​​​​​​​​​​​​​​​​​

Example Git commit from when I modified the obstacle spawner logic.
-
Optimized game performance by implementing obstacle spawn limit and self-destruction once off-screen, effectively reducing game memory usage.

One of the conditions for the obstacle spawner script to spawn new obstacles is if the number of obstacles active in the scene does not exceed the obstacle limit.

The obstacle controller script checks every frame to see if the obstacle has left the screen and, if so, destroys the obstacle and subtracts it from the current obstacle tally to free up space.
-
Added time-based difficulty scaling for a satisfying and challenging gameplay experience.

The obstacle spawner script raises the difficulty by decreasing the time between obstacle spawns based on how long the player has been alive.
​
This system will soon be adjusted so that the game will switch to a distinct state once the difficulty increases to allow for a more dynamic and artificially intelligent obstacle management system.
-
Composed an algorithm to procedurally generate obstacles at the top of the screen to construct the dynamic and non-deterministic gameplay of an infinite runner.

The obstacle spawner script will spawn new obstacles at a randomized location if enough time has passed since an obstacle of the same type has spawned and the obstacle spawn limit has not been reached.

After the obstacles spawn, they are each given the Obstacle Controller script which will destroy the object once it has reached the given Z position.
They are also given the Obstacle Mover script which randomly assigns the obstacle a velocity and trajectory within a certain range of values.

-
Utilized a game state machine to determine when the obstacle generation algorithm would start and stop spawning obstacles.

If the game state is not "Playing", the obstacle spawner will not spawn obstacles. This is checked every frame in order to actively track changes to the game state.

When the player dies, the obstacle spawner immediately detects the change in game state and stops spawning in obstacles.
-
Modified and debugged obstacle movement logic to ensure obstacles could collide with the player within the 3D game space.

-
Developed fluid and engaging player movement with room for skill and mastery.
