Archive: August, 2011

Socket.io, NPM, CentOS, gnutar, Chrome 13 and the Big Big Headache

I ran into some issues with Chrome 13 and Socket.io 0.7.x so after a quick Googlywoogly it seems that Chrome is using a new websockets protocol in version 13 and 14. That’s cool, LearnBoost have already fixed the problem so I went to upgrade my Socket.io install with:

npm install socket.io

I get a load of complaints and a failure, something about tar. So some more googlywoogling and it turns out that because I’m using *crappy* CentOS the version of gnutar that’s installed is from 2004!!!! What?!?!?

OK OK, so I gave up with NPM coz I just couldn’t bother to download and install a new version of tar and did the install of Socket.io from the git repo then installed all the dependencies manually as well (which again required some more git repo cloning). After that I fired up Socket.io and STILL I get issues with websockets.

Hmm… so source code scouring and then some more woogles… either Node.js or http-proxy is having issues with detecting upgrades for websockets so I gave up and turned off websockets in Socket.io until the issue is fixed in Node.js (or http-proxy).

THEN…

Using xhr-polling I’m STILL having problems. Seems to keep disconnecting and then reconnecting over and over, regardless of the heartbeat settings I specifiy in Socket.io. Oh god… I wanted to spend this evening actually MAKING stuff, not bug hunting!

After yet ANOTHER Google and I give up for tonight. Maybe it’s just me but I really felt like Socket.io 0.6.x was more stable and better engineered than this new version.

 

Irrelon GameHost Sneak Peek Video

Here’s a quick peek at the upcoming GameHost service’s management console. The console provides you with control over your game instances and source code and allows you to see realtime output from your server-side game scripts as if you were SSH’d into the server directly.

 

GameHost Launch Status

So we’ve missed the 28th… sorry about that.

The Explanation Part

Although we stated that it was only ever an “expected” date, we were working to try and hit that target. We have had some unfortunate delays such as getting dedicated servers installed and configured to our specs, working on the GUI management system to allow you to control your game instances, modify settings and edit your game scripts etc.

I’m sure that with more staff, more time, tons of cash and lots of coffee and RedBull that we could have pulled this off much sooner but unfortunately we’re not yet in a position to hire hundreds of employees and certainly don’t have tons of cash! (We do have lots of coffee and RedBull though).

The Excuse Part

I know there is sometimes a bit of impatience around these sorts of services and projects but I’d ask you to really sit back and think about what is required. Conceptually it’s pretty easy right? How can it possibly take this long? I mean all you have to do is throw up some simple pages to do things like account management, payment processing, create and manage game instances etc. Install and configure Linux on some servers, load balance them, secure them, test them. What’s the hassle?

It’s like I always say, “The idea is the easy bit, anyone can dream up a good idea. It’s the execution that almost no-one wants to do! Anyone who thinks the idea is the difficult bit has never taken a project from idea to execution all by themselves.”

The Apology Part

We’re obviously very excited to get this service up and running ASAP and want you to be excited about it too. We’re sorry we didn’t get it ready for you in time for the 28th and it sucks :(

That said, we’d rather deliver a product that was high quality rather than sloppy and rushed and I’m sure you’d prefer that too! We’re working hard on it right now even though today is a bank holiday in the UK! We’re dedicated to getting this service launched for you so sit tight and watch this post for updates!

Thanks for your patience folks!

 

Hosting, Engines and Flying Unicorns

OK, there aren’t any flying unicorns but we’ve been hard at work getting the hosting service up and running. I’d like to say a big thanks to our beta users who have taken time to provide bug reports and suggestions, and in particular Gaston Borrazas for his excellent help, contributions and patience.

Along with the hosting service we’ve also been making a LOT of updates to the engine. Some of them are purely cosmetic and some of them are seriously useful. Here’s one that’s both:

Coloured Console Logging with Stack Traces

As you can see from the screenshot below, outputs such as warnings now come with a full stack trace on both Node.js console output AND on the client-side browser console! It means you can track down your code issues really easily:

On the server console

Client-side console

 

 

That’s all for now, just a quick update since I’m busy busy busy!!

 

Rendering HTML + CSS to Canvas

One of the problems faced when creating a UI system for our engine that can be deployed on devices that use OpenGL as well as inside of a web browser is that the UI elements that are designed and placed via HTML and CSS have no way of being displayed on a pure OpenGL implementation.

With this in mind I have started to work on a system that can render HTML + CSS directly to a canvas tag so that you get an “image” version of a web page.

You can see an example of this working live here: http://www.isogenicengine.com/html-canvas/test/index.html (click “Render” on the right of the page to see the canvas version get generated).

On the left hand side are the HTML elements rendered using standard DIV tags and CSS stylings. On the right is a canvas that is rendering the same HTML + CSS except as canvas output. The result looks like this (the background colours of the HTML and canvas containers has been set differently so you can distinguish them apart):

Apart from a few minor differences the canvas version is almost identical to the HTML + CSS version. There are some obvious optimisations that can be made to bring the canvas version even closer to the HTML + CSS but for now, this is a good starting point.

The system currently supports:

  • Border settings for left, top, right, bottom including widths, colours and radius
  • Background colours
  • Background images
  • Element positions
  • Element dimensions
Further support can be added easily for stuff like:
  • z-index
  • opacity
  • text output
  • background repeat settings
  • border styles

Feel free to grab the code from the example page or download the archive here or grab a fork from our github repo here: https://github.com/coolbloke1324/html-to-canvas

To run the archive, make sure you are running from a webserver (it uses AJAX!) and then hit the page ./test/index.html

Oh, and if you like this, don’t forget to take 1 second and click the +1 right at the top of the page! :)