๐Ÿ› Bugdom

A classic 3D platformer โ€” now playable in your browser via WebAssembly

Play Bugdom in Your Browser

Control Rollie McFly, a roly-poly bug on a mission to free the garden from the fire ants. No installation required โ€” powered by WebAssembly.

โ–ถ Play Now ๐Ÿ›  Developer Mode Bugdom screenshot

Level Select

Jump directly to any level using the URL ?level=N parameter.

#LevelTypeDirect Link
0TrainingLawnPlay โ†’
1LawnLawnPlay โ†’
2PondPondPlay โ†’
3ForestForestPlay โ†’
4Hive AttackHivePlay โ†’
5Bee HiveHivePlay โ†’
6Queen BeeHive (Boss)Play โ†’
7Night AttackNightPlay โ†’
8Ant HillAnthillPlay โ†’
9Ant KingAnthill (Boss)Play โ†’

Level Editor Integration

๐ŸŽฏ Direct Level Load

Add ?level=N to the URL to skip all menus and load straight into level N.

๐Ÿ—บ Custom Terrain

Override the terrain file with ?terrainFile=:Terrain:Custom.ter. The file must be placed in Emscripten's virtual filesystem.

๐Ÿ›  Developer Mode

Add ?dev to show the developer toolbar with level select, terrain override, and cheat toggles.

๐Ÿšง Fence Collision

Add ?noFenceCollision=1 to disable fence collisions for unobstructed exploration.

JavaScript API

When running in the browser, Bugdom exposes a JavaScript API for external tools and level editors:

// Fence collision control
Module.ccall('BugdomSetFenceCollision', null, ['number'], [0]); // disable fences
Module.ccall('BugdomSetFenceCollision', null, ['number'], [1]); // enable fences
Module.ccall('BugdomGetFenceCollision', 'number', [], []);      // 1=enabled, 0=disabled

// Query current level (0-9)
Module.ccall('BugdomGetCurrentLevel', 'number', [], []);

// Override terrain file for the next level load
// colonPath is a Mac-style colon-path relative to the Data directory
// e.g. ':Terrain:MyLevel.ter'
Module.ccall('BugdomSetTerrainOverride', null, ['string'], [':Terrain:MyLevel.ter']);

// Pre-set options before game starts (via window globals before page load):
window.BUGDOM_START_LEVEL = 3;                    // jump to level 3
window.BUGDOM_TERRAIN_FILE = ':Terrain:My.ter';   // custom terrain
window.BUGDOM_NO_FENCE_COLLISION = true;          // disable fence collisions

Controls

๐Ÿ–ฑ Mouse

Move mouse to control camera. Click to capture mouse. Press Escape to release.

โŒจ๏ธ Keyboard

WASD / Arrow keys: Move
Space: Jump
Escape: Pause

๐ŸŽฎ Gamepad

Standard gamepad controllers are supported via the browser's Gamepad API.

๐Ÿ”Š Audio

Click the canvas to interact with the page and enable audio (browser requirement).

Documentation

๐Ÿ“– Game Manual

Original instruction manuals: EN ยท DE ยท FR ยท ES ยท IT ยท JA ยท SV

โš›๏ธ React Integration

Embed the game in a React app. See the React Integration Guide.