Project Structure
This page describes the standard shape of a Sendama game project.
Recommended Layout
my-game/
├── .env
├── .gitignore
├── sendama.json
├── preferences.json
├── game.php
├── config/
│ └── input.php
├── logs/
│ ├── debug.log
│ └── error.log
├── docs/
└── Assets/
├── Scenes/
├── Prefabs/
├── Scripts/
├── Events/
├── Textures/
├── Maps/
└── splash.texture
Key Files
sendama.json
The project metadata and editor/runtime configuration file.
Common keys include:
namedescriptionversionmaindebugshowDebugInfoeditor.scenes.activeeditor.scenes.loadededitor.console.refreshInterval
Example:
{
"name": "Blasters",
"description": "A Sendama example game",
"version": "0.1.0",
"main": "blasters.php",
"debug": true,
"showDebugInfo": true,
"editor": {
"scenes": {
"active": 0,
"loaded": [
"Scenes/level01.scene.php"
]
},
"console": {
"refreshInterval": 5
}
}
}
preferences.json
Stores editor-facing preferences for the project.
config/input.php
Stores input configuration and mappings used by the project.
logs/
Contains runtime log output. The editor console reads from these files.
Asset Root
The canonical asset root is Assets.
Supported subdirectories commonly include:
Assets/ScenesAssets/PrefabsAssets/ScriptsAssets/EventsAssets/TexturesAssets/Maps
The editor still supports older lowercase assets projects for compatibility.
Project Entry File
The runtime launches the file referenced by sendama.json.main.
That entry file is usually responsible for:
- bootstrapping the game
- registering or loading scenes
- starting the main loop
Generated Structure
sendama new:game creates the standard folders and starter assets so a new project has a usable baseline immediately.