This is scattered, but I hope you enjoy it.
Like David I've felt an increased drive to work on personal projects not only because of all
I've been doing, but because of all I haven't been given the chance to do at my current
internship. Working in this type of environment and speaking or hearing from the
knowledgeable speakers at our AAPD events have driven it home: I need to follow my passions.
I'm working on creating a game using the Klango environment (http://klango.net). It's a
simple 2d maze game rendered in audio. The maze is represented by an x,y grid of tiles.
Each tile is a different ground type (metal/wood/concrete, lava - kills you, ice - slippery
so movement doesn't stop immediately etc.). Entities in the game world range from you the
player to simple enemies (which will probably just move in simple paterns if anything) to
walls, doors, sound effects, explosives (death when touched), switches (which send a signal
- read on for more on signals), powerups and more. The goal will be to complete each game
maze by collecting all of the "tokens" scattered through a maze (I haven't decided on the
story yet - computer chips which are needed to complete the mad scientists experiment?
Hostage monkeys held captive for lab experiments? Who knows?!) within a given time limit.
The most exciting feature of this game on the design end are signals. Every object sends
out a signal when it is created, dies (usually as a result of colliding with the user or an
explosive) and so on. Switches are signaled when pressed by the player. Every object
listens for signals and can respond to any signal sent by any other object. As a result, if
I flip a certain switch, walls will mysteriously open up (releasing robots held behind them)
and alarm sounds will be turned on, creating tention and awesomeness. The collection or
destruction of certain objects can also signal other objects - all monsters can be killed
when the player collects a certain item, or fires may start appearing randomly across the
map (thanks to timers, which can also be signaled) after the player kills a particularly
intimidating boss character.
WARNING: Technobabble ahead.
Klango makes use of the Lua scripting language, so that is what this game will be written
in. Each entity will be represented by a table (basically an associative array - there are
no native object-oriented programming facilities in Lua) with the expected attributes
(standingsound, type, etc). Signals will be placed in a queue when sent from a particular
entity. On each iteration of the game loop (once every 30 milliseconds according to Klango
specifications), the game will
- change the position of each item's sound in 3d space
- Check player's current tile; should it be killed? (lava?) Check entities colliding with
player as well (explosive? Fire?)
- peek at the signal queue and see if the topmost signal applies to the current entity and
if so, performs the designated action (kills the object, wakes up inactive ones, etc). Once
action has been taken (or not), the signal is popped from the queue and the next one is
peeked at. Loops until the queue is emptied... then again I might have the queue checked only once per loop, as there's a potential for tons of signals to stack up slowing down a single loop iteration considerably. Of cousre this would mean a little bit of lag when processing signals (and a potential for starvation as new signals can be continuously queued up). More than likely I'm thinking too much about this, the most exciting feature of the game.
- Checks keyboard input and performs actions as required (move player, use nearest item,
As you can see (especially if you read the technogarbage) the design isn't completely nailed down, but I'm excited nonetheless. This game was formerly
being written in C++, but I find Klango/lua to be much less temperamental and much easier to
test and prototype with. Check it out at klango.net - besides a cool programming environment it's also a neat little community complete with forums and open media catalog (I can spend all day looking through radio stations, podcasts and youtube videos with the speed and efficiency any procrastinator needs to get further behind in today's hectic world).
Here again is the college skit I recorded in late 2005. I've written a little script below for those who can't hear. I'm working on a script for a little something detailing some component of my DC experience (reigniting a passion I've slept on for 4 years).
[Street, daytime. The sound of birds and the rumble of many passing vehicles. Footsteps
approach from the left.]
W: Excuse me. Do you need help?
J: I hear a female voice to the left of me on the corner of Cort and Rempsen on my way home
from school. The voice becomes more insistent as I feel a hand close around my arm.
W: Here, let me help you.
j: ... it says before I can respond. I feel a hand begin to pull me across the street.
[I try to explain that I'll be fine and I don't need help while she insists ("come on...
take a step, and another step, and ANOTHER STEP, and... OK you're doing great!")
J: I always wonder how my white cane was able to attract passers-by like it was some kind of
magnet. I get everything from drive-by prayers...
Car: (driving by) [2 brief horn honks] Jesus loves you!
J: ... to women accosting my mother with recipes to cure my condition (one of them involved
pouring hot wax over my eyes... no thanks) and any other type of help you can think of.
Fortunately, I don't usually have to deal with this type of exadurated assistance at home or
[Street scene fades out. Cue cheesy flashback harp and jaunty "movin' around" music.]
My parents, after the shock of my sudden blindness, realized that just because I couldn't
see didn't mean I couldn't experience life the way others did. So instead of sheltering me
from the outside sighted world like some other parents, my parents made sure that I was
placed in a Kindergarten class with other sighted children. I learned to read and write in
Braille while my classmates learned print. Of course later in middle school I replaced the
clunky Perkins brailler with a sleek Dell laptop which ended up being a much quicker method
of completing assignments. [Keys typing] I use a screen reader called JAWS which reads the
text from a computer screen in a synthesized voice to use the computer.
[Music cuts out and is replaced by an ominous low drone]
J: I often forget how lucky I am to have such materials available to me. ... As I approach
the other side of Repmsen, I thought of all the benefits I have and realized that there was
no reason to be so put off by this women. At least I was living in a community where people
are willing to help. Suppose I got lost; I'd be needing that help now.
[Street sounds fade back in. Footsteps to the left.]
J: Uh, excuse me; do you think I could hold onto your elbow instead of you holding me like
this? That way I can follow you instead of you push me.
W: What? Oh yeah, yeah sure here ya go. ... Alright, here's the curbe.
J: Thank you very much ma'am.
W: Oh no problem. Don't mention it. See ya later.
[Fade out to triumphant orchestra epicness, ripped from the famous "elephant" scene of