Main Navigation

Tech Zone

Tax Break U-turn For UK’s Games Industry

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.”

Toby Moore - CTO, Mind Candy

 

This post currently has no responses.

Reducing the Size of SWF Files

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.

This post currently has no responses.

Scrum at Mind Candy

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.

This post currently has one response.

A reflection

So here I am, the last of my 12 weeks as a Flash programming intern at Mind Candy. I’d like to think I’ve brought a lot to the company. I programmed the Underground Disco for Moshi Monsters which went live recently, as well as a few small things that will hopefully pop up in future, but aside from that I’ve tried my best to take an active role in meetings and discussions, possibly to the frustration of my more experienced (but very patient!) colleages.
My main reason for coming here was to learn, to become more experienced in doing what I do in a working environment and as part of a team. I’m happy to say that I learnt a lot more than I expected to! I’m programming in a much more professional way, in a much more complicated but rewarding development environment (FDT in Eclipse). I’ve previously been quite uncomfortable having other people work with my code but here I was introduced to the joys of using an SVN repository which has been pretty painless and very useful for recovering old work. I’ve taken part in pair-programming too which was surprisingly productive and again something I’ve never been exposed to before.
I’ve been involved in all stages of a product cycle, from the wide-eyed aspiration of the initial design meetings to the gut-wrenching final moments before release. Working with designers, artists, animators, testers, and coders of various disciplines really highlights the importance of communication between disciplines, and that going that extra mile, or even inch, to make things easier for other people helps a lot in bringing a whole product together.
In two weeks I’ll be heading back to do the final year of my degree, where I will immediatly get myself an SVN repository set up and write better code than ever before. And hopefully will keep in touch with some of the great people that I’ve worked with. :)

So here I am, the last of my 12 weeks as a Flash programming intern at Mind Candy. I’d like to think I’ve brought a lot to the company. I programmed the Underground Disco for Moshi Monsters which went live recently, as well as a few small things that will hopefully pop up in the future, but aside from that I’ve tried my best to take an active role in meetings and discussions, possibly to the frustration of my more experienced (but very patient!) colleages.

My main reason for coming here was to learn, to become more experienced in doing what I do in a working environment and as part of a team. I’m happy to say that I learnt a lot more than I expected to! I’m programming in a much more professional way, in a much more complicated but rewarding development environment (FDT in Eclipse). I’ve previously been quite uncomfortable having other people work with my code but here I was introduced to the joys of using an SVN repository which has been pretty painless and very useful for recovering old work. I’ve taken part in pair-programming too which was surprisingly productive and again something I’ve never been exposed to before.

I’ve been involved in all stages of a product cycle, from the wide-eyed aspiration of the initial design meetings to the gut-wrenching final moments before release. Working with designers, artists, animators, testers, and coders of various disciplines really highlights the importance of communication between disciplines, and that going that extra mile, or even inch, to make things easier for other people helps a lot in bringing a whole product together.

In two weeks I’ll be heading back to do the final year of my degree, where I will immediatly get myself an SVN repository set up and write better code than ever before; and hopefully will keep in touch with some of the great people that I’ve worked with. :)

This post currently has no responses.