• FEATURED

View more

View more

### Image of the Day Submit

IOTD | Top Screenshots

## Moddable but not open source?

Old topic!

Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

3 replies to this topic

### #1FooBarSteve  Members

Posted 20 May 2013 - 11:59 PM

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.

### #2Yourself  Members

Posted 21 May 2013 - 12:33 AM

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.

### #3SimonForsman  Members

Posted 21 May 2013 - 12:59 AM

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.

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.

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!

### #4Tapped  Members

Posted 21 May 2013 - 04:06 AM

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.

Edited by Tapped, 21 May 2013 - 04:07 AM.

Old topic!

Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.