The Montoya Herald, a weblog about Blueprint, jQuery, design, music and life, publishing on the web since September 2005. Written by Christian Montoya: developer, designer and entrepreneur.

The Montoya Herald — ChristianMontoya.com

Search

Buy My DVD!

Like What I Do?

My Amazon.com Wish List

On this domain

Elsewhere

My first foray into Flash

Posted on August 19, 2009.

Note: this is likely to be a long post, and will include some insights on the current state of Facebook apps, social games, indie development, and the future of my company. Please take the time to read the whole thing… grab some popcorn if you need to!

The word "foray" has the connotation of entering enemy territory, which makes it a perfect descriptor for my entry into Flash/AS3 programming over the past month. For years I've avoided Flash for a few reasons; I didn't like the closed nature of the platform, the expensive and visuals-focused IDE, and I thought I could accomplish more interesting and noteworthy things working in the areas of Javascript and CSS. I actually did try learning Flash at a past job, but I was dealing with so much stress during my time there that I couldn't make heads or tails of the platform. It wasn't until late last July that I found myself digging through online tutorials, exploring Flash game libraries and engines, and hacking away in FlashDevelop as a new AS3 developer. There were a lot of things that led up to my decision to pick up Flash, and considering how I have avoided it over the years, I'd like to explain myself now.

In January I started my company, Mappdev, with my first product being Pop Answers, a game I developed over a year ago in PHP/Javascript/CSS with a healthy serving of AJAX. This game was just starting to pick up steam at the time, and through the following months it continued to grow, and I enjoyed the cushy lifestyle of an indie game developer who makes an acceptable living from one game on one platform. During that time I was rather consumed between maintaining the community around Pop Answers, adding new features to promote growth, and developing other applications in the hopes that I could shift my dependence away from a single basket of eggs. These applications were all different; some were games, some were not, some had user-generated content, some did not, some were on Facebook, one was on its own domain and dealt with Twitter. They all involved a lot of work and I thought there were good applications, but apparently they were all worthless because to this day none have taken off like Pop Answers did. There might be many different reasons for why this happened; I'm convinced that it was a combination of three:

I have a long list of ideas for great games, but many are concepts that I have not been able to pursue because I wouldn't be able to do them with CSS/Javascript alone. I knew that I would have to learn Flash eventually if I wanted to make any progress on my big list of ideas, and that's what brought me to where I am today. My first Flash game, which I am very proud to present, is here:

Click on the image to play it, or click here: Survive! on Facebook. Though it's my first game, and I built it primarily to learn everything, it's a finished product that I think you'll enjoy. Now let me tell you a bit about the hair-pulling experiences I had developing it.

First, I tried a lot of frameworks and libraries to get started. I knew that I didn't want to just try writing everything from scratch, because that's not what I learned in my other game development experiences. I looked at projects like PushButtonEngine and Flixel, among others, and even tried building my own projects with them, but my experience was always the same… without decent tutorials or examples of how to do basic things, I couldn't make the leap from "Hello World" to "Awesome Game X." I was always stuck on simple things like setting up levels or changing screens. It was very frustrating. It wasn't until I found cheezeworld.com and the accompanying cheezeworld repository that I had a decent library with decent code examples to work with. All I really needed to do this first game was have a smart way to change screens in-code, and once I had that I was able to make a lot of progress.

As for actually building my game, I used FlashDevelop almost entirely and did all my interface work in code. The Adobe docs for AS3 were very helpful, as I used a lot of classes in my work (think TextField, TextFormat, SimpleButton, Shape, Transform, etc). It took a while to get font embedding to work, but for the most part, the actual game development was the easiest part, and in the end I realized that AS3 is a great language (and Flash is a great platform) for learning game development, and probably even programming in general. Compared to what I've seen in other languages (think Java, C, C++), AS3 is easy street. As long as you can write code that runs fast and doesn't eat memory, you're golden. In short, writing AS3 was one of the more fun experiences that I've had with programming.

So then came integrating with APIs. Mochi Media provides some really cool services, including a leaderboard service that I was quick to integrate in my game. As for putting my game on Facebook, this was really hard to do, and I didn't even bother trying to use the AS3 API offered by Adobe for Facebook, because the only examples I could find were tailored to desktop applications built with Flex, and they usually involved embedding your secret key in your SWF. So the end result is that my game uses Javascript to communicate with the server, and that's that.

So now you know about as much as I can type on the subject of learning Flash. Let's talk about the future of Mappdev. The truth is, I wouldn't have taken this time to learn a new platform if Pop Answers were still enjoying the success it had 3 months ago. Back in May, it was pushing 250,000 monthly active users, an impressive number for a one-man project. Throughout the summer, however, it began to show a strong decline, which I think is related to a few things:

The decline of Pop Answers, which is now hovering around 150 monthly active users, is further compounded by the decline in advertising revenues on Facebook, which is entirely due to their own policies, which have crippled ad networks and even caused some, like VideoEgg, to pull out completely. There was a time when I was seeing $1 CPMs on Facebook; now I'm lucky to see $0.30. That's just the kind of spit-in-your-face model that Facebook has followed with their platform policies, and I think it shows that I have to find other platforms fast. With these developments, and the lack of any other successful products from my PHP/Javascript/CSS work, it was clear that I needed to pick up Flash and start developing a different thread of game ideas, games that are fun to play, addictive, and offer instant gratification. Survive! may be a very simple little Flash game, it may have even been done before, but I think it's a lot more fun than most of the other games I've done. And as I start exploring more complex game mechanics with my future ideas, I think things will only get better.

So this brings me to new opportunities. I've uploaded Survive! to FlashGameLicense for starters, to see if I might get a decent bid on it, and if that doesn't work out, I will definitely submit it to sites like Kongregate, Newgrounds, and some other portals to see how it fares. I've been reading a lot about Flash game monetization lately, and while the usual consensus is that it's not easy and it rarely leads to the big bucks, I can at least say that it looks to be a lot more stable and predictable than trying to deal with a fickle platform like Facebook. Plus, there's still room in the Flash ecosystem for independent developers, and with some hard work, I think I can make a name for myself.

That all being said, it doesn't necessarily mean that I'm tied down to my independent venture entirely. I want to move more towards the "Game Producer" role with my career, and lately I've been thinking that I need to join a larger team at a big publisher to do that. Being on the east coast shuts out a lot of options, but I have my eye on one company in New York City that I think would be a good fit for me. I've already applied there, but I haven't heard back. Please hope that I do, because I would like to at least be considered for their role. Until then, I'm going to continue doing everything I can to bring Mappdev into the spotlight, and continue releasing enjoyable experiences for everyone. With that, all I ask is that you check out Survive!, and share it with your friends if you like it. Thanks in advance!

2 Comments

  1. Kris Gosser on August 19, 2009

    Great stuff Christian. You ever check out Kongregate? So many great Flash games on there… might be some good ideas for you.

    Take care!

  2. Christian Montoya on August 19, 2009

    Kris: I am going to be spending a lot of time on Kongregate over the next couple weeks. There is a great community of developers there and even some tutorials that I will make use of.

Sorry, comments for this entry are closed at this time.