2025 game jam
Last Oasis
A browser-playable Godot platformer with a state-machine character controller, traversal abilities, and jam-focused authoring tools.
- Role
- Primary gameplay and tooling programmer
- Status
- Released
- Engine
- Godot
Overview
Last Oasis is a jam platformer about Palis, a water spirit trying to find water and keep survivors alive in a desert. The project shipped as a browser-playable submission to the thatgamecompany x COREBLAZER Game Jam 2025.
Key Contributions
As the primary gameplay and tooling programmer, I was responsible for the core character controller, traversal feel, special abilities, and the authoring tools used by the design team to iterate rapidly under tight jam constraints.
Character controller
- Built a nested state-machine character controller covering ground, air, wall-slide, slam, destroy, and death states.
- Added traversal feel details: coyote time, variable-height jumping, double jump, wall jump with diminishing returns and input buffering, spike grace frames, and slippery-tile handling read from tile custom data.
Chain-reaction destructibles
- Built a chain-reaction destructible system: a facing raycast breaks a target, then an expanding overlap query breaks neighbors outward with per-depth delay.
Launch ability
- Built an aimable launch ability as a separate component with aim, fire, and cancel states, a live guide line, and on-screen control prompts.
Authoring and world tools
- Built an editor-time tile-to-scene tool (a
@toolTileMapLayer) that swaps placed tiles for scene instances keyed by tile custom data while preserving each tile’s flip, transpose, and rotation. It drives hazards, destructibles, and dissolving platforms. - Built an input-icon autoload mapping live InputMap bindings to on-screen key
and mouse icons, with exported-build
.remaphandling. - Built velocity-driven squash and stretch with skew and momentum-aware sprite flipping, plus world and environment systems: dynamic lighting, depth-based cave darkening, and shader-driven tilemap effects.
What The Work Shows
This project shows gameplay programming under a tight production cycle: making a character feel responsive, building tools only where they remove real authoring friction, and keeping implementation decisions small enough for a short jam team to debug and ship.