/SQLiteGameDb

A plugin for unreal engine that gives a SQLite framework built on top of the default Epic plugin code.

Primary LanguageC++MIT LicenseMIT

SqliteGameDb Unreal Plugin

A plugin for unreal engine that provides a helpful SQLite framework to use in your projects. To try and keep things as 'easy' for people to understand as possible, the plugin is built on top of an updated version of the default SQLite plugin code provided by Epic.

TLDR quick information

  • Use this plugin to quickly connect to SQLite database files and query them.
  • Works from either C++ or Blueprints
  • More recent version of SQLite - more features available

Links

The plugin and its framework are explained in this YouTube video:
https://youtu.be/yYn7L6e99D8

Join the Discord for general game dev chat, help with unreal, and specific SqliteGameDB questions:
https://discord.gg/jjy2aJ3hj9

Unreal version

The plugin has been compiled and tested with UE5.0 and UE5.1
It can be made to work with previous versions of the engine, but some changes to the sourcecode are necessary.

Is there any 'proper' documentation for this plugin?

If by 'proper' you mean a written manual, no. The project, and the documentation, are both works-in-progress.
There is a YouTube video showing how to use the plugin, and eventually when I have the time, I will provide written documentation including pretty class-diagrams and suchlike for those who prefer such things.

Why not just use the SQLite plugin from Epic?

Well, you can. And I have some instructions on doing that here:

Unreal & SQLite Databases - Part 2 - Standard SQLite Plugins
https://youtu.be/8Nsqz_AMOCI

However, that will only give you very simple, low-level access.
It's great if you want to know how SQLite ticks, and I encourage everyone to understand that from a foundational point of view. But it wont really help you get quickly up-and-running with a working database in your unreal project.

That's what the SqliteGameDb framework plugin is for. It simplifies some common database tasks, allowing you to concentrate on making your game.

Why does this plugin contain its own version of the SQLite library, and not just reference the SQLite library provided by Epic?

My original plan was to do exactly that, because I wanted to use as much of Epic's code as possible. I am grateful to Epic for even bothering to provide the SQLite plugin in the first place, however, they probably wont be updating it, at least not regularly.
I can understand why; they are already maintaining their own codebase, and needing to follow what another project is doing is just outside the scope of what makes sense.

Epic were forward thinking enough to include instructions in their plugin on how to update the SQLite library yourself though.
And so that's exactly what I did. Rather than include the SQLite library in my own way, I have simply used a clone of Epic's module and renamed it (SqliteCoreX), incorporating a more recent version of the SQLite library.

But why do you need a different version of the SQLite library anyway?

SQLite is an actively developed project, and more recent versions contain some very useful and powerful features that make using it much simpler.
Many PostgreSQL style features have been included, and there are productivity extensions such as UPSERT style queries, and the RETURNING clause which allows INSERT, UPDATE, and DELETE queries to return a result row for each affected record - which means you can insert a new row into a table and get back the autogenerated id without needing to run a separate SELECT query.
All of that didn't exist in the version originally included in the Epic plugin.