Wednesday, October 27, 2010

Adobe wakes up

THIS should have been Adobe's first public response to Apple dropping Flash support. It's an HTML5 animation editor (in the prototype stage) called "Edge".

If they had announced this when Apple publicly declared they were going to drop Flash support, instead of posting petulant rants about how Apple is doomed as a result, Adobe would have looked forward-thinking, professional, capable, and supportive of their users with whatever technology they choose to deliver to. It would have saved them a lot of bad press, and it wouldn't have fostered an Apple vs. Adobe mindset (or a "dang it, I'm going to have to choose or double my work, aren't I?" mindset) among its customers.

This is the first thing to come along in years that has given me hope for Adobe's product strategy. With the standout exception of the excellent Photoshop, Adobe has been nothing but disappointing with its product decisions of late. But this is smart; it's going where the web developers are going instead of trying to drop anchor and keep us where we are for as long as possible.

Gotta give kudos to Adobe on this one; I'm already a customer of this product, if they can deliver it before a compelling alternative emerges.

Tuesday, October 12, 2010

The Rosetta Dongle

I just rage quit Lightwave before even getting it installed.

All I wanted to do was use Lightwave on my OSX laptop without installing Rosetta. Not such an outrageous request, given that OSX is a supported platform, right? I have a registered copy that ran fine before updating my system software, but now I don't want to install Rosetta - I want to run it under straight-up OSX. So I download the updater files, and I'm all paid up and everything, and I've even got my hardware dongle plugged in. (Seriously, what is this, 1996?) I run the installer. It installs the OSX version. Almost there!

Then I get this message: "Donglecheck requires Rosetta to run. Want to install it now?"

You know, if I wanted to install Rosetta, I wouldn't bother downloading the OS X update, now would I?

