Moddable but not open source?

Started by
2 comments, last by tapped 10 years, 11 months ago

Hey! I'm working on my first few games, and I'm trying to learn everything about design I can. One thing though, that I haven't gotten a clear answer on, is how games can be heavily moddable yet not open source? The only realistic answer I've gotten is "In order for your game to support mods, you have to code an entire modding API." Is this the truth? I really want to support the modding community with my games, yet I don't want to make it open source, thus free.

Any answers appreciated, thanks smile.png

Advertisement

It depends what you want players to mod.

If you want them to create new levels for example, ship a level editor with it.

if you want players to modify abilities (for example movement speed of characters), give them a property editor (although I would combine this in the level editor).

If you want however players to have the ability to change everything and even make completly new games with it, you will have to provide a modding API.

Hey! I'm working on my first few games, and I'm trying to learn everything about design I can. One thing though, that I haven't gotten a clear answer on, is how games can be heavily moddable yet not open source? The only realistic answer I've gotten is "In order for your game to support mods, you have to code an entire modding API." Is this the truth? I really want to support the modding community with my games, yet I don't want to make it open source, thus free.

Any answers appreciated, thanks smile.png

The scope of the mod API depends on how much you want the users to be able to modify.

Also, open source != free. (Some opensource licenses(such as the GPL) make it difficult to charge people for the software(in the case of the GPL anyone who gets a license is allowed to sell or give away copies but very few prevent you from doing so.

You do however need to draw a clear line between code and other assets that can't be redistributed and code/assets that can be redistributed(as part of a mod) and that is fairly hard to do without a clean API to separate those parts.

[size="1"]I don't suffer from insanity, I'm enjoying every minute of it.
The voices in my head may not be real, but they have some good ideas!

There are two approaches you can choose between. Both of them needs to be done in the design phase of your project.

The first one is to make a plugin based system, using DLL's(dynamic link library) on Windows, or shared libraries on UNIX platform.
You start of creating an executable core, with the engine and other things you don't want a modder to have access to.

However keep in mind what you want the modder to have access to, and export these functions.
Now you can choose to make the game as a mod, or create the game explicit in the executable.
The first approach is the easiest way, and used by Valve for example.

The second approach is to give the modder a scripting language, which is linked with some of the functions in your game.

This can easily be done with Python, or Lua. Most games made to day have scripting support, used during the development cycle.
Unreal Tournament uses this approach for example.

When it comes to assets, you need to have a copyright license. The copyright license must be there even if you don't make the game moddable.
However most games use compiled assets, which often are hard to edit or use. This way the modders can only use your assets in your game, but can't edit them.
You should also ship the tools used for compiling assets, so that the modders can create their own assets.

This topic is closed to new replies.

Advertisement