
There's quite a few options for the budding indie game developer. Do I go with this concept, or that one? What do I do about getting more teammates onto the project? Where am I going to get the money to live while I work on this? Where are my pants? One of the most important of all, though, is the question of doing a browser-based game or making a standalone game right off the bat. This week, let's take a look at some of the best browser game engines available for a developer to use on their way to indie stardom.
When considering an engine to use for the web, there are three primary engines that are used widely. This is not counting PHP-based browser games such as Tribal Wars, by the way. The engines are Microsoft Silverlight, Adobe Flash, Unity, and Sun Microystems Java. Each has their advantages and disadvantages, and appeals to a specific kind of developer or audience.
The first up to bat is Adobe Flash. This is easily the most popular browser game platform, as evidenced by the success of sites like Newgrounds, Kongregate, and ArmorGames. Some developers frown upon Flash as a poor engine choice, but in reality, it's probably the best for getting exposure. If you want players to recognize your studio and play your game, Flash is the way to go. It's also interesting in that it melds an animation environment onto the coding environment, making it extremely easy for artists to turn their concepts into code. Flash also supports three different quality settings without the creator having to do anything, making it the most scalable out of all the browser platforms. Adobe is also updating Flash on a regular basis with all sorts of new support.The downside to Flash, besides being frowned at by your more elitist developer peers, is that it is extremely limited in the realm of persistence and graphics. While the animation environment is great, it is primarily for use in 2D art, not 3D art. 3D in Flash almost always looks ugly, which means that there is a glut of average-looking 2D games. Persistence is more difficult as well, especially on Flash portals like Newgrounds where the most persistence you can get is cookies in a browser. The audience is also of a more kid-to-teenager nature, as Flash runs on just about any system and popular Flash portals are easily accessible from any computer to give someone a quick fix. It's also very hard to sell a Flash game compared to the other engines, but not impossible. This is why Flash has the reputation as the "newbie starting engine" with some developers. On top of all this, Flash is expensive!
Next is Unity, which we have talked about here on Big Download before, but never in a technical capacity. Unity is a good platform for more serious independent developers, as it has good support for a variety of different technologies, such as accurate physics simulations. Unlike Flash, Unity is primarily a 3D engine, which makes it easy to craft beautiful 3D worlds within its confines. It's also got support for installing and playing on machines, making it easy to build a game in it, host the demo on a site, and sell the full game through a download service. There's a reason why the charming folk at Flashbang Studios use Unity.However, Unity is not without its faults. It's not easily scalable like Flash or Java is, doesn't have a built in animation engine like Flash, and requires a license to use, unlike Java. Licenses are fairly expensive for Unity, and while there's plenty of support in the community, it's still got a learning curve on it before you can do anything cool with it. On top of all this, it doesn't run well on lower-end machines, with framerate issues across the board being a major problem with the platform. Finally, Unity's development environment is only available on Macs. D'oh!
Java is an old browser platform, having been used in a pretty wide variety of browser games. It's extremely flexible, easy to use for anybody with a familiarity with object-oriented programming, and best of all, free! It also supports good-looking 3D graphics, although the actual 3D engine has to be coded or licensed for use. Java, like Flash, is an introductory platform for a lot of developers, and easily converts to stand-alone projects as well.Java is not without its fair share of problems thought. Embedding applets can lead to poor performance, which really hinders gameplay. It's notorious for having plenty of viruses that travel through applets as well, requiring users to validate whether your application is malicious or not whenever they use it.
The final platform is a relatively new one: Microsoft Silverlight. Saying that it is very similar to Flash is an understatement. Silverlight combines a lot of the web flexibility that Flash does, including vector graphics and animation tools. Unlike Flash, Silverlight can be coded in using any .NET
framework editor, making it extremely flexible for most coders. It is not without its disadvantages, though. It's relatively new, which means support is not as detailed as the other platforms. Most users also don't have it and don't really feel like installing another browser plug-in, which can hurt the amount of people your game reaches.In the end, the platform you choose comes down to the kind of audience you want, how you want to look to your peers, and the sort of development environment you want. Each has its own strengths and weaknesses that can only be found by developing with the platform for a good bit of time. However, none are quite as good as using a stand-alone platform for your game!
For more coverage on indie games and the scene, keep an eye out for Indie Showcase at the same bat time, same bat channel. Also check out Freeware Friday and our indie category for some excellent freeware games and indie news, respectively.


