Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

HTML5+Javascript is not viable as the client-side code will be visible and, thus, stealable. Flash is not viable since it's not supported on ipads and thus not cross-platform. Said that, what are the available tools for creating cross-platform, cross-browser multiplayer online commercial games?

share|improve this question

closed as not constructive by gnat, Joris Timmermans, Walter, MichaelT, Bill May 7 '13 at 13:27

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.If this question can be reworded to fit the rules in the help center, please edit the question.

HTML 5 and JavaScript aren't really tools. Care to clarify what type of games you are thinking of? Generally multiplayer online games sell the service. Anything server side can't be stolen so I don't see what you mean by HTML5 and JavaScript is not viable. – Lionel Oct 19 '11 at 23:57
Lionel, I could ask for the available languages. The problem is that, for instance, a valid answer could be "Flash". Flash isn't a language. Also, HTML5 isn't a programming language, and Javascript alone isn't capable of doing it. But, yes, HTML5+Javascript, as a combination, IS one of the available "tools" to be used to create an online cross-browser game. Feel free to suggest a better word for it. – WindScar Oct 20 '11 at 0:26
Now answering your question. If the client-side part of a game is visible, anyone willing to copy your game will have it's work halved. Worse yet on a game that uses a distributed flow protocol, as those games require a great amount of code to be writen on client-side. – WindScar Oct 20 '11 at 0:29
If your game is truly that original that anyone copying it will take away from your business, you can always file for Intellectual Property rights for the specifics which are crucial for your business. – Lionel Oct 20 '11 at 0:40
Copyright infringement is the least of your problems with the client. You have to be concerned with players hacking the client to gain game advantage, or developing bot software to play the game for them. – Gilbert Le Blanc Oct 20 '11 at 15:59

HTML5 and Javascript is the only option if you must have your game playable in a browser, and be 100% cross platform such that it'll work on otherwise closed platforms like the iPad (in the iPad browser). There's ways to obfuscate the client side code so that it isn't easy to steal, and there's other tricks that can be used to prevent outright theft. As a side note, Flash is just as easy to steal as obfuscated Javascript, so if you're really that worried, then that option is out.

One option is Unity3d, given that there's a way to compile for iOS, and since Unity works in the browser, it only requires a plugin. I do believe support is limited/non-existent in Linux, though, so depending on how cross platform you want, that could be a problem. Unity also compiles for Android, though being able to do all of this will cost money.

share|improve this answer
That answers my question, and thanks for pointing that Flash is easily breakable. If possible, I'd like to know why. – WindScar Oct 20 '11 at 0:55
Depending on how they're coded, Flash games can be downloaded in full and re-uploaded to another site with very few problems. And there's swf decompilers out there to get rid of various attempts at copyright protection or site locking. As with most things, the harder you make it to steal, the less likely a casual user will steal your game. But there's no 100% foolproof way to solve the problem. – thedaian Oct 20 '11 at 1:18
There are also Flash decompilers that work just as it sounds with varying degrees of success. – Lionel Oct 20 '11 at 1:55

HTML5 and Javascript is the only viable tool to create a truly cross-platform game. To ensure it cannot be stolen, ensure the gameplay relies on your service - something that would be difficult to replicate.

For example, many multi-player online games currently out there now may have a client that you can download. Some people create private servers for them. But the original creators provide a service (the main server/s) where the majority of players are on. The creators remain a viable business even though the client may have been taken by other people.

Your business proposition shouldn't rely on the client never being taken or copied by other parties. Instead, ensure your service remains attractive for players to stay on.

share|improve this answer
This is true. Now that I think about it, patching a client isn't hard either. Good suggestion. – WindScar Oct 20 '11 at 0:57
The main way to think about this is that the server is really the only venue you control, so as much as possible, move the functionality to the server, so only the results are available to the client. This sidesteps the theft issue, as the server code is unavailable, and reverse-engineering it should be prohibitively time consuming/expensive if done right. Remember, even Microsoft and Apple cannot stop piracy of their products. Anything your customers get their hands on directly CAN BE STOLEN, so make the essential parts, as much as possible, a service, not a download. – SplinterReality Oct 20 '11 at 1:44

The 'stealability' issue has been done to death in various game programming forums; the essence is that the only way to secure your code is not to distribute it at all - which means you need to keep a considerable portion of the code on the server, such that the client-side code by itself is useless. If it is more effort to reconstruct the server-side portion than it would be to just rewrite the whole thing from scratch, then you have succeeded.

Another thing about the 'stealability': You're going to expose artwork one way or another, and there is not really a way to technically protect that - it's going to show up on the user's screen at some point, and from there, a determined copyright infringer can just grab a screenshot.

Oh, and by the way, it's not 'stealing', the proper term is 'copyright infringement'. Those are not the same thing, regardless of what the record industry is trying to tell you.

share|improve this answer

Not the answer you're looking for? Browse other questions tagged or ask your own question.