Reference

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:

  • name
  • description
  • version
  • main
  • debug
  • showDebugInfo
  • editor.scenes.active
  • editor.scenes.loaded
  • editor.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/Scenes
  • Assets/Prefabs
  • Assets/Scripts
  • Assets/Events
  • Assets/Textures
  • Assets/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.