BigDB is not a classic relational SQL database, but rather a modern NoSQL document database, like MongoDB or CouchDB. It has automatic partitioning and scaling, without any developer interaction.
BigDB is a great choice for persisting data such as character configuration, levels, world-state, save games, quiz questions, auctions, ban-lists, high-scores , ranking lists, game configuration, items and anything else you would like to save between game sessions.
Data is stored in different tables, just like regular databases.
For instance, you might have separate tables for users, high-scores, levels, and configuration, and each table then has its own name and indexes and access rights.
Each table can hold an unlimited amount of database objects, but each object needs to have a unique key.
You can even nest these objects in order to form arbitrarily complex data structures that suit exactly your game.
Just like all other databases, BigDB supports adding indexes to tables to facilitate fast queries of your data.
Indexes are used when you want to load objects by their properties instead of their keys, when you do range queries, and when you want sorted results back, for example getting a list of the best high-scores per day.
BigDB comes with a full set of admin controls that lets you browse, edit and manage your database.
If you just want to get started quickly and store some data on a per-player basis, BigDB comes with a built-in table called PlayerObjects, and convenience methods in the APIs make it super simple to work with this object.
These objects are easily loaded using the convenience methods (.loadMyPlayerObject() and GetMyPlayerObject()), from ActionScript 3 and C# multiplayer-code.
Code running on other people's machines is inherently unsafe. If you let your game client store high-scores, cheaters can replicate what your client is doing, and submit any high-score they want.
That’s why BigDB allows you to specify which rights each connection type has to each of your tables, putting you in control of who can access what data from where.
For instance, you might allow your game client to only read from the high-score table, while allowing your server-side code to submit scores to the high-score table, which means that cheaters can't submit any score they want.
You can also specify that a database object in a table can only be changed by its original creator, which automatically does the right thing for user generated content such as levels or avatars, without the game having to check it.
Everything in BigDB is fully documented.
It's easy to get started, and easy to find help during development.
It’s your data, not ours! That’s why you can always export all the data in all – or just a few – of your database tables.
Just select the tables you want to export, and we’ll send you an e-mail with download links once the data has been exported.
BigDB fully supports using different connection types to isolate data and users from different sources. For instance, you might have exactly the same game running on both Facebook and Kongregate at the same, but don’t want users from one to be able to see any of the data or users from the other.
Databases are usually the hardest thing to scale in any architecture, but with BigDB it’s all completely automatic. More capacity will be allocated as your game grows, ensuring a seamless transition from few to hundreds of millions of database objects, concurrent users and queries, with no downtime at all.
BigDB supports optimistic locking for when you want fine-grained concurrency control over your database objects, ensuring that your data is always in a consistant up-to-date state.
You have the same full access to BigDB from both ActionScript and C# multiplayer-code, so you can mix and match your database access based on what suits your game best.
With BigDB you’re getting a complete database that is especially built for the usage scenarios of games, and that will handle any load you can throw at it. You don’t have to buy, host, or manage your own database server, since BigDB is part of the Player.IO cloud services.