Programming, FlashPunk, etc.

So I took a break from working on my game in StencylWorks this week and am working my way through FlashPunk tutorials. For those of you who aren’t familiar with FlashPunk, it’s a free Flash-based (duh) library for developing 2D games. (See logo below.) Its creator is Chevy Ray Johnston.

FlashPunk logoWhat follows is a tldr post, so if you care about whether I made any progress on my game, skip to the bottom. Otherwise keep on reading. Maybe you can identify with my learning process.

Programming != Easy (at least for me)

Over the years I’ve tried learning different programming languages, and have actually made some progress in getting the basics down, but don’t have much to show for my efforts. I tried reading books, tried out Game Maker, etc. but didn’t really get it. There were a lot of disparate concepts that just didn’t come together in my head very well.

Then I took a Java programming class a couple of years ago through UCLA’s extension program and I did pretty well. I had a good teacher, which made a difference, but after I finished the class, I didn’t really know what to do next. I know HTML and some CSS but making websites for no reason didn’t really interest me. The tutorials in the programming books I own are too simple and don’t actually cover making anything fun.

Thankfully, shortly after I finished the class, I received an invite to the Stencyl beta (I think it was November 2009?). I learned a lot in the beta, even though most of it wasn’t directly related to programming. After Stencyl officially launched in June, I needed to take a break from working on Stencyl documentation and actually make a game. I covered my progress on my game a bit in my last post.

Although StencylWork’s Design Mode (see pic below) is a form of programming, and I enjoy using it, I need to branch out a bit and develop better programming skills.

StencylWorks Design Mode

This is a behavior I built in StencylWorks for my game. It's part of the logic that allows the player character to attack enemies.

In this case I’m trying out FlashPunk because I want to find out if there are other ways to solve some of the development challenges I’m running into and get a different perspective on Flash game libraries.

StencylWorks uses Flixel, another popular Flash game library made by Adam Saltsman, integrated with Box2D, a physics engine made by Erin Catto, plus a lot of other custom code written by Jon Chung (Stencyl’s founder) and other Stencyl developers.

Note: I like to give credit to people who have put a lot of effort into making free stuff for aspiring game developers like me.

From what I understand, Flixel is designed differently from FlashPunk. I’m somewhat familiar with Flixel’s API and how it’s structured due to my, admittedly basic, understanding of how StencylWorks is set up, but to get some perspective, and learn how to use an actual programming language, I decided to give FlashPunk a shot.

So because I actually have a game I’m working on, and WILL finish, I’m starting to “get” the FlashPunk tutorials I’m going through. I’m not spending my evenings sitting in front of a computer (which is what I do all day), doing tutorials simply for the sake of learning something, I have a goal in mind here, to make a video game people can play (one that hopefully doesn’t suck too much).

I think David Heinemeier Hansson (creator of the Ruby on Rails framework, partner at 37signals) summed it up best, when he said he learned to program when he made a mission out of it.

So far it’s going pretty well, though it’s hard to screw up tutorials. We’ll see how things go once I start writing my own code. I’ll post progress updates here.

Game Progress

Okay, tldr post is over. So how’s the game going?

With all that in mind, I did solve a significant issue in my game’s design last weekend, namely how to pause the player’s character and enemies in the game while still allowing the player to interact with other objects, such as menus. I’m certainly not done implementing that core feature, but I can replicate the method I used to solve the problem in one area to solve it in others.

Not a whole lot of progress to report otherwise, though I hope to get more done this upcoming weekend. If anybody is interested, I can post StencylWorks’ tutorial content here. If I write anything semi-useful in AS3 as part of my FlashPunk efforts, I’ll post that here, too, though don’t expect anything useful for a few months.

I’m not really sure what I’ll end up building my game in, StencylWorks or FlashPunk, though it’ll likely be StencylWorks given the progress I’ve made up to this point.

Anyway, more game development and programming updates soon.