How Do I Game Design?
OSCON 2013

We ran our game design workshop at OSCON 2013 this year! Thanks to all who came - we hope you had an excellent time! Here are links to the books and papers we talked about at the end of the presentation:

If you have any questions or comments, please get in touch

Animation Basics: Part 1
Rex

This is the first in a series of posts about animation by Rex Smeal, animator, and friend to cephalopod and amphibia alike.

Animation techniques are usually discussed in terms of human figures. However, character animation is a very complex field, harnessing knowledge of physics, natural animal motion, conscious and unconscious physical decision-making of humans, body language, drawing and rendering styles as well as various acting styles - and that’s all before we’ve even set the figure in motion.

This introduction into animation will attempt to cut through all of that obfuscating, jargon-strangled mess, and get to the real nitty-gritty of animation: animation as it applies to ANYTHING that moves, be it a figure, a rocket ship, a bouncing ball or an interface component. Animation is both the art of bringing the lifeless to life, and the science of constructed motion, and neither of those things require a human figure or drawing skills of any kind!

Disney lists 12 principles of animation. In no particular order, they are:

  • Squash and stretch
  • Anticipation, Staging
  • Straight ahead action and pose to pose
  • Follow through and overlapping action
  • Slow in and slow out
  • Arcs
  • Secondary action
  • Timing
  • Exaggeration
  • Solid drawing, and
  • Appeal.

ALL of this is interesting, but MOST of this is related to drawing. I’m going to whittle and compress these down to three headings, and three separate articles: Spacing, Timing, and Spatial Distortion.

In this article, we’re going to look at the first of these: Spacing.

Spacing

