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

Shape Renderer Bench

Shape Renderer Bench

37.813 KB engine
Size breakdown
index.html 1.256 KB
index_simd.wasm 29.872 KB
index.wasm 29.677 KB
index_simd.js 6.686 KB
index.js 6.681 KB
Engine 37.813 KB
Total 37.813 KB
Atlas Packing

Atlas Packing

332.191 KB engine + 1.143 MB resources
Size breakdown
index.html 1.252 KB
index_simd.wasm 323.306 KB
index.wasm 309.222 KB
index_simd.js 7.634 KB
index.js 7.629 KB
Engine 332.191 KB
assets/atlas_demo.ntpack 1.143 MB
Resources 1.143 MB
Total 1.468 MB
Bunnymark

Bunnymark

350.845 KB engine + 830.188 KB resources
Size breakdown
index.html 1.255 KB
index_simd.wasm 341.810 KB
index.wasm 324.654 KB
index_simd.js 7.780 KB
index.js 7.775 KB
Engine 350.845 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

13.004 KB engine
Size breakdown
index.html 1.249 KB
index_simd.wasm 8.505 KB
index.wasm 8.206 KB
index_simd.js 3.250 KB
index.js 3.245 KB
Engine 13.004 KB
Total 13.004 KB
9-Slice Scaling

9-Slice Scaling

421.099 KB engine
Size breakdown
index.html 1.253 KB
index_simd.wasm 411.831 KB
index.wasm 395.499 KB
index_simd.js 8.015 KB
index.js 8.010 KB
Engine 421.099 KB
Total 421.099 KB
Spinning Shapes

Spinning Shapes

37.986 KB engine
Size breakdown
index.html 1.255 KB
index_simd.wasm 30.161 KB
index.wasm 30.166 KB
index_simd.js 6.570 KB
index.js 6.565 KB
Engine 37.986 KB
Total 37.986 KB
Text Rendering

Text Rendering

44.354 KB engine + 7.583 MB resources
Size breakdown
index.html 1.252 KB
index_simd.wasm 35.684 KB
index.wasm 34.886 KB
index_simd.js 7.419 KB
index.js 7.414 KB
Engine 44.354 KB
assets/text_base.ntpack 12.132 KB
assets/text_cjk.ntpack 7.571 MB
Resources 7.583 MB
Total 7.626 MB
Sponza

Sponza

334.235 KB engine + 68.462 MB resources
Size breakdown
index.html 1.250 KB
index_simd.wasm 325.352 KB
index.wasm 308.666 KB
index_simd.js 7.634 KB
index.js 7.629 KB
Engine 334.235 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
Textured Quad

Textured Quad

334.322 KB engine + 782.026 KB resources
Size breakdown
index.html 1.255 KB
index_simd.wasm 325.434 KB
index.wasm 309.429 KB
index_simd.js 7.634 KB
index.js 7.629 KB
Engine 334.322 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.314 KB engine
Size breakdown
index.html 1.254 KB
index_simd.wasm 424.000 KB
index.wasm 407.937 KB
index_simd.js 8.061 KB
index.js 8.056 KB
Engine 433.314 KB
Total 433.314 KB
UI Showcase

UI Showcase

490.827 KB engine
Size breakdown
index.html 1.255 KB
index_simd.wasm 481.304 KB
index.wasm 467.005 KB
index_simd.js 8.269 KB
index.js 8.264 KB
Engine 490.827 KB
Total 490.827 KB