Please install or update your Adobe Flash Player to view this content.
The Lab
Deep within the well looked after bowels of Media Molecule, is the Lab. A non existent room of much importance, where our best brains sneak off to when they think no one is looking. It is here that we develop… things.
These things are essentially by-products - the result of squeezing the creativity from so many talented people all day long, skimming best frothy bits off the top, and leaving the other bits well alone.
They are experiments, or things made by braniacs to help us do our jobs in a slightly different way. They are random little side projects, they are tools, they are toys, they are pretty pictures or snippets of writing.
It is also here, that we slack off and tinker with things, or let our minds wander and think about the things that we’ve been reading or about stuff that inspires us .
We believe in sharing, and we want to share these things with the world. No matter how useless they may seem to be, there might be someone somewhere with a use for them, and for everyone else, they provide a fun insight into our jumbled and constantly whirring brains. And so, we invite you now to peek inside the Lab, and see what peculiar pieces brain fluff have come tumbling forth from the minds of our many splendid creators, or read about the topics that fascinate and tickle them.
The Lab has its very own Twitter feed, and you can subscribe to this blog via RSS - you can even subscribe to individual categories, which means you can subscribe to just the arty stuff, or just the codey stuff, etc, if you like. Check out the feeds page for more info.
Shaun and Vivi’s project
2010May 4th
Shaun and his partner Vivi have embarked upon a new art project!
These photos are an ongoing project that extends our interests first developed in a series of video/gallery installations begun in 2005. We’re fascinated by the potential for confusion, discomfort and other emotional responses to environments (and images of environments) that blur the distinction between actuality and simulation. In these photographs we’re using commercially available doll’s house furniture, which are carefully painted, composed and lit, combined with other “found” bits and pieces.”
Tetris on the ceiling: chapter 1
2010April 19th
Mm is excited to be moving towers soon, to a new shiny office inside a new shiny tower… and in the new tower, for reasons too pedestrian to recount here, the boring standard office ceiling tiles are being replaced with clear acrylic ones. This, of course, is awesome. But in what particular way?
Over a few cocktails and glasses of champagne at Guildford’s entirely un-legendary and slightly creepy The-Shining-esque hotel-bar-blue-light-travelling-salesman-horror-venue ‘The Mandolay’, the Molecules put their heads together. ‘What’, slurred Paul ‘Aggie’ Davis, ‘about adding coloured lights above the tiles?’
What indeed! I feel a lab project coming on…
A little drunken 3 am googling session later, whilst contemplating how one might wire up and control 2000 ceiling tiles with coloured lights, I discovered this rather wonderful chip: the Allegro A6281.
Are all my dreams answered?
Adventures in Austin at SXSW
2010March 27th
Whilst some Molecules were out in San Francisco at this years Game Developers Conference, I was a lone ranger out in the not-so-darkest-depths of Texas. Every year, Austin plays host to South by Southwest (SXSW) - a huge festival merging the worlds of music, film and interactive in one big melting pot of win. I was mostly there for there for the Interactive bit (SXSWi), to discover what’s cooking in the land of the internets and maybe discover some new stuff. It’s nicknamed spring break for geeks.
So, what is hot? What’s buzzing in the land of the internets? Commence Tom-rant-rabble! :)
One Hour Fiction: Rain Patrol
2010March 19th
I set myself a task last week: write 750 words every day. I have not succeeded. However I’m getting married in 8 days so I have an excuse I think.
The story “Rain Patrol” was my first effort under this short-lived regime, a piece of flash fiction written in an hour. It was inspired by this painting:
It’s called In The Rain and it’s by Vitaliy Smyk, a Ukrainian artist. It turns out that the painting itself was a two hour speedpaint, so it seems pretty fitting!
One Hour Fiction: Rain Patrol
For days, it had rained. He had forgotten when it had started and forgotten what being dry was like, becoming accustomed to the mud, the constant companion of damp and the sheer brown of his existence. And then, as suddenly as it always started, the rain had stopped. The clouds parted just long to let the twin suns of this barren, forgotten rock peek through to remind him they did in fact exist.
Three stinking months. That’s how long he had been here, this time round. He still wondered quite why he had signed up to return, knowing that the promises of forging new worlds and bringing hope to oppressed peoples were nothing but empty marketing drivel. Instead, all that awaited him was foot rot, tepid meals consisting mostly of rainwater and a near statistical certainty that he would return in one or more body bags.
His company of men lived in close proximity in what seemed to be a plughole for the whole planet. How did all the water drain here, from both the ground and the sky? Last week a mobile command post had been washed away. Three guys now missing – dead, really – after the building had been torn from its moorings and swept down the valley. He had heard them yelling for help on the radio, but what could be done?
Click me to read the full story, and a few others too.
Jesse Schell’s talk on the future of games
2010February 23rd
Shaun’s iPod paintings
2010February 18th
Lovely browser fonts with CSS3 @font-face
2010February 9th
Some of you might have noticed some rather nice fonts on the new Media Molecule website. Well, I suppose that might depend on whether or not you like them and if you’re using a half decent web browser.
Anyway, yes - those tasty fonts use CSS3’s @font-face rule. Not all browsers support it, but some additional file formats leave you with support in working in IE4+, Firefox 3.5+ Opera 10+, Safari 3.1+ and Chrome 4.0+. You upload the relevant licensed-for-web-use font files to your webserver, telling your web browser where to download the various files from. You can of course read our stylesheet, but for our title font, Museo (from Jos Buivenga’s exljbris Font Foundry) it looks a little something like this:
@font-face {
font-family: 'Museo500';
src: url('/images/assets/fonts/Museo500-Regular.eot');
src: local('Museo 500'), local('Museo-500'), url('/images/assets/fonts/Museo500-Regular.woff') format('woff'), url('/images/assets/fonts/Museo500-Regular.otf') format('opentype'), url('/images/assets/fonts/Museo500-Regular.svg#Museo-500') format('svg');
}
So - .ttf and .otf font files for standards compliant browsers, and .eot files for Internet Explorer 4+, .woff files for Firefox 3.6+ and even an .svg format for iPhone (ain’t that kind!)
Anyway, chances are if you’re not using @font-face already, you soon will be - so at this point I’d recommend www.fontsquirrel.com - a great resource for 100% free for commercial use fonts, complete with a growing collection of “@font-face kits” and incredibly, a free @font-face generator that will let you convert license free fonts for use on the web.
If you’re looking for a wider range of fonts for use on the web, check out TypeKit and Clearleft’s upcoming Fontdeck.
The Middle Lane: A Guide
2010February 3rd
Earth stood hard as iron
2010February 3rd
I spend most days brain-deep in Popit code, but in my spare time I like to exercise my other, other brain and write short stories. If you like reading (the activity, not the town) then make a cup of tea, pull up a biscuit and Are You Sitting Comfortably? Below is an excerpt from Part 1 of a story I’m serialising as I go called “Earth stood hard as iron”.
The dull swirling of Gordon’s frozen breath is the only sign of life in the tiny apartment; Choirboys’ voices lilt softly through the still air from the radio in the kitchen, cutting sweetly through the silence. Gordon sits still as a stone, wrapped in blankets whilst Cal, his small mongrel terrier, keeps his feet warm. The room is cold, barely above freezing, a single bar of the electric fire struggling against the bitter winter. It’s cheaper that way.
Gordon blinks as if waking from a dream, moves to stretch his frozen joints, and flexes his numb lips.
“Come on Cal,” he says quietly, “It’s time to go for a walk.”
They shuffle down the hall to the door, and Cal looks on as Gordon agonises over putting on his coat, scarf, gloves and boots. The laces are hard to do. Finally, Cal’s lead is clipped onto his collar.
“Let’s go.”
The rest is on the other side of this link, so please read on! I hope you enjoy it, feedback is always most welcome.
Down with 64 bit pointers, up with 32 bit indices
2010January 29th
lately I’ve been experimenting with a trick to save space on 64 bit architectures: rather than using pointers (which take 8 bytes of memory! 8! bytes! omg!), I’m using 32 bit indices into a single, gigantic 32 gig block I allocate at startup. as in:
u64 *bigblock=malloc(32*1024*1024*1024); // at startup. or choose a number smaller than 32 :)
struct foo { int x, y, whatever, whatever; };
// later…
u32 myfoo=MyAllocatorForBigBlock(sizeof(foo)); // using a custom allocator of your choice…
((foo*)(bigblock+myfoo))->x=100;
((foo*)(bigblock+myfoo))->y=200;
with some macro goodness, or in C++, a template class that looks a bit like a smart pointer but is in fact not smart, those casts I made explicit above go away it can be made to look really neat:
P<foo> myfoo=P<foo>::Alloc(); // P<foo> is really a 32 bit index just like before.
myfoo->x=100;myfoo->y=200; // the overloaded -> operator does the bigalloc+index thing for us
The indices in my case assume an 8 byte stride, ie all allocations happen on 8 byte boundaries (that’s why bigblock is a u64*), so you can address 4*8=32 gigs with 32 bit indices. For an in-memory database (my use case, as it happens), that’s plenty. I don’t want it swapping anyway, and 32 gig machines are reasonable these days. The compiler seems to do the right thing and generate quite efficient code (eg it keeps bigblock in a register (ecx), puts indices in say edx and does things like mov [ecx+edx*8+4],200)
another cute side benefit is that all the pointers in your system, now that they’re indices from a base address, are sort of ‘position independent’… you can mmap() or fwrite() the entire bigblock to and from disk, and next time you boot, it doesn’t matter if the base address moves, it all just works. no need for pointer fixups or anything like that. win!
kinda makes 64 bit linux/windows feel a bit more like a nice embedded system with a predictable memory map and nice small 4 byte pointers. lovely!