NewTek, if you're going to make my life difficult and use separate programs to enforce and/or unlock your clumsy, draconian DRM, at least keep them up to date. Don't make me install Rosetta for the sole purpose of unlocking your software (that I've already unlocked!) so that I don't have to run it under Rosetta.

That's worse than having no OSX version at all - at least then, I'd be installing Rosetta for some real purpose.

Sadly, this is not an isolated frustration - it is indicative of the software NewTek ships: haphazard, buggy, obtuse, nonsensical, poorly-thought-out software running on the fumes of long-passed greatness, all protected by paranoid, burdensome DRM disproportionate to the value of the software it protects.

I make purchasing decisions about 3D software for our multimedia studio. I'm going to be making a different choice for 2011.

Monday, August 23, 2010

Okay, this is the geekiest thing I've ever done

I've done some geeky things in my day, but then there's today.

Today, in my sci-fi tabletop roleplaying game I'm refereeing, that I wrote the rules to myself, I let my players use their iPads or iPhones to connect to a web application I wrote which emulated the actual sci-fi personal data assistant their characters use in the game world.

Let me reiterate this so it sinks in. I wrote a web application for fictional people to use on fictional devices. For a sci-fi tabletop roleplaying game. I am geek.

Here's the thing, though - it was a hit! The campaign is about unraveling a mystery about a murdered friend in a dystopian future, and this allows the players to investigate, analyze, and explore on their own, in a way that evokes the setting. The web app tracks the leads that the characters can follow up on, provides background information about the game world, and gives them a way to "receive data files" from characters. For instance, I was able to drop in new leads on-the-fly using my own iPad as they appeared in the story. It worked really well; the players were using it practically the entire time.

In fact, they're requesting new features for their in-the-game-world PDA. I'm about to get even more geeky - I'm going to be a fictional software developer responding to in-game-world software update requests... Gah!

Monday, August 16, 2010

New Sci-Fi Campaign

I started refereeing our usual Monday night game tonight, picking up where we left off at the beginning of summer.

Unlike my usual medieval fantasy fare, I'm branching out into new, unfamiliar territory: sci-fi. Thinking back on my refereeing history, I cannot remember running a campaign in an original sci-fi world, and I certainly never refereed sci-fi of the stripe I'm running now: "hard" sci-fi with a dark edge to it. Back in the day, I played Metamorphosis Alpha, Gamma World, and Star Frontiers (sadly, I never tried Traveller), but to be honest, these are just fantasy games with sci-fi trappings. They don't cleave closely to what sci-fi is really about: exploring who we are and where we are going as a society. Those other games just replace orcs with aliens and dragons with bugblatter beasts, and call it a day.

I'm going for realism, plausibility, and social commentary with this campaign, and even though we've only played one session, I think I'm off to a good start, but man, is it difficult. I'm way out of my comfort zone here. Even though both fantasy and sci-fi worlds are fictive and require answering questions on the fly about geography, social norms, economics, technology, etc., the bar is higher when it comes to sci-fi, because if it's going to be believable, there has to be two things that you don't need in fantasy: (a) a plausible path from "now" to the time the game world is set in, and (b) enough creative looking ahead to make it sci-fi without becoming ridiculous. Magic in a fantasy setting, it turns out, provides the would-be referee with a lot of crutches, because you can literally get away with anything when magic is in the mix. To a certain extent, you can do that with sci-fi technology, but the bullshit detectors of the players is a lot harder to get around when you're trying to achieve realistic technology.

I may have bitten off more than I can chew. The fictive universe of this new campaign is not Star Wars or Star Trek. It's as realistic as I could make it while still allowing some of the sci-fi tropes I wanted to bring in, such as visiting other star systems on some kind of reasonable time scale for telling stories. There are no alien intelligences in this game world - humans are all there are. Life, it turns out, is (relatively) abundant in the universe, but the vast majority of it is bacteria, algae, and the like, with a rare planet boasting more complex forms. I felt good about taking this approach, thanks to recent discoveries in Astronomy, but it still omits a LOT of the standard sci-fi storylines. Mars needs women, but it's just in the usual way that Earth needs women, because humans live there now.

So your typical space opera is out, which begs the question: what are the details of what is in? I'm having to flesh out a game universe that is a lot more detailed than I usually create. Already, in this first session, even with all the thinking and prep work I did, I ran into a whole slew of questions that needed adjudication on the spot. How do people back up their data in the future? How do people share contact information? What do peoples' living quarters look like? How has law enforcement technology changed over the years? How much surveillance is there? How do people go to the bathroom (do we still use paper, or are there the "three seashells")? How has religion changed?

Ultimately, though, that stuff doesn't matter. My players are smart and in it for fun, so if I screw something up, they can handle me retroactively changing stuff if I really have to. What matters is setting a compelling challenge at the players' feet, and that, thankfully, is the same task as in any system or game world. Even with all the starfaring and high technology that is available in this new universe, it's a human story they'll be exploring: understanding the death of a beloved friend. Emotion is the hook. Hopefully, that will make the story worth experiencing for me and for my players.

We'll see if I can pull it off. Wish me luck.

Thursday, July 22, 2010

ADDED_TO_STAGE doesn't always fire

Flash development geekery ahead. This is mainly so I can remember the solution to this problem in the future, but maybe this will help someone else, too...

I was struggling with a problem in Actionscript 3 for two hours trying to figure out why some ADDED_TO_STAGE events weren't firing on some MovieClips I had added to some MovieClip symbols I was instantiating.

I had four identical symbols, all the same class inherited from MovieClip, added to another MovieClip symbol in the library. Each would register for an ADDED_TO_STAGE event in itself in the constructor, but when the parent MovieClip was instantiated and added to the stage, only the first of the four MovieClip would actually fire.

The solution? Instead of registering for the ADDED_TO_STAGE event in themselves, I registered in "this.parent", i.e., I would watch for when the parent MovieClip gets added instead of the MovieClip itself. It works, but doesn't seem right. What if I need to make the parent MovieClip a sub-clip of another MovieClip? Will it break again? And how do I remove the listener if the parent changes?

I like the concept of Actionscript 3, but in practice, I'm finding lots of gotchas that make development seem harder than it should be.

Wednesday, July 07, 2010

Treadsylvania is live!

Finally, the ATV safety game we created for National 4-H is live and available for the general public to play. It's called Treadsylvania, and features some fun monster-fighting action! Check it out.

Monday, June 14, 2010

This is exactly what I was afraid of

I remember the first time I heard the idea floated about "microtransactions" in gaming, the so-called "freemium" model, where instead of paying $20-$50 up front for a game, you get it for free, and then pay for small bits of content or on an as-you-go basis.

I remember thinking, "yeah, that's going to suck." Why? Because it sets up a situation where the developer's goals and the gamer's goals are at odds.

In the traditional model, the goal of the developer is to maximize fun for the gamer - the more fun the game, the more the gamer is willing to pay for it, and once the game is purchased, there is nothing standing in the way of the game developer trying to make everything as fun as possible.

In the "freemium" model, the goal of the developer is to not maximize fun for the player, but instead maximize the frustration of the player, without having them quit the game altogether, so that they are willing to pay as much as possible.

I remember trying to make this point with some fellow gamers, and being told, no, no, I've got it all wrong - it will just be used to deliver more content. In other words, it's the same model, but the framework for delivering content is free.

Well, some games may follow that model, but those weren't the ones I was worried about.

Lo and behold, I was bitten by the freemium model recently. GodFinger, by Ngmoco, for the iPad, was a casual little game with charming graphics and some fun, toy-like mechanics. My boys enjoyed watching over my shoulder as I played it. At its core, it is a "grinding" game, namely, it takes exactly zero skill to play; instead, you advance by patiently and dutifully issuing commands to your units, buying new resources for them with the in-game money they amass, etc.

Now, as with most "freemium" games, GodFinger also allowed you to buy "Awe points" with real money to skip over the things that require patience. "Instantly recharge your mana!" "Build this building now instead of waiting 24 hours!" And so on. But for the time being, I was willing to patiently grind away without buying Awe points. I saved up for a long time to buy a Deluxe Tavern, which would allow me to refresh four units at a time AND earn income while doing it. It was an expensive item, and took a long time to save up for, but after getting it into operation, it was working well.

Then a game update hit. Suddenly, all money-generating buildings began giving less money, and instead of yielding gold multiple times before needing to be recharged, would only yield gold once, and would not start on this process until they were fully charged. Moreover, you could no longer "top off" buildings, so you had to let them fully drain before recharging them, which not only made your time spent between playing inefficient, but also removed a fun gameplay mechanic wherein you could place multiple buildings together and recharge the next building with the over-charge from the first.

But worst of all, my new Deluxe Tavern now only refreshes three units, and it no longer yields income. My $2400 Deluxe Tavern now does the same thing as a $400 tent.

Now, I can see no way this update, nerfing players across the board, was done with the players' interests in mind. The effect of this update, across many changes, is to slow everything down and make mana less productiv, presumably to get people to buy more "Awe Points" with real-world cash. Heck, they even added in-game goals to award experience points for spending Awe points. This was nothing but a transparent, deliberate change to add frustration to all players to wring money out of them.

Now, lest you accuse me of being a freeloader, consider this: Awe points add nothing to the game. All they do is allow you to not wait for something to happen. The rate at which things happen in the game is arbitrary, is set by the developers, and may be changed at a whim on system updates. This is not paying for new scenarios, new gameplay capabilities, new fun. This is pure and simple throttling back the gameplay to extort money out of people. (There are a few buildings which can only be bought with Awe, but each of them has a nearly identical alternative that can be purchased with the in-game currency, so I am not counting these.) Ngmoco is not really offering anything content-wise for the money you give them; only a different speed at which things happen.

And what if I had invested some real-world cash in Awe points to buy that Deluxe Tavern instead of grinding for it? That Deluxe Tavern would have cost me $5 in real world money to purchase in Awe points. Days later, its capabilities - that which I was buying, essentially, would have been arbitrarily removed without warning or recourse. It's one thing to hold back some special premium-only game features, but it's an entirely different thing to offer players cool new in-game gadgets they can buy with real-world dollars, and then after they buy them, remove the capabilities that prompted you to buy the gadget in the first place. At this point, I'm glad I didn't buy any Awe points, and I feel sorry for anyone who did, because every dollar they spent was turned into a fraction of its in-game value with this last update.

It's also relevant to note that while the value of mana and gold you buy with Awe points has gone down, because they can do a lot less now than before, the cost of Awe points has not gone down proportionally to the value of what it can buy. All of the above might be excused if it was balancing everything across the board, even Awe, but that is clearly not the case.

Basically, this has all been a very telling (and sadly, predictable) experience with the "freemium" game model. Ngmoco is "freemium" at its worst - starting a game on false pretenses, and then slowly throttling back the fun to frustrate the poor saps who have been playing the game into buying Awe just to get an approximation of their old experience back. This is why I like to own my game instead of rent my game.

The sad thing is: this game was actually very nice. In other circumstances, I'd have given it five stars. It had excellent interface elements, beautiful graphics, a unique tone, and high production values. I'd gladly have picked it up as a for-pay game in the App Store. And I would have even dropped money on Awe points if the for-pay model was to use it to provide new content like a story mode or scenarios. But this nickel-and-dime model feels like money-grubbing, and is antithetical to the relationship between developer and player wherein both are pulling for the best overall experience.

Okay, I've ranted a lot. I do want to say that there are a few developers who "get it." I'm still convinced that a scrupulous developer can make the "freemium" model work. Examples include:

  • Ramp Champ by the IconFactory, wherein you get honest-to-god new content, artwork, challenges, and other ancillary benefits when you buy a new ramp pack.
  • WarpGate HD by FreeVerse, which does let you "buy forward" in the game by purchasing a big, pointy ship, but they don't also run down the fun of the "normal" gameplay to make you want to buy it out of frustration
  • Crosswords by Standalone, which lets you subscribe to premium crossword puzzle providers in exchange for honest-to-god core content. Here, the payments go to the crossword puzzle provider and not Standalone, but the pay-for-play model is still there, and offers real, tangible value aligned with the interests of the player.

Sadly, these seem to the the exception rather than the rule.

Easy Depth Sorting in Actionscript 3

I'm working on an ActionScript 3 project, and I needed a way to height-sort objects on the screen (so that elements further down the screen are drawn on top of elements further back). Thanks to a little web searching and my own hacking, here's an easy solution to the problem. It's called "DepthSort Space", and it's a movie clip that depth sorts all its children each frame. Currently, it uses bubble sort on the list, but if speed is of the essence, you could probably use some other sorting mechanism.

package {

import flash.display.*;

public class DepthSortSpace extends MovieClip {

public function DepthSortSpace() {
this.addEventListener( Event.ADDED_TO_STAGE, this.addedToStage, false, 0, true );

private function addedToStage( e:Event ) {
this.stage.addEventListener( Event.ENTER_FRAME, this.enterFrame, false, 0, true );

private function sortDisplayList():void {
var len:uint = numChildren;
var i,j;
for( i=0; i < len-1; i++ )
for (j=i+1; j < len; j++)
if ( getChildAt(i).y > getChildAt(j).y ) this.swapChildrenAt( i, j );

private function enterFrame(e:Event) {


To use this, just make a new symbol, and set its class to DepthSortSpace (or subclass DepthSortSpace as your movie clip if you're already adding custom code for it). Then, add any objects you want to depth sort as children of this movie clip. It will handle it automatically.

Thursday, June 10, 2010

Safari 5's New Feature

While Safari 5's new extensions feature is getting a lot of buzz, I can already tell you what my favorite new feature is: Safari reader.

Basically, when you're presented with a site that has something interesting to read, but it's all crufted up with horrible layout, ads, navigation, banners, tiny type, etc., a button appears in the URL bar. Click it, and the page fades to black, and the article, presented with nice, clean CSS, slides up for easy reading.

Predictably, some people are up in arms over this feature because it hides their precious ads. These people should listen to Lukas Mathis, who argues that if you're upset about Safari reader, then you've only got yourself to blame for it - if your site was readable, people wouldn't need to click a button to make it so.

In particular, I don't feel the need to click the reader button on Lukas' site. It would be redundant, because his site is so readable. But I've used the feature already today on a different site.

Friday, June 04, 2010

Apple's HTML5 Gallery

Apple just released an HTML5 Showcase showing what's possible with the current generation of browsers (read: why the need for Flash is overstated).

I think what's clear is that Flash is still the way to go if you want to do vector-based interactive animations (i.e., games), but Flash is no longer necessary (or, at least, should be the fallback) for the things it's been used for in its most popular contexts, like video playback. That's a good thing, since video is a media type that browsers should understand, just like images, and it's in the spec. The sooner people are coding to the spec, the better.

But even the interactive animation context is under assault. With the canvas element, you can already create interactive animations using bitmap graphics and crude vector graphics. It won't be long before HTML5 games start showing up. If Adobe wants to make the case for Flash's long-term relevance, they need to stop putting all their chips in fighting against the video tag - they lost that one when YouTube jumped - and start focusing more on staying ahead of the canvas element. Adding "real" 3D support (ala Shockwave3D) to Flash would go a long way toward that.

Or, better yet, make a Flash-like IDE for HTML5/Canvas, and migrate Flash users to that, and become the de-facto IDE for developing next-generation interactive web content just like they dominated the last generation. Unfortunately, I don't have a lot of confidence that Adobe is that forward-thinking from their track record with products like Director. But maybe.

Tuesday, April 13, 2010

We are hiring!

We're hiring at NMSU Media Productions:

Web developer - Develop web applications for NMSU internal and external clientele using PHP, MySQL, XHTML, CSS, and Javascript. If you are good at coding the back end of a web site AND good at crafting excellent UI's, we want to talk to you.

Game developer - Develop educational games, mostly using the Flash platform, although we may also be moving to Unity and Objective C (iPhone OS). Artistic skill is not as important as capability to write games and game logic code, as you will be integrating art assets by our artists and animators.

NMSU Media Productions is a great place to work - talented and personable people, fun projects, supportive management, and work that has societal benefit rather than just being for generating revenue for investors. We're located in sunny Las Cruces, and the green chile is bountiful.

Saturday, March 20, 2010

"Letter Writer Space" now available

Letter Writer Space screenshot
Our new educational iPhone game, Letter Writer Space, is now available in the App Store!

This sequel to Letter Writer Oceans lets kids learn and practice their lower case letters while learning about fun astronomy concepts.

They begin by selecting a letter against a scrolling backdrop of the Very Large Array in New Mexico at sunset, and then they blast off to an animated scene where they can practice drawing the letter. Each scene is about an astronomy concept starting with the letter, so they can learn to draw their "q" glyph when viewing a "quasar", or learn to draw their "c" glyph when viewing a "comet".

A little space shuttle prompts the child where to start the stroke, and follows along as the child follows the pulsing dots to the end of the stroke, reinforcing the stroke before, during, and after the child's action. If they make the stroke correctly, they move on to the next stroke, and when they complete the letter, they earn a star. (This encourages correct strokes, rather than just allowing for random scribbling, as other letter writing apps do.)

When the child has earned four stars, an info panel with more information about the animated scene becomes available. Touching the info button shows the info panel, and fun facts about the scene are fully narrated, sharing the wonder of astronomy and the space program with kids while they play.

Buy it now!

Mormons and Boy Scouts in Child Sex Abuse Coverup

This one cuts a little close to home for me. It looks like Mormon church leadership may have colluded with the Boy Scouts to cover up the sexual abuse of seventeen boys by a BSA scoutmaster. I was in the same organization, under the same leadership, in the same church as those seventeen boys, at the same approximate time period. I'm realizing retroactively that I wasn't nearly as safe as I thought I was, and it is alarming, especially now that I have kids of my own.

Now I understand my naivete, and while it makes me sad for those boys, it does make me all the more certain I made the right decision quitting both the Mormon church and the Boy Scouts as a kid. While it never occurred to me as a teenager that a bishop would behave in such a reprehensible manner as described in the article, the behavior is still consistent in theme with what I came to understand in both organizations as a young man, namely, more emphasis on the appearance of virtue than upon virtue itself. Upon reflection, the events described in the article do not surprise me, sadly; they are merely the natural extension of the trajectory the church and the BSA have been on for decades.

It is why my children will not be joining the scouts. Any parent who entrusts their kids to the BSA organization is a fool, because the BSA has made their priorities clear by fighting legal battles to avoid revealing what they know about sexual assaults against kids they were responsible for. They seem more concerned about avoiding embarrassing headlines than they are about the kids in their care.

The BSA is not about the boys. It is merely about the BSA.

Tuesday, February 09, 2010

Apple's approval times for iPhone apps dropping

As I mentioned earlier, our latest iPhone app, Vile Haberdashery has been released.

And guess what? We submitted the game on February fourth, five days ago. Apple has reduced its turnaround time on app approval from two weeks to five days. I'll leave the debate on whether the app store approval process is a good idea to others to hash out, but I think we can all agree that less time is better. Thanks, Apple, for putting the resources behind reducing the turnaround time on releasing apps.

Vile Haberdashery released!

Good news! Vile Haberdashery has been approved by the App Store, and is now available.

I'm afraid the murder rate at creepy victorian mansions among disreputable nobles is about to increase.

Wednesday, February 03, 2010

Vile Haberdashery

This past weekend, I participated in the Global Game Jam, and our team came up with a really fun and innovative game like I haven't seen anywhere before.

It's a creepy, unpleasant turn-based strategy game about murder and intrigue called Vile Haberdashery, and it borrows a lot of play elements from my old "Death in the Family" card game, but slides them all over to iPhone casual party play.

The premise is that you are one of four would-be heirs to a fortune, and you're trying to kill off your siblings so the inheritance all falls to you. You accomplish this by blackmailing, flattering, and intimidating your subordinates into doing violence to the other players.

The game is played on the iPhone. You take your turn, then hand the phone to your friend to take his turn. He hands it to the next player to take her turn, etc. Audio cues give clues as to what each player is doing. The goal is to gain influence over your subordinates, get one of them a weapon, and then send them over to hang out near other nobles. If you have enough influence over the subordinates around another player, and one of them has a weapon, then they kill that player, and you're one corpse closer to winning! (Of course, the other players are trying to do the same thing to you.)

We built the game in 48 hours, and the artwork is excellent thanks to the involvement of the three artists who worked hard for those two days to draw all 19 characters in the game. I programmed the game and did interface design.

The game has been submitted to the App Store, so you should see it in a few weeks. In the mean time, head on over to the Vile Haberdashery web site to check out the screenshots.