Actionscript

This page is a list of past flash applications that I’ve worked on. Each section starts off with a small table providing: links to the actual application, the source (if provided) and the specific areas of improvement that the project dealt with. Following the table, each section then has a short description along with directions if they’re necessary.

Doom Head

Version Actionscript 3.0
Links Doom Head
Source
Developed Areas State Machines, Actionscript 3.0 New Events System, Sound Management with Flash
I spent way more time on this flash application then I should have but man was it a lot of fun. You may have seen this guy on my homepage. Hopefully you recognize him. The back story of this program starts with me wanting to have an interactive avatar. A couple google searches later I came across the extracted art for the doom head from doom 2. Once I had that there was no turning back.
Overall I’m happy with the implementation of this. If you’re looking at the source code you’ll notice that I used a singleton approach for the state machine setup. This really wasn’t necessary and resulted in way too much code existing in the portrait manager class. I realized at the end that I should have made a base state for the doom head and that I should have let states store their own data. Anyways, there’s some cool little things going on in this so don’t be afraid to click a lot. Also, to really get the doom feel make sure you have your sound on. Enjoy.

Directions:

Click around, click fast, click slow, click in bursts and be patient.

Orbit Puzzle - Proof of Concept

Version Actionscript 3.0
Links Orbit Puzzle
Orbit Puzzle - Version that starts at Level 5
Source
Developed Areas 2D Spring, 2D Orbital Rotation, Actionscript 3.0 New Events System, Dynamic Population Algorithm
This project was the result of some mini-game concepts that were being drawn up at work. Afterward this idea just wouldn’t get out of my head. Over the next couple of days I brought the concept to life. In creating this little demo I got to make objects rotate and I got to do some simple spring functionality which I’d never actually gotten the chance to implement before. I also had fun writing the functionality that dynamically populates the sun with planets and the planets with moons as the player progresses through the levels. The dynamic functionality is driven by seeds that specify the number of celestial bodies and their rotation speeds. I’ve provided some directions and the source code below.

Directions:

Click the Sun to pop out the first planets. When you click on a planet you will see that planet’s moons also pop out. Each planet has one moon which is the correct moon. The correct moon will always be unique to all of the moons present on the adjacent planets. To further explain this, if I have planets A, B and C the correct moon on planet B will not be a moon that shows up on A or C. All of the other moons orbiting B will be in common with at least one moon on A or C.
It starts off quite slow so I’ve compiled and linked two versions in the above table. The first is the game as it currently starts. The second is a compiled version that starts out on level 5. This you’ll see has way more moons and planets and they’re moving much faster.

Quote Generator

Version Actionscript 2.0 then converted to 3.0
Links Quote Generator
Source
Developed Areas Data File Conversion / Generation, Actionscript 3.0 Syntax
This is an extremely simple application that I did for a friend’s blog. All it does is pull a list of quotes and their speaker from an xml file. It then lets users cycle through them one by one by pressing the button. The original list was pulled from a google spreadsheet using a small c++ program. This tiny app read the data in from an exported CSV file and then spit out the desired xml. These quotes are then organized at random and set up so that the user can cycle through them. I also added some dynamic buttons that pop up if the current quote is too big for the given text box. After finishing this small project I used it as a spring board into the next version of ActionScript by converting it from 2.0 to 3.0.

Directions:

Yeah, just press the button.

Rock Paper Scissors Match Viewer

Version Actionscript 2.0
Links RPS Match Viewer
Source
Developed Areas Interfaces, Assert Class, Packages, Dynamic Visual Content, RSS like xml Poling, Animation Class
This application requires a bit of back story though I’ll do my best to keep it short. At Vicarious a couple of my friends worked on a Rock Paper Scissors application that could be played over instant messenger. It was all done through an aim bot that managed and recorded games. All of this data was instantly sent up to a web page to be displayed. It had general player stats, ranking lists and it even had it’s own achievement system (”just like” xbox live). Anyways, I did not help with this portion of the system. The application linked above is a viewer I developed for these stored games.
The viewer is setup to poll the game.xml file pulling in data as it changes so that games can be watched on the fly. All of the art is pulled in from filenames and references names provided in the art.xml file. This system was created to keep the application design completely up to the artist. As long as they provided the appropriate reference names for the pieces of the UI and for the videos to be played after each throw, they could make it look like whatever they wanted. I’m actually really proud of how this little viewer turned out.

Directions:

Really there’s not much interaction with this application. You should click play and replay. That’s about it. It’s what’s happening under the hood that’s cool.

Side Scroller Collision System

Version Actionscript 2.0
Links Side Scroller Collision System
Developed Areas State Machines, 2D Collision, Asynchronus File Loading, Event System, Inheritance.
Years ago I was playing around with making a side scroller. Specifically I was using the project to see if I could come up with some solutions for side scroller type collision detection on my own. I also used this project to write my first state machine based on the example given in Programming Game AI by Example. The state machine was used to manage the demo’s update loop. On a side note, I really love and recommend this book.

Directions:

When the level loads you’ll probably have to click on the window to give it focus. Once you’ve done that just use the arrow keys to move around and to jump. Lines can be jumped through if you’re jumping with the line’s normal (shown by the perpendicular blue lines). You’ll also notice a few different kinds of boxes showing different collision types. There is a slippery box, a jumper box and some boxes which only have surface collision. Enjoy!

Misc.

The small programs in this section are other little prototypes that I’ve done in the past. These programs are either functionally simple, have a lesser level of polish or they stand on code I’m not particularly proud of. That aside, each has at least a small feature that makes them worth mentioning.

Tile Mover Prototype

This is a very rough application to demonstrate tile based movement in a top down game. Briefly at work I was under the impression that my next project was going to be a turn based strategy game. I quickly started to do personal research as this genre isn’t one of my favorites. The position changing is instant so don’t expect the character to slide smoothly. Movement cost is represented on each tile by a number. The only real redeeming quality of this program is how it calculates where you can move. Specifically, when you click on the main character the optional movement locations are highlighted using a recursive algorithm.

Image Cycler

My girlfriend is artistic and one of her art related interests is My Little Pony customization. One night she had just put the finishing touches on a recent custom and she was wondering the best way to show it off to the community. I presented her with an idea and around 1am I had made what you see to the left.

Ball Move Thing

Yeah I really don’t know what this is. A while back when I had decided to start playing around with Actionscript again I ended up making this as a warm up. The + and - buttons add and subtract balls. By default the balls want to get to the larger Drag Me ball and they don’t like to get close to your mouse. Depending on whether the friendly button is set to true or false they like or do not like each other. You will never see the horrible code that’s underneath as I stopped working on this as fast as I started.