LittleJS is nu 2D en 3D

2D en 3D in dezelfde engine

Dit is de belangrijkste vernieuwing. De engine ondersteunt nu:

  • Meshes en vormbouwers;
  • Terrein- en voxelkaarten met collision;
  • Shadow maps, gekleurde lichten en spotlights;
  • Mist, reflecties, particles en trails;
  • Camera's en custom shaders voor elk object.

3D-objecten zijn reguliere LittleJS-objecten met dezelfde physics, children en timers als 2D-objecten. Hierdoor kunnen beide vormen vrij worden gecombineerd: denk aan een 2D-gebruikersinterface over een 3D-scène, of een 2D-game binnen een 3D-wereld.

Voor wie de voorkeur geeft aan Three.js voor rendering, is er inmiddels een plugin beschikbaar.

Ook de 2D-kant is uitgebreid met:

  • Een nieuw dynamisch lichtsysteem;
  • One-way platforms;
  • Swept bullet collision;
  • Parallax-lagen;
  • Verbeterde prestaties voor object-collision.

Nieuwe tools

Level-editors Zowel 2D- als 3D-level-editors zijn nu in de engine ingebouwd. In een debug-build kan de Escape-toets worden gebruikt om het spel te pauzeren en het level ter plekke te bewerken met functies voor undo, autosave en prefabs. De editor-gids legt uit hoe je deze tools kunt implementeren voor je eigen game. 2D-levels worden geladen en opgeslagen als Tiled JSON.

Bibliotheek voor particueleffecten Effecten zoals vuur, rook, vonken, explosies en regen zijn nu beschikbaar met één regel code: particleEffect('fire', pos), bruikbaar in zowel 2D als 3D. Elk effect ondersteunt schaal, tint en verzadiging. Met de particle designer kunnen deze effecten worden aangepast of nieuwe effecten worden gebouwd.

Voorbeeldbrowser De voorbeeldbrowser bevat meer dan 100 korte voorbeelden. Elk voorbeeld is een enkel bestand dat uitlegt wat er wordt getoond en hoe het werkt, inclusief live editing en een deelknop waarmee de bewerkte code in een link kan worden geplaatst. Dit is de beste plek om de engine te leren kennen.

Nog sneller

De rendering-kern is volledig herzien. Dit omvat batched 2D-sprites op WebGL2, instanced 3D-tekenen en aanzienlijk minder overhead per draw-call.

Om dit te meten is er een WebGL Engine Bench gebouwd. Hierin werden twee scenario's (bewegende sprites en verlichte kubussen) getest via LittleJS, PixiJS, Three.js, PlayCanvas, Phaser en Babylon.js. Er werd gemeten hoeveel objecten elke engine kon verwerken bij 60 fps.

Op de testmachine haalde LittleJS de snelheid van de snelste engines en versloeg deze in verschillende gevallen. De benchmark werkt direct in de browser zonder installatie.

Gemaakt voor AI

LittleJS heeft een kleine, goed gedocumenteerde API, waarbij de volledige documentatie in één referentiebestand staat. Dit is ideaal voor zowel mensen als coding-AI's. Om dit verder te ondersteunen is het nu een primair doel:

  • LittleJS AI toolkit: Bevat starter-templates, helper-modules en instructies voor AI-agents zoals Claude Code, Copilot, Codex of Cursor.
  • Claude Code plugin: Deze kan met twee commando's worden geïnstalleerd. Door om een game te vragen, genereert de AI een compleet, speelbaar project inclusief de engine, dat direct vanuit een bestand kan worden geopend zonder server of npm-installatie.
  • LittleJS GPT: Hiermee kunnen games direct binnen ChatGPT worden gebouwd, zonder dat er code geschreven hoeft te worden.
  • LittleJS Arcade: Een collectie van meer dan 50 kleine games die op deze manier zijn gemaakt; deze zijn allemaal open source en bruikbaar als startpunt.

Waarom?

LittleJS was altijd bedoeld als een general-purpose engine voor alle eigen projecten. De bewuste keuze om klein te beginnen (met js13k als testterrein) zorgt ervoor dat de kern simpel blijft, wat de engine makkelijk leerbaar en snel maakt.

De huidige ontwikkelingen zijn een resultaat van gebruikerswensen; vooral de vraag naar 3D en tools was groot. Het doel was om de 3D-kant exact hetzelfde te laten aanvoelen als de 2D-kant: dezelfde objecten, dezelfde loop en dezelfde kleine API, in plaats van een apart framework dat er later aan is toegevoegd.

Daarnaast speelt de community een grote rol. LittleJS is geen eenmansproject meer; fixes, plugins, voorbeelden en games worden door anderen aangeleverd. De derde LittleJS Game Jam vindt momenteel plaats, van 2 oktober tot 2 november.

De nieuwe website, littlejsengine.com, dient als demo van al deze functies in de vorm van een treinrit door de verschillende features, volledig aangedreven door de engine.