We’ve started work on a huge MMOG (Massively Multiplayer Online Game) project with a U.S. based games publisher. It’s supposed to go live after summer this year, and we’ve already got a big team working on the MMOG technology and preproduction.
We’re actually not only building a game, we’re creating a end-to-end technology platform (code-named TrunkTech) which enables us (or anyone else for that matter) to create browser based MMOG’s very rapidly. And I really have to emphasize the word “rapidly”, as we’ve set extremely ambitious goals for our technology.
I’m currently the lead front-end developer and am closely working together with a phenomenal Java guru to specify and develop ( actually specifying through developing
) out the low-level bits and pieces for our technology.
And I must say, I’m having a blast! At long last I’m able to work on stuff that I have almost no prior knowledge of, make sure that whatever code I write should still be readable in five years time and work on a game that I truly believe is going to be a big hit.
So I thought of starting to write a series about building MMOG’s with Flash (yeah, it’s Flash based), and share my thoughts and learnings from the experiences I gather by working on TrunkTech.
To get an a subject for my first post under this title, I’ll start of easy:
Why Flash?
When we stared the project we quickly came to the conclusion that our client would be Flash based. Currently, the biggest web-based MMOG is Habbo, from Sulake. Habbo is based on Shockwave, and frankly, I believe that Shockwave is still (barely) alive because of Habbo. Shockwave has seen its best days and is quickly losing penetration, developers and the will to live. It’s too old and clumsy and has never been a productive development platform.
As we really wanted our games to be playable by everyone on the net without installing anything whatsoever, Flash was the obvious candidate. And as we did not intend to go full 3D (our MMOG’s are not for hardcore gamers), we quickly ditched Shockwave and Unity3D as our client-side platform of choice (although we may want to revisit Unity3D at some stage as it’s really gaining traction right now).
Flash, especially with the second incarnation of its virtual machine, has become great for development of even very complex technology platforms. AS3 is strongly typed, catches many errors at compile time and lets the developers who use our API debug with strong tools. The syntax is modern and is ECMA-Script compliant… err… Well it was supposed to be, anyways, so people with Web development skills in general can quite easily hop on. Networking is robust as we now have access to binary sockets (very important, more on that later on). And most importantly Adobe is pushing the technology in the right direction, and Flex Builder 4 is going to make development even easier with better debugging, intellisense and auto-completion.
We did pause for a brief moment when deciding upon the technology, though. Why? Rendering speed.
While the VM2 is fast enough for most of the logic we’re expecting our platform to be used for, the same thing can’t be said about rendering. Kids expect quite a bit of graphics crunching from today’s desktop games, and online games are catching up really quickly. Even five years ago Shockwave was able to harness the power of the GPU, making it about 10.000 times faster than Flash at rendering texels (mileage may vary). While this is crucial for 3D games, it would still make a lot of sense to have 2D drawn on the GPU as well (and no, don’t even dare to write a comment about wmode=gpu, unless you’re Tinic and have some ace up you’re sleeve).
But in the end, we quickly decided that penetration was far more important than rendering speed. There’s a lot we can do to make up for the poor rendering speed in Flash by being creative and applying a trick or two, but penetration is something you can’t cheat yourself around.
Up next
In the next few posts I’ll talk a bit about our Server (Java-baed), Bamboo (our client-server protocol), our server-side scripting language (ActionScript3 compiled into Java byte code, aha!), meta-programming to let developers “multi-playerize” applications really fast, mixing 3D with pixel bender to texturize a great number of 3D model based avatars and any other experience I might find worth sharing (or you requesting).
Stay tuned.
//Tuomas
Good post,This was exactly what I needed to read today! I am sure this has relevance to many of us out there.
Really interested in this; what is your timeline for completion?
We will launch Q4 this year, hopefully during October, or so.
Buy:Cialis Soft Tabs.Levitra.VPXL.Viagra.Zithromax.Cialis Professional.Tramadol.Maxaman.Viagra Super Active+.Cialis Super Active+.Viagra Soft Tabs.Viagra Professional.Soma.Cialis.Super Active ED Pack.Viagra Super Force.Propecia….