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

337.154 KB engine + 1.143 MB resources
Size breakdown
index.html 1.252 KB
index_simd.wasm 325.680 KB
index.wasm 309.629 KB
index_simd.js 10.223 KB
index.js 10.218 KB
Engine 337.154 KB
assets/atlas_demo.ntpack 1.143 MB
Resources 1.143 MB
Total 1.472 MB
Shape Renderer Bench

Shape Renderer Bench

40.886 KB engine
Size breakdown
index.html 1.256 KB
index_simd.wasm 32.632 KB
index.wasm 29.232 KB
index_simd.js 6.998 KB
index.js 6.993 KB
Engine 40.886 KB
Total 40.886 KB
Hello Triangle

Hello Triangle

13.324 KB engine
Size breakdown
index.html 1.249 KB
index_simd.wasm 8.329 KB
index.wasm 8.035 KB
index_simd.js 3.746 KB
index.js 3.741 KB
Engine 13.324 KB
Total 13.324 KB
Spinning Shapes

Spinning Shapes

40.586 KB engine
Size breakdown
index.html 1.255 KB
index_simd.wasm 32.469 KB
index.wasm 29.111 KB
index_simd.js 6.862 KB
index.js 6.857 KB
Engine 40.586 KB
Total 40.586 KB
Bunnymark

Bunnymark

348.651 KB engine + 830.008 KB resources
Size breakdown
index.html 1.255 KB
index_simd.wasm 337.053 KB
index.wasm 319.908 KB
index_simd.js 10.344 KB
index.js 10.339 KB
Engine 348.651 KB
assets/bunnymark_hd.ntpack 815.431 KB
assets/bunnymark_sd.ntpack 14.577 KB
Resources 830.008 KB
Total 1.151 MB
Text Rendering

Text Rendering

45.854 KB engine + 7.583 MB resources
Size breakdown
index.html 1.252 KB
index_simd.wasm 34.667 KB
index.wasm 34.829 KB
index_simd.js 9.936 KB
index.js 9.931 KB
Engine 45.854 KB
assets/text_base.ntpack 11.961 KB
assets/text_cjk.ntpack 7.571 MB
Resources 7.583 MB
Total 7.627 MB
Textured Quad

Textured Quad

340.198 KB engine + 782.026 KB resources
Size breakdown
index.html 1.255 KB
index_simd.wasm 328.721 KB
index.wasm 311.510 KB
index_simd.js 10.223 KB
index.js 10.218 KB
Engine 340.198 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.096 MB
Sponza

Sponza

340.370 KB engine + 68.462 MB resources
Size breakdown
index.html 1.250 KB
index_simd.wasm 328.898 KB
index.wasm 311.918 KB
index_simd.js 10.222 KB
index.js 10.217 KB
Engine 340.370 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.795 MB