Ask HN: How to make a game that will be easy for others to mod?

Author: nassimsoftware

Score: 7

Comments: 11

Date: 2021-12-04 16:40:23

________________________________________________________________________________

maxilevi wrote at 2021-12-04 18:13:06:

Make the core content of your game a mod itself. That kind of design will ensure your API is always up to date with the game.

nassimsoftware wrote at 2021-12-04 18:18:10:

That's a good idea thanks.

captaindiego wrote at 2021-12-04 16:54:10:

Embedding a Lua (or similar) interpreter is a somewhat common method in the games world. This allows modders and develipers to easily add scripts which can use APIs exposed to Lua.

nassimsoftware wrote at 2021-12-04 17:17:47:

I'm curious to know why lua would be good compared to python for this purpose?

Jensson wrote at 2021-12-04 17:59:52:

Lua is made to be embedded into another program and makes that easy, python is not. Python is for writing glue code, Lua is for writing code to be glued together.

nassimsoftware wrote at 2021-12-04 18:20:27:

Oh I see, thanks for the explanation!

iamevn wrote at 2021-12-04 22:48:54:

here's a good post on the topic (from 5 years ago but things haven't changed too much afaik)

https://eev.ee/blog/2016/04/30/embedding-lua-vs-python/

h2odragon wrote at 2021-12-04 17:01:53:

Observe Factorio and do what they do, as far as you can. Expose everything to Lua that you can, document well, if you can cultivate a community then it can guide you.

Pozzuh wrote at 2021-12-04 18:11:55:

You could consider making only the game's code open source, keeping its assets proprietary. That way you are still able to sell the game normally.

nassimsoftware wrote at 2021-12-04 18:18:52:

This seems like a good idea but how would you prevent reskins?

yuppie_scum wrote at 2021-12-04 16:52:38:

Look at what Doom and Quake did before they were open sourced. I think the keys there were releasing the data formats, open sourcing dev tools, and permitting mods to be loaded easily. Also engaging with the community helped.