Tuesday, August 4, 2009

James Dietz: Coming Back Hard Again

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,


End Technobabble

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).
College Essay

[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

Moulin Rouge.]

No comments:

Post a Comment

Commenters must avoid profanity, harsh language and disparaging remarks on the basis of gender, race, class, ethnicity, national origin, religion, sexual orientation or disability. All comments to the blog are moderated by AAPD, and can be subject to removal at any time.

Please use the comments section to engage in the ongoing dialogue between our program funders, current and former interns, our colleagues, and the broader disability community, and to respond to intern posts that intrigue you, to share your own stories, or to simply express your gratitude for being allowed into the world of our summer interns.