Spacing and Timing are very closely linked concepts, and it can be a little tricky to mentally extricate them. Richard Williams (in The Animator's Survival Kit) describes Timing as the time between the bounces of a dropped coin, and Spacing as the movement of the coin between bounces.

Ball Bouncin

What this means is that if we have only one second to move an object from A->B, spacing is how we choose to move it within that timeframe. For example, if an object moves for one second, at 24 frames per second, that means I have 24 instances of the object to place across that timeline.

Sometimes, that timeframe will be open-ended, but our choices on where/how to move objects from frame to frame will still matter. Unless you’re working with some sort of amazing analogue animation device, you will be distributing objects across discrete projected frames, so your choice in how to place them should be deliberate.

Here are a few of the myriad techniques.

Eased motion. Easing is the most commonly used form of spacing, and most animation software packages have some sort of in-built easing function that allows both easing IN and easing OUT. When easing is performed automatically by software rather than defined manually, we call it “tweening” rather than “inbetweening”.

Easing means distributing spacing so that one or both ends of a timeline are compressed, meaning that an object will move smoothly out of an old position or smoothly into a new position. You can use both at the same time to give a sense of the effects natural momentum. The important thing to remember about easing is that it exists independent of timing. The number of frames does not change, just their spacing!

Anticipation/Follow-through About the only thing that moves in a straight line on regular spacing is robotic components. Even then, they’re more interesting if there’s an ‘accent’ to the way they start and finish their motion- anticipation before the motion and some sort of follow-through at the end. All human motion involves anticipation to a certain degree, we move backwards before we move forwards, left before right, etc. It’s only a slight motion, but it’s always present.

Anticipation Follow Through

So before we move an object anywhere, it can make sense to prepare, or to spin our wheels a little first, and once we reach our destination, maybe there’ll be a little overshoot and compensation! You can take it further away from the keys - that is, the start and end points of the movement - for a ‘heavier’ effect, or make the motions faster for a springy light motion.

Arcs Technically, this is a separate issue to spacing, but it bears mentioning anyway, and here’s as good a place as any. In the real world, most things move, to a lesser or greater degree, in arcs. Even if you move along a straight line with your hand, it’s because your arm makes an arc, and your elbow and wrist make more arcs to compensate. Thrown stones, leaping tigers, ocean waves, arrows and even bullets will all arc with gravity.

Afterimages. When spacing gets distant and the moving object is very distinct from it’s background, we sometimes see afterimages. One or more frames of the animation stand out, and leaves a kind of remembered image on your eye. This isn’t usually much of an issue if the animation is only seen once, but in a cycling animation it can make your afterimage-causing frames obvious: it reminds the viewer that they’re looking at a device that can only display images one at a time, rather than a smooth transition that can trick them into thinking that they’re looking at analogue motion.

Anyway, there are a few things we can do to beat this. Using a faster framerate (may not be practical depending on device rate/intensive rendering technique) We can play out our spacing so that there’s no such abrupt frames; if something’s moving really fast, it can sometimes be advantageous to skip these ‘afterimage’ frames. The other thing that we can do is to employ blurs, smears and distortions to negate the jarring visual contrast between object and background, which we’ll cover in later posts in this series!

Join us next time, as we take a look at how timing influences how we see animation!

Recap of PyCon Australia 2013

PyCon Australia 2013 This weekend we were at PyCon Australia 2013 in Hobart! Once again, it was very exciting to have a technology conference in our city. So exciting, in fact, that we sponsored the conference WiFi network. You're welcome! (We attempted to troll our friend --- conference coordinator Chris Neugebauer --- by setting the WiFi password to AskChris, but it backfired in that everyone asked us, rather than Chris. Better luck next time!) Our friends from the Australian Computer Society (Tasmania) also sponsored the conference.

Chris

Highlights of the conference were the three keynotes: Alex Gaynor, Mark Pesce, and Tennessee Leeuwenburg. Alex spoke about the nature of software engineering, and its relationship to art and science. Mark, during a brilliant dinner keynote, spoke about the Internet of things, and his new venture: MooresCloud. Tennessee discussed the use of tools for problem solving and communication. All three keynotes were highly enjoyable, alongside the sessions, and we highly recommend watching them as they become available on PyCon Australia's YouTube channel.

Mark Pesce's dinner keynote

Exceptional conference coffee was again supplied by Ritual Coffee Tasmania. Although we didn't sponsor the coffee this year, it was as tasty as last year --- we can't wait to get a bag of beans to enjoy in the office.

Ritual Coffee Tasmania at PyCon Australia 2013

Lightning talks were also highly enjoyable, as well as CodeWars --- a devious and irreverent coding competition devised by our friend and frequent collaborator Josh Deprez. This year, Paris from Secret Lab, and another friend and frequent collaborator Tim 'McJones' Nugent hosted the event. We're sure that we thoroughly confused all those who participated. It was pleasing to inspire a room full of conference-goers to chant "Bovril! Bovril! Bovril!"

McJones and Bovril during CodeWarsWe spent a lot of time hacking on the Holiday by MooreCloud, a fabulous set of very open and very hackable Christmas lights. Over the course of a few hours of coding (and harassment of Mark), Secret Lab and friends managed to build a script to make the Holiday respond to sound levels, a CPU activity display, a one-dimensional game of life style game, and a native iOS interface to the Holiday. It was all great fun, and we highly recommend that you order a Holiday while it's a little cheaper (they ship in November); it really is one of the coolest, most fun and inventive gadgets that we've seen in a while.

Presenting Holiday by MooresCloud hacksDuring the lightning talks at the end of the conference  the hacks that we'd all made for the Holiday were also showcased. Very cool! The other lightning talks were all highly enjoyable as well.

Our friend, Frank Sainsbury, was the life of the conference (as usual), delivering a surprisingly meaningful lightning talk on helping others, as well as (also as usual) entertaining everyone with his wigs, and assorted props.

Frank, delivering an inspiring lightning talk

Next year, PyCon Australia will be in Brisbane. We're looking forward to it! All our photos from PyCon Australia this year can be found on Flickr. Congratulations to Chris and his team for another successful world-class technology conference.

Also, huge thanks to Rex Smeal for his fantastic art work for our conference poster.

PyCon Australia 2013

PyCon AustraliaOnce again PyCon Australia is being held in our hometown of Hobart, Tasmania, and one again we're sponsoring! We had an excellent time at PyCon Australia last year, and we're really looking forward to learning about the latest developments in Python, how to make games in Python, what not to do with Python, how to test with Python, security and Python, transitioning to Python, and much, much more! Congratulations to our friend and frequent collaborator, Chris Neugebauer (conference coordinator), for putting together such a a great show. PyCon Australia

If you haven't registered for PyCon Australia yet, we strongly recommend you do! It's sure to be a blast.

GovHack 2013

GovHack Tasmania 2013 Over the weekend, the Secret Lab team participated in GovHack 2013. Together with our friends and colleagues we formed a team and hacked a project together, using government data, over the 48 hour event.

The GovHack team included Secret Lab’s Jon and Paris, as well as frequent collaborators and friends Tim “McJones” Nugent, Nic “Winton” Wittison, Josh Deprez, Matthew D’Orazio, and Rex Smeal, as well our friends Frank Sainsbury, Sebastian Cook, and Eloise “Ducky” Macdonald-Meyer. Together, the team built a digital card game called Marvellous Ultimate Appliance, based around Energy Australia’s appliance efficiency and power consumption data.

Team

The game was designed to help raise awareness of the energy usage and efficiencies of common household appliances. We had an absolute blast making it, and can’t wait for next year’s GovHack!

Marvellous Ultimate Appliances

WorkingYou can learn more about our 2-day game, Marvellous Ultimate Appliance, at http://admiraldolphin.github.io. The game was built in Unity, and runs on the web, Mac, Windows, and Linux. We plan to expand on it, with the team, in the near future. Thank you to the Hobart venue, The Typewriter Factory, and the organisers in Hobart, particularly Richard Tubb and Casey Farrell. The food was brilliant, the venue was brilliant, and the constant coffee was exceptional!

Frank, Spirit of GovHack

Special congratulations to our team member, Frank Sainsbury, who won the Spirit of GovHack award for Tasmania. Likewise, thank you to Pia Waugh for organising the event nationally.

You can watch our team's video below.

[youtube=http://www.youtube.com/watch?v=bLppE0mx5DE&w=500] You can view all of our photos from GovHack 2013 in Tasmania on Flickr. Don't forget to check out our project, as well as all the other brilliant projects on the GovHack Hackerspace.

OSCON 2013

OSCON 2013We're very pleased to be presenting at O'Reilly's OSCON conference in Portland once again this year. We're involved in two tutorials this time around! For the first time at OSCON, Jon Manning and Paris Buttfield-Addison will be presenting a half-day tutorial on game design where they'll discuss what makes games fun, how they work, and how you can apply game design techniques to your daily non-game related work. This tutorial is hands-on, very practical, lots of fun, and is called How Do I Game Design?

For the third year in a row Chris Neugebauer, along with Jon and Paris, will be presenting a half-day tutorial on mobile application development with a focus on user-experience. As with the last two years, we'll be using Android as the platform we discuss the most – but everything will be applicable to all mobile platforms. The tutorial is called Level Up Your Apps: Mobile UX Design and Development.

We hope to see you at OSCON!