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/
├ 📁 pipelines/
├ 📁 rtpc/
├ 📁 soundbanks/
├ 📁 sounds/
├ 📁 switch_containers/
├ 📁 switches/
├ 📄 pc.config.json
├ 📄 android.config.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: pc.config.json
and android.config.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.
Info
At least one engine configuration file should exist in an Amplitude project directory, and should match this flatbuffers schema.
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 configuration, by setting his path in that engine configuration file. Learn more on how to configure buses in the Buses Configuration page.
Info
At least one buses file is expected in an Amplitude project. If no file is specified in the engine settings, the default expected path is ./buses.json
. If the buses file is not found during the engine initialization, the library will throw an exception.
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 Attenuations 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 Collections page.
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 Effects page.
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 in the Events page.
pipelines/¶
The pipelines
directory contains the configuration files for each Amplimix Pipeline you want to use with the engine. Each .json
file of this directory should match this flatbuffers schema. Learn more about pipelines in the Pipelines 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 page.
soundbanks/¶
The soundbanks
directory is the place where you define all of your game [SoundBank]s. Each .json
file of this directory should match this flatbuffers schema. Learn more about sound banks in the Sound Banks page.
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 page.
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 Container 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 State guide.