Project Architecture

An Amplitude project is resumed to a set of .json files organized in dedicated directories. The complete architecture of an Amplitude project can be described by this hierarchy:

πŸ“ amplitude_project_name/
β”œ πŸ“ attenuators/
β”œ πŸ“ collections/
β”œ πŸ“ effects/
β”œ πŸ“ events/
β”œ πŸ“ rtpc/
β”œ πŸ“ soundbanks/
β”œ πŸ“ sounds/
β”œ πŸ“ switch_containers/
β”œ πŸ“ switches/
β”œ πŸ“„ config.pc.json
β”œ πŸ“„ config.mobile.json
β”œ πŸ“„ buses.json
β”” πŸ“„ .amproject

Engine configuration files

The Amplitude engine settings are provided through a JSON file at the root of the project. In our previous example, we had two engine configuration files according to the runtime platform: config.pc.json and config.mobile.json. The config file to use should be given when initializing Amplitude.

The config files store all the needed settings for the audio device setup, memory allocation, and mixer configuration. Learn more on how to configure the engine in the Engine Configuration page.

Buses file

An Amplitude project should have a file (or files) where the different buses used at runtime are defined. In our previous example, the buses.json file plays this role.

You can only use one bus file per engine instance, and you should give his path in the engine configuration file selected at runtime. Learn more on how to configure buses in the Creating Buses page.

attenuators/

The attenuators directory stores all the configuration files for custom Attenuation models. Each .json file of this directory should match this flatbuffers schema. Learn more about attenuators in the Attenuation Model page.

collections/

The collections directory contains the configuration files for Collection sound objects. Each .json file of this directory should match this flatbuffers schema. Learn more about collections in the Sound Collections guide.

effects/

The effects directory contains the configuration files for sound Effects. Each .json file should match this flatbuffers schema. Learn more about effects in the Sound Effects & Filters guide.

events/

The events directory contains the configuration files for Events. Each .json file of this directory should match this flatbuffers schema. Learn more about events on the Sound Events page.

rtpc/

The rtpc directory stores the configuration files to create RTPC values. Each .json file of this directory should match this flatbuffers schema. Learn more about RTPC values in the Real-Time Parameter Control guide.

soundbanks/

The soundbanks directory is the place where you define all of your game sound banks. Each .json file of this directory should match this flatbuffers schema. Learn more about sound banks in the Building Sound Banks guide.

sounds/

The sounds directory contains the definition files for Sound objects. Those files are used to describe raw audio sample assets to make them usable as standalone objects or in Collections and Switch Containers. Each .json file of this directory should match this flatbuffers schema. Learn more on how to create sounds in the Sounds guide.

switch_containers/

The switch_containers directory contains configuration files for SwitchContainer sound objects. Each .json file of this directory should match this flatbuffers schema. Learn more about switches and switch containers in the Switch States & Switch Containers guide.

switches/

The switches directory contains configuration files for Switch objects, that will be used in SwitchContainers. Each .json file of this directory should match this flatbuffers schema. Learn more about switches and switch containers in the Switch States & Switch Containers guide.