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.
./buses.json
. If the buses file is not found during the engine initialization, the library will throw an exception. The .json
file of the buses definitions should match this flatbuffers schema.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.