BigDB stores database objects in tables that are created and configured by the developer in the Games Control Panel. Database objects are retrieved by their unique key or by custom indexes created by the developer.
Database objects are schemaless. This means that two objects in the same table don't need to have the same structure, and all objects can contain simple or arbitrarily complex data structures, depending on the needs of the developer and the particular game.
Each database object belongs to a single table, and is identified by a string key that is unique to that table. That is, no two objects in the same table can have the same key.
Informally, database objects are very similar to JSON objects. For instance, a racing game could store the car-configuration of a player in a table called “cars” with a database object similar to this:
More formally, database objects consist of one or more named values, where each value is one of the following types: Boolean, Int, UInt, Long, Float, Double, String, DateTime, ByteArray, or an array containing values of the permitted types, or a nested object containing named values.
In the example above, "Name" is a String, "Stats" is a nested object inside which "Acceleration" is a Float, "TopSpeed" and "Steering" are both Ints, and "WorkingBreaks" is Boolean, and finally "LatestLapTimes" is an array of Strings.
A database object has a maximum total size of 500Kb.
There are two limits associated with database objects that you should be aware of:
- Keys of database objects must between one and 50 characters long, and only consist of word characters (no spaces, special characters).
- You cannot save more than 500KB of data in a single database object.
Here is an example of creating an object, with ActionScript 3:
... and loading, and saving changes
And the same examples in C# (server-side multiplayer code):