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:
- WillEngine Editor — scenes, the Inspector, Play, and the Build panel.
- WeCode — edits the project’s
.csfiles. - WeTools — converts PNG art into engine images, palettes, and fonts.
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.