Category Archives: Blog

Fun with the Deaf Culture Centre

We’ve mentioned briefly that among our current projects is a duo of games for the Deaf Culture Centre here in Toronto. The DCC is building a new website to showcase its facility, which houses creative works by Deaf Canadians. The Centre also honours the achievements of other Deaf folks, including teachers, authors, and athletes.

Working with the DCC has definitely been educational. Key to a successful relationship is etiquette, which i don’t always handle well in the hearing world. Here are a few cues to follow when interfacing with Deaf culture:

Considerate/Acceptable

  • waving your hands in front of someone’s face to get his attention
  • stomping your feet or banging on a table to get someone’s attention with vibrations
  • walking between people who are having a signed conversation

Inconsiderate

  • turning someone’s face with your hands to get his attention
  • holding someone’s hands to keep him from speaking
  • guessing at signs. You never know what you’ll accidentally say!

This is not to say i’ve learned all this stuff the hard way. i had a conversation with a friend who’s taught at a Deaf school for a number of years, and she clued me in to a few of these.

i’ve been to the Centre a few times for meetings, and they’ve hired an interpreter. i’ve been very careful to maintain eye contact with the signing person, instead of appearing to carry on a conversation with the interpreter, but etiquette is a different world with sign language. If the interpreter was translating an oral language, i think it would be entirely appropriate to face and lock on to the original speaker. But since sign language is so visual, and facial expression is so important to convey meaning, the speaker signs to the interpreter instead of to me. This is a little awkward, because i don’t quite know whether to face the speaker or the interpreter. i made an early decision to face the speaker, and it seems to work out alright.

Our Foray into Quadrilingual Game Development

The games we’re creating for the Centre are challenging, because they’re in four different languages: English, French, ASL (American Sign Language) and LSQ (Langue des signes québécoise). Both signed languages have to be filmed with actors in front of a green screen. Additionally, the videos have to have voice-overs for players who may be hard of hearing, but not completely Deaf. They also have to be captioned.

If that weren’t tricky enough, the Centre has requested that the games be playable by blind and low-vision players. Since one of the games is a custom skin of Jigsaw!, this wasn’t going to fly. But it is possible to accommodate blind and low-vision players in the larger game, a feat that we feel assured of pulling off. Years ago, i worked on a multiplayer Battleship-style game for blind and low-vision players with the CNIB (Canadian National Institute for the Blind).

The LSQ shoot last week was probably the most complicated set i’ve ever been on:

Translation Diagram

Three different languages make for a tricky shoot

If i wanted to talk to the actor, i had to speak in English. The interpreter would translate my request into ASL and relay it to the acting coach, who would translate the ASL signs into LSQ, and sign them to the actor. The process had to be reversed if the actor needed to communicate with me. To simplify things, communication occasionally devolved into facial-signing pidgin, where through broad, clown-like mugging and angled eyebrows, we were able to get by.

Of course, the nice thing about doing a shoot at the Deaf Culture Centre is that you don’t have to worry about sound. While we filmed, the GO Transit train rattled by on the tracks outside the building, people scraped chairs and dropped things, and a newborn baby cooed and cried while its mom cuddled it. There were even two shoots happening simultaneously, with only a thin curtain separating the green screen space between groups. It was a nice change from having the “QUIET ON THE SET!” guy jumping down everyone’s throats, or killing the shot because he could hear a plane taking off two towns over.

i really quite enjoy the accessibility challenge of developing these games. i know we haven’t perfected the formula by any means, but we’ll be listening closely to player feedback this time around to bolster our expertise, in case projects like these come up again.

Untold Entertainment’s games for the Deaf Culture Centre will debut at their gala on May 10th.

The Myth of In-Game Advertising Perpetuated

A day after i railed against invoking Coke in discussions of in-game advertising, Massively writer Shawn Schuster predictably invoked Coke in a discussion of in-game advertisting, in his post The Eve of In-Game Advertising.

