Skip to content

Developer

Someone who builds a tool, a mod or a service on the open SDK, or extends the game itself

The SDK is open under MIT, and the final source of truth is its source code

Start with SDK, then - Installation

Documentation

  • Launch arguments open a screen, a level or a run straight away, and switches change a single launch of the game. They go after the executable: in a shortcut, a terminal or Steam's launch options

  • The SDK is the Bullet Hero level format as an open C# library. The game reads and writes levels through it, and your program can do the same

  • The SDK is the BulletHero.SDK package on nuget.org, or a build from source. Unity takes it as a git submodule, and the ConsoleSmoke sample checks that your levels read

  • A level is a folder: content in level.json or level.blob, metadata in metadata.json or metadata.blob, a cover and media files. Backups, records and player settings stay on the device

  • A .blob file holds the same data as .json in binary form: a 24-byte header followed by the data. It is an equal level format, not a cache

  • A level is exported as a folder, tar.gz or zip, optionally under a password: zip with AES-256 or OpenPGP. The SDK detects the format of a received file by its first bytes, not by its name

  • There are three versions: gv for the game, sv for the SDK, mg for the generation of the model format. By mg the SDK migrates an old file and refuses to read one with a generation newer than the build

  • You call validation yourself through ValidationFacade, it is not built into saving and loading. Findings are split into Error, Warning and Advice, and ValidateAndFix repairs what it can

  • A service describes which levels it accepts with a PublishProfile file: licenses, resource sources, required fields, size limits. Adding a service means writing a file, not editing the analyzer

  • A generator is one class on an SDK base class: BaseLevelGenerator, BaseContentGenerator or BaseModifier. The host builds the form, the estimate and the undo itself from the contract

  • Report SDK problems in the issues of the bullet-hero/sdk repository, and send code changes there as pull requests. The contributor rules live in the same repository, next to the code