NINJOLT: one swipe, one perfect route
NINJOLT is an HTML5 swipe puzzle game template with full TypeScript source code. One swipe sends the ninja dashing until the next wall, so each of the 30 stages becomes a small routing puzzle: collect three stars and reach the scroll. It comes with three illustrated worlds, ten cosmetic ninja outfits and a 14-language interface, in a game folder that is ready to upload to any static web host.

Swipe-to-dash puzzle gameplay
The player picks a direction and commits. The ninja dashes until a wall or another stopping point, grips it and waits for the next swipe. Players swipe with a finger or the mouse, or use the arrow keys or WASD, and Esc pauses. Holding a direction does not chain dashes: the swipe has to be released before the next move.
30 stages across three illustrated worlds
The campaign runs through lush gardens, crystal temples and a storm-lit fortress. Traps and breakable crates appear along the routes, and later stages add guards, keys, portals, movable crystals, reflectors and alternating barriers, so the same four swipes need more planning.

Stars, mastery and ten ninja outfits
Every stage hides three stars, 90 in total. Collecting all three in one run within the move target earns mastery. Ten outfits, each with a matching elemental sword, can be unlocked; the starting outfit is Orange Fox. Outfits are cosmetic and never change range, damage or puzzle rules. Progress and outfits are saved in the player's browser.
14 languages and a nonverbal soundtrack
The interface is available in 14 languages, from English, Portuguese and Spanish to Japanese, Korean and Simplified Chinese. Audio is music, effects and short nonverbal ninja reactions, so there is no recorded narration to translate or re-record.
Ready-to-host game and readable TypeScript source
Upload the contents of game/ to static HTTP(S) hosting. Playing needs no database, PHP, account or Node.js, and the source/ folder and the ZIP stay off your public site. The source is TypeScript built with Vite and includes regression tests. An offline illustrated buyer guide comes in English, Portuguese and Spanish.

Who this template is for
- Site and portal owners who want a finished swipe puzzle game on their own domain.
- Freelancers and studios who need a branded puzzle for one client project.
- Developers who want to study a compact TypeScript puzzle game and its level solver.
Customise it
Stage maps live in source/src/core/levels.ts and campaign-levels.ts, movement feel in source/src/config/shift.ts, outfits in source/src/config/tuning.ts, artwork in source/src/render/assets/ and text in source/src/i18n/. Keep stage IDs stable so existing saves still match. npm run validate checks all 30 routes and star targets after you change a stage.
Technical details at a glance
- Stack: HTML5, TypeScript, Vite, Canvas 2D and Web Audio.
- Files: HTML, CSS, JavaScript, TypeScript, JSON, WebP, PNG and MP3.
- Runs in a current browser with JavaScript, Canvas 2D, Web Audio and local storage, on desktop and mobile; mouse, touch and keyboard supported.
- Rebuilding the source needs Node.js 22.13 or newer.
- Not included: native apps, hosting, custom development, cloud saves, online ranking, real-money purchases and an advertising SDK.
Licence and support in short
One purchase gives a perpetual, non-exclusive licence for one end product, yours or one client's. Players may play it free or through advertising monetisation. You can change the code, art and audio inside your product, but not resell or redistribute the template, source or assets on their own. Third-party notices stay with the product. Support covers installing and using the files and fixing reproducible defects: 6 months from purchase, or 12 with the extension. The licence does not end with support.













