Getting started

A project, a script, Play.

This page is the project layout and a first component. The click-by-click path — install, a picture, a scene, a sheet, an animation, a prefab — is in the tutorials.

Install

Download the Windows x64 installer from the downloads page. It asks for administrator rights and can install the .NET 10 SDK when the machine does not already have a 10.x SDK. Desktop shortcuts are created for the pieces you select:

The full install also includes the Windows, Linux, Android, and Web build modules. Android and Web still download their toolchains later, from the Build panel, the first time you ask.

Create a project

Open the editor and create a project. You get a folder with a .weproj manifest (the name only), plus Scripts, Assets, Fonts, Prefabs, Scenes, Shaders, and Project. The start scene opens on a fresh clone. UserSettings/ is personal state for that PC — open scenes, the picked build target, build numbers — and is not part of the game.

MyGame/
  MyGame.weproj
  Scripts/     your components
  Assets/      images, sprites, palettes, animation, sound
  Fonts/       .wfnt
  Prefabs/     .wpb
  Scenes/      .wscene, one of them is the start scene
  Project/     assets.json, game.json, collision.json, audio.json

A first component

Put a .cs file anywhere in the project folder. Scripts/ is the usual place. One class derives from Component. Public get/set properties are what the designer tunes.

using WillEngine.Core.Components;

public class Bobbing : Component
{
    public float Amplitude { get; set; } = 4f;
    public float Speed { get; set; } = 2f;

    private float _baseY;
    private float _time;

    public override void Initialize()
    {
        _baseY = Owner.Transform.LocalY;
    }

    public override void OnUpdate(float deltaTime)
    {
        _time += deltaTime;
        Owner.Transform.LocalY = _baseY
            + MathF.Sin(_time * Speed) * Amplitude;
    }
}

Return to the editor so it compiles. Select an object, choose Add Component → Scripts → Bobbing, set the two fields, and press Play. deltaTime is seconds of one fixed step.

Play

Play snapshots the open scenes, then runs your code. Pause freezes scene updates. Stop tears the session down and restores the snapshot. Callbacks run only while playing. Each Play starts with fresh static fields, the same as a built game.

Save the scene before you rely on it. Member names are the file format: keep them stable once a scene has data. The rules are on the scripting page.

Art

A PNG is not a picture the editor can draw. WeTools turns it into a .wei, and Import → Image copies that into the project. A sheet and an animation are the next tutorials. File formats are on the assets page.

Build

Open the Build panel, pick a target, set the version, and mark which scenes ship. A game starts on its start scene; scripts load the others. Windows and Linux publish from the modules in the install. Android and Web need a one-time toolchain install from that same panel. Targets, cameras, and what a build contains are on Cameras and builds.