Archive | May, 2008

Valve’s Steam Cloud – Cloud Computing/Services Coming to Gaming

30 May

The buzzword this year for gaming is probably going to be the same buzzword in the Web 2.0/Silicon Valley world – Cloud computing and storage.  Valve just dipped their hat in with Steam Cloud.

Thoughts on Massively Multiplayer Flash Gaming Infrastructure

30 May

I’ve been thinking a lot about the different options we could use for the Space Survivor infrastructure.  The game itself is flash based and the site uses html/css (doesn’t make sense to make the entire site flash for performance reasons) and the site-specific framework and semi state-less page views will most likely be on CakePHP.  So, if you just want to check your stats, view ships, read missions, or anything that fits into the normal webpage paradigm it’ll most likely be served from a PHP server.

When we start talking about the technology required to provide a backend for the actual game, that’s when the choices get interesting.  Most multiplayer games on the PC or console probably use some sort of custom framework for handling network traffic, probably written in C, C++, Java or some other low-level language.  But, I kinda want to mix things up and jump on what I think will be the next generation infrastructure for networking/multiplayer in games – Erlang.

There was an article on Reddit quite a while ago – Writing Low-Pain Massively Scalable Multiplayer Servers – that really says it all a lot better than I am qualified to.  I highly suggest reading it, but I’ll talk about concurrency here.

Erlang is a great choice for multiplayer infrastructure because it was built from the ground up to be a high-concurrency system.  It’s trivially easy to add nodes to an Erlang cluster because there is built-in node detection; so once you create your new instance of the Erlang emulator and connect it to any other node in your system, all other nodes become aware of it.  The bottom line is, you don’t have to spend any resources creating this network effect  – it’s a fundamental part of the language!

In the article I linked to above, Joel recommends creating a node for each processor on a machine.  It’s not uncommon for servers now to have 8 processors, definitely at least 4.  So if erlang is your platform of choice, you can immediately create 4 or 8 instances, each doing separate tasks and maximizing your CPU usage out of the box!  Amazing.

I’ll continue this discussion in later posts as I gain more understanding of how things fit together in an erlang-based multiplayer infrastructure.

Twoorl – Twitter in Erlang

29 May

Yariv, one of the biggest evangelists and contributors to the erlang community, hacked out a twitter clone in erlang over the course of 2 or 3 days.  Although he tries to back out of an ‘Erlang will kick Rails ass at scaling’ argument, I would like to see his app at a scale equal to twitter and see which one wins.  My money is on Erlang.

Some of the reasons he wrote Twoorl:

The reasons I wrote Twoorl are:

- ErlyWeb needs more open source apps showing how to use the framework. It’s hard to pick how to use the framework just from the API docs.
- Twitter is awesome. Once you start using it, it becomes addictive. I thought it would be fun to write my own.
- Twitter is very popular, but I don’t know of any open source clones. I figured somebody may actually want one!
- Some people think Erlang isn’t a good language for building webapps. I like to prove them wrong :)

Aptana to Offer Platform In The Cloud

28 May

I’m a big fan of Aptana.  Everyone I’ve worked with at Figaro Interactive, including clients who are web devs, I recommend Aptana to – it just works.  Also, it’s the perfect plug in for Flex Builder.  The development is very active and the community is great too.

Just saw in the ‘Message Center’ that they are planning to launch a Cloud Platform – from the eweek.com article:

When released, Aptana Cloud will be the first elastic application cloud with ready-made Web stacks for the most popular scripting languages, “featuring the most popular and widely adopted Web infrastructure, ready to use and scale as you need it,” Hakman said. “You can develop on your desktop and sync out to the cloud.”

Aptana Cloud features ready-to-go services, such as PHP, MySQL and Apache Web servers. In addition, Aptana Jaxer enables AJAX developers to use their JavaScript and AJAX skills on the server-side to build entire applications, data services or presentation tiers that complement PHP and Ruby On Rails.

Veeeeery Iiiinteresting, indeed.  I like the idea and think it’s going to be a smashing success.

Google App Engine Open to Everyone Tomorrow!

27 May

Remember in college when you would skip class because that awesome new game just came out and your entire hall would all get it and play non-stop for 48 hours?  That is how I feel right now because the Google App Engine wait list is going to be opened! From ReadWriteWeb.

Google Hosts Javascript Libraries So You Don’t Have To

27 May

Just found this on google code – google hosts popular javascript libraries that you can load on your site using their ajax API.  They call this their AJAX Libraries API.  Some of the libraries they host:

Loading a library is dead simple:

<script src="http://www.google.com/jsapi"></script>
<script>google.load("jquery", "1");</script>

And the cool part is, you can load different versions of the libraries, notice the second parameter in the google.load() call.



                    

Tortilla Soup with Guacamole

27 May

PHPillow On Top of Couch

26 May

Kore Nordmann recently shared his wrapper for working with CouchDB in PHP, PHPillow.  Check it out if you’re a php-er like me.

Upcoming CouchDB 0.8 Incompatibilities

26 May

cmlenz just posted a wiki page documenting the upcoming changes to CouchDB that aren’t backwards compatible.

Javascript Is The New Cranberry

25 May

Javascript is the new cranberry – It’s in everything! Ok, so this may be old news but I just realized that if you really wanted to, you could build an entire data-driven application using only javascript.

(more…)