Sqlite native-extension

well, sort of.

i want to start working on mid size mobile games, but at the same time i don’t want to build anything server side to reduce costs as it’s mainly an hobby.

ideally i want sqlcipher which is what i was using when working on android natively.

to answer your questions, i need a way to organize,access, read a fairly big amount of data, and if i can throw some relationship between the data and query them even better.

2 Likes

I’d probably put whatever game data I need into a spreadsheet and then export it to something like csv or json for runtime use. I honestly never really understood the need for a proper SQL like database in games.

2 Likes

Imho, the need is very dependant on the type of game/app you are making. Small 2D/3D games just dont really need it since most of the data can be easily managed and is usually congruous. In larger entity sets (like sims and large scale worlds or multi-variant world data) using a db is sensible because rather than writing your own large management system for objects (which is essentially exactly what a db does) you can utilize the decades of good development in this space - reinventing the wheel is usually the largest cause of architecture problems.

I would like to note, that even for small datasets, sqlite and redis especially are extremely good because they provide features at high performance that you would take years to make yourself. Some examples of these features:

  • data replication and automated serialization
  • versioning, rollback and data sharing (multi player becomes much easier to build - most good mp games used a db of some kind)
  • data simplification and definition. Often developers make wild structures for data and these grow unmanageably over time. A db, enfoces data structure constraints (schema) and thus actually helps you develop good data management processes.

I notice there are a number of discussions about data management. And I heed everyone to actually look at and understand how db systems work. Whether its something classic like Berkeley DB (developed in the 60s and still in use today), sqlite, postgres, redis (not really a db, but it has many of a db’s features) and others. Many of these are decades old, and still highly performant and usable. Id also recommend looking at high performance ones like lmdb and leveldb - these are more like redis as key stores, but they are ultra fast indexers and data lookup systems. Highly valuable in gaming applications.

As a side note. You will find sqlite dbs almost everywhere these days. Small to big games… Chrome… and a huge number of other popular apps you probably didnt consider needed a db. The simple rationale, is that it solves a core data management problem that has been around since the beginning of computing :slight_smile:

2 Likes