Novel Engine is an engine for building visual-novel games, written in pure JavaScript from scratch. I developed it for the StellarTech team: the engine became the foundation the team builds finished games on — from simple dialogue stories to interactive educational quests.
The core idea: content is separated from code. The whole game is described in YAML scripts — scene, background, lines, transitions, effects, choices. A writer builds the story without touching code, and the engine brings it to life — with animation, sound and interactivity.
Under the hood: a system of transitions and camera motion, atmospheric effects, three-bus audio with smooth fades, branching dialogue, inventory and interactive mini-games. The set of mechanics is modular and extends to fit each project.
I owned the engine end to end: the interface, scene and dialogue playback, visual and sound effects, gameplay mechanics, plus technical maintenance — testing, debugging and server deployment.
Visual effects
-
Scene transitions
Wipe curtains, slide, zoom-punch, fade-to-black, iris — with configurable color, duration and focus point.
-
Camera motion
Frame «breathing», handheld shake, walking sway, slow zoom-loop, object levitation.
-
Atmospheric particles
Rain, snow, fog, dust, leaves, twinkling stars — over any background.
-
Light overlays
A second layer over the background: blinking lamps, pulsing godrays, sparking wiring.
-
Procedural glow
Live glow of lit lamps via particles and a halo that lights the whole scene — no pre-rendering.
-
Impacts & flashes
Screen shake, white flash, frame-by-frame background animation — for accents and dramatic beats.
Gameplay mechanics
The engine is modular: interactive mechanics are integrated to fit the script and the client's needs. Among them:
-
Dialogue & branching
Speaker lines, bubbles, styled choices, story branches.
-
Flags & endings
Flags, conditional transitions and different endings depending on the player's choices.
-
Inventory & items
Collecting, keeping and using items throughout the story.
-
Interactive mini-games
Placing items into zones, wiring up electrical circuits, collecting the right combination of values.
-
Sound control
Ambience, music and effects on independent buses with smooth cross-fades and ducking.
-
Save & load
Saving and loading the game state at chosen story points.
-
Achievements & timers
Rewards for player actions and timed challenges within scenes.
-
Map & stats
Location navigation and RPG-style character stats that affect the story.
Tech stack
- JavaScript
- HTML5 Canvas
- CSS3
- YAML
- Web Audio API
- nginx