Neotolis Engine

Minimalist game engine for Web/WASM

Tiny output · Zero magic · Code-first · C17

Philosophy

  • Code-first

    Game controls the main loop. The engine gives building blocks, not a pipeline.

  • Explicit over implicit

    You see everything. No hidden behavior, no magic behind the scenes.

  • Keep it simple

    Less code is better. Simplify further when possible.

  • Tiny size

    Every byte counts. Binary size tracked on every PR.

  • Set of modules

    Use only what you need.

  • Prebuilt assets

    Source formats packed into binaries at build time. Runtime loads packs on demand, no parsers.

Features

  • Code-first — Game controls the main loop. The engine gives building blocks, not a pipeline.
  • Explicit over implicit — You see everything. No hidden behavior, no magic behind the scenes.
  • Keep it simple — Less code is better. Simplify further when possible.
  • Tiny size — Every byte counts. Binary size tracked on every PR.
  • Set of modules — Use only what you need.
  • Prebuilt assets — Source formats packed into binaries at build time. Runtime loads packs on demand, no parsers.

Examples

Atlas Packing

Atlas Packing

332.132 KB engine + 1.143 MB resources
Size breakdown
index.html 1.252 KB
index_simd.wasm 323.246 KB
index.wasm 309.188 KB
index_simd.js 7.634 KB
index.js 7.629 KB
Engine 332.132 KB
assets/atlas_demo.ntpack 1.143 MB
Resources 1.143 MB
Total 1.468 MB
Shape Renderer Bench

Shape Renderer Bench

37.773 KB engine
Size breakdown
index.html 1.256 KB
index_simd.wasm 29.832 KB
index.wasm 29.624 KB
index_simd.js 6.686 KB
index.js 6.681 KB
Engine 37.773 KB
Total 37.773 KB
Bunnymark

Bunnymark

350.790 KB engine + 830.188 KB resources
Size breakdown
index.html 1.255 KB
index_simd.wasm 341.757 KB
index.wasm 324.646 KB
index_simd.js 7.778 KB
index.js 7.773 KB
Engine 350.790 KB
assets/bunnymark_hd.ntpack 815.435 KB
assets/bunnymark_sd.ntpack 14.754 KB
Resources 830.188 KB
Total 1.153 MB
Hello Triangle

Hello Triangle

12.977 KB engine
Size breakdown
index.html 1.249 KB
index_simd.wasm 8.478 KB
index.wasm 8.173 KB
index_simd.js 3.250 KB
index.js 3.245 KB
Engine 12.977 KB
Total 12.977 KB
9-Slice Scaling

9-Slice Scaling

421.078 KB engine
Size breakdown
index.html 1.253 KB
index_simd.wasm 411.813 KB
index.wasm 395.419 KB
index_simd.js 8.013 KB
index.js 8.008 KB
Engine 421.078 KB
Total 421.078 KB
Spinning Shapes

Spinning Shapes

37.953 KB engine
Size breakdown
index.html 1.255 KB
index_simd.wasm 30.128 KB
index.wasm 30.136 KB
index_simd.js 6.570 KB
index.js 6.565 KB
Engine 37.953 KB
Total 37.953 KB
Sponza

Sponza

334.210 KB engine + 68.462 MB resources
Size breakdown
index.html 1.250 KB
index_simd.wasm 325.326 KB
index.wasm 308.643 KB
index_simd.js 7.634 KB
index.js 7.629 KB
Engine 334.210 KB
assets/sponza_core.ntpack 3.180 KB
assets/sponza_full.ntpack 59.395 MB
assets/sponza_geo.ntpack 3.488 MB
assets/sponza_tex.ntpack 5.576 MB
Resources 68.462 MB
Total 68.789 MB
Text Rendering

Text Rendering

44.321 KB engine + 7.583 MB resources
Size breakdown
index.html 1.252 KB
index_simd.wasm 35.649 KB
index.wasm 34.881 KB
index_simd.js 7.420 KB
index.js 7.415 KB
Engine 44.321 KB
assets/text_base.ntpack 12.132 KB
assets/text_cjk.ntpack 7.571 MB
Resources 7.583 MB
Total 7.626 MB
Textured Quad

Textured Quad

334.293 KB engine + 782.026 KB resources
Size breakdown
index.html 1.255 KB
index_simd.wasm 325.404 KB
index.wasm 309.271 KB
index_simd.js 7.634 KB
index.js 7.629 KB
Engine 334.293 KB
assets/base.ntpack 774 B
assets/lenna_hires.ntpack 777.788 KB
assets/lenna_pixel.ntpack 3.482 KB
Resources 782.026 KB
Total 1.090 MB
3D UI

3D UI

433.330 KB engine
Size breakdown
index.html 1.254 KB
index_simd.wasm 424.015 KB
index.wasm 407.909 KB
index_simd.js 8.062 KB
index.js 8.057 KB
Engine 433.330 KB
Total 433.330 KB
UI Showcase

UI Showcase

487.400 KB engine
Size breakdown
index.html 1.255 KB
index_simd.wasm 477.876 KB
index.wasm 462.465 KB
index_simd.js 8.270 KB
index.js 8.265 KB
Engine 487.400 KB
Total 487.400 KB