Category Archives: Blog

Hello to everyone at ICE 08!

i’ve been asked to speak at ICE 08 as a last-minute replacement. ICE, or Interactive Content Exchange, is Interactive Ontario’s major annual event. The conference draws broadcast, mobile, online and console delegates from as far away as Sudbury.

ICE is also an acronym for the International Congress of Entomology, and a trade show for the gambling industry. So if you lose your house in a business deal or you feel something unpleasant crawling up your leg, you may still be at the right conference. *drum fill*

Bug

If this guy asks you to sign some kind of contract, just do it.

If you came to the site from the conference and clicked on the Blog Monster, you most likely want to see what we’re all about. Our Games gallery is slim pickins these days, because all the interesting development is going on behind the scenes:

We’re creating five games for a Canadian kids’ teevee production company. The site will launch this summer.

We’re building two games that will be accessible to both deaf and blind players (that is to say, players with one disability or the other … Helen Keller would have a bit of trouble).

Additionally, we have been invited by two different companies to create two massively multiplayer online game demos. One of these companies wrote the book on the genre. We are extremely excited to be working with them!

If you’re here in the midst of a boring panel (hopefully not the one i’m on), here are a few Untold Entertainment articles for your interest:

The Democratization of Game Development

voting button

This year’s trend at the Game Developer’s Conference in San Francisco was the sit back, relax, and let your players build the game for you. i approve.

Prince of Persia, Prince of Peace

Calvary Invaders

A mercifully brief jog through the history of Christian video games, and why i’m thankful that Jesus forgives.

Ryan Creighton on The Agenda with Steve Paikin

The Agenda Logo

Steve grills me on gaming for the elderly, mass market video games and how EA’s Rock Band will save the music industry.

Kids Eagerly Await Nickelodeon’s Next Shipment of Ass

ESRB Mature Tomfoolery

How a supposedly legitimate children’s broadcaster shovels schlock to its young audience, right under parents’ noses.

Canadian Game Journalism: Not Worth It

Ronald McWho?

A serious number-crunching leads to the conclusion that Canadian game journalism rivals a McJob.

Video Games Teach Kids to Gamble

video game gambling

Twenty hours into every Pokémon game, the (likely) pre-teen player walks into a full-fledged casino. At a time when bashing video games is en vogue, this topic is conspicuously missing its fair share of outrage.

AS3 Tutorial – Math.random()

i haven’t written many Flash tutorials because i feel like a bit of a poser. i see the brilliant codeheads posting these tutes to make Flash do incredible things and i think “man – that’s leagues ahead of where i’m at.” But i forget that with eight years’ experience using Actionscript, i do actually know a thing or two that will help someone new to Flash/Actionscript.

This article is from an email i sent to a Humber College student explaining how to pull a random number in Flash, how to make it an integer, and how to get a random number within a range.

The student, Michael, was creating a game with an asteroid belt. He wanted to randomly distribute the asteroids along the y axis, and to give them a random speed value within a range. The range would increase with each new level.

~~ BEGIN TRANSMISSION ~~

Hi Michael.

Whenever you want x amount of something, that’s obviously your cue to create a variable. So since you need x amount of asteroids, let’s make a totalAsteroids variable:

var totalAsteroids:uint = 5;  // you can tweak this value up or down, of course

The other two things you’re looking at are random numbers within ranges. You need a random number within a range to distribute the asteroids along the y axis. You need a random number within a range to determine the speed of the asteroids, which goes up (i assume?) each level.

So! Here’s the basic random code:

var someNumber:Number = Math.random();

That’ll get you a decimal number betwen 0 and 1. Try running this code a few times in Flash to prove it:

var someNum:Number = Math.random();
trace(someNum);

You just multiply that number if you need a bigger range. Look at this:

var someNum:Number = Math.random()*5;

That will give you a decimal number between 0 and 5, because everything has been multiplied by 5.

Decimal numbers might not serve your purposes well. Here are a few ways to clean up your someNum result:

var someNum:Number = Math.floor(Math.random()*5);
// gives you 0, 1, 2, 3, or 4 by "flattening" the decimal number
var someNum:Number = Math.ceil(Math.random()*5);
// gives you 1, 2, 3, 4, or 5 by raising the decimal number
var someNum:Number = Math.round(Math.random()*5);
// gives you 0, 1, 2, 3, 4, or 5
by rounding the decimal number up or down

See? You just wrap Math.roundingMethod() around your Math.random() method. You stick your Math.random() statement inside the Math.roundingMethod() brackets.

So far so good. Now what if you need a random number within a range? Say, any number between 5 and 20?

Well, 20 minus 5 is 15. That’s your range. You need a random number out of 15.

Then just add the lower limit (5) to bump the number up. Does that make sense?

var someNum:Number = Math.ceil(Math.random()*15);
// gives you 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, or 15
var someNum:Number = Math.ceil(Math.random()*15) + 5;
// gives you 5, 6, 7, 8, ,9 ,10, 11, 12, 13, 14, 15, 16, 17, 18, 19, or 20

