Hi all,
We were hoping to begin working on a modular game for Minetest that can either be used as a complete package or as a set of user-swappable mod(pack)s. However, we are not entirely sure how to implement distribution for this model. Currently, we are thinking along the lines of having several repositories containing a modpack each and defining a CI pipeline to publish each individual mod and the pack as a whole (or should we create a mod which simply depends on all of the others as a pseudo modpack) alongside a repo containing the game itself pulling in all components from submodules. Is this the best approach, or is there another option available?
Distributing modular games
- rubenwardy
- Moderator
- Posts: 6978
- Joined: Tue Jun 12, 2012 18:11
- GitHub: rubenwardy
- IRC: rubenwardy
- In-game: rubenwardy
- Location: Bristol, United Kingdom
- Contact:
Re: Distributing modular games
Conquer is an RTS game for Minetest. It can run as a minigame in an existing game using a mod, and it can also run as a game. I do this by including the conquer mod as a submodule in conquer_game.
Submodules are definitely a good option for this, but having a lot of submodules makes development quite a bit harder. What you could do is have a single repository (a monorepo) and then use CI to update multiple packages. ContentDB has an API that you can use to update a package from a .zip file
Submodules are definitely a good option for this, but having a lot of submodules makes development quite a bit harder. What you could do is have a single repository (a monorepo) and then use CI to update multiple packages. ContentDB has an API that you can use to update a package from a .zip file
- Blockhead
- Member
- Posts: 1684
- Joined: Wed Jul 17, 2019 10:14
- GitHub: Montandalar
- IRC: Blockhead256
- In-game: Blockhead Blockhead256
- Location: Land Down Under
- Contact:
Re: Distributing modular games
You can use an approach similar to PandoraBox mods, where you develop every module as a git submodule. Pandorabox uses Dependabot to inform them when to update mods from upstream, which could also work with your game modules. You do need a good script like their update.sh to ensure developers' dependencies don't have issues, especially if the remote URLs change. You can also use CI pipelines to perform the release of the modpack and game as two separate artefacts from the same repository. Be very wary however that nested modpacks don't work properly in the in-game menus: #3363.
/˳˳_˳˳]_[˳˳_˳˳]_[˳˳_˳˳\ Advtrains enthusiast | My map: Noah's Railyard | My Content on ContentDB ✝️♂
Who is online
Users browsing this forum: Gmr_Leon and 13 guests