The Starwarden — browser platformer: collect starlights, fight murklings, beat the darkness

작성자

카테고리:

← 피드로
DEV Community · Dang Tran · 2026-06-17 개발(SW)

Dang Tran

Dang Tran

Posted on Jun 17 • Edited on Jun 20

June Solstice Game Jam Submission

This is a submission for the June Solstice Game Jam

What I Built

The Starwarden is a side-scrolling platformer where you play a wizard restoring a sky half-swallowed by shadow. Collect starlights to lower a rising darkness meter, fight Murklings across four seasons (Spring through Winter), and win by clearing the full year before darkness hits 100%.

I built it to make light vs. darkness and time passing feel tangible: darkness is always creeping in, seasons turn with rising difficulty, and each starlight is a small push back toward dawn. That maps directly to the jam’s solstice themes — the global balance of light and dark, the passage of the seasons, and a fight at a turning point between endless twilight and restored day.

Site

https://wizard-game-pi.vercel.app/

Code

The Starwarden

A 2D side-scrolling platformer built with Phaser 4, React 19, TypeScript, and Vite. Play as a wizard crossing a procedurally generated world through four seasons — collect starlights to push back the darkness, dodge or defeat murklings, and clear Spring through Winter to win.

AI / contributor reference: See AGENTS.md for architecture, game logic, world generation, assets, and conventions. Start there instead of reading the full codebase.

Quick start

npm install
npm run dev

Enter fullscreen mode Exit fullscreen mode

Open http://localhost:8080. The game loads StoryInstructionsGame (MainMenu is registered but skipped on cold start).

Command Description npm install Install dependencies npm run dev Development server with hot reload npm run build Production build in dist/

How to play

Each season starts with the sky at 50% darkness. Darkness rises passively over time (~90 seconds to reach 100% if you collect nothing). Collect starlights to…

How I Built It

I built The Starwarden with Phaser 4 + React + TypeScript + Vite. React hosts the canvas; Phaser runs everything through a scene chain ending in Game.

The level is a procedurally generated tile grid with staircase platforms. After generation, a BFS reachability pass (using conservative jump bounds synced to player physics) prunes unreachable platforms — so every starlight spawn is guaranteed collectible.

Rendering uses a batched tilemap layer for platforms. Darkness is a screen-space overlay sandwiched between parallax and gameplay (depth 5), plus a HUD meter. Starlights and murklings both query only reachable runs; murklings also respect spawn distance from the player.

Player movement uses Arcade velocity + horizontal drag, debounced ground detection, and a priority-based animation state machine. Combat is fireball overlap on patrolling enemies.

Config is split into small modules (starlightConfig, baddiesConfig, wizardCombatConfig) so tuning doesn’t require touching core scene logic.

원문에서 계속 ↗

코멘트

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다