As part of the Mozilla Festival, Mind Candy ran a 3 hour Game Jam using HTML5. The festival is all about everyone learning how to ‘make’ the web rather than just ‘use’ the web. We know how much fun it is to make a game and wanted to share that with everyone!
Several Mind Candy staff were on-hand to help the teams develop their games, answering questions on Crafty and game design. The combination of training, starter projects and help was a powerful one, leading to several finished games in only a couple of hours!
Not only did we all have a fun time and learned new ways to make games on the web, we at Mind Candy have also become somewhat of a fan of Crafty.js and will be using it more in the future – we’ve already contributed some bug fixes back and expect to have more Starter Games on github soon. If you want to get into game development, this is a great way to start!
Two years ago George Osborne dismissed games industry tax relief but in a surprising announcement today, it seems there has been a U-turn in his decision.
Videogame trade body TIGA have long campaigned for tax relief in the industry and have expressed its importance on many occasions. Canada, the USA, France and Singapore are just a few of the countries that have benefited from tax credits for games production. They have therefore appealed more strongly to investors and jobs seekers leaving the UK industry following behind.
Our CTO, Toby Moore is just one of those pleased to hear about the news. “We’re thrilled to hear about the forthcoming tax breaks for the UK gaming industry” he says. “The move will help smaller companies get off the ground and enable bigger studios to compete for top talent. Tax incentives will help keep local talent here in the UK when competing against other countries who’ve had a much more enticing offering to date. The Government’s recognition of the UK’s tech and creative industries and their potential to produce world class games is a promising step forward in fostering technology, innovation and creativity in the UK economy.”
George Osborne has said that the UK games development industry would help to turn Britain into Europe’s technology centre.
Toby continues, “It’s a great start but much more will need to be done to boost the economy and to really hold the UK up against countries with far greater incentives.”
Over here at Moshi HQ, we’ve spent a fair bit of time looking at how to reduce the size of the SWFs we publish to ensure that the game loads quicker for all our users (and to cut down on bandwidth cost!); here’s our quick checklist that we rattle through to get the most bang for our buck (or in this case, Kb)
Joa Ebert’s Apparat.
Joa is an ActionScript hero (in fact he won an award to prove it); one of his tools is Apparat – a Scala application which optimises SWFs by tinkering with the compression they use. Apparat is a real quick win as once you’ve integrated it into your build process you will immediately being reaping the rewards.
Sothink SWF Decompiler
Yes, number two on my list is a decompiler; this is not a mistake. Sothink SWF Decompiler is an essential part of the optimisation process as it allows you to explore all the assets, ActionScript classes, fonts, bitmaps, etc which are lurking around in your SWF – think of it like a visual Size Report for a SWF.
Making use of Run Time Shared Libraries
Flex developers seem very comfortable with Runtime Shared Libraries, but it’s something that most ActionScript dev’s aren’t so hot on. The MXMLC compiler provides a couple of ways to reduce the size of your published SWF by allowing you to automatically exclude duplicated class definitions across SWFs loaded at run time. The problem is a very simple one; you have a Main application which loads in a bunch of child “sub apps” into the same Application Domain; both of the SWFs end up with the same classes compiled into them (for example, you may be using famework elements in both) – because the Main application SWF has already loaded these classes there is no need to include them into the child swf as well.
The simplest MXMLC compiler flag you can use is, -runtime-shared-libraries, simply point it at the location of your Main SWF when compiling the subapps and it will do the rest for you. Alternatively, Those of you who worked in AS2 back in the day may recall the old exclude.xml; well it’s still alive and kicking with MXMLC, it just goes under the name of -link-report.
The process is pretty straight forward, compile your main application supplying the link-report flag, this will dump out an XML file. Next, compile all your subapps supplying the load-externs flag. Keith Peters goes into more detail on his blog.
Checking our Compiler Flags
This may seem pretty obvious, but it’s important to check; The MXMLC compiler which ships with the Flex SDK supports a crazy number of switches and options, the following options can impact on the size of the compiled SWF:
-debug – Pretty obvious, if you set the debug flag to true when compiling, MXMLC will embed a whole bunch of debugging information to your SWF, bloating out the filesize. The main thing to watch out for is that you don’t end up deploying SWFs compiled with the debug flag set to true on your live server. Sames goes for the -optimise and -verbose-stacktraces flags
-include-libraries – Make sure that you didn’t mean to use -library-path instead! include-libraries will compile the entire contents of a SWC into your final SWF file even if you never actually use any of it! Using library-path, on the other hand, results in only the classes which you import being compiled into the SWF
All of the above require no changes to our existing codebase, but combined have resulted in a massive reduction for the size, and loading time of our SWFs.
For a while now I’ve wanted to write a blog post about how the game development process works at Mind Candy. We use an Agile development process called Scrum, and it suits our business very well.
Over the course of 3 months we recorded an essential part of the Scrum process at Mind Candy: the movement of tasks over our 10 foot tall scrum boards. We have these boards at the back of the office for everyone to see, and it’s a great way for the whole company to get a feel for what features are currently being developed and how well they’re going.
I had originally envisioned a mammoth post going into great detail about how wonderful scrum is for a creative startup like Mind Candy, the benefits it brings our awesome developers and how, as a management team, knowing that we’re always working on the highest priority work to keep our millions of users growing and actively engaged is a great thing, but the irony is that I spent so long thinking about the post that I never actually wrote anything, and that’s what the heart of scrum is all about: releasing the minimal marketable feature as early as possible.
So here you have the first iteration of my post about scrum, as well as the first of hopefully many time-lapse videos of how our processes work at Mind Candy.
If working in a fast paced environment using a process that empowers everyone on the team to create amazing products interests you, then good news! We’re recruiting and we’d love to hear from you.