What's new
Web export
- The runtime compiles to WebAssembly and draws with WebGL2, so a game runs in current Chrome, Edge, Firefox and Safari.
- The Export window takes a new platform, web. It writes a folder with
index.html, the runtime and the game's pack, plus a zip that itch.io takes as it is. - Saves are kept in the browser's storage.
- Zombie Survival and Feature Tour both play in Chrome. Play Zombie Survival on itch.io. See Exporting a game.
Rendering
- Frustum culling. The camera and each shadow view draw only what they can see. A test checks that culling changes no pixel.
- Level of detail. An LOD component swaps a mesh for a simpler one by distance from the camera, and hides it past a cull distance. Every pass, shadows included, draws the same level.
- Instancing. Draws are grouped by mesh and materials, and each group is one instanced call.
Loading and speed
- Background loading. In a game, images and models are read on worker threads, and become GPU resources a few milliseconds at a time each frame.
- Audio, UI and physics find their entities by component, so a scene of tens of thousands of entities no longer pays for walking the whole hierarchy every frame.
- Scenes with many bodies are faster: contact events are built only for entities with scripts, shadow maps cull too, and a game that falls behind catches up less at a time.
Physics
- Box3D, a second physics library beside Jolt. A project picks one in its settings and can switch both ways at any time. Every physics test runs on both.
- Ball Pit, a sample that pours up to 20,000 balls into a box, to time the two against each other. See Physics engines.
Documentation
- A blog and a releases page. The setup and download pages are gone: the engine is private.
Known issues
- The web build has no GPU timings in the stats, since WebGL2 has no timer queries.
- A browser keeps a page quiet until the player clicks or presses a key, so a web game starts silent.