Take the 2-minute tour ×
Game Development Stack Exchange is a question and answer site for professional and independent game developers. It's 100% free, no registration required.

What's the best technology for an online game, i.e playable through a web browser? I think the only choices are:

  • Java applets
  • Flash
  • Silverlight

I'm leaning towards Java applets, simply because they seems to have better programming features than Flash, and graphics for a java applet game may be cheaper than graphics for Flash. I don't know much about Silverlight.

share|improve this question
5  
Presumably there's not a single "best" here, just that different tools are better than others in specific situations and there are tradeoffs with everything? –  Ian Schreiber Aug 20 '10 at 1:04
    
This is definitely subjective and should be CW. I have a feeling it will turn into a list. –  Ricket Aug 20 '10 at 1:06
    
Why don't you find a game or games that you like and find out what was used to create it? –  Sam Oct 22 '11 at 5:41
add comment

closed as not constructive by Tetrad Jan 22 '12 at 2:13

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.

12 Answers

up vote 6 down vote accepted

Just because Java applets aren't popular doesn't mean they aren't powerful or worthy of gaming. In fact I am focused on Java game development at the moment; I like the high-level nature of the language, its cross-platform-ness (as compared to C#), the JOGL library which provides a very C-like OpenGL experience for the Java platform (or its alternative, LWJGL, or an engine like jMonkeyEngine), and its speed (obviously slower than C++, but considerably faster than scripting languages like Python).

With Java you can deploy your application as an Applet to run in the browser and even provide a JNLP alternative for those who prefer installing something.

You can take advantage of all the tools that have been created for Java; the wonderful Eclipse IDE (or any of the other IDEs out there), testing tools, continuous integration, the huge community of Java programmers, etc.

The statistic for what percentage of computers Java is installed in varies (and the version varies even more) but I've seen pretty high numbers for Java market penetration. And the installation process remains pretty simple, so that if any users don't yet have Java installed, they can be up and ready to run your game in very little time.

I personally feel less hesitant to install the Java plugin than the Unity one. In fact, I am yet to install the Unity game plugin on my computer; I just don't quite trust it. Java is proven; it had a rocky beginning but now, many years later, it is stable and fast and, well, it continues to have some security issues (but so does Flash) but for the most part it's trustworthy. I will continue to avoid Unity web games until the Unity web plugin is a little more widespread and proven.

So I absolutely recommend Java, whether through an applet or through Java Web Start or an executable JAR.

P.S. The world's most popular free online MMO, as recognized by the Guinness World Records, is RuneScape, which runs as a Java applet and recently has a desktop version. It supports both DirectX and OpenGL as well as a software 3D renderer, and has approximately 10 million active accounts.

share|improve this answer
1  
you really are missing out if you haven't at least tried the Unity Engine. It can generate a standalone executable for desktop OS (PC and Mac, no Linux), so you don't even need the browser plugin, to experiment with development in Unity. C'mon, get it, you know you want to. :) –  Cyclops Aug 20 '10 at 13:41
    
@Cyclops, well, it is a requirement of my game development course this semester, so I must submit to the ways of Unity in a month or two. Until then I will continue my Java+OpenGL R&D :) –  Ricket Aug 20 '10 at 18:53
1  
C# is also cross-platform (Moonlight, ECMA standard, ...), it's just not as cross-platform as Java... But C# works fine on most Windows, Linux, Mac OS X systems; why would one play games outside that box? See also: balder.codeplex.com and kit3d.codeplex.com –  Tom Wijsman Sep 18 '10 at 13:06
4  
TomWij, please consider adding your own answer instead of trying to attack mine. I'm sure Silverlight has its own pros which should be spelled out in detail. For example, just as I pointed out the Eclipse IDE, Visual Studio is a wonderful IDE too. But your comment is a weak argument; Moonlight greatly lags behind Silverlight (Silverlight 4 released 5 months ago and Moonlight is still working on 3), and the two projects you pointed to are both in alpha status. –  Ricket Sep 18 '10 at 23:34
add comment

Unity3d Game Engine

I guess someone had to say it. :) Seriously, it's a great cross-platform (browsers and OS's and iPhone, etc), multi-scripting language 3D game engine. And it has both a free and Professional version.

share|improve this answer
1  
Sadly it's decompilable now via a certain decompiler. So it's bad for reasons of game integrity. –  Wight Sep 13 '10 at 9:44
    
Everything's decompilable with enough work - the only consensus solution is not to include confidential data in the client software. –  Cyclops Sep 13 '10 at 16:34
    
Java is decompilable to the point where Minecraft had 10 billion mods without any support for mods. It's only better for the gamers. That, and security through oscurity blah blah. –  Jimmy Oct 15 '11 at 0:14
add comment

