A first-person creature-catching adventure that runs entirely in your web browser — no installs, no downloads, no build step. Explore a living 3D valley, battle wild Elemon, catch them with orbs, and survive the hostile monsters that hunt you.
Built as a father-and-son project to learn how games are made, from the first line of code to a published game.
You are an Elemon trainer exploring a valley of rolling hills, meadows, a lake and misty mountains. Wild Elemon wander the land — walk up to one and challenge it to a turn-based battle. Weaken it, then throw an orb to catch it. Every win and every catch earns ⭐ points, and rank-up banners drop as your score climbs: Ranger (200) → Master (500) → Champion (1000).
But the valley bites back. Four hostile species will attack you, the trainer — watch your ❤️ health bar, eat berries to heal, and collect medicine kits for potions that heal your Elemon mid-battle. If your health hits zero you faint, wake up back at camp, and lose 25 points.
| Elemon | Type | Nature | Behaviour |
|---|---|---|---|
| 🔥 Embercub | Fire | Friendly | A fox with a flaming tail. Wanders the meadows. |
| 💧 Splashfin | Water | Friendly | Sleek and finned. Wanders, avoids deep water. |
| 🌿 Leaflit | Grass | Friendly | A spotted fawn with leaf ears. Wanders. |
| ⚡ Zapmouse | Electric | Friendly | Big ears, glowing cheeks. Wanders. |
| 🐝 Venbee | Poison | Hostile | Chases you and stings (−8 ❤️). |
| 🦅 Flyo | Flying | Hostile | Circles high, swoops from far away (−10 ❤️). |
| 🪨 Stoney | Rock | Hostile | Guards the medicine kits — approach and it charges (−15 ❤️). |
| 🐉 Dragwa | Dragon | Hostile | Lurks in the lake and strikes if you wade near (−12 ❤️). The rarest catch in the game. |
Hostile Elemon carry bigger bounties — and yes, you can catch them and make them your battle partner (press C to switch partners).
Super-effective attacks deal double damage; attacking into a resistance deals half.
- 🔥 Fire beats 🌿 Grass and 🐝 Poison
- 🌿 Grass beats ⚡ Electric and 🪨 Rock
- ⚡ Electric beats 💧 Water, 🦅 Flying and 🐉 Dragon
- 💧 Water beats 🔥 Fire and 🪨 Rock
- 🐝 Poison beats 🌿 Grass
- 🪨 Rock beats 🔥 Fire and 🦅 Flying
- 🦅 Flying beats 🌿 Grass and 🐝 Poison
- 🐉 Dragon beats 🔥 Fire and 💧 Water
Desktop: WASD or arrow keys to move · hold and drag the mouse (or click to capture it) to look around · E to battle a nearby Elemon · C to switch battle partner.
Phone / tablet: on-screen joystick to move · drag anywhere else to look · tap ⚔️ Battle! when it appears · tap the 🐾 partner panel to switch partner · ⛶ for fullscreen. Landscape orientation recommended. The game automatically lowers its graphics load on touch devices to keep the framerate smooth.
It's a single self-contained HTML file (plus the three.js library loaded from a CDN), so:
- Run locally: just open
index.htmlin any modern browser. - Publish on GitHub Pages: push this repo, then Settings → Pages → deploy from the main branch. The game will be live at
https://<username>.github.io/<repo>/.
No game engine, no downloaded artwork — everything is code:
- three.js renders the 3D world.
- The terrain is a maths formula (stacked sine waves); the lake simply fills wherever the ground dips below water level.
- The grass texture is painted onto a hidden canvas with ~9,000 brush strokes when the game loads.
- Every creature is built from primitive shapes (spheres, cones, boxes) and animated with sine waves — the trot animation swings diagonal leg pairs together, just like real four-legged animals.
- The battle engine is one damage formula:
move power × type multiplier + a little randomness. - Catch chance rises as the wild Elemon's HP falls, from ~20% at full health to ~85% when nearly fainted.
Designed by a 9-year-old game director and his dad. 🎮
Built with the help of Claude by Anthropic.
This project is licensed under the GNU General Public License v3.0 — see the LICENSE file for details.
In short: you're free to play, share, and modify this game — including commercially — but any version you distribute must remain open source under the same license, so it can never be taken closed-source.