Nathan Wailes - Blog - GitHub - LinkedIn - Patreon - Reddit - Stack Overflow - Twitter - YouTube
Making a moddable (extensible) game or game engine
An example of hard-coded (not easily-moddable) and "data-driven" (easily-moddable) programs:
# Not easily modddable:
def program():
print("Hello world!")
# Easily moddable:
def program():
message_to_print = load_message_to_print()
print(message_to_print)
def load_message_to_print():
with open("config.json", "r") as infile:
data = json.load(infile)
return data['message_to_print']
Wikipedia
StackExchange
I want to make a moddable game. How does this affect my programming language choice?
There's good info here.
OFP / Arma
Minecraft
2011 - Searge's MCP Mod System
2015.07 - Minecraft forum - The History of Modded Minecraft
2016.06.03 - PacktPub - A Brief History of Minecraft Modding
So basically, one way to have your game moddable is to have people be able to modify the source code. So it's sort-of open-source in that people can hook into things, but it's not open-source in the sense that people can do whatever they want with your code (like fork it or straight-up copy it).
This is a really good article.