BGDatabase

Version:
1.8.x (change log)
Unity Asset Store:
Unity Discussions:

Description:

Data manager for Unity with an Excel-like GUI and a relational database design. Runtime changes are automatically reverted, similar to Unity component values.

Features:

  1. Fast, in-memory database written in pure C# and fully integrated into Unity 3D (no SQL required).
  2. Configurable import/export from/to Excel/OpenOffice, Google Sheets(one limitation applies, see limitations section below for details), JSON, CSV, and scriptable objects
  3. Integration with visual scripting tools: Unity Visual Scripting (Bolt), Unity Behaviour, Playmaker, Flow Canvas, Node Canvas, Behavior Designer, UNode, Game Creator.
  4. Powerful code generation capabilities.
  5. Selective Save/Load during game session
  6. Supports approximately 90 field types, including relations, and nested tables. Includes support for loading Unity assets from Resources folders and Addressables system.
  7. Data binders with UI Toolkit support
  8. Graph editor for calculated and action fields and graph binders
  9. Connect any GameObject to a table row by adding a dedicated component or by referencing the row with C# field.
  10. Runtime data editor
  11. 2-way and 3-way merge tools for multi-user environment with Plastic SCM integration
  12. Live updates from Google sheets
  13. Modding support via the Modding addon
  14. Automatic data import from Excel files in the Editor and at runtime
  15. No runtime dependencies, DLL file size around 1Mb.
  16. Downloadable plug-ins and example projects
  17. Flexible event system
  18. Multithreading is partially supported. Some restrictions apply. Read more here
  19. and here

Limitations:

  1. BGDatabase is a client-side database that runs exclusively within Unity. It cannot be used in server environments.
  2. Export to Google Sheets in runtime (in builds) from multiple devices is not supported, here is why
  3. Database data is fully loaded into memory. Consequently, large databases can consume excessive memory. For example, a database with 10 tables, each containing 50,000 rows and 10 integer fields, can take ~27MB on disk and ~60Mb in memory. Partitioning addon can help mitigate this, but it's not a universal solution

Learning resources:

  1. GUI overview
  2. GUI tips and tricks
  3. How to use
  4. Code examples
  5. Basic 3D example project with text manual
  6. Basic 2D example project with video tutorial
  7. Advanced example project (Inventory system)
  8. API

News: