Skip to content
project.yaml Configuration

project.yaml Configuration

project.yaml is the NovaMark project configuration file that defines project structure, build options, and runtime settings.

File Location

Place it in the project root:

my-game/
├── project.yaml        # Project configuration
├── scripts/            # Scripts directory
│   └── *.nvm
└── assets/             # Assets directory
    ├── bg/
    ├── sprites/
    └── audio/

Complete Configuration Example

name: mist_forest
title: Mist Forest
version: 1.0.0
author: NovaMark Team

entry_scene: scene_intro

scripts_path: scripts
assets_path: assets

default_font: fonts/SourceHanSansCN-Regular.ttf
default_font_size: 28
default_text_speed: 60

Field Descriptions

Basic Information

FieldTypeRequiredDescription
nameStringYesProject name (internal identifier, used for .nvmp filename)
titleStringNoGame display title (defaults to name)
versionStringNoVersion number
authorStringNoAuthor/team name

Project Structure

FieldTypeDefaultDescription
scripts_pathStringscriptsScript files directory
assets_pathStringassetsAsset files directory

Runtime Configuration

FieldTypeDefaultDescription
entry_sceneStringFirst sceneGame entry scene ID
default_fontStringSystem fontDefault font file path
default_font_sizeNumber24Default font size
default_text_speedNumber50Text display speed (chars/sec)

Project Directory Structure

Standard structure created by nova-cli init my-game:

my-game/
├── project.yaml            # Project configuration
├── scripts/
│   ├── 00_init.nvm         # Initialization scripts (character, item definitions)
│   └── 01_main.nvm         # Main script
├── assets/
│   ├── bg/                 # Background images (.png, .jpg)
│   ├── sprites/            # Character sprites (.png)
│   └── audio/              # Audio files (.mp3, .ogg)
└── README.md

Multiple Script Files

Project mode supports multiple .nvm files, merged in filename order:

scripts_path: scripts
scripts/
├── 00_characters.nvm    # Character definitions
├── 01_items.nvm         # Item definitions
├── 02_intro.nvm         # Prologue
├── 03_chapter1.nvm      # Chapter 1
└── 04_chapter2.nvm      # Chapter 2

Merge Rules:

  • Sorted by filename dictionary order
  • All scripts merged into one AST
  • Scene definitions can reference across files

Build Commands

# Build project (auto-finds project.yaml)
nova-cli build

# Build specific project directory
nova-cli build ./my-game

# Specify output file
nova-cli build ./my-game -o release/game.nvmp

# Show verbose output
nova-cli build ./my-game -v

Configuration Validation

Use the check command to validate configuration:

nova-cli check ./my-game

Checks:

  • project.yaml format correctness
  • scripts_path directory exists
  • All .nvm files have correct syntax
  • Scene jump references exist
Last updated on