And (as a few of his readers were quick to point out), if Schuster thinks that in-game advertising is just now dawning, i’d really like to take a trip back with him in his time machine to whatever previous decade he’s writing his articles from.

The Myth of Ad-Supported MMOs

One of the questions the moderator asked during our panel at ICE 08 was whether or not the virtual world/MMO racket was a bubble. i said “no”, emphatically, and i’m sticking to my guns.

i do believe that interest and expectations are inflated beyond what the market will bear, however. Just as investors sunk millions of dollars into dotcoms on or around 2000 and that bubble burst, the virtual world/MMO gold rush is sure to turn out a litany of bad projects, and the bubble will burst.

bubble

That sucker’s gonna blow.

But look at us now: eight years later and the Internetz are still around. That’s because it’s too good an idea to just die off. Likewise virtual worlds and MMOs, which triumphantly return gaming to its multiplayer roots. The idea won’t die, but once this first spate of me-too projects launch and flop and a great many people lose their jobs and their money, i expect investors to become much more gun-shy of the genre.

Then, as i mentioned on the panel, once companies produce the proper tools to lower the cost of development, we’ll enjoy a much normalized multiplayer game industry. But believe me, before all that happens, the apparent end will come, and with it much tearing of robes and gnashing of teeth. Ultimately, i blame Coke.

Ad Nauseum

i get nervous whenever anyone new to the game says that his or her virtual world or MMO will be ad-supported, as if advertisers are knocking down the doors trying to snatch up banner space near (or overlays within) these properties. i’ve been building web games for eight years, since the crash, and they’ve almost all been ad-supported. i have war stories to tell.

The debate over in-game advertising rages, and the questions that pops up run along the lines “How much advertising will players accept in your game?”, “Does advertising cheapen the player’s experience?”, and “How can advertising best be integrated into your game without ruining it?”

i’ve seen industry “experts” debate this topic on numerous different panels, and they invariably involve Coke in the debate. Someone will say “For example, if Coke wanted to advertise in our world”, or “i don’t really think our players would tolerate the presence of Coke in our in-game tavern …”

i heard Coke invoked most recently at ICE 08 during the Worlds @ Play panel. The speaker was Barbara Lippe, whose company Avaloop is behind the virtual world Paper Mint. i’ll have to paraphrase her because i don’t have a transcript of the session, but she said something like this:

Players don’t like in-game advertising. If we were to do it, we’d do it tastefully. For example, if Coke wanted to advertise in our world, we wouldn’t want to have Coke actually represented in-game, for example by having Coke logos everywhere or by giving the player actual Coke product. It’s too intrusive. We’d do something much more subtle. The player might find himself on a Coke-sponsored island, but he wouldn’t know it until he walked the entire periphery of the island, and the little fog-of-war mini-map at the top of the screen slowly revealed the shape of the island, and the player would see that the island was in the shape of a Coke bottle.

Ms Lippe earned a doctorate, so i don’t want to suggest she’s out to lunch or anything, but come on. The attitude – and she’s not alone – is so naive that i can actually hear the moving trucks pulling up to offices around the world to repossess all those Herman Miller chairs that virtual worlds start-ups bought with their investors’ money.

shapes

Pictured left is an arguably recognizable Coke bottle. Pictured right is the less-easily-identified “Fantabulous Mister FlimFlamm’s Sweet n’ Crunchy Pig Spankins”. Guess who wants to advertise in your virtual world?

News Flash: You’re Not Gettin’ Coke

Coke is invoked so often, of course, because it’s an incredibly strong brand, and probably one of the most recognized brands in the world. Why, then, would this brand behemoth be interested in advertising in your brand new virtual world to which you’re struggling to attract players? Coke has sponsored virtual worlds, sure, but by my count they’ve come in when the numbers were high enough and the opportunity was interesting enough to make it worth their while, as when Habbo Hotel was pulling in millions of visitors at its peak.

You should be so lucky to get Coke. And if you ever did land them, you wouldn’t dare try to sell them on a subtle campaign where a player would have to spend an hour walking the peripheral of an island to reveal the product-shaped outline on the mini-map. Coke would ask you to drop an enormous logo on the busiest screen in your world so that it obscured all the exits, and they’d ask that the word “the” in all chat phrases be replaced with “i like Coke because it is delicious and wonderful to drink”. And you know what? You’d do it.

You wouldn’t wax philosphical about how you’ll dilute the intellectual property or how the fanbase will criticize you for selling out. You’re running an advertising-based world, and as far as advertising goes, Coke is the holy grail. You will relax your muscles and allow the Coca-Cola corporation to ram its fistfuls of hot, sweaty cash wherever it so chooses.

Coke X-Ray

Welcome Coke to your new virtual world.

But realistically, that’s not going to happen. You’re not gettin’ Coke. You’re not gettin’ Pepsi. You’re not even getting Fanta.

You’re getting V-8. And not the V-8 vegetable drink that everyone knows. That brand is plenty strong. No – V-8 is branching out into vegetable crackers to take on category leader Mr. Christie. That’s who wants to advertise in your world. V-8 Vegetable Crackers.

You’re not getting Nike. You’re not getting Reebok either. You’re getting Dr. Scholl’s. And not the Dr. Scholls insoles that are adored by millions. No – Dr. Scholl’s wants to market their new vegetable drink to take on category leader V-8. (And due to category exclusivity, you actually have to cook up a creative way to promote Dr. Scholl’s Vegetable Symphony without pissing off V-8.)

You’re not getting the latest Harry Potter movie. You’re getting the latest Cuba Gooding Jr. family comedy. You’re not getting Grand Theft Auto IV. You’re getting DS Barnyard Friends. You’re not getting Mr. Peanut. You’re getting NutFun™ Brand Mixed Nuts, now in a resealable pouch.

Advergaming is Nuts

And what’s more, whatever ad overlay you develop for your deeply serious medieval fantasy strategy collectible card game MMO has to specifically promote the NutFun™ Brand Mixed Nuts resealable pouch, and you must convey the brand attributes “portable” and “snackalicious.”

This means that one of the food items you offer in your game has to be NutFun™ Brand Mixed Nuts. And it’s not enough for the players to voluntarily buy them – you have to make the offer more appealing by ensuring that the NutFun™ Brand Mixed Nuts *now in a resealable pouch, when eaten, instantly jack the player’s hitpoints up 300%. And the item has to be reusable, because the sponsor is concerned the player will forget about them once the NutFun™ Brand Mixed Nuts *now in a resealable pouch is consumed.

And just to make sure that as many players as possible buy them, the NutFun™ Brand Mixed Nuts *now in a resealable pouch appear in ye olde item shoppe for free. And to push those numbers over the edge just a leeetle bit more, you end up auto-inserting the NutFun™ Brand Mixed Nuts *now in a resealable pouch into the inventory of all active players. And you qualify “active players” as being anyone who has logged into the game at least once since launch. And the beta.

There – that takes care of exposure. Now, to convey the brand attributes “portable” and “snacktastic”. The “snackalicious” one is easy – whenever the player consumes NutFun™ Brand Mixed Nuts *now in a resealable pouch from the magically-refilling resealable pouch, the avatar shouts “SNACKALICIOUS!!” at the top of his lungs, so that the chat line is broadcast to every player within a 10-screen radius.

You argue to the client that the “portability” of NutFun™ Brand Mixed Nuts *now in a resealable pouch is obvious, since the players can take the NutFun™ Brand Mixed Nuts *now in a resealable pouch with them anywhere. But the client is not convinced, so you slap a NutFun™ Brand Mixed Nuts *now in a resealable pouch logo on the front of ye olde items shoppe and add the tagline “You can eat em anywhere!”

In your final round of revisions, you’re only asked to change two things: upsize the ye olde items shoppe logo 250%, and do something about the fact that players can’t see the NutFun™ Brand Mixed Nuts *now in a resealable pouch logo because the inventory item graphic is so small. You say that nothing can really be done about the inventory item size, because that’s just how the game works, but just to appease the client, you build a special case into your code so that whenever the player rolls over the NutFun™ Brand Mixed Nuts *now in a resealable pouch item, it enlarges to reveal the product logo at a reasonable size.

And all this work is worth it, because it will help you run your game for another month.

One question that often arises is whether or not there are enough interested players to support the coming glut of virtual worlds and MMOs. i think a better question is whether or not there are enough advertisers to support all the supposedly ad-supported projects. i hear a lot of companies bragging about this or that license, or this or that merger that will help them bring Virtual World X to market with all the splendour of Jesus riding a cloud and blowing a trumpet, but i don’t hear any of them boasting about their investment in a strong sales team. i’m talking about a kennel full of guys who all drive Jaguars and work on a high-octane blend of 100% commission and cocaine, who can sell the shit out of your virtual world. These guys bring in the dough it takes to maintain the game and grow the audience so that bigger advertisers – like Coke – come calling.

It’s not enough to have your cousin Larry pick up the phone and cold-call Duracell. You need a sales team. You need a vicious, snarling sales team that can either close the deal or rip out prospective clients’ hearts with their slavering fangs. You need this guy:



And if you think, as some virtual world owners apparently do, that you can implement some magical rule where only advertisers whose products make sense in your game are allowed to advertise, i’d kindly ask you to crawl back into your sparkle-tree in Fantasy Land, and give my regards to your marshmallow pixie pals.

i await you all on the auction floor! i could use your purple-felt pool table and a few Aeron chairs if they’re going for a reasonable price …

AS3 Pitfalls – Cannot Unload Content in Flash Player 9

PROBLEM:

Unloading content (ie external swfs) in AS3 is difficult, if not impossible.

SOLUTION:

My pal Martin Sieg at marblemedia threw me to an article by Grant Skinner – Failure to Unload: Flash Player 9′s Dirty Secret – where the author discusses a player bug that prevents content unloading. The problem impacts gallery-style projects, and sites that use embedded advertising.

Apparently there is no real solution, but Skinner is campaigning for a sandbox mode in Flash Player 10 where you can rope off your embedded content, and prevent it from getting its hooks into your main movie.

A noble effort, Grant. In other news, aid group World Vision announced today that rising food prices have created a shortfall that will prevent them from feeding millions of people.

AS3 and the Scoop on OOP

i was only trying to promote Flex Camp 2 when i launched into a long lament over Macromedia/Adobe’s chosen design path for their Flash software. Industry pal Jim McGinley (of TOJam 3 fame) shared his insights:

Visual Basic programmers had an inferiority complex. Despite the fact VB programmers were building business applications in record speed, VB programmers knew in their hearts they weren’t working with a ‘real’ programming language. Microsoft responded to this, and kept adding C++ features to the VB language, eventually releasing VB.Net. VB.Net is a REAL programming language with ALL of the features and capabilities found in C#. It takes twice as long to build business applications, and programmers love it!

Flash is following this classic pattern. Flex proves that Flash is becoming a real programming language. Eventually, Flash will wind up being C++ (Threads, OpenGL, ADO database layer), forgetting what made Flash great to begin with. Animations produced in the Flash design environment will be replaced by Actionscript code that does the same thing. It will take twice as long to build things in flash, and programmers will love it!

The Primordial Days of Flash

If you’re a college student who’s just been saddled with a Flash course, or you’re keen on creating a little interactive piece for your website, you may now be quaking in your boots at the prospect of wrapping your brain tentacles around Actionscript 3. It may surprise you to learn that Flash (née Futuresplash) was once a great little vector animation tool for artists. It developed a scripting language to help with starting and stopping animations, and supported the occasional button – a button to start and stop an animations, most likely.

i got into the game at Flash version 4, where all the scripts were in a tidy little box. You couldn’t actually type any code. You could only drag and drop the script you wanted into your scripting window, and fill in the blanks. For example, you could drag the playhead control script “gotoAndPlay();” to the scripting window, and fill in a frame number or a frame label to make it read “gotoAndPlay(“act4″);

i loved everything that Flash had to offer except its script controls. Although i never had any success all through my life with programming, i didn’t like coding in Flash 4. i could actually make a whole game by myself, which was great, but it felt like throwing pottery with boxing gloves on.

The upgrade to Flash 5 blew my mind, and marked the first step in my path toward the Dark Side. For the first time, i was able to type my own code. No training wheels, no boxing gloves – all i got was a big blank window. “The power,” i cackled – “the ABSOLUTE POWAHH!!!”

But with great power comes great responsibility (Luke said that long before Uncle Ben, by the bye), and with the freedom to type your own code came the burden of learning the Actionscript language and syntax inside and out – otherwise you’d get a famously cryptic compile-time error. To quote a certain colony of ants released into zero-gravity, “Freedom! Horrible freedom!”

New Designer Features Are Coming, Right?

With each version of Flash that the Macromedia team released, those of us from the design end of the gene pool (AKA the shallow end) anxiously awaited the newest art and animation features.

Would Flash be able to handle text along a path, like Illustrator and Photoshop?

What about curved gradients?

How about a swirl tool? Or the ability to freeform/perspective distort a movieclip?

What about inverse kinematics in Flash? Hell – what about forward kinematics?

Could you make it so that we can select a bunch of movieclips at the same time and swap them out all at once, instead of swapping every symbol instance one by one?

What about range-selecting a bunch of instances across your timeline and giving them all the same instance name with one click, instead of having to individually name all your instances in case you forgot to name that first instance before you went ahead and animated it across 300 frames?

How about time stretching? Can Flash time-stretch our animations in case we have to change the frame rate in the middle of a project?

Text Along a Path in Illustrator

Illustrator flagrantly mocks me.

No? So what do we designers get, then? Photoshop-style filters? Ok … alright. So after eight years of waiting, you’re giving us Photoshop-style filters like blur and drop shadow?

Hey uh … hey Adobe: 1997 called. THEY WANT THEIR CUTTING-EDGE DESIGN FEATURES BACK.

Toon Boom

Back when i was working at Corus Entertainment, a media conglomorate with several national stations boasting millions of viewers, i was trying to make a case for building the entire YTV.com site in Flash. We got pretty close, but the idea was eventually tossed when a new concept called “Search Engine Optimization” reminded everyone of Flash content’s depressing opacity. Still, i contacted Macromedia many times asking for support and advice, sharing site links with them to show off our department’s work and generally trying to bring on the love, but they weren’t having it.

Corus animation studio Nelvana seemed to have a similar problem. They animated a few different shows entirely in Flash, including Jacob Two-Two, which must have been a nightmare without any sort of linkage feature to sew characters’ limbs together. Plucky young upstart Toon Boom Studio listened to them and began building the features they requested, which included parallax background scrolling and a Maya-style hierarchy for all the kibbles n’ bits within a scene. Nelvana phased out Flash after a couple of years, and even bought Toon Boom to ensure that the software would continue to develop with animation production in mind.

In the end, the squeaky wheel gets the grease. And in the case of Flash, the nerds bemoaning improper coding practices won out; its scripting language was developed and refined until today’s Actionscript resembles many C-based languages out there. And aside from the occasional blur effect, the art and animation tools remain almost identical to the version i started using eight years ago in 2000.

Quick – Code this in Ten Minutes!

The fallout that i’m faced with is this: AS3 is not fast. Sure, it may be fast to the user, but that’s because the Flash virtual machine has offloaded the burden of figuring out a lot of junk onto the programmer. The result is that projects that i could quickly bang out in a week now take at least twice as long to build.

It’s not because i don’t know Actionscript 3 like i know Actionscript 2. i spent two months, eight hours a day, retraining myself to use AS3, and here’s my verdict: it’s simply slower. The fact that it forces an OOP (Object Oriented Programming) methodology on me means that instead of this:

var myWidget:Object = {};

i have to type this:

namespace ohGod.makeItStop.whattaPainInTheAss
{
    import flash.whoCares.thisTakesTooLong.SomeNonsense;

    public class Widget extends SomeNonsense
   {
         public function Widget()
         {

         }//constructor
   }//class
}//namespace

//*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*//

// Meanwhile, back at the ranch:
var myWidget:Widget = new Widget();

Count up those keystrokes. That’s a whole lot more typing.

Beyond that, there’s a whole lot more thinking and planning involved. You should no longer say this:

var myNum:Number;

… because the Flash Player wants to know what kind of number you need. Is it going to be signed or unsigned? With a decimal or no decimal? What’s the highest amount that number will ever reach?

You know what? Sometimes i have no idea. i don’t know, Flash. You tell me. i don’t want to have to go traipsing through additional manuals looking up the limits of your number datatypes because i don’t have time.

Many of the projects that we build at Untold Entertainment have a programming element of one to two weeks, max. It’s actually a competetive edge that we’re able to code so rapidly. So while OOP and strong-typing and proper class architecture are all nice things to have, so is a finished project.

Enemy Mine

Programmers just LOVE OOP because, theoretically, you can create modular, portable code that you can reuse in project after project. This is all true in the application world, where buttons all act in similar ways and windows all do the same nonsense from app to app. In fact, one could argue that applications are better when they adhere to a shared sense of design. i want to know in every app that when i click that the little underscore button on a window will minimize the window, instead of adjusting the application’s volume and installing a new graphics card driver for example.

Casual web games are a different story altogether. Some elements are handy to reuse – particularly a high score module, a timer, a Button class, a Sound Effects controller, and an on-screen Prompt or Dialogue routine. But OTHER elements, like the fire-breating fish who revolves around the central pivot point of the planet graphic shooting fireballs at a 37 degree angle and reacting to the player’s crossbow shots by randomly jumping or rolling – THAT kind of thing is a different story altogether.

Yes, you can build the fire-breathing fish using OOP methodology. You’d probably start really generally, maybe with a Character class. “Enemy” extends “Character” and inherits, maybe, a hitPoints member, and perhaps it has its own fire() and dodge() methods. That all sounds great – straight out of an OOP text book.

But then your next game has an evil squirrel enemy that walks orthogonally through an isometric environment, picking up any atomic acorns he finds and intermittently firing up a deadly force field.

Again, you can revisit your enemy class and tweak it so that your new enemy works, but those two Enemy cases are so different. There’s no way your original Enemy class is going to suit this new enemy character, because you simply can’t see into the future. You can’t foresee all your Enemy needs. And when “the future” is only two weeks away and you have to slam together the code for your current project, you’re not likely to futz around building the perfect reusable Enemy class all week.

Screw OOP

So screw OOP. Yeah – i said it. Object Oriented Programming is fine for organizing code, and certain things can be reused. But by and large, if you’re the type of user who doesn’t have a nine-month Flash project mapped out on a Gantt chart and hung on a wall so that you can interface with the twenty other people on the project and negotiate dependencies, then Adobe and Macromedia have totally screwed you – first by requiring you to adopt a methodology that’s only going to slow you down, and second by failing to deliver design features that actually would speed up production, such as those i mentioned earlier.

But hey – at least we’ve got blur. Perhaps in eight more years, the Adobe Flash gods will smile on us and give us lens flare.

Lens Flare