One Day Game Prototype, Flash Actionscript

Adobe Flash is like the mafia to me: just when I think I’m out, it pulls me back in. This is the “problem” with doing something for so long (eight years this month[1],) you get good at it and then you get known for it. Well, it’s a “problem” for me because I like to diversify. For years I was the “flash guy” and it’s a title that’s become hard to avoid, especially when there are bills to pay. Or airline tickets to buy.

I have a love/hate relationship with that tool, though I’ve realized that most of that hate is purely by association. It’s the web production equivalent to it’s not the band I hate, it’s the fans. The Flash plug-in is mostly unobtrusive, Actionscript is a great little language that is useful to know (especially with recent javascript developments,) and the Flash IDE is more than competent when it’s not crashing. The issue is that in its ubiquity it is, and has been, highly exploitable. Flash has seen its excessive share of security and privacy violations, dubious “content”, unwanted noise, pointless animations, complete disrespect for basic web usage, et cetera, et cetera. I know, because I’ve had to build some of those things. That’s why I burned out on it and why I’ve been avoiding it, with great success, since the spring.

Despite all my negativity, Flash is very good for things like video, visualizations, and games. It is particularly great for one little subtle aspect of game making: prototyping. It’s one part scripting language and one part — its original foundation — animation tool, and these things combined make it perfect for creating quick, working versions of ideas without any of the complicated rendering and display issues of other pure scripting languages[2].

These factors kept me on top of what was going on in the Flash world even when I wasn’t using it, and my increasing desire to pay bills has brought me, this week, back into its fold. The quick prototyping that Flash allows was one of the motivating reasons for this, even if it was a convenient excuse for getting some of the rust off in hopeful anticipation of upcoming contract work. As I’ve subtly alluded to in previous postings, I’m attempting to take a more active “do or do not” approach this year to the things that I’m interested in[2]. This is one of them. Inspired by numerous sources, and an interest in participating in the global game jam at the end of the month, I wanted to see if I could prototype a working game in one day.

Turns out: I can!

prototype

I sat down a little after noon on Sunday with nothing more than an idea and by 2am I had a sent out a working link. It was tiring and exhausting and I don’t want to look at Flash again for another week, but it was great to feel that creative instinct flow through me for a day.

Here’s the playable version. Guide the red squares to the green goals using left and right arrow keys to move, and up and down arrow keys to activate teleporters. Use the yellowish teleporter to kill any square you can’t save. Try to get an A+ rating.

It doesn’t look like much, but the core functionality that I wanted is there and that, in itself, is the most useful part of a prototype. A working example can tell you more in a minute than a design document can in a hundred pages. Whether it works or not, or where I can take it, I don’t know yet. But I do know that having made it, I am now one day, and one game, more experienced than I was last week. Ideas are good to have, and I have had plenty, but they’re useless braincrack unless executed.

So yes: executed, learned from, new ideas gained, new code for for future executions[4]. Huge success. Well, the action; maybe not so much the game.

See also:

Whoops: I posted the wrong link initially. Here’s the prototype. This here’s an updated version made on Monday where I was trying various things, including ugly pixel art. It has two level sets; the second one emerged out of various ideas I was trying out.

  1. Christ, has it been eight years already? If I wasn’t so aloof with the industry I’d probably have a senior position somewhere by now.
  2. It helps that I know my way around it, so I can spend less time figuring out the tool and language and more time implementing ideas. And in their defense, there are useful libraries for other languages that do simplify visual tasks.
  3. No resolution was made. Void where prohibited.
  4. Another reason to do this frequently. Eventually, you might be out of ideas but you’ll have a massive code base to draw from and maybe some diamond in the rough ready to be polished.
Modal image