Setup

Create your own database

  1. Import the package
  2. Open Window->BGDatabase. Click on Create new database file. Choose the loader (Resources or StreamingAssets) and press Create button
  3. Select Configuration tab and create table (called Meta)
  4. Add fields
  5. Select Database tab and create data for tables (called Entities)
  6. Make sure to commit database file to your source control system or make regular backups to prevent the risk of data loss.

Which loader to choose?

  • Resources loader is a recommended loader to use
  • Choose StreamingAssets if you want to update database file without rebuilding your game
  • Choose custom loader if you want to load database from custom location and do not mind to write your own loader

You can switch between Resources/StreamingAssets loaders by simply moving your database file (bansheegz_database.bytes) between Resources/StreamingAssets folders (if you use localization addon, move all localization files as well- bansheegz_database*.bytes).

Resources StreamingAssets Custom
File location Under one of Resources folders Under Assets/StreamingAssets folder Anywhere in your project
Pros Works everywhere without any extra effort You can update database file without rebuilding your game
  1. Database file can be put to any place under your project
  2. Database content can be loaded from any location at runtime
Cons If you store many assets under Resources folders (Unity does not recommend to do it), it may lead to slow database loading
  1. WEBGL platform requires custom loader
  1. you need to implement code, which loads database content.
  2. You need to load and assign database content using BGRepo.SetDefaultRepoContent method before accessing it
  3. Not supported by Localization addon
How to enable File bansheegz_database.bytes should be placed under one of Resources folders File bansheegz_database.bytes should be placed under Assets/StreamingAssets folder Read the guide below

More details about database files

There are 2 different files BGDatabase operates with:

  1. file with database data
  2. file with user settings

More details about these files are available in the table below.

↓ Feature\File → Database file Settings file
Purpose Database file User settings file
Default name bansheegz_database.bytes BGS_{database asset GUID}.json
Format Binary Json
Available at runtime Yes No
Shared between developers Yes No, each developer has a separate file
Location Under Resources / StreamingAssets folders Under Documents folder
How to change location Move (not copy) database file along with it's meta file N/A
How file is resolved Naming convention is used (bansheegz_database.bytes) File location is resolved using database asset GUID

Custom loader implementation guide

2 steps guide:
  1. Override database location in Unity Editor.
  2. Load database content manually at runtime and pass it to BGDatabase
Overriding database location inside Unity Editor
  1. Exit Unity
  2. Backup your database files
  3. Move all database files (bansheegz_database*.bytes* ) to any location in your project.
  4. Open bansheegz_database.bytes.meta file in text editor and replace its guid with this value 3637ea689da0cff4b8d5c0fb5d609c15
  5. Open up Unity and click on Reload button in BGDatabase window.
  6. Switch to Settings->Main>Database files and make sure database is loaded from custom location and Loader is set to Custom. Also make sure all content is properly loaded.
Loading database content manually at runtime
  1. Load database content from whatever location you want and call BGRepo.SetDefaultRepoContent(byte[] content) method before accessing database.
  2. If you use localization addon, you also need to load all localization files as well and use BGRepo.SetDefaultRepoContentModel(BGRepoCustomLoaderModel model). We have created an example project with custom loader implementation, which can be downloaded here
What to read next:
  1. How to use
  2. GUI overview