Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

Consider SQLite

Open
#185 0 comments 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

Nobody has claimed this yet.

Assessment

Difficulty
5/5
Estimated time
Over a week
Newbie friendliness
18/100
Issue type
Feature
Clarity
Mostly clear
Activity status
Stale
Tech stack
cpp, sqlite
Domain
backend, database

Research direction

Start by locating how the game reads and writes its current file based data and how backups handle those files; the issue does not name specific files or tests. The proposed work spans schema design, migration scripts, game storage, backups, and migration tooling. Done means the game uses SQLite, existing data can be migrated, backups cover the database, and schema migrations are supported.

Written by the indexing model from the issue text.

Description

Has switching the DB from files to sqlite ever been considered? It would offer similar performance to flat files, but would be more resilient against corruption.

As a benefit, it would be much easier to evolve the schema over time. It's currently high effort to add a field to an object. With a true database, running a migration script makes it trivial. It also makes running adhoc queries and world building easier.

The reason I would recommend SQLite over something like MySQL or PostgreSQL:

  • Can be linked directly to the source, keeping the game as a single binary
  • Synchronous, low latency API so that we don't need to consider I/O impacts to game latency
  • Easy, battle hardened C API

The effort would look like something like:

  1. Define a new schema
  2. Write scripts to migrate from the current files to the new schema
  3. Update the game to use SQLite
  4. Update backups to backup the SQLite DB
  5. Add some tooling for performing schema migrations
Dominant language
C++
Stars
3
Forks
4
Avg merge
18h 36m
Merged PRs (30d)
87

Getting set up

  • Ships a Dockerfile or Docker Compose file
  • No pull request template
  • No contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from returnoftheshadow/RotS_Live

All issues in returnoftheshadow/RotS_Live

Similar issues

More C++ issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.