Bret Airborne dev diary – Tech and resources
Here’s the first entry of what I hope will give you an interesting peek behind the curtain of the development of Bret Airborne. I’ll do my best to cover as many aspects as possible but feel free to send me suggestions if you’re curious about a particular point.
This first post will look at the tech and resources I’m using to build Bret Airborne. So if you’re looking to build your first game or are just curious about what I’m using this might be of some interest.
AS3 / AIR
It’s been predicted years ago that Flash would die any day and I’m not quite sure of the reason why for some this would be good news. Yes HTML5 but until it’s there for “real” AS3 IMHO does quite a fine job at introducing people to game development. Just look at Kongregate and you’ll find there more games than you can probably play in a lifetime. Some good, some bad but it doesn’t matter. It’s an amazing way to see what it’s like to build, release and receive feedback. It’s so easy to get into (you can even find great tutorials there) that I can’t believe some people are still asking “how do I get into game development?”.
Now AS3 ain’t always the best answer and like any tools there is good and bad in it. It is however incredibly easy to find bits of codes, tricks, tips so if you feel insecure about some stuff it makes AS3 a good choice. Chances are that where you’ll go a thousand devs before you have gone. It might also be true for other programming tools but my experience so far is with AS3 and all I can say is that I never had difficulties finding the answer to some problems I encountered.
I said it isn’t always the best answer and an example is my previous game Tales of Another Galaxy. Well at least it wasn’t the best answer for me to get over the many challenges I ran into while developing this game (large maps, line of sight, A* performance, etc.). For Bret Airborne though it’s perfect. I’d say the more complicated the action on the screen is the less AS3 might be useful. For a Match 3 RPG though it’s quite manageable.
What can be difficult with AS3 is to optimize everything so it runs smoothly when you have a lot of stuff on the screen. I wanted to take advantage Flash’s Stage3D to help me with this and Starling is an easy way to get into this … without learning anything about it in fact.
There are many game frameworks around and I don’t quite care about trying to tell which one is the best or not. I used Flixel in the past and it did the job okay but I felt it was getting me a bit too high level. It’s just a matter of being comfortable with the “restraints” of these frameworks. With Starling I feel more in control and it required little adjustment to my working methods. In fact I barely even notice I’m using Starling for Bret Airborne. It’s there doing it’s job and I can keep doing things the way I want to do them instead of “bending” to some restrictions or “rules”.
I also figured that if it was good enough for Angry Birds that it should be more than appropriate for my own projects … I’ll admit that it played a big role in my decision to go with Starling. One thing for sure they got their marketing right.
Now Starling is oriented toward touchscreens for tablets and phones but it didn’t cause any problem so far for traditional PC development. The main difference is that you now check for “touchevents” instead of “mouseevents” but you can still pull things similar to “mouse hover” and “mouse out”. It opens an interesting door toward a port to iDevices in the future even if for now I’m focused on a PC release only. If things go well then who knows. Maybe I’ll be releasing my first iPad game in some months. Not that it can’t be done any other way but there might be a lot less hassles during the port.
A very important point when choosing a framework, at least to me, is how well is it supported and how active is the community. As much as the new thing might offer something cool I don’t want to be the first one to run into some weird undocumented stuff. I want to focus on the game itself and not “help” the development of a new tool. Maybe once I get a bit more time to put on game development but right now my time is limited and the more I can focus on the game itself and less on the tools the better.
Some might remember that the graphics used in Bret Airborne are actually from a previous game of mine: Blimp Wars. The game was online for maybe 2 months and barely anyone noticed the game so it’s like using brand new graphics anyway. The graphics were created by AFMGames which is now focusing on developing their own games now I think. I got in touch with them after seeing a post on http://forums.indiegamer.com/ (back when it was an active community) about them offering to create a bunch of sketches for cheap. The sketches were so good that I kept working with them. Communication was a bit weird as I was talking with someone in the US who was dispatching the work in Asia but they did a great job.
Another great resource I’m using for graphics is http://game-icons.net. Free professional looking icons? Great! With some work in Photoshop I can customize them enough so they don’t feel like generic icons. Here’s an example of an icon I took from this website and the final result:
I can’t insist enough about how great it feels from time to time to not have any doubts on how good your game looks. Graphics don’t make a good game but it sure makes it more enjoyable when your work looks good.
Music and sounds
One day I’d like to work with a composer but until I can actually pay for it there are really great songs on http://incompetech.com/music/ for free (just remember to credit the guy of course!). Sure I risk using the same songs as another dev but the quality you get for free is incredible. I’m pretty sure most people wouldn’t notice that the songs in Bret Airborne are actually available for free on the web. Another great source of music I used for Tales of Another Galaxy is www.nosoapradio.us. Again for free with credits.
For sounds it’s a bit tricky. First because it’s not easy to me to figure out what kind of sound fits with what’s happening on the screen. That’d be a part I’d be happy to delegate. The second reason why it’s tricky is because it’s easy to find tons of free sounds of various quality. Sometimes you find the perfect sound but the recording quality is terrible. I do use Audacity to tweak what I need but I’m really not an expect in the field.
A good place to start for sounds is http://www.freesound.org/. It do requires some patience to find what you’re looking for and like I said the quality sometimes is not quite there. There are of course many places where you can pay for sounds and I sometimes do because I get so bored trying to find what I need for free. My favorite place for paid sound (and sometimes music) is http://www.soundrangers.com/. If I find the perfect “blip” and it cost me just $2 for it then I don’t waste more time trying to find something as good for free. For more sounds resources just type “free sounds” in Google or just check this list http://www.pixelprospector.com/the-big-list-of-royalty-free-music-and-sounds-free-edition/.
A worthy mention is http://www.indiesfx.co.uk/ if you’re looking for a complete package without wasting time digging through an enormous quantity of crap.
I guess that I won’t be able to say that I’ve put much thoughts on the audio design of Bret Airborne but when you have to do everything yourself you can’t expect to be great about it all. I still think I’m doing okay but maybe one day I’ll have the resources/skills to do better.
Software: FlashDevelop, TexturePacker
As much as possible I try to use free softwares for game development but sometimes it’s just easier to pay for it. That’s why I stick with FlashDevelop (I never had any complaint about it) and my old Photoshop version that still can do more than I’ll even know about it.
I did bought something new though: TexturePacker. I know that I could have found some free tool somewhere but this one is so ridiculously easy to use that I didn’t hesitate to pay $30 for it. I figured that paying $30 was a better investment than spending a few hours looking for a free tool and trying to find out how it works. Again my time is limited and I just hate wasting time on tools. TexturePacker also fits nicely with Starling so it was a no-brainer.
Okay this might sound weird but it’s the first time I actually work with particles … For some reason this stuff was scaring me in some way so I kept working with TimelineFX to create sprite sheets. The quality of course did suffered so for Bret Airborne I decided it was time to stop this nonsense.
Starling again made the job easy and with this very helpful editor I now feel like I’ve been working with particles all my life! You can find some nice tutorials on http://wiki.starling-framework.org/tutorials/start that will get you started with particles in Starling in no time.
So that covers the tech and resources I’m using for Bret Airborne and as you can see there is no dark magic involved. It’s never been easier to get into game development and you can do so on a budget. This shouldn’t be considered as the perfect list of things to use to create your first game but at the very least it can be a good starting list to find your own way. “Getting into game development” really ain’t that hard as thousands of people went at it before you and left plenty of tips behind them. Once you “get into it” then you can start asking yourself what it takes to get good at it but that’s a whole different matter.