So really, we could knock all these numbers out and just use variables.

var minLimit:uint = 5;
var maxLimit:uint = 20;
/* These two variables change
depending on the level of the game.
To be more specific, they'll probably
be called minSpeed and maxSpeed.*/

var range:uint = maxLimit - minLimit;

var someNum:Number = Math.ceil(Math.random()*range) + minLimit;

This works for your asteroid speed. It also works for asteroid placement. Do you see how? You’re just telling Flash the minimum limit for asteroid placement (somewhere near the top of the gameplay field) and the maxiumum limit (near the bottom of the screen). Then you pull a random number within that range and bump the number up by adding the minLimit value.

To create your asteroids field, loop through your totalAsteroids value, and for each asteroid you add to the screen from the library, get a random number within range and set the asteroid’s y position to that result.

for(var i:uint = 0; i

Obviously what's missing here is the game's update and draw loops which will position the asteroids and position their graphics. i'll save that for another post.

Addendum: Props to SmilyOrg from #actionscript on EFNet for the random direction code. i use it all the time, and i always forget how it goes.

AS3 Pitfalls – Dude, where’s my _xscale?

PROBLEM:

MovieClip._xscale (or MovieClip.xscale) does not light up as a recognized property in AS3. It’s not even listed as a property of the MovieClip class in the documentation. What gives?

SOLUTION:

_xscale and _yscale properties have been replaced by scaleX and scaleY, which are both properties of the DisplayObject class. MovieClip (eventually) extends DisplayObject and inherits these properties.

The second snag is that scaleX and scaleY percentages are now divided by 100. Whereas before, MovieClip._xscale = 100 displayed the clip at its native width, MovieClip.scaleX = 1.0 is the new hotness.

MovieClip._xscale = 100; // Displays an object at its full width in Actionscript 2
MovieClip.scaleX = 1.0; // Displays an object at its full width in Actionscript 3

Take care when porting AS2 files to AS3.

Kids Eagerly Await Nickelodeon’s Next Shipment of Ass

Kids’ entertainment juggernaut Nickelodeon announced this week that it will blow out its already 5000-strong game library by 1600 more games, including three more kid-based MMOs, according to Joystiq. Pursuant to my admittedly unprofessional rant a few weeks ago, Nicktropolis Looks Like Ass, i have to wonder whether the newest projects in development over there will follow suit, or if they’ll pay closer attention to quality.

Certainly, Viacom/Nickelodeon’s acquisition AddictingGames.com isn’t exactly a bastion of quality. i was actually astounded when a supposedly reputable corporation like Viacom, with shareholders n’ everything, and a reputation for making quality kids’ entertainment, picked up AddictingGames. Let’s take a quick tour through the library shall we?

i dip into the Action game category and come across two gems. First up, there’s Light People on Fire, where your goal is to run around setting as many people on fire as possible. Innocent bystanders include (naturally) mothers pushing baby carriages.

Light People on Fire

On teevee, Beavis and Butt-head get sued for it. Online, Addicting Games revels in it.

A few icons down i notice Cannon Crotch, by “F****N Amazing Games”. In it, you must destroy Adolph Hitler’s reanimated corpse with your crotch-mounted cannon before he uses a laser to blow up the moon.

Cannon Crotch

In what bizarre world is this an appropriate game for kids?

There’s High School Cheerleader, where your scantily-clad character pulls off dance moves in a low-cut top while pervy students watch from the background, and Blood Car 2000 Delux, which has you running down as many pedestrians as possible with your car. Blood Car 2000 Delux proudly states that it’s “Rated M for Awesome”.

No Ratings for Young Gamers

In all my time on the site, i didn’t see a single bona fide ESRB rating or content warning on any of these games.

Addicting Games is one of these online kids-only havens that adults don’t really know about. In every user-focus test i ever did with a room full of kids, we’d let them surf wherever they wanted, and inevitably they’d end up at Addicting Games. The site’s acquisition by Viacom/Nickeloden certainly ensured that adults heard about the site, but honestly: how many adults have actually played the games there? i assume most grown-ups who have visited Addicting Games have followed the link after reading about the acquisition in the trade papers and, after seeing the overwhelming array of icons, promptly left.

i worked at a teevee station that received regular viewer complaints about its programming, most of which came straight outta CrazyTown. One father was very upset that some characters in a show were pretending to be pirates, because pirates “rape and murder people.” Over-protective, i think, but somewhat fair. But imagine the gasket this guy would blow if he found his kid poking around on Addicting Games.

It’s a lot like the fact that Video Games Teach Kids to Gamble. No concerned grown-up ever bothered to drill 20 hours into a Pokémon game to find the full-fledged casino. Likewise, no adult seems to care that while teevee adheres to some pretty tight moral standards, the kid-targeted online world is packed with crap. What’s worse, the people behind this site aren’t shadowy, hard-to-find folks like pornographers – they’re bloody Nickelodeon. It boggles the mind.

Concerned Parents Gotta Step Up Their Indignation

i suppose that concerned parents can only be concerned about what they see, and they’re not bothering to see all aspects of kid culture. Maybe parents can only be so concerned?

Or maybe it’s another symptom of media dinosaur thinking, where somehow the teevee rules don’t apply to the Internetz? (see Building a Coffin for Nielsen) Who knows? You could even chalk it up to the old habit of thinking that certain kid-associated media are “safe” (cartoons, video games, etc). That mode of thinking has proven particularly tenacious.

Fed Up

Don’t get me wrong. It’s not that i think playing Light People on Fire will turn kids into raving mad pyromaniacs, or that kids can’t see that the cheap autocidal thrills in Blood Car 200 Delux aren’t a great idea in real life. i just get a little peeved that parents like the Pirate Dad get so irmy about the slightest breach of ethics on teevee, yet Viacom is hosting this overboard, lurid junk-culture free-for-all online and no one says a word.

Trash

There’s no shortage of trash in this world.

i worked for Big Media creating advergames for kids. i’ve had my fill of feeding junk to children; i feel the need to purge. The next product i create for children, if i ever hoe that row again, will uphold a solid value system. It will affirm the sanctity of childhood. And it will be a restorative, detoxifying experience for the kids fattening themselves on the trash fed to them by Nickelodeon and Viacom.

In Praise of Google Analytics

My industry pal Jim McGinley, one of the folks behind TOJam, turned me on to Google Analytics just as i was launching my site this past year. i assume that, being from Google, it’s insanely popular and everyone’s already heard of it. But in the off-chance that you haven’t, and you’re still using your website host’s tracking software like Awstats, give this post a read.

Google Analytics starts working when you throw a small piece of code on your site. They’ve also written code to track actions within your Flash files. My main site is entirely built in Flash, but i’m able to hit Google’s javascript code using fscommand to track hits on subpages like “Games” and “Services”. If you have a Flash (or otherwise) game on your site, you can track things like the number of times a player clicked the “play again” button to get a better idea of how sticky your game is.

i won’t bother outlining how to add the code to your site or your Flash file – the Google folks have done an excellent job of that on their Analytics site. In all, i remember it taking about fifteen minutes, tops, to rig up my entire site.

Hello to My Friends in Biggleswade

One of my favourite featurs of Google Analytics is the map view. This clickable diagram highlights the areas of the world where most of your traffic is being generated.

Google Analytics Map

Untold Entertainment: Big in Cambodia

The darker the area, the more traffic you’re getting from that country. Pretty neat. But i didn’t realize just how granular these data become until just this morning, when i started poking around the map a little. You can drill all the way down to the city or township that generated the hit. This is an uncommon thrill that feels a little like aiming a camera satellite into someone’s bedroom. i’m sure it’s only a matter of time, actually.

Biggleswade

Google Analytics puts Biggleswade on the map

GOOOOOOOOOOOOAALLL!!!

Google Analytics is largely a promotional tool to sell things like Google Adwords and Adsense, but you can use it for free (for now) as much as you like. i’m sure they’re using these data for their own nefarious purposes anyway. (Who actually reads those Terms of Service?)

One of the features of Analytics that’s meant to drive Adword sales is the funnelling/goals tool. You can use it to set up paths through your site to ensure people are doing what you want them to do – for example:

site membership info page > sign-up page > membership confirmation > t-shirt shopping page > checkout page > credit card entry page > thanks for your hard-earned cash page

You can assign dollar values to these goals. My site is meant to advertise my studio, so instead, i’ve just created two very simple goals to learn about the flow on my site.

One goal is from the website proper to the blog. The other goal is from the blog to the website.

Google Analytics Goal Conversions

Pro Tip: Try not to base major site strategies around one day’s worth of stats tracking.

If Google Analytics reveals that very few people are going from the blog to the website, i’ll probably have to jazz up the logo in the corner of the blog, or cook up more ways to drive to the site (getting better game content on my site is a good start ;) It will also address my suspicions that no one hits the site from search engine anyway. That’s the biggest drawback to having a Flash-only website. That’s actually what this blog hopes to remedy … but if no one is going to the site from the blog, i may be wasting my breath here.

More Bounce to the Ounce

One fun stat to try to chip away at is the Bounce Rate. This is the percentage of people who hit your site (usually from a search engine), see that it’s not what they’re looking for, and leave immediately. i relish the thought of creating a site that’s so fun and interesting that people who don’t find what they’re looking for stick around anyway. To lower your Bounce Rate is to cultivate your inner PT Barnum. As an entertainer, i see a low bounce rate as a direct reflection on my ability to entertain.

Sexy Ringmaster PT Barnum

Sexy and famous ringmaster PT Barnum, after whom the Chrysler Cruiser was named. All true. Step right up.

Presently, my bounce rate is up around 90%. Pardon me – i have some web-only circus dogs to train.