Distributing modular games

Post Reply
hutzdog
New member
Posts: 1
Joined: Fri Aug 12, 2022 00:24
GitHub: enderger
IRC: enderger
In-game: hutzdog

Distributing modular games

by hutzdog » Post

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?

User avatar
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

by rubenwardy » Post

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
Renewed Tab (my browser add-on) | Donate | Mods | Minetest Modding Book

Hello profile reader

User avatar
Blockhead
Member
Posts: 1685
Joined: Wed Jul 17, 2019 10:14
GitHub: Montandalar
IRC: Blockhead256
In-game: Blockhead Blockhead256
Location: Land Down Under
Contact:

Re: Distributing modular games

by Blockhead » Post

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 ✝️♂

Post Reply

Who is online

Users browsing this forum: No registered users and 10 guests