Disclaimer: please take the following text just as me thinking out loud. It doesn't represent our actual plan or promises, and the whole purpose of why I wrote it is because I want to know opinions of our community.
This topic is about what way to choose when adding modding support to Miner Wars 2081:
a) write a plugin API
b) open 99% of the source code of the game
My problem with (a) is that it's basically a waste of our time. We would have to wrap a lot of code into some plugin API, just because we wouldn't want others to see what's inside that code. And we would have to make this for everything where modding is required. If we explicitly wouldn't write plugin API let's say for shaders, then nobody would be able to mod them.
Then there's option (b). We would split the code into two parts: first is executable, that one would stay as it is. Second would be an external dll file, which would contain 99% of code of our game and engine. You would have full source code for this dll. That dll would be the actual game.
Basically it means, you would have the same access as we do. There will be nothing hidden in front of you. If you want to change some deep stuff in our engine (render, physics, GUI, ...), just do it. Wanna change shader? Change how our AI behaves? Add a new weapon? New mission? Change networking stuff? Change textures or models or sounds? Or make a new game (total conversion)?
How would it work?
- you would need to own Miner Wars 2081 (you still need our executable and art assets)
- install free Visual Studio 2010 Express - http://www.microsoft.com/visualstudio/eng/products/visual-studio-2010-express
- download our source code (probably a zip file, GitHub repository or something)
- open MinerWars project in Visual Studio
- make some changes
- press Ctrl+F5 => Compile & Play
- distributing your mod - just copy that dll file to some other user's Miner Wars folder
- easy to start with - don't have to be a programmer
- C# is a simple language
- total control
- everybody from the team likes this idea (which is surprising, I was expecting that some people will consider it a high risk)
- I don't see any... and to be honest, this is weird... I am probably missing something.
- somebody can steal our "genius ideas" and our code and make his own game: My answer to this is that after we removed "always online DRM", Miner Wars got on warez within hours, and that had zero impact on our daily sales.
Therefore I am 99% confident that opening source code wouldn't kill us.
Normal people would buy the game anyway - it's way easier then warezing it.
Minecraft' source code is available too (I am not sure if that's legal, but it's available) - and it didn't kill them.
License: it wouldn't be 100% open source - people still couldn't just resell our code, but the license would be as free as possible. We want people to have fun, not to tight them up and hold in a cell next to Zed. Who's Zed?
This thing would be an experiment - I don't know about any other developer who opens his source code just few months after the release. ID Software opened up source code for Doom and Quake, but that was years after those games were published.
- people could create whole new games (total conversions) based on our engine
- people could sell their mods - through Steam Workshop / Steam Market - although I don't have experience with these two... I assuming people can sell their mods there? Or am I wrong?
One last disclaimer: opening source code to Miner Wars doesn't mean we would quit with this project. No way. It just means that our team would be working on new features in parallel with the community
What do you think?
Keen Software House