Basically the title. I'm building a game with several NPCs and complex systems, and I want it to be nice and modular for modders right from the beginning. So far, I have looked into:

  • Asset Bundles, I don't completely understand these, probably will have to write some custom loading code? I don't know how/if this will let the modders write code.

  • Lua-Based Modding, I don't particularly like Lua, but I will fall back to it if I absolutely have to (The Unity-Lua Plugin makes this a seemingly very fast way.)

  • Exposed C# (original idea from this Question). But again, as stated in the question raw c# has a lot of disadvantages, not to mention the security risks and compatibility issues.

  • Minecraft-Style? Completely custom? Basically a lot of events and registries? I'm not sure about this option.

    To give you an example, there are several Tribes in the game. Ideally, if a modder wanted to make a new tribe they would need to extend from some Tribe base class and then register/add their custom tribe to my AvailableTribes list. Not to mention the models, animations, and sounds for the Tribe NPCs and such.

Any help is appreciated!

  • \$\begingroup\$ As in most areas of game development, there is likely no objective "best way" here. Different games use different modding strategies because they each have different needs, goals, and development teams with different styles. The best way to find out what's going to work for you is to write up a test of a method that looks promising to you and evaluate whether it meets your needs. If it doesn't, ask here for a strategy to overcome whatever specific problem or limitation you observe in your attempted approach. \$\endgroup\$
    – DMGregory
    May 25, 2020 at 11:16
  • \$\begingroup\$ Won't that be a bit time-consuming? id rather stick to one and build onto it rather than change mid-way through because it isn't providing me with what I need it to.I'm just asking for extra information on the matter so I can make sure I have evaluated all available choises. \$\endgroup\$
    – Faih Faih
    May 25, 2020 at 11:17
  • \$\begingroup\$ Welcome to game development. We're all in uncertain waters all the time and no one has all the answers for you, so get used to diving in and figuring stuff out. Watch out for the temptation to delegate tough or uncertain project decisions to Internet Strangers — there's no reason to believe we'd make better decisions about your game than you would. No one knows your game's mechanics and needs better than you, so no one is better equipped to evaluate what modding options are right for your game than you. \$\endgroup\$
    – DMGregory
    May 25, 2020 at 11:23
  • \$\begingroup\$ I agree with you, no one will be as much of an insider in this project as I am. I'm looking for my options, gathering data to compare how each method fares against what I need it to do. \$\endgroup\$
    – Faih Faih
    May 25, 2020 at 11:26
  • \$\begingroup\$ Gathering an open-ended list of options is not what StackExchange does best. We work better on focused problem-solving. Try identifying a specific modding action you want modders to be able to do, that you don't think any of the options you've looked at so far addresses adequately. Ask about how to support that specific need, and you'll get answers that either explain how to do it well with one of your existing options, or introduce a new option that solves that problem. If you can't find such a gap, then you don't have a problem that needs solving, and you have everything you need to proceed. \$\endgroup\$
    – DMGregory
    May 25, 2020 at 11:29


Browse other questions tagged .