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