CraftStudio Beta release date & Sparklin Wars

Taking a quick break from working on the physics engine integration for the upcoming CraftStudio Beta release to write a bit.

CraftStudio Beta is almost there

I still have a nice big pile of work left, but I settled on a date for CraftStudio Beta and have started getting in touch with the games press…

So, without further ado: CraftStudio Beta will be released a week from now, on Wednesday, April 24th.

ConfirmNewFriend

I’m very excited (and quite anxious) to get it out. I’ve accumulated a lot of very cool new features and improvements (if you follow me on  Twitter, Google+, Facebook or Tumblr,   you might have caught some glimpses of them) and I can’t wait until you can get your hands on it. Also made a shiny new trailer…

I also can’t wait to get back to regular, day-to-day releases. Big updates are stressful because there are many moving parts and (self-imposed, but still very real) deadlines.

Sparklin Wars

(NOTE: Just to make things clear, this is not directly related to CraftStudio)

For those who missed it, I spend a couple of nights last week writing a multiplayer Web shooter called Sparklin Wars.

SparklinWars01

I’ve been itching to write more multiplayer games for a long time and since CraftStudio still hasn’t gained networked multiplayer support (I wonder what the devs are doing, srsly ;)), I decided to see what I could cobble together in as little time as possible with only Web tech. I spent a full night of 10 hours writing the first version and since it was quite fun, I decided to spend another few hours fixing some bugs and adding some more features.

What I built it with (i.e. technical stuff)

The tech stack is a tiny bit hairy, but it’s made of frameworks / libraries that fit very well together and it’s a big part of why I was able to whip up something arguably pretty cool in so little time.

On the server-side, I got myself some Node.js, running the Express.js Web app framework. I use CoffeeScript for all scripts to make JavaScript more fun & less verbose. My HTML templates are written in Jade and my CSS is all Stylus. Jade and Stylus are basically to HTML and CSS what CoffeeScript  is to JavaScript: DRYer, more productive, less cluttered.

Level files are simple PNG images loaded with png-js.

Level02Bigger

Real-time communication is handled by Socket.io which is a WebSockets wrapper (with fallbacks to long-polling & such for older browsers). WebSockets are TCP-based which means there’s bound to be some latency issues but overall, for most people and considering the incredibly basic network implementation I wrote (no client-side prediction or anything)  the game runs impressively well. It was very playable with 20+ people on, which I didn’t expect at all.

On the client-side, rendering is handled by the great Three.js WebGL engine (the same engine that powers the CraftStudio Web model viewer and the upcoming CraftStudio Web player), along with the IEWebGL for good old Internet Explorer.

I also threw in some jQuery in the mix to handle DOM for the chat and scoreboard with less pain.

Future plans

So the game, although still terribly basic both in gameplay and graphics (I’m not even mentioning the terrible sound effects), has proven to be quite addictive.

Being entirely Web-based and letting people join with a single nickname is a huge boost for getting people to play something. Players just link it on Twitter or to their friends and 2 minutes later, dozens of people pour in shooting at another other like crazy :D.

Obviously this has led to some team-killing issues that will have to be dealt with. I’m thinking of having a public room for unauthenticated users and a more restricted room where people have to authenticate with a social account so we can do votekicks, bans & things like that.

Anyway, there are lots of ideas in my mind as to what this could become and the experiment has informed my work towards networked multiplayer in CraftStudio games too… I can’t say too much just yet but expect some cool stuff in this regard in the weeks after CraftStudio Beta is released.