Sunday, December 9, 2012

Mod support in your game

How to create great mod support

Welcome to yet another post about games! Today I have another exciting topic to discuss. A matter that is of the out most importance to the longevity of games and key to involving your players in the creative process that is game creation. Phew, I need to breathe after that sentence. Anyway, I am going to discuss modding and how to prepare your game for it. Let us get started!

Why would you want to let players mod your game? They will only ruin your careful balancing, create ugly models to replace your beautiful ones and generally take away your control and create something completely different from what you had in mind. At least, that is how some developers, or publishers, seem to think. I would instead argue that mods serve to engage the community by letting your players have a hand in game balancing and feature creation. Modders often implement features that are difficult to implement when you are on a tight budget with even tighter deadlines. They do not need to worry about de-scoping, harsh deadlines or any of those other obstacles that feature prominently in game development projects.

Developers can benefit from a living and prosperous modding community in several ways:
  • Mod support creates goodwill towards the developers
  • Some mods may improve upon the original game in such a way that additional players purchase your game, thus increasing the game's revenue.
  • Certain modders may be skilled enough that you would actually like to recruit them. You would have had no idea that they existed if there was no modding community through which they could rise to prominence.
  • Mods help extend the life span of your game via unofficial patches, running their own servers and improving on features long after you have closed down any official support for the game.
The above benefits does not even take into account the joy some developers would get from observing players enjoying their game, even taking part in the creative process. Many developers wish for a closer cooperation with their player, for the veil of secrecy to fall and to be able to discuss their games with their players. Mods are a key ingredient to create such a discussion.

Now that we have established the fact that mods do in fact lead to benefits for the company and developers, what can we do to improve the chances of such a modding community springing up? 

We will first analyze what a modder needs to be able to mod and what I consider to be good mod support.

Mod to the left. Basic game to the right.
A striking difference in graphics, both in lushness and quality. Such user generated content would not be possible without good mod support.

Core principles of mod support

I will base my list of principles on my own experiences, both from a personal modding interest and observation of thriving modding communities such as the nexus sites or the Mount and Blade community.

A modder need to be able to open your source files, modify them and replace the old ones. This is the core of modding. In order to do that you will need to ensure that all source files are saved in such a manner that this process is quick and painless. Do not pack all your files into strange data folders that you can only access via your own tools or by hacking them. Such a practice will lead to you limiting your mod support to only include the people who already have knowledge of such things (a very small minority of all players). Use common formats used by common programs such as notepad, photoshop, paint and blender. Once we have established the practice of using common formats we know that our modders will not need to search for obscure programs just to express their creativity.

But just being able to open your files is not enough. A modder will need to be able to modify them. This is primarily related to the variables coded into the game. Ensure that all variables can be modified via configuration files, ordinary text files. Do not hide hardcoded variables deep in the C++ code since very few modders have the knowledge of deciphering C++ in any efficient manner. Make sure to use proper naming conventions for your variables in the configuration files so that a person completely outside your development team can understand what they mean.

Alright, if you have managed to follow these first two steps you have already done more than most developers since players can now open and modify your files. Well done indeed! Here comes the tricky part.

The next step is to help the modders with replacing your files in a way that does not break the game. Create a sub folder inside the game root named "Mods" or something similar. The purpose of this folder is for players to place all their mod resources inside it without overwriting your own files. Prepare your game launcher in such a way that it contains a drop down list where the player can select any of the mods in the mod folder or the basic game. The game will then use that mod's resources instead of the basic files, effectively prioritizing the mod over the basic game. This ensures that a player can install as many mods as she likes without compromising the integrity of the basic game. A player will also be able to change mods on the fly, tailoring her experience depending on her wishes at any given time.

If you as a developer can manage these three steps you will have a game that is easy to mod and transparent. It will also be simple for players to install mods and actually play them. Players will not be forced to carefully back up all the basic files out of fear of overwriting the wrong one.

This still leaves us with one problem though. The problem of tools. 

As a developers you surely use quite advanced tools to create levels, models and modify variables. If you were to work without those tools your work would probably become much more complicated and time consuming. The same logic applies to modders who do not have access to your tools. To remedy that situation you should release as many of your tools to your community as possible. However, sometimes legal or other insurmountable obstacles prevent you from doing so. Let your community know if such obstacles exist and tell your community manager to give them some tips when they attempt to bypass that obstacle by creating their own tools.

In a perfect world your development studio has followed these steps and have a game that:
  • Is easily modified
  • Can have several mods installed at the same time without compromising basic game integrity
  • Has easy to use tools to reduce the required learning curve for new modders.
I am going to provide three examples of developers that have much to thank their modding community for, just to further strengthen my point. These companies follow some, but not always all, of the above points and it has helped them immensely:
Hopefully you can agree with me when I state that mods can play a crucial role for your game, community and future fan base. I hope that you will keep this short summary in mind when you plan your next project if you want to make modding a part of the experience you present to the players:
  • Use common file formats
  • Use easy to understand naming conventions for all variables and file names
  • Use a separate mod folder where mods can be installed
  • Implement a drop down list in the game's launcher where mods can be selected and activated
  • Release your development tools or help your community create their own mod tools
That is all for this post. I hope you find it enlightening and most of all, useful in your work. Leave a comment if you agree with my points, disagree with them or just have another angle to discuss with regards to mod support.

No comments:

Post a Comment