i participated in the Movember event to promote men’s health awareness this year by growing a most exemplary moustache. Regard:
We didn’t actually ask anyone for money, as i’m plagued with conspiracy theories about the efficacy of cancer research and the heaps and gobs of money people are throwing at it with no cure, vaccine, or pissed-off mascot in sight. i will, however, wear my moustache proudly for the sake of awareness, and will pass on any tidbits about dickrot or ballsarrhea that i find interesting.
This is the second part of our tutorial series by Intern Sina on creating an AIR application for free on a PC using FlashDevelop, and deploying it as a native app on an iOS device like the Apple iPad, iPhone or iPod Touch.
Without a doubt, this section of our tutorial series on bundling your Adobe AIR App for Apple’s iOS platform is the pits. You have to use a complicated command line interpreter, you have to juggle what may feel like a million different certificates and profiles, and you have to jump through a dizzying array of hoops just to get everything set up … and you’re not even going to start building your app at all! But trust me: once you’ve cleared these hurdles, the rest of the process is gravy.
Thick, delicious gravy.
The first goal of this tutorial is to create a signing certificate, which is used very much like a hot brand on cattle. It’s the digital signature of you or your company that identifies an app as your own. We need to use a program called OpenSSL to create this signing certificate.
Install Open SSL
In order to turn your future AIR project into a native app, you need to create two important files: a Signing Certificate and a Mobile Provisioning Profile. If you are working on a Mac, you actually use a program called Keychain to do some fancy voodoo magic and get the certificate you need. We are working on a PC and we do not have that luxury, so there are a couple of confusing steps that we must go through.
The first thing you have to do is go to http://www.slproweb.com/products/Win32OpenSSL.html. Scroll down, and then download the Visual C++ 2008 Redistributables and install the resulting file. Next, download the Win32 OpenSSL v1.0a Light file and install that after you have installed the first package. These two files will help you create the Signing Certificate Request you so richly deserve.
Be sure to keep track of where you installed those last two elements. Next, visit this site:
These are Adobe’s help files for generating your signing certificate and then converting that certificate into a .P12 file. If you get lost in this tutorial, that page will be your safety net.
On that Adobe support page, you will see some instructions for Mac machines. Ignore them. Scroll down to the Windows instructions and give them a once-over.
The instructions say that you have to install Open SSL. You’ve already done that. Open a command prompt window. You can do this by going to your Start button and typing in cmd in the search field. (You can also hold the Windows key on your keyboard and hit the “R” key (for “Run”), then type cmd and hit Enter.)
Once you are in the command prompt, travel your way to your Open SSL bin folder. Depending on where you installed it you will have to travel to a different path than in this example. (For your sake, i hope you installed Open SSL in a location that you can remember!)
If this is your first time using the command prompt, here’s a quick primer on the commands that will help you get around:
cd This command means “Change Directory”. If you are in a directory and you want to go into one of its sub-directories, use this command plus the directory name (example: cd directoryName)
cd.. This command will pull you up one level in your directory structure
dir Type this command to see a list of all of the files and folders within your current directory
dir /w The /w (wide) switch spreads a directory listing across multiple columns. This is useful for seeing all the folder names at a glance, instead of in one big long scrolling list.
You may have some problems getting some of the following commands to work. A fine commenter (and Ontario resident!) named Dan Zen mentioned on the Adobe guide’s comments section that you may need to input set RANDFILE=.rnd in your command prompt before the following commands will work properly.
Generate a Signing Certificate Request File
With all of that taken care of, you can start inputting some commands to create your Signing Certificate Request file. Once you have that file, you’ll use it to ask Apple for your proper Signing Certificate file that you’ll use to identify your app.
Punch this command into your command line interpreter and hit the ENTER key when you’re finished:
openssl genrsa -out mykey.key 2048
You should see this response:
Next, type (or highlight the line, right-click, choose “Copy”, and right-click/”Paste” in the command line interpreter):
Now, before you hit ENTER you’ll want to edit a couple of things. First, replace “John Doe” with your own name or company name. Then replace the “yourAddress@example.com” email with your own email. Then press ENTER.
You should get a message similar to this:
You just generated the Signing Certificate Request file that you’ll use to ask Apple for your Signing Certificate. The Signing Certificate Request file is located in the bin folder of your Open SSL install. It has a .certSigningRequest file extension and should look like this:
Obtain a Signing Certificate for Development
You have to upload your Signing Certificate Request file to the Apple Provisioning Portal to get your signing certificate.
Note: There have been instances where this upload does not work with Google Chrome. Just to be safe, use another browser like Firefox.
Navigate to the iOS Provisioning Portal after logging in with your developer account and click on Certificates.
Click Request Certificate.
Note: If you are a team member and/or you have not paid the annual developer fee of $99 dollars, then you cannot request a Signing Certificate. Only the Team Admin – the person who has paid the development fee – will be able make this request.
On the next screen, you will upload the Signing Certificate Request file that you generated in the previous section.
Click the Browse button and navigate to the bin folder located within your OpenSSL folder.
Once you have selected the Signing Certificate Request file, click Submit. Your next screen should show this:
Just hit Refresh a couple of times on your browser and you should eventually see this:
It’s your Signing Certificate! Go ahead and download it. Just to make things easier, you can save that certificate in the bin folder in the Open SSL folder, where your Certificate Signing Request file is sitting.
Convert the Signing Certificate to a .p12 File
Are you having fun yet? Yeah, me neither. We are making good progress though. The next step is converting that Signing Certificate to a p12 certificate, because Apple loves certificates.
Once you punch in the command, enter a password and then verify that password. Make sure the password is something that you will remember. (Save it in a .txt file in that folder if you’ve got a lousy memory like me – Ed.) When you are typing in your password, the command prompt does not give you the luxury of seeing dots or asterisks to indicate how many letters you are typing in. Rest assured that the command is accepting your input.
Note: You may get an error mentioning a “random state”. Just type in the command set RANDFILE=.rnd and it should fix the problem for you.
Go into the bin folder in your Open SSL directory and you should see your .p12 file. Hooray!
Create an App ID
Now that you have the precious file you need, it’s finally time to create your Mobile Provisioning Profile. You’ll start by setting up a unique ID for the app you’re creating.
Navigate back to the Provisioning Portal in your web browser to create an App ID for your app. Log in, click on Provisioning Portal, and click on App IDs.
Click New App ID.
Note: If you have not paid the developer fee, or if you are just a team member of the Team Admin, you will not see this option. Ask your Team Admin to complete this step.
On the next screen you’ll start by writing a Description for your app, which can be anything you want. (This is what the player will see when he sees your app in the App Store. Obviously, there’s a whole marketing concern here that’s outside the scope of this tutorial. Since we’re just building a test app, i recommend you punch SOME CRAZY NONSENSE in there for your description. Take THAT, marketing. -Ed)
Within the Bundle Seed ID (App ID Prefix) you will have various options, depending on your account status. If you are the Team Admin, you’ll have a “Generate New” option. Team Members will only see a “Use Team ID” option. (If this is not your first App, you could also choose the Bundle Seed IDs for previous project). Either way, leave it at the default.
The Bundle Identifier lets you create a specific package for your App. The standard way to make this package is to reverse the name of your website domain. I used com.sina.ipadtest. (Our team uses com.untoldentertainment.whatever – Ed.)
Alternately, you can use a generic Bundle Identifier by just putting an “*” in the field.
Note: There have been cases where the asterisk does not work for some people. It is a safe bet you make a specific namespace like the examples above.
Voila – you have now created your App ID! On the next screen you will see all of the app profiles you’ve created.
Create a Mobile Provisioning Profile
Now that you have an App ID, you can now create your Mobile Provisioning Profile. This is the crowning touch to everything we’ve done in this tutorial so far. The Mobile Provisioning Profile glues your developer(s), your Signing Certificate, your app ID and your testing device together. Once you have this file, you’ll be able to test an app on your device.
Within the Provisioning Portal website, click Provisioning in the sidebar.
Click on New Profile.
Note: You only see this option if you are the fee-paying Team Admin.
Give your provisioning profile a Profile Name.
Choose the Signing Certificate(s) that you want to use with this profile.
Use the drop-down list to indicate the app for which you’re creating this profile.
Finally, indicate the testing device you want to test it on.
You’ll be taken to a screen that says your Mobile Provisioning Profile is pending. Just click your browser’s refresh button a couple of times until the Downloadbutton appears, and download your precious, hard-fought profile. Make sure to save it in a location you’re likely to remember.
Are We There Yet?
That was a big pile of hoops to jump through just to test an app on your device, and we haven’t even begun building the app yet! Here’s what you just accomplished:
You used the command line and OpenSSL to create a Certificate Signing Request file.
You sent that file to Apple. Apple responded by enabling you to download your Signing Certificate file. This file identifies you as the developer of your app.
You converted your Signing Certificate to the .p12 format.
You created an ID for your app.
You created your Mobile Provisioning Profile, the glue that holds all these elements together and enables you to test your app on an iOS device.
The good news is that you DO NOT need to repeat the steps to create your Signing Certificate for additional apps. Now that you have that file, you’ll use it to sign all of your iOS apps from here on in. Similarly, you won’t have to re-enter your developer ID or device ID for future projects (unless, of course, you gain a new team member or device). The App ID and Mobile Provisioning Profile are the two pieces that are unique to your app – you WILL need to repeat those steps for additional projects.
The next part of this tutorial series will cover the process of creating your actual Adobe AIR app using FlashDevelop, bundling it up with this mess of certificates and profiles you just built, and deploying the app to your testing device.
Gamercamp, now in its third year, is an annual festival in Toronto that celebrates video game culture, uniting local fans and developers under an orgiastic umbrella of game-loving. Here’s my take on Day One.
It was a stretch for me to arrive at Gamercamp for 9:30. It’s a good day when i can drag myself to the bathroom of my own house by 9:30. i’m not an early riser. But when i saw that the conference’s keynote speaker was Seth Cooper, who worked on FoldIt, i knew i’d have to strain myself and make it there on time. i’m a big fan of using games to do useful things. (Note: that’s NOT the same as “gamification”, which is an attempt to make mundane things more interesting using trophies and leaderboards.)
i sharted! Where my points at??
FoldIt is a game out of Cornell and the University of Washington’s Center for Game Science. It uses crowdsourcing (lots of people doing stuff for you, like the Egyptian pyramids) to solve scientific puzzles by squishing 3D protein models down to more efficient forms. This is a task where humans can produce better solutions than computers, because we have better spatial reasoning than our future Robot Masters (blessings and peace be upon them). i’ve known about FoldIt for a while now, but whenever i see it being played, i can’t for the life of me figure out what in the Hell is going on.
i … what? Is the answer on GameFAQS?
Cooper said the possible applications of crowd-sourced FoldIt research included curing diseases and discovering alternatives to plastic. Indeed, the big story recently was that FoldIt players solved in three weeks a problem that had scientists scratching their heads for ten years – something to do with AIDS research and monkeys. The other two Center for Game Science initiatives Seth talked about were Photocity, where people taking pictures of real-life buildings can contribute to point cloud models (the hope being that some day, we’ll have an insanely detailed 3D model of our planet), and Refraction, part of an initiative to use A|B game testing to discover the best way to teach fractional mathematics to young students. (Photocity was a bit of a bust for me … the resulting point cloud model of four buildings was largely unimpressive and missing huge chunks of geometry, and it took 3 weeks and 40 000 pictures to produce. A skilled 3D artists could have produced a far more complete set of models in less time. So i was left wondering whether the initiative was such a hot idea.)
Photocity players produce sort-of-impressive point cloud models … just don’t walk behind or above them.
i found the talk was decent, but a little self-serving. Cooper covered only UW/Cornell-produced projects, without ever talking about the myriad other projects that use game crowdsourcing to solve problems. In future iterations, Seth could give a nod to Google Image Labeler and reCAPTCHA to level out his talk.
Seth was shooed off the stage without taking questions in an effort to keeping the morning moving; i had a question for him that would’ve made me look like a complete tool (but what else is new?). With the proliferation of so-called slot machine games on Facebook, and companies turning huge profits “gamifying” mundane experiences, there’s a lot of talk about reward systems. Folks like Chris Hecker and Jesse Schell debate about extrinsic vs. intrinsic motivation in games, and about the things that successfully motivate us; at least one study shows that for high-level knowledge work, monetary rewards just don’t cut it.
Sure, you’re paying me a sweaty fistful of cash, but how much JOY are you paying me?
Using FoldIt results to develop an alternative to plastic, or to develop an AIDS vaccine (note: not a cure, because there’s no business model in a cure) are multi-bazillion dollar propositions. Everyone roots for initiatives like FoldIt when they think it boils down to the goodness of people’s hearts, but as soon as someone starts cranking some serious coin based on results garnered from these crowdsourced games, the participants will want to see their work rewarded financially. Just look at the story of Box2D creator Erin Catto, and wealthier-than-God publisher Rovio of Angry Birds fame.
The Remains of the Day
Most of the rest of the morning’s presentations were a joy. Jim McGinley gave the talk he’s been dreaming of, “Digging Through the Trash”, where he discusses game ideas that could be salvaged by modern game developers from the Radio Shack TRS-80 (AKA the “Trash-80″).
Honey, are you beating off to ascii porn?
i loved the talk, and i really want to see more talks like it. i feel i have a distinct advantage over today’s younger crop of game developers because of my history playing ColecoVision, Intellivision and Atari 2600 games back in the day, because they were such simple games with simple mechanics that cut to the chase, and got to the fun FAST. One of my former students couldn’t even pronounce “ColecoVision” this afternoon. i firmly believe these kids should be made to sit in a room with guys like me and Jimmy, and forced to study classic home console games. Then we can pull our pants up to our nipples and tell them what’s wrong with the government.
If we wanted to have fun, we’d go to a CLIFF and jump OFF. And that’s the way it was, and we LIKED it!
i wasn’t all that enamoured with graphic designer Cory Schmitz’s presentation. It had a little too much pretentious hipster “Scene Kid” stuff going on in it for my liking, as Cory tore down design choices for various movie posters and video game box covers, providing examples of compositions that would have made them “better”. All of his examples had a real design smell to them, and he seemed a little too green to present his preferences as subjectively better, rather than objectively better. (If it doesn’t have a stark palette, odd angles, and gobs of negative space, it’s crap.) Still, there were a lot of art students in the audience, and they may have appreciated his talk.
Srsly you guys – my nipples are SO HARD right now.
There was a presentation by some industry up-and-comers about what they’re working on. While these mini-talks themselves tended to be rough, i enjoyed the effort as a whole, because it gave some of the student- and grad-level Toronto developers an opportunity to polish their public speaking skills. It’s an opportunity Prez Lesley Phord-Toy and i have been trying to give people throughout the year through the IGDA Toronto Chapter events like Straight Out TOJam and the Open Mic Night.
Building a Game (sorta) in Three Hours (ish)
The afternoon was a mish-mash of various workshops, including board game development, “physical” game design, playtesting sessions, and the Iron Game Developer Challenge. When i heard that Michael Todd dropped out due to ninja training or whatever, i jumped in and took his place. i wound up using UGAGS (the Untold Graphic Adventure Game System), the same engine that powers Sissy’s Magical Ponycorn Adventure and Spellirium, to produce Frankentoy in just over three hours :
[pageview url="http://untoldentertainment.com/games/frankentoy/frankentoy.swf" width="600px" height="450px"]
(this is not a jpg! Click the title screen to play)
As with Iron Chef, the Iron Game Developer Challenge had a secret ingredient that we had to incorporate into our games: bug-eyed plastic wind-up chattering teeth, which rank on the Creighton Terrifying Toy Spectrum somewhere between Cymbal-Smashing-Chimp-On-A-Tricycle, and this little nightmare:
The game is called “Frankentoy” and it has a Tim Burton-esque aesthetic, likely because Burton’s first film was Frankenweenie, and with very little time on the clock, i was lazily free-associating. The game is based (only partially) on a true story – my mom, a single parent, used to leave me alone in toy and book stores all the time, and would occasionally not make it back in time to pick me up until after closing time. Terrifying.
We developed UGAGS to help us create graphic adventure games quickly, but it feels like three hours was a little nuts. i hadn’t even played the game by the time the buzzer went off, and it’s plagued by some bona fide jankiness. i have no idea why the kid walks backwards. i probably should have spent less time shooting Jon Remedios in the head with Nerf bullets. But whatever. Let’s see YOU make a game.
This is the first part of our tutorial series by Intern Sina on creating an AIR application for free on a PC using FlashDevelop, and deploying it as a native app on an iOS device like the Apple iPad, iPhone or iPod Touch.
There’s a lot of FUD floating around about Flash these days. Ever since Steve Jobs took to the mic and sounded the death knell of at least the perception of Flash, there’s been heaping gobs of misinformation about what you can and can’t, should and shouldn’t do with Flash. i chalk it up to the fact that death is news. It’s BIG news when Michael Jackson dies, BIG news when Steve Jobs dies, and equally big news if you can be among the first to report on the death of a technology or company – RIM, Flash, Palm, HP – take your pick. If it bleeds, it leads.
Saying stuff is dead, is dead. You heard it here first.
This hyperbolic and sensational misreporting is particularly damaging for those of us who have made our living developing with Flash and Actionscript. Back in 2000, when i first got into Flash, i chose it because the alternative was HTML. HTML appeared and performed completely differently depending on a number of different factors:
The platform (Mac, PC or Linux)
The screen resolution (640×480, 800×600, 1024×768, etc)
The browser (Netscape, Internet Explorer, Safari)
The browser version (HTML could render completely differently from IE6 to IE7)
Meanwhile with Flash, i could build something inside the little Flash Player box, and it would look and behave reasonably identically across platforms, resolutions, browsers, and browser versions. (Subsequent versions of the Flash player complicated things a smidge, but we were still WORLDS away from the pain of HTML). What’s more, as a visual person, i could actually lay things out within the tool, instead of coding them abstractly and waiting to see how the browser would render them. If i wanted something to appear over there, i picked it up and put it over there. No futzing around with padding or align tags for hours.
The push towards HTML5 doesn’t scare me – more accurately, it makes me feel ill. It’s a step backwards. Without proper tooling, i see myself banging my head against the wall picturing absolutely everything in codespace (rather than concretely laid out in front of me in designspace), and programming all kinds of exception cases so that my content performs properly depending on platform, browser and version. You know what? No thanks.
Thank God Flash is dead! Now we can finally move forward.
Prying Flash from my Cold, Dead Hands
As long as the tools for other technologies stink, and as long as i can keep making and monetizing projects in Flash, i’m going to stay the course until there’s a compelling technological /creative/workflow reason to make a jump. Untold Entertainment has deployed two games written in Actionscript (Sissy’s Magical Ponycorn Adventure and Heads) across two different mobile platforms (Apple iPad and the BlackBerry Playbook), and we’re just getting warmed up.
Here are the facts, at the time of this writing:
No one really wants to play a game in a browser on a phone. Native apps are where it’s at.
Yes, you CAN put Flash- and Actionscript-created content on an iPhone, in native app format.
You can even do it without having to buy Flash Professional or Creative Suite.
You can develop entirely on a PC until the very last step (uploading content to the App Store).
Untold Entertainment is about to show you how.
What You’ll Need
While buying Adobe’s tools is optional, you’ll still need to spend a bit of money (or mug the right people) to pull this off. Here’s what you’ll need:
An Apple Developer account, which is $99 USD/year. Once you start down this path, you’re in it for the long haul … if you let your developer account lapse, they pull all your products off the store. For realsies.
A Mac (not free) running the latest version of Xcode (free).
An iOS device (optional, but obviously recommended).
FlashDevelop v4 or better (free, PC-only)
A Mac: not free.
He’s the spitting image of this guy – i swear.
Sina Kashanizadeh is a Sheridan College computer programming student and an intern here at Untold Entertainment. He’s done all the legwork in this process, and has written this step-by-step guiding on porting your Actionscript projects to iOS. Take it away, Sina!
Flash on iOS? So You Want to Be a Hero…
With the mobile world expanding at a crazy rate you may have had the crazy idea to try making an App yourself and putting it on the iPhone. Well, you’re a brave soul, because it can be a confusing task. This is why I have scoured the internet and composed a step by step tutorial of this process. This tutorial would not have been possible without the fantastic people that maintain FlashDevelop and the wonderful community behind it. I would also like to thank Lee Brimelow and Adobe for putting out some great tutorial videos that helped me out a lot. Last but not least, I would like to thank CodeandVisual.com for putting up a fantastic comprehensive guide that inspired me to move forward whenever I had trouble writing this tutorial.
I just want to be clear that this tutorial is not the “be-all, end-all” of this process. There are many different ways of transferring your Flash App to iOS, and the problems I cover are specific to my method. Also, the process I cover is PC-specific.
Before we begin, I would like to recommend a very good video resource by Adobe Evangelist Lee Brimelow, in which he explains the basics of adding an app to the App Store when using Flash. If you do not know how this process works, I highly recommend this video, as it breaks down the somewhat painful process of adding an AIR App to the App Store when using a PC (thanks again, Lee!). The good news is that if you go through this once, you’ll understand the ins and outs of the process. You only have to do the most painful parts once.
The video covers a myriad of stuff but the basics boil down to this: Your end goal is to create an .ipa file, which is what you’ll upload to the App Store. To do this you will require:
An iOS developer ID from Apple ($)
An iPad or iPhone ($)
A Mac ($, but required for one step only … borrow one from a friend!)
A Signing Certificate
A Mobile Provisioning Profile
Sounds like fun? Well it isn’t, but let’s get cracking anyway!
Any Club that would Have Me as a Member
As I mentioned above, you’ll need a developer ID from Apple. Head over to the iOS Dev Center and register for “free”.
“Free” as in “Free Beer … that you have to pay for.”
Go through the steps of signing up and the email verification and you will acquire an Apple ID. Now, the unfortunate thing is that you get the Apple ID for free, but if you want to develop anything with it on a device – even a silly test app that you will never release – you will have to pay $99 a year. You’d better be positive that your Angry Birds clone will be worth at least a hundred bucks a year in revenue. You can sign up for a free student account, but again you can’t really do anything with it unless you drop some cash. If you are helping someone develop an App for the iPhone/iPad and they are paying the developer fee, they can add you as a partner to their project.
Adding a Device to Your Developer Account
If you want to test and ultimately launch this App, you will need an Apple device such as an iPhone, iPod Touch or iPad. You will also need to register your Apple device with your Apple ID. Follow these steps:
Go into the iOS Developer website and log in with your new account info. Here, you will see the iOS Provisioning Portal. Click on it to see further options.
click Devices in the sidebar.
Click Add Devices.Note: if you are a partner developer with a team member profile, you will not be able to add a device. The option will only appear for the master account holder.
On this screen, you can add up to 100 devices to your account. Start off by adding your Device Name. Nothing fancy here – just enter something that will help you identify it – ie “Sina’s iPad”, or “iPhone what i stole from that guy that one time”.
Enter the Device ID (40 hex characters). This is the serial number that is associated with the device that you are trying to register. To find this Device ID, open iTunes while your device is connected. On the main screen, you will see all the information about your device, including a field called Serial Number. It doesn’t look clickable, but click on that field anyway and the number changes to a hex code. That’s your device ID.
Once you’ve filled in those details, click Submit and the device will be added to your Developer account. Now you can build an Adobe AIR application and test it on your device.The next tutorial will take you through the process of requesting and creating a Signing Certificate, converting that certificate to the p12 format that Apple requires, and generating a Mobile Provisioning Profile for your new app.
When we released Sissy’s Magical Ponycorn Adventure earlier this year, gamers and non-gamers alike were delighted at the unique collaboration between a kids’ video game developer and his five year old daughter. Scads of journalists, bloggers, developers and fans called for Ponycorns to be named GameoftheYear. Following a successful showing as a finalist at IndieCade, Sissy’s Magical Ponycorn Adventure is now a 2011 IGF (Independent Games Festival) Awards entrant. Many early predictions have it sweeping the show, actually beating out every game in every other category (including Technical Achievement and Best Use of 3D).
We’ll need new shirts that say “i have all the awards”.
It’s absolutely certain that Untold Entertainment is poised to take home a LOT of hardware from the Game Developers Conference in March, but there’s one little snag: according to the GDC website,
due to safety concerns, no one under the age of 18 (including infants in strollers) will be permitted on the show floor at any time during the Game Developers Conference®.
What this means is that when Ponycorns does win every single IGF award (including Most Memorable Explosion and Most Tasteful Deployment of a Nude Patch), the game’s five year old co-creator may not be permitted to attend her own awards ceremony. It’s likely that conference organizers did not anticipate this problem when they drafted the rule, but the question remains: should they make an exception? Should five-year-old game developer Cassandra Creighton be permitted to attend GDC in order to claim her inevitable armful of IGF Awards?
Meggan Scavio, GM of GDC (who kicks ass, and has helped me out of a conference-related jam in the past), says that the proviso is insurance-related. If Cassie is nominated, she can attend once i fill out a waiver. Hooray! Of course, the only problem i have with this is “IF Cassie is nominated.” Clearly, she is poised to take not only the IGF award for Best Fractal Raytracing Shader Navmesh AI Programming, but ALSO the special “Chancellor’s Choice” award for Most Instructive Game in the Art of Ladycraft. (Now if only i could scrape together the airfare.)