Skip to main content

Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
TagsGame Engines

I disagree with running a database not being a hassle once you figure it out. Running a server for a database is not a small task, it takes time away from development, you have to constantly save backups, not counting leaving the server running all the time. To put it in perspective, small to mid-size enterprises wouldn't bother with it and simply hire a third party to do it, or as I do, pay a monthly fee to one of those live data services, like Notion.

The solution of creating a text-based format to share the project in git has plenty of benefits, you can run a git server -if you want- but 99.9% of the cases you would simply put your project in Github, Bitbucket or Gitlab, which have some free tiers for teams (plus their own project management/bug tracking tools). The additional advantage of git is that you can keep track of every single change made, so I am not clear why "conflicts" have to be such a big problem. One of the reasons my team went crazy over the Godot engine was that they created a text-based format, .tscn, that is perfect for git.

I’m 100% up to adding a git workflow support, but it will have some challenge to address first:

  • Conflicts: We cannot “lock” items in realtime, so users could potentially edit the same item at the same time and conflict resolution should be done outside the app. Same with merges, pull requests, etc.

  • File based database. To get the most of git diff, each item should be a single file otherwise, keeping a single JSON would trigger diffs on any changes over any item, and potentially bring trouble with no experienced git users (they might end commiting and pushing before syncing or they may need to learn how to stash, etc)

  • No Realtime support. We should have a “mini git client” to at least notify the user for updates.

PS: Thanks @zaizeku as well for your input!

(+1)

"Running a server for a database is not a small task, it takes time away from development"

Setting up a small server does take time away from development, but it's far from being complicated. An used Raspberry Pi does the trick (and to be honest any team should have at least one server available, be it to share heavy files that platforms like GitHub aren't meant to handle or other things like that). It takes half a day if you don't know anything about CouchDB and ultimately the gain is worth the hassle. Any other similar tools I know of need a server to function properly (Articy:Draft for instance requires an SVN server), though it's sometimes set-up automatically as a background thing.