6

So one of my long-standing projects is an online fan-game that's been running for a good four years now, and is at least somewhat well-known among the related community. To give you an idea, Alexa ranks my online game higher than the official website for the franchise my game is based on.

One thing I've been wondering is, would it be a good idea to make the game's source code publicly viewable?

The reasoning for the idea is that this will allow the more programmer-oriented people in the community discover how the game works internally, and research certain features to determine possible outcomes of events, and share this knowledge with other users. For instance, they would be able to discover the exact chances of various treasures appearing in Chests, rather than just having a statistical analysis.

Major reasoning against it is "people can copy it", but honestly there are already copycat sites out there and many of them fall flat on their face simply because they try to be my game and either just don't get any attention in the first place, or get called out on being a rip-off by other members of the community.

These two points have been like a see-saw in my mind, tipping back and forth between "I should totally do it" and "nowai, src iz myne!" (not really like that :p) So I was hoping that I might be able to get some advice here, perhaps someone else has been through this and might have seasoned advice to offer?

Robert Harvey
  • 198,589
  • 55
  • 464
  • 673
  • possible duplicate of [When is it okay to open-source something?](http://programmers.stackexchange.com/questions/204938/when-is-it-okay-to-open-source-something) – gnat May 19 '14 at 13:30
  • @gnat Can't really say I agree with that "duplicate"... – Niet the Dark Absol May 19 '14 at 13:36
  • http://meta.stackexchange.com/questions/194476/someone-flagged-my-question-as-already-answered-but-its-not – gnat May 19 '14 at 13:37
  • @gnat Fair point. Edited to address. – Niet the Dark Absol May 19 '14 at 13:45
  • 4
    This question strikes me as being opinion-based. "These two points have been like a see-saw in my mind, tipping back and forth...get some advice..." – Brian May 19 '14 at 13:50
  • @Brian I understand, but I'm sort of seeing it as *my* opinion that needs objective views to help make a decision. I think that's acceptable, but I could be wrong. – Niet the Dark Absol May 19 '14 at 13:53
  • I suggest migrating this to gamedev.stackexchange.com – jzx May 22 '14 at 21:44
  • I fail to see the reason why you would want to share the source code. People analyzing the code to learn how to exactly optimize their strategy is not something I would want for a game I run. – user281377 Apr 15 '15 at 11:11
  • 1
    So you made a game 4 years ago that's built up a decent community of players, and now you're wondering about making it more open. First thing I think of is Neverwinter Nights. It came out in 2002, and it still has a strong, active fan community, because they included a comprehensive editor/mod tool set that can turn a non-trivial percentage of *players* into *co-creators* who build upon the established foundation of NWN. Releasing the source would be the ultimate expression of this attitude, and would make your community stronger, if less centralized. I say go for it! – Mason Wheeler Apr 15 '15 at 11:14
  • Wouldn't this add to the posibility of someone exploiting a bug? – Dioxin Apr 16 '15 at 12:15

2 Answers2

1

To avoid analysis like the probability of events can be avoided if you store all such constants in a config-file, which you do not opensource (or at least not with the real values).

Creating a copy is always a risk, but you gain the power of other interested developers, which might help to improve your game/code.

But if your community is stable you should not frighten to loose them if a copy of your game pops up. They will only switch if the copy is much improved.

MrSmith42
  • 1,041
  • 7
  • 12
  • 1
    I was planning on using an external config file for things like passwords, the Facebook App Secret ID, and stuff like that. I *want* people to be able to analyse game events ;) – Niet the Dark Absol May 19 '14 at 15:25
  • 2
    You should be externalizing that data anyway, it makes it easier to deploy an application to multiple environments (dev, QA, production, etc). –  May 22 '14 at 21:47
1

One approach might be to split your codebase into two parts (e.g., by extracting a library, engine, module, whatever) and publish only one part as open source.

By this you would make it harder to copy the whole game, while at the same time interested people could look up how certain things work.

claasz
  • 503
  • 3
  • 10
  • +1. If someone wants to understand how the *game* works, you don't need to show them the video/sound/IO code. It's a good idea to separate your code this way even if the selective open sourcing wasn't an issue. – Doval Jun 13 '14 at 13:10