Back to News & Insights
Web Development September 18, 2026 ยท 9 min read

๐ŸŽฎ Neon Caverns: A Platformer Built with Limn Engine โ€” Play It Now

๐ŸŽฎ Neon Caverns: A Platformer Built with Limn Engine โ€” Play It Now A neon-lit platformer...

๐ŸŽฎ Neon Caverns: A Platformer Built with Limn Engine โ€” Play It Now

A neon-lit platformer with 3 levels, a boss fight, and a full scene system โ€” built entirely in the browser with Limn Engine.

The game is live on the Limn Arcade and ready to play. Click the link, and you're in the main menu within seconds. No downloads, no installation, no sign-up required to play.

Source code is underway and will be released soon for anyone who wants to learn how it was built or modify it for their own projects.

Neon Caverns is a 2D platformer built with Limn Engine โ€” a lightweight game engine that runs entirely in the browser. You play as a pink square navigating neon-lit caverns, dodging enemies, collecting coins, and fighting a boss at the end of each level.

The game was designed to be easy to pick up but hard to master. Three levels of increasing difficulty, a boss with multiple HP stages, and a full menu system with settings, pause, and level select โ€” all in a single JavaScript file.

Here's what makes it interesting: 3 hand-designed levels โ€” Caverns, Towers, and Boss Arena Intelligent enemies โ€” they patrol, detect the player, chase, and return home A boss fight โ€” with health, chase AI, and a hurt-flash effect Moving platforms โ€” horizontal and vertical, with proper player carrying Full scene management โ€” Menu, Game, Over, Win, Pause, Settings, Level Select Persistent settings โ€” volume sliders saved to localStorage Touch + keyboard support โ€” playable on phones and desktops Responsive canvas โ€” scales to fit any screen

This article introduces the game, explains how it works, and shows you the key parts of the code โ€” so you can see exactly how a complete Limn Engine platformer is structured.

| Action | Keyboard | Touch | |--------|----------|-------| | Move Left | A or โ† | Left button | | Move Right | D or โ†’ | Right button | | Jump | W, โ†‘, or Space | Jump button | | Pause | Esc or P | II button (top right) |

Goal: Reach the boss at the end of the level, jump on its head to damage it, and defeat it to win. Collect coins for score. Avoid enemies and spikes.

Enemies: Red squares that patrol and chase you when they see you. Jump on their head to defeat them.

Boss: A larger red square with multiple HP. Stomp it repeatedly to win the level.

Lives: You have 3 hearts. Get hit by an enemy or spike and you lose one. Lose all three and it's game over.

Before we look at any code, let me explain the architecture of the game. Understanding the structure first makes the code much easier to follow.

Neon Caverns uses a scene system. A scene is a distinct screen or state of the game โ€” like a menu, gameplay, or a game-over screen. Only one scene is active at a time, and the game switches between them in response to player actions.

Each scene is a number. The display.scene property tracks which scene is currently active, and only components assigned to that scene are drawn and updated. This is a core feature of Limn Engine โ€” it lets you build complex games without destroying and recreating objects on every state change.

Here's what the game is built from. Each of these is a Limn Engine Component โ€” a game object.

| Element | Type | Purpose | |---------|------|---------| | Player | Component | 28ร—40 pink square, moves with keyboard/touch | | Ground & walls | Component | Tiles from the level map โ€” solid, collidable | | Spikes | Component | Tiles with ID 4 โ€” damage on contact | | Coins | Component | 16ร—16 yellow squares, +10 score each | | Hearts | Tctxt | HUD hearts in the top-right corner | | PatrolEnemy | Custom class | Extends Component โ€” patrols, detects, chases | | MovingPlatform | Custom class | Extends Component โ€” sine-wave movement | | BossEnemy | Custom class | Extends Component โ€” larger, more HP, chase AI | | HUD | Tctxt | Score, coins, and boss HP display | | Pause button | Component | Pinned to screen via .fixed() | | Menu buttons | Component + Tctxt | Each scene has its own buttons |

The game uses custom classes that extend the base Component class โ€” a technique that lets you give each game object its own behaviour while still using the engine's built-in rendering and collision systems.

Want to discuss this further?

Book a free strategy call with our team to see how these insights apply to your specific business goals.

Book a consultation