Log inGet started

Topics

Task guides for one system at a time: rendering, physics, animation, audio, input, UI, cameras, streaming, and the rest of what a world needs.

  • Showing an animated image

    An animated GIF, APNG or animated WebP imports as one texture carrying every frame: one layer per frame, plus the display time each frame was authored with. Putting it on a surface is one call.

  • Animation

    Animated models in Zero carry named clips (idle, walk, run, …). A clip plays on a skinned body through the AnimGraph — it retargets the clip from its source rig onto the body's rig and drives the…

  • Audio

    Audio in Zero is built from two components. An Audio component makes an entity emit sound from a .soundClip asset. An AudioListener component makes an entity the "ears" of the scene. Both live on…

  • Building a game — the play-mode authoring loop

    A game in Zero is a scene the world loads: its entities, their components, the player avatar, and the camera. The way you build that scene is the part worth learning, because it is not "place objects…

  • Byte streams: talking to things outside the engine

    A world often needs to speak to something that is not part of it — a socket on another machine, an external process on localhost, a device reached through the program that drives its serial port, a…

  • Cameras — which one is rendering, with what projection, into what

    A camera is an entity carrying a Camera component. The renderer draws the viewport from whichever camera wins it, and draws every camera naming a render target into that target. Which camera won,…

  • Cutscenes

    A cutscene is the moment your game takes the camera off the player: the opening that establishes where they are, the door that opens once, the ending. In Zero you write one as data — a table of…

  • The editor UI

    Everything you see when you edit a world — the menu bar across the top, the dockable panels, the play controls — is world-side Luau content, built from the same Z. widgets and the same engine APIs…

  • Streaming frames out of the engine

    Sometimes the rendered image has to leave the machine. You want to send pixels to another program — drive an LED panel or a physical display, feed a video encoder, hand a frame to a Python script,…

  • Serving HTTP from the running world

    Sometimes something outside the engine has to reach in. You want a web page you can open in a browser to see what the world is doing, a control surface on a phone on the same wifi, a route another…

  • Inverse kinematics

    An animation clip stores joint angles. Play it and the character does the same thing every time, which is exactly what you want from a performance and exactly what fails the moment the world has a…

  • Input

    A player might be at a keyboard, holding a controller, or tapping a phone. Input in Zero is built so one piece of code answers to all three, and so a world cannot quietly end up working on only one…

  • The microphone: sound coming in

    The audio guide is about sound the world makes. This one is about sound the world hears — audio input from the machine it is running on. A voice shouting at a puppet, someone speaking into a phone, a…

  • Physics

    Physics in Zero has two surfaces, reached in two different ways:

  • Ray tracing

    Cast rays against the live scene from a compute shader and shade with the hits — shadows, ambient occlusion, reflections, GI. The engine builds the scene acceleration structure and exposes a small…

  • Render layers

    A render layer is a name. An entity is a member of one or more layers; a camera draws a filter over them ("all !shell"). Those two sides are what let geometry exist for lighting, shadows and physics…

  • Render textures

    A render texture is a camera's view drawn into a texture instead of onto the screen. That texture then becomes something you use elsewhere — a UI panel, a material map, a mirror, a minimap, a…

  • Rendering

    Most of how a scene looks comes from its content — meshes, materials, and lights. This guide is about the scene-wide controls on top of that: lighting, post-process effects, and the renderer's global…

  • Styling

    Every visual property of a widget lives in one table — the style table on the widget node — and the vocabulary is CSS. If you know how a property behaves in a browser, it behaves the same way here:…

  • Text and labels

    Text in a world comes from one place: a text object the engine holds, laid out against a font database and rasterised into a GPU texture. Text3D builds one per label and draws it on a quad. text.* is…

  • The UI window system

    UI in Zero is declarative and immediate-mode: you describe the interface as a tree of widget tables and register it as a named screen, and the engine renders that description every frame. You never…

  • Visual effects

    Explosions, muzzle flashes, smoke, sparks: the things that happen for a second and then are gone. The engine ships them as effect assets — finished, parameterised effects you play, rather than…

  • World detail — terrain, voxels, streaming, LOD

    Four systems decide how much of a world stands at any one moment: