It’s been a few short days since friendly neighbourhood Bob Ippolito from MochiAds clued me in to the rev share service’s opt-in distribution tactic. This offering sees developers uploading their games to the site, which are then offered to portal owners so that their games are automagically distributed to anyone who wants them. It’s a lot like putting a plate of muffins stuffed with lit cherry bombs in the park, and listening for the sounds of exploding squirrels.

Proviso: that’s not something i’ve ever actually done.

Curiously, you can’t upload the same MochiAds-enabled file to participate. You have to embed a different piece of code into a “clean” version of your game, otherwise you find this message in your inbox:

Dear Ryan Henson Creighton,

The MochiAds Quality Assurance team has reviewed “Two by Two” for distribution and found aspects of the game which do not meet the MochiAds Program Policies.

Reason:

Stuck at “Loading” screen. Loader apparently not compatible with version control (and not necessary, version control guarantees the content is fully loaded when it begins). See https://www.mochiads.com/community/forum/topic/old-news-but___/47191#47191 for the latest tips for using version control

Please visit the link below to review the reasoning from our QA team.

https://www.mochiads.com/dev/game_hosting/two-by-two

Kind regards,

The MochiAds Team
support THE_AT_SYMBOL mochiads.com

Drat. i understand the problem - i just don’t have time to fuss with it at the moment, because we are closing up shop for vacation next week.

HOWEVER …

There IS some breaking news in the Pimp My Game saga that’s just too good to ignore:

WE BROKE THE ONE DOLLAR MARK!!!
Keep reading »

i’m taking Two by Two from the Untold Entertainment library to see how various online monetization methods for Flash games pan out.

Introduction
Part 1: Armor Games
Part 2: Kongregate
Part 3: MochiAds
………./\……….Update: MindJolt

MochiAds


Part 3: MochiAds

First things first: the MochiAds user agreement keeps me from linking to the site or using the service’s logo, both of which i’m doing in spades here. But since the purpose of this article is to review and critique the service, i claim these usages under Canada’s Fair Dealing provision. And with that, we begin.

Keep reading »

Enter the Chumby

June 16th, 2008

Chumby Logo

We were very excited to receive our Chumby today in the mail. Chumby is an adorable, squeezable bean bag with a cuddly creature-shaped charm on it. You can hold it, cuddle it, or toss it around the room, though that might not be a great idea because it has a computer inside.

Chumby

It’s full of beans. Literally.

The device pulls wireless Internatz content through the ether to display a chain of Flash Lite 3 displays, called “Widgets”, that can do anything from displaying the time and weather to updating you on the latest Chuck Norris legends. The designers built Chumby so that owners can very easily develop content for it, which is then uploaded to the Chumby network to enjoy privately or to share with other Chumby owners. Chumby Industries even actively encourages its userbase to hack the device, providing Chumby schematics and specs on their site.

Long before the Chumby was released, i knew it was right up my alley. i’ve long been looking for a device that will run Flash that i could show off to my friends, and the fact that this thing is encased in a cozy beanbag drove it way beyond “Daddy Wanty” on my “Vapid Materialism Metre”. Unfortunately, the Chumby isn’t the answer to my portable device fantasies that i was hoping for.

Crumby

No device is perfect, and i hate obsessing over the flaws of a device once it’s in my hot little hands, so let’s get this part over with quickly. The trouble with the Chumby, as most online reviews attest, are as follows:

1. Unresponsive touch screen
2. No hardware volume control
3. Wall power required.

This last point absolutely killed me. The Chumby has to be plugged in via its AC adapter and cable to function. My dreams of running through idyllic meadows, spinning my battery-enabled Chumby around in my arms and collapsing into a bed of fluffy dandelions was shattered. The need to plug in your Chumby precludes all kinds of interesting uses, not least of all carrying on a polite conversation with someone about all the magical things you can do, and then proving it by pulling a bizarre touch screen-enabled beanbag out of your pocket and demonstrating your software.

i haven’t owned the Chumby long enough to comment on the missing volume dial, but i immediately noticed that the touch screen was not very sensitive. Regardless, folks with meatfingers like mine are probably best off using a stylus. i can’t even wrap my sausage-digits around the P2 interface to play a lousy song or two.

Samsung P2

Damn you, P2, fer caterin’ to wee FAIRY FOLK fingers!

Untold Entertainment

So with its mandatory wall-tether, the Chumby makes for an expensive, gadget-lover’s alarm clock replacement. i’ll wait until the hardware hackers come up with a cool Chumby Mech Suit that lets your little beanbag walk around the house shooting tiny layzzor beams at your cats. Until then, the Chumby can download and play Widgets for free from the Chumby Network.

i’m still in the process of reviewing the 50-odd games available on the Network to figure out where my Chumby ambitions lie. i am excited to exploit the more unusual features of the device, like the squeeze sensor and the accelerometer.

The Cure for the Common DJ

Even if the Chumby is destined to sit dutifully by my bedside for the rest of its life, i was more than thrilled to unplug my old alarm clock and all but hurl it out the window. For the past few months, i’ve been enduring Toronto radio DJ Bill Carroll talking about how much he hates cyclists. Just this morning, he was talking about the current Toronto police campaign to improve cyclist awarness, and complaining about the fact that he’ll now have to signal before making turns in his car just for the benefit of cyclists, because the police are watching. A few weeks ago, after a cyclist was killed when someone opened a car door in his path, Carroll put the blame on cyclists.

As a cyclist who commutes with his 2-year-old daughter to day care every morning, i don’t enjoy waking up to this guy dangerously misinforming his listeners, tacitly defending motorists who maim and murder adults and children on bicycles. Good riddance, Carroll! Say … perhaps the Chumby could use a “Punch Your Detested Morning DJ in the Face” app?

But no! i must not use my Chumby for evil. i will most likely tool up a quick little game get my feet wet with the Chumby, before embarking on something more ambitious.

If i develop anything that can be played properly on your computer, i’ll be sure to make it available on the Untold Entertainment Games Page. If i build stuff that uses the squeeze or motion sensors, you’ll have to consider getting a Chumby!

i’m taking Two by Two from the Untold Entertainment library to see how various online monetization methods for Flash games pan out.

Introduction
Part 1: Armor Games
Part 2: Kongregate
Part 3: MochiAds
………./\……….Update: MindJolt

Addicting Games


Part 1: Armor Games

Pimp My GameArmor Games is a Flash portal that will sponsor games on a case-by-case basis, with a game’s worth being determined by the site’s moderators. The site owners appear to be very efficient at pimping out games themselves; the Armor Games splash screen seems to pop up in every conceivable corner of the Internatz.
Keep reading »

Pimp My GameIt’s a great day and time to be an independant game developer. There’s a player and developer backlash against the antiquated notion that you need a team of hundreds, a budget of millions, and a timeline of years to create a video game. As the audience for electronic gaming widens, more and more players are satisfied with smaller, faster, and more focussed games that scratch the entertainment itch just as well as a $400 game console and a $80 special edition new release of the hot new game, Totally Shoot Things in 3D.

But while the teams behind Totally Drive Cars in 3D and Totally Murder Hookers in 3D stand to win back their investment and then some in high sales numbers, what’s the best that an indie or casual game developer can hope for? Day by day, there are more and more opportunities for independant developers to monetize their games. In this series, i’ll be taking one of our own games and running it through the setup process for every monetization plan i can think of, to generate some real data on how effective these various methods actually are.
Keep reading »

Veni, Vidi, Video Game

May 12th, 2008

Caveat lector: i write this through bleary, unslept eyes.

The third annual TOJam event wrapped late last night. This year, around 125 developers crammed into a scary warehouse at the edge of town to spend one weekend creating all kinds of video games about cheese. Cheese was this year’s theme. Some developers, like Shawn McGrath and myself were gung-ho to create non-cheese-related products (though for my part, my game contains poetry which is - at its core - terribly cheesy.)

Click to play the fruits of my labour, Here Be Dragons.

Ryan Henson Creighton at TOJam 3

Skilled shutterbug Brendan Lynch grabbed some great shots at the event. Click on the image of Yours Unruly to see the gallery.

Due to some project-related obligations, i wrote to the organizers on Friday and cancelled my participation, forfeiting my spot at the Jam. But fairy tales can come true, and by the end of the day, all the fires had been put out on the project. i packed an extra monitor into my knapsack and biked it down to a dodgy part of the city apparently dubbed “Corktown”, but better known by locals as “ugh.”

Dodgy Corktown

If you see this many dead-end streets and train tracks on Google Maps, don’t go.

Building Games in a Mafia Dumping Ground

When i rolled up to the derelict factory, it was immediately familiar. i had been there before, for a meeting with a pair of Facebook app developers called Refresh Partners. Back then, the place reminded me of the warehouse where Batman knocked Jack Napier (AKA the Joker) into a vat of acid. Apparently, scenes from Chicago were filmed there, as it offered that perfectly gritty bleak brick prison motif.

By luck of the draw, i had one of the better rented chairs in the building, because it had working wheels and armrests. Well - armrest, really, because one of the armrest cushions was missing. The chair owner had jury-rigged a new armrest by binding bunched-up bubble wrap to the chair with electrician’s tape. This assembly, as functional as it was, betrayed the danger of a hidden nail sticking straight up through the wrap. Thank God that my tetanus shots were up to date. i’m willing to suffer slings and arrows for my craft, but i draw the line at lockjaw.

We came and went via a back stairwell, which was home to a dead mouse and numerous other unmentionables that, fittingly, i won’t mention. The hundred-odd (and i do mean “odd”) participants were spread out between two rooms, one of which was stiflingly hot and the other which was freezing cold, thanks to windows that wouldn’t close. i was set up much better than most folks, some of whom were clustered around a shared folding table beneath a fluorescent lighting fixture that hanged precariously from one bolt.

Sleep When You’re Dead

After riding home for some sleep at 2:30 Friday morning, i stayed awake from Saturday morning at 9:30 to Sunday night at 11:00 PM, when the event ended. Being without my air mattress, which i found indispensable last year, i tried to take a nap while lying across three chairs lined end to end, but i was constantly awoken by the carpenter downstairs who spends his early mornings loudly slamming piles of wood together arhythmically. i troddled off to the hotbox room to snooze there, but that part of the building was emitting some strange beeping noise loud enough to keep me awake. At last, there came a vacancy on one of the dodgy couches in the nearby makeshift lounge, but by that time i was too tired to sleep.

That said, i was much more relaxed this year than last, although i think i stayed up the same number of hours. Compare and contrast this year’s photo from last year’s (also by Lynch):

Ryan Henson Creighton at TOJam2

Beware, Amish: spurning caffeine has its hazards

The key difference, i think, is that last year i was determined to prove myself. i wanted to show the world - and particularly my team supervisor - that locking me up writing game documentation for two years was a waste of my talents. To that end, i was dead-set on creating a finished, functional game if it killed me. And it nearly did.

My success this year started with my cancellation. i figured that having missed a day, there was no point in even showing up. With the pressure relieved, i was able to really take my time and tune into the game design process, without worrying so much about being perfect.

The Game

The game i chose to build was one from our internal game ideas wiki called Here Be Dragons. Here’s what the wiki entry looked like:

Sea Monster

It’s Like
That spider game in the junkyard where you pull the spider back like a slingshot to grab flies.

Overview
You’re a sea monster eating ships.

Not much to go on. The entry was in there just to remind me that i really wanted to make a sea monster game. Simple concepts make for simple games. Simplicity is crucial to turning out a finished title in a weekend.

The spider game i referenced was a great little Flash game i remember playing a few years back. You play a daddy long legs in a junkyard. You click and drag the spider’s body to jump up in the air and eat insects. The game was technically very impressive; the spider’s legs programmatically contoured to the shape of the terrain. The artwork was also quite nice. If anyone has a link to the game, please let me know!

i figured the same pull-back-and-release mechanic would be great in a sea monster game. Your monster waits at the bottom of the sea. Pull back and release to swim up breach the water. If there are any boats in your way, you eat them. Bonus points for eating one boat on the way up, and another boat on the way back down.

This all sounded good in my head until i actually started looking at pictures of sea monsters. Somehow, i had forgotten that they were all slinky and snake-like. A mathematical springy game mechanic is one thing, but add to that some chain physics, and suddenly the task seemed daunting. i’m no math wizard, and i never took trigonometry (though i’m aiming to fix this gaping hole in my understanding within the year).

i thought about the game for weeks leading up to TOJam, and eventually conceived of a game where the sea serpent is stationary and the boats move past it. All i’d need is a locked chain mechanic. This seemed a lot more reasonable.

Math for the Numerophobic

i started with an excellent Flash chain physics tutorial by Alejandro Quarto. His example contained all the trig i’d need to find the distances and angles between the sea monster’s neck segments.

Alejandro Quarto's Chain Physics Example

i spent the first few hours of TOJam3 playing with Alejandro Quarto’s balls

In Alejandro’s example, the chain segments detect and prevent collision against each other. This was the first aspect i dropped, because it wasn’t important for my monster’s neck to collide with itself. Instantly, my chain moved much more smoothly. The trouble was that i needed a chain anchored to one point, but Alejandro’s chain was free-floating.

Here’s how Alejandro’s chain works: the last ball in the chain follows the mouse. As it’s being pulled around, all subsequent balls look for a larger-than-acceptable gap between themselves and the previous ball in the chain. If the gap is too large, a ball will tighten that gap by moving along the angle between itself and its companion ball. The gap that Alejandro set is the distance between the balls’ centrepoints, so you get a nice tight chain. (For the sea monster game, i tightened the chain even further so that the segments had more overlap.)

In order to affix the chain to one spot, i had to reverse Alejandro’s logic. First, i told the end segment to stay put. Then i told all subsequent segments to follow the mouse. Finally, i reinstated Alejandro’s logic to keep the each ball from straying too far from its parent segment. i kept the ball shape for the segments because circle segments look the most fluid when bent.

The end result is a really fantastic-looking and -feeling segmented sea monster neck. Thanks, Alejandro!

Programming in a Snap

Finishing off the rest of the game logic was a piece of cake. i made an early decision to angle the sea monster’s head as it followed the mouse, which players really reacted to. There was no magic to it:

Sea Monster Head Angles

i love it when graphics provide the illusion of technical prowess

i just chose a line down the middle of the sea monster, and chose a distance to either side. If the head was within that threshold, it showed its “forward” graphic. Otherwise, it showed its “left”- and “right”-facing graphics depending on which side of the threshhold it was on.

For the y axis, it was the same deal. When the head is within the middle threshhold, show the “straight” graphic. Otherwise, show the “up” or “down” graphic.

This provided the illusion of the sea monster looking around as its head follows the mouse. It’s not a technically brilliant scheme, but it is graphically labour-intensive, requiring nine pictures of the head (six actually, because the “left” pictures could be flipped for the “right” side). Then double that, because each head picture had to have a “mouthOpen” and “mouthClosed” state. Then add a few more pictures of the head with pursed lips for when the sea monster spits out the ship rigging. Finally, i lost the benefit of mirrored images when i added some shadows and highlights later.

Here are all the head images:

Here Be Dragons Head Images

Attention, mermaids: he’s single

Gameplay Polish

The game was pretty well finished by Saturday night, and i had the rest of the weekend to add polish and to playtest. i had a few TOJam organizers sit down with Here Be Dragons. Jim thought the sea monster’s tongue was a laser, and so he didn’t grasp the fundamental game mechanic or goal. To fix this, i took his suggestion and changed the monster’s tongue from purple to pink. Then i added a chunk of code to depict the things the monster was eating being retracted into its mouth; until then, you’d tongue-lash items on the boat and they’d disappear, leaving a more laser-like impression.

Emily wondered why she had to click to spit stuff out. Then i started to wonder that too, and i took it out - now you just have to look up to spit. Both Emily and Jim didn’t understand why the sea monster could eat the mast, sailors and crow’s nest, but not the sails. So i created a rule where anything fleshy was edible, and anything not-fleshy had to be spit out. (One exception is the ship’s hull, which is implied to be full of delicious, crunchy sailors).

Originally, there was only one sailor pacing around the deck. Jim wanted a whole pile of things to eat, so i added a sailor in the crow’s nest, a sailor belowdecks, and a captain in the stern of the ship. Interestingly, most players focus only on the pacing sailor, even though he’s more difficult to catch. i think this is because he’s the only sailor with a sound cue - footsteps on wood. Testament to the power of sound.

Early play tests revealed that it wasn’t clear that the sea monster was spitting anything out, so i added animation of things being spat and landing in the distance. i animated this programmatically, which took much more time than it would to hand-animate it.

When i conceived of the game, i thought the passing ships would shoot harpoons at the sea monster, and that i would have a lives/death/game over system. i asked the other developers whether the challenge of filling the monster’s stomach with hard-to-snag sailors was enough, and they said “sure”. “No scoring?” “Nope.” “No timer?” “Nope.” i came to regret listening to those opinions.

Graphical Polish

i had the luxury of sprucing up my flat graphics with a few more gradients and highlights. Here are some comparison shots:

Here Be Dragons Graphics Improvement #1

Ahh - much better

The Result

The Big Reveal on Sunday evening is always exciting. You have some teams kicking back, relaxing and adding the finishing sparkle to their title screens, while other teams frantically, desperately try to get their core game mechanic to function properly. It’s the thrill of victory and the agony of defeat everywhere you look. When you cruise around to different stations looking for games to try, it’s always a little sad when you find an abandoned station with nothing to show for a weekend’s worth of toiling.

As usual, there were a lot of games that were too complex for their own good. You’d roll up to a station, and the developer would be there, looking all nervous, unable to abandon his post because his game was too complicated for people to figure out on their own.

“Okay okay! So, you put your fingers on the WASD keys to control the movement of the black triangle. Move the mouse to kiss the zombies. Click the mouse button to increase the number of units on the screen, and shift-click to make a sandwich. If you need to drop your superbomb, step on the Rock Band drum pedal. And to look around the room, tape this Wii remote to your forehead.”

i was determined to let my game speak for itself, so i wandered away from my station and kept an eye on players from a distance. i did have to tweak the sailors’ deliciousness level for the demo, because it was taking too long for people to get to the end of the game. Players would abandon the game in the middle of a session, and the next person would sit down in the middle of the game and miss out on the silly poetry that bookended the experience.

In the end, the changes that came from that late-night playtesting served the game very well, but i should have added a scoring system. i implemented the “YOU ATE:” tally screen within the final hour, hoping that the “hulls eaten” tally would inspire people to go back and try to eat an entire ship (the most difficult task in the game), but no dice: there were just too many other games to play.

Tips for Future First-Time TOJammers

Designing a game to hold someone’s frenzied attention span in a room full of nerds n’ noise is slightly different from designing a game to captivate and engage the player across many hours and repeat visits.

i recommend a dead-simple control scheme. Mouse is preferable to keyboard, and single-clicking trumps click-and-drag. i’m already not a fan of clicking and dragging, especially for kids’ games, although all my kids teevee clients ask for it. Interestingly, in the two second timespan it takes for you to sit down to a game and then abandon it, all but one of the TOJam3 games that required clicking and dragging were too obtuse for me to figure out on my own, and i didn’t spend any time with them.

The one exception was Happy Goat Lucky, which used the pull-back-and-release spring mechanic that i had initially planned to use for Here Be Dragons.

And lo, it comes full circle.

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.

AS3 and the Scoop on OOP

April 22nd, 2008

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

MSN Editor-In-Chief

April 21st, 2008

Microsoft is dropping one hundred and forty thousand BillyBucks on an Editor-In-Chief for their MSN Online Services Group.

This Toronto Star job posting is interesting. They’re looking for someone to adapt print graphics to online interactive versions, and to “Conceive, research and create interactive editorial graphics using Adobe Flash”. Sounds like fun!

Proudly powered by WordPress. Theme developed with WordPress Theme Generator by Party Industries & Hogwarts Digital.
Copyright © untoldentertainment.com. All rights reserved.