Integration: Chrome Web Store

Publishing your web app on the Chrome Web Store is so straight forward, not doing so almost seems foolish!

Create a zip file containing a folder “chrome_app” and inside that two files:

  1. 128×128 png icon file
  2. manifest.json file
The manifest we use for Illyriad looks similar to this (make sure the icon field matches the name and case of the icon in the zip):

[code lang=”javascript” title=”manifest.json”]
"name": "Illyriad Test",
"description": "Real-time massively-multiplayer…",
"version": "1.0",
"app": {
"urls": [
"launch": {
"web_url": ""
"icons": {
"128": "Logo-128.png"
"permissions": [

Your launch web_url should be either your login page, or if not required the main app page. If you do require a login page it’s also advisable to accept Google OpenId, at which point you can bypass the login page for CWS users who have a Google account and have approved you; but more on this in a later post.

To publish your app and access the developer dashboard a one-off developer registration fee of US$5.00 is required to verify your account, and presumably to cut down on spammers.

In the CWS developer dashboard click the Add new item button, which will take you to the upload app page:

Choose the zip file you created earlier and upload it:

Once you have uploaded your zip you will be taken to the Edit item page. First thing to do is upload the Icon you used in the zip file (unless you want a different icon in the Web Store to the one to be displayed in Chrome)

Now you’ll want to marketing materials. You can choose at the bottom of the page “Save draft and return to dashboard” if you don’t have these ready yet, so you can return to editing later. The items you’ll want are:

  1. A detailed description (Focus on explaining what the item does and why users should install it)
  2. Some screenshots (400 x 275 pixels or proportionally larger)
  3. (Optional) A YouTube video
  4. (Optional) A background image to show on your app page
  5. (Optional) 2 promotional images

After adding these on the edit item page, choose a category to publish in and then click “Preview changes” to see what your item will look like. If you like it hit publish, else return to editing. At this point you are published! Easy!

There is lots more you can do, of course, you can publish to test users first, use a verified website,  change your pricing – your apps don’t have to be free, you can change the pricing and also sell apps from the Web Store – it is a store after all! But this should get you on your way…

Research Tech: Graphic Sneak Peak

Hey folks!

Thanks for stopping by the new Blog, we’ve got a lot of exciting stuff coming and this is going to be a great platform for the development staff to showcase all the new things that are coming down the pipe for Illyriad.  I just wanted to post a sneak peak of some of the new graphics that will be implemented to the technology tree.  The following is just a sample of many pieces that will adorn each technology in each tree.

Hope you’ve enjoyed a sneak peak of what’s to come.  More to follow in the coming days!

Release: A World of Change

Illyriad, the on-line strategy game, today announces the start of a major World Update, changing the nature of the gameworld, and marking a major step forward for free to play strategy games.

In place of an unchanging world defined by its geography (terrain, climate, etc.), Illyriad’s World Update sees specific features, buildings and Factions impact different areas of the map. This creates a fully immersive world, with unprecedented depth and continuity, which can be explored by players over a period of weeks, months or years.

“We’ve always been clear that players should have unique experiences in Illyriad,” explains founder James Niesewand; “Just because Illyriad is free to play, does not mean that it should be shallow or predictable. The idea of a strategy game where everyone does the same thing, with their cities notable only for having different coordinates on the map, has never appealed to us. As gamers, we want more depth, we want everyone to experience a world differently. And so, as developers, that’s what we’ve introduced here.”

The World Update began this week, and will continue to be revealed for several months. For a browser game already praised for its thoughtfulness, depth and originality, this further evolution continues to place Illyriad at the forefront of innovation within its genre.

“Two days ago we started ‘infecting’ the geography of one part of the map, and the community immediately noticed,” James Niesewand continues. “They have been investigating it and gossiping about it ever since, as they watch the map change on a daily basis. At the same time players have started to find and explore some of the other features that we have added to the map. Of course, by the time they have found them all, we will have added a new batch to the world. There is far more content here than we want to release in one shot – far better for the players to have the pleasure of watching the changes unfold at the relaxed pace that is typical of Illyriad.”

The newly evolving world of Illyriad can be experienced at, with the first changes in the World Update already in place.

(Fix) Memory Leaks: IE and JQuery 1.4 Ajax

While testing Illyriad we found that over time the browsers IE7 and IE8 leak memory on Ajax calls using JQuery 1.4.

If you make a lot of ajax calls without changing page this can build up quite quickly and start causing issues. This is caused by the onreadystatechange event not being detached and IE not garbage-collecting the associated memory.

To fix this, locate these lines in the source JQuery file; already kindly annotated with “Stop memory leaks”:

[code lang=”js” firstline=”6019″ title=”Original jquery-1.4.4.js”]
// Stop memory leaks
if ( s.async ) {
xhr = null;

Add in these extra lines to change them to the following (we detach the abort event also for good measure):

[code lang=”js” firstline=”6019″ title=”Modified jquery-1.4.4.js”]
// Stop memory leaks
if ( s.async ) {
try {
xhr.onreadystatechange = null;
xhr.abort = null;
} catch (ex) { };
xhr = null;

Don’t forget to minify your jquery file before including it. [We prefer using UglifyJS]

Also rename it slightly so users with cached versions pick up the new file

e.g. jquery-1.4.4a-min.js