Adobe Flash

Flash is still the best choice for a lot of types of games.

OpenSource

The SDK is opensource, and there are some great opensource development tools out there. I believe FlashDevelop is the best ActionScript IDE out there.

FlashPlayer is everywhere

Almost all computers have Flash Player installed, and the upgrade process is fairly streamlined now.

Flash Platform

Flash is now a Platform, so there are many options for deploying you flash content, keeping with a write once deploy everywhere policy.

Libraries and community

There is a massive active community around Flash and even around Flash games specifically. There are also a ton of libraries in ActionScript. Many of the main "game" libraries from other languages are ported to AS3.

Active development by Adobe

FlashPlayer and the Platform is getting better and better with every release. There are more things added to the platform all the time such as Flex, Adobe AIR, Pixel Bender, etc. Just take a quick look at Adobe Labs to see all the great things coming.

There are countless other benefits, including the Flash IDE (yes it is a benefit), AMF, Established sites and programs for Flash games (kongregate, mochi media etc).

share|improve this answer
add comment

The technology I find interesting for games on the web is JavaScript + Canvas. This has the advantage that the user does not need a plugin at all to play your game. The upcoming IE will also support canvas, including hardware acceleration. The best choice for 3D would be WebGL, but it is not even part of the more innovative browsers yet. You already find a lot of tech demos using canvas and even a iso-engine.

share|improve this answer
    
Also of note, pretty sure none of these (other than "HTML5", aka. JS+Canvas+CSS+HTML+etc) will run on all the various mobile platforms (yes you can package Unity games for iPhone and such, but that is different than using the web player). –  coderanger Aug 20 '10 at 7:44
add comment

While it isn't mature yet, Google is working a technology called Native Client, or NaCl for short. NaCl is a sandbox that allows safe, secure, fast execution of native binary code. It supports OpenGLES for 3d accelerated output and OpenAL for an audio layer.

In summary, you'll be able to play high-end locally-installed games in your web browser, with only about a 5% speed reduction.

I believe it has potential to be both a Java-killer and a Flash-killer, though it still needs some time for maturation. Unity is porting their engine to it, and there's already a Firefox extension to support it.

share|improve this answer
1  
+1 pretty interesting information –  Vishnu Oct 25 '10 at 13:15
add comment

Java Web Start is a better choice over java applets. JNLP allows you to access native level resources like OpenGL. You can have the full power of the graphics card, while at the same time have your game launch from the browser without need the user to install any plugins(so long as they have java run time on their pc).

The jMonkeyEngine is a great 3D engine which is built around that principle. Running examples on their website.

The Slick engine is a Java 2D engine which can also be launched from the browser.

share|improve this answer
    
Java Web Start is only a distribution tool, it's possible to make a game playable directly, via JWS and an applet. IMHO, the main advantage of JWS is that it can install your application in 1 click and update it automatically using the JNLP file. So accessing to native level resources can also be done in an applet (LWJGL can work in an applet). But if you want to have a native access, it will display a warning unless you have (buy) a certificate from a certificate authority. –  Mr_Qqn Aug 20 '10 at 12:34
add comment

WebGL is supported by all (latest nightly builds of) browsers except IE and offers the same power and flexibility that OpenGL ES normally does, just interfaced through the browser. http://en.wikipedia.org/wiki/WebGL

share|improve this answer
add comment

I've seen some pretty cool HTML 5 demos. If you really want to be on the bleeding edge you might want to take a look at that.

share|improve this answer
2  
HTML5 canvas is still reserved for FanBoys! It is still stupidly slow, and not as accessible as Apple would have you believe. –  Adam Harte Aug 23 '10 at 6:47
add comment

One data point, look at the entries for Ludum Dare 18.

http://www.ludumdare.com/compo/ludum-dare-18/?action=preview

I've been playing through the runs-in-browser entries and ignoring the needs-download entries. Most of the runs-in-browser are Flash, some are Unity, a few are Java, a few are HTML/JS. I haven't noticed any Silverlight yet.

share|improve this answer
add comment

If you look at how to best reach your customers (ie. which plugins are preinstalled most):

  1. JavaScript
  2. Flash
  3. Java
  4. Silverlight
  5. Unity WebPlayer
  6. Custom plugin

If you look at what tools are best to achieve your specific goal you need to more clear about what type of game experience you try to create. Some tools are just not ready for high FPS, low latency game play while others are not good for 3D, some other have very slow toolchains etc.pp.

share|improve this answer
add comment

Java applets don't seem to be all that popular these days. HTML canvas is doing pretty well in terms of performance. Keep your eye on WebGL developments too.

share|improve this answer
add comment

Flex/Flash + RED5. Its free.

share|improve this answer
add comment

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