To all those people who like to mod a games, what makes a game easy to mod?
This is more of a game developer question than a game modder question. Also, the answer kind of changes based on the gameās genre and engine.
As an example, crafting games like Minecraft, Terraria, and Starbound are incredible moddable due to the code being open source. So, we can look at the code and see how to, say, add a new item into the game. While each game has a different item system, but all their methods on adding items to those systems has been documented and are readily available.
Generally speaking, itās easier to mod a game that was made with player modding in mind and significantly harder if it wasnāt.
Welll as a developer building a custom engine for my game one of the goals is to make it as mod friendly as possible. So i was trying to get the modders perspective.
It helps if the game is built with the same tools it provides modders, since then all functionality can be recreated. The tools should be low level and provide a lot of control. If users want high level constructs, they may make them from the low level constructs, or use another usersā library (or your default userspace library) built on the low level tools. ļ¼ā¹ā”ā¹ļ¼
If a game has a folder of DLLs and calls functions on them (update() every frame and hooks into other game systems so they can be combined) with an exposed low level modding api, that can go very far as the fun can be in how the simple systems interact. (*āĻā*)
( avoid requiring the modder to go thorugh extra steps under the guise of making it easier for them; this lowers the skill ceiling for modding )
Things that help modders, in no order:
- Lack of weird file types or compression
- Also not needing proprietary/paid external software for most edits/additions (People WILL buy a game, but no one wants to pay just to mod a finished game. Imagine paid 7-Zip or WinRAR. Or worse, 7-Zip thatās not available anywhere.)
- (Average human readable) Documentation of tools (if applicable) and filesystem
- Folders that are either easy to read or well abbreviated
- Ability to change most visuals/text without coding knowledge
- Elements that are flexible with changes to dimensions or amount of content (e.g. Text boxes that reorient text themselves instead of overflowing)
- Edited files going in a āmodā folder of some kind instead of overwriting the originals
- Debugging tools (either from development or made for modders)
- Inherent ability to load new files as well as edits to old ones, for say example, making a new level or event scene.
These arenāt immediately applicable to everything, but generalized from various things Iāve tried to crack open over the years. Source code is always nice but not always the most helpful (for lower end/less experienced modders) or the most viable solution (for developers).
From my perspective, and similar to what bweem said above, a supposed āāidealāā environment would be designed assuming the original programmer will never interact directly with either an art team (visual/audio/text) or any future programmers: The artists tweak visuals without needing to learn a whole new skill, and coders get as much info as they can on how the game works without ripping it from the devās cold, dead hands.
My terms might be poor due to not being a coder, but hopefully that makes my point on the disconnect clearer, if so.
Iāve made a few mods in a couple games. Normally, Iād say using a well-known engine. Given that youāre making your own, Iād say:
- Dynamically load content. If the content of the game is loaded dynamically at launch, a user can mod the game by simply adding the correct files in the correct place. RimWorld is a great example of this.
- Open source the game. When making a mod you will need to see how things are done originally to mimic/alter it. Closed-source can work if the content is loaded dynamically and the content is open-source.
- Use a normal and/or simple tool set / language. If youāre writing in C#, Python, Lua, etc., people will have much more experience.
- As others have said, avoid proprietary software. On top of causing dependency hell, it also means that modders might have to purchase software just to try modding.