Getting started
From an empty Unity project to a player moving through a scene with an inventory, a weapon, and a save file.
Foundry installs as ordinary Unity packages. There is no installer and no code generation step, and your project settings are left alone. If you can add a package to a manifest, you can adopt Foundry.
The umbrella package, com.zoa.foundry, is the normal entry point. It depends on the packages a typical project wants, and the rest of the 51 are available individually when you need something more specific.
Step 1
Install
{
"dependencies": {
"com.zoa.foundry": "1.0.0"
}
}Step 2
Find your way around
Almost all of Foundry's authoring lives in one editor shell. The Workbench discovers authoring surfaces contributed by whichever packages you installed, so the tools you see reflect the stack you actually have.
Screenshot pending
/screenshots/workbench-shell.png
Workbench open on the hub, showing the left module rail and one authoring surface loaded.
The path
What to do, in order
- 01
Install the umbrella package
com.zoa.foundry pulls in the packages a normal project needs. Individual packages are installable on their own if you want a narrower surface.
- 02
Open a demo scene
The Demo package ships five tiered scenes, from a movement sandbox to a full wave arena. Opening one is the fastest way to see the systems running together before you wire your own.
- 03
Place a player start
You author a start anchor, and the composition service builds the rig at runtime from a profile. Scenes carry the anchor, so a finished player prefab never has to be saved into each one.
- 04
Author your definitions
Items, weapons, attachments, abilities and conditions are ScriptableObjects. The Workbench wizards create them against the same services the runtime uses, so nothing is generated behind your back.
Step 3
Talk to the stack
Two calls cover most integration. Resolve a service when you need an answer, and publish an event when something happened that other systems may care about. Neither requires a reference to the package on the other end.
using ZOA.Messaging;
// Resolve: you need an answer from whoever is providing this.
var bus = FoundryServiceRegistry.Get<IFoundryEventBus>();
// Publish: something happened, and it is fine if nobody is listening.
bus.Publish(new MySystemReady());The full model is described in Messaging, and the rules that keep the dependency graph acyclic are in Architecture.
Next