billy and casey:
a game by nick irvine
http://www.nfirvine.com/

This is my first entry in Ludum Dare, so it's a little rough.  However, it's got a solid foundation on which an actual game could be built.

The theme for LD11 is minimalism, and this game satisfies that theme by providing the player with a minimal instruction set to play with.  It had nothing to do with time constraints.

I had fun making it, I guess.


REQUIREMENTS
(aka, libs that I have; if you have a different version, you mileage may vary)
-pygame 1.8.1pre
-pyglet '$Id: __init__.py 1756 2008-02-11 07:42:33Z Alex.Holkner $'
-pymunk 0.6
-Python 2.5.2 (r252:60911, Apr  8 2008, 21:49:41) 


PLAYING THIS RAD GAME

Fire it up with `./casey` .  It doesn't do anything special.  Non-POSIX platforms will have to run `python casey.py`.

The first thought you'll have is that the game has so much content and so many trippy swirly colours that you'll think you're gonna puke.  And you're half right!

Dust off your monocle and squint your eyes good and hard!  See that little yellow corn kernel?  That's you!  Well, that's Billy.  He's totally rad.  You can spin him around and make him fly through the galaxy with the arrow keys or wasd.  

Well, that's it!  i hope you had fun!  What an awesome game!  A++++++++++!

You wish, McDish!  It's not quite so simple.  There's a few other things in the room that you'll wanna check.  That blue mailbox-looking fellow is Billy's pet robot Casey.  You can push her about a little, but she's a fat pig of a machine and you're only a little piece of corn, so you won't get far...

Luckily, Billy just got a stack of old 3.5" floppies from his dad's work for his birthday!  YAY!  Hopefully they're not full of bootsector viruses!  Don't leave that floppy in the drive when you shut down the computer, Billy!  Uh oh!

Enough silliness, Billy, you saucy fellow!  Back to business.  Billy's written some machine instructions onto his floppies WITH HIS MIND!  That is, they come with a default program.  If you press 'e' or space, Billy will toss one of those puppies, but watch out! they only go so far!  EVIL!

If one of these floppies hits Casey, WATCH OUT PAWTUCKET!  Casey will load the code and execute the living daylights out of it.  Watch her spin in mindless circles!  Give him another, and he'll do it again!  YAY FUN TIME!

I imagine you've just about blown your mind several times over by now, BUT WAIT!  THERE'S MORE!


PROGRAMMING
If you press the 'r' key, you'll see the magical console wherein Billy stores the code.  When you exit the console (either by clicking the X, or by pressing Escape), all of Billy's disks get updated with the new program.  However, Billy came with some default code, just to show you how it works a little bit.

In the main part of the console, you'll see the actual program, which looks kinda like this:

fwd 2000
rot ccw     2000
rev 2000
rot cw      1000

Each and every one of those lines is a separate instruction for Casey to follow when he gets the disk.  What's that you say?  "That's unintelligible gibberish!"  Well, you're a fat stupid jerk and I don't care for you at all, good fellow! 

Anyway, here's the breakdown.  At the first of the line, you'll see a three-letter code, which we call an "opcode".  In the spirit of minimalism, Casey only knows three different instructions, nearly four. 

fwd -- "forward"
rev -- "reverse"
rot -- "rotate"

Everything after the opcode are the parameters, or arguments, or bibbles.  The first argument for forward and reverse is an amount of time in milliseconds.  So, if Casey gets to that instruction, he'll spin his wheels forward for x milliseconds, in an attempt to move forward.  Same with reverse, only, well, in reverse.

Rotate is a little different.  The first argument is the direction of rotation, either cw for clockwise, or ccw for counterclockwise (aka anticlockwise).  The second is our old friend the time argument.  So for example, this instruction:
rot cw 1000
rotates Casey for 1000 milliseconds (1 second).

Did someone say "How do I manipulate the program list so that it has the instructions in the order I want with the right arguments?"?  No?  I'm telling you anyway.

* In the list itself, click the little x next to an instruction to delete that instruction.  The up arrow moves the instruction up, and the down arrow moves it down, swapping with the one above or below.
* You can left-click any argument to add 10 (or toggle it, if it's a rot instruction), right-click to subtract 10, and mousewheel forward or backward to add or subtract 100.
* Adding new instructions is simply a matter of clicking the correct button in the palette on the left.  Good luck!

After you're finished, just close it with the red X.  (Don't close the game.  Unless you want to.  I wouldn't blame you, really.  FINE.  BE THAT WAY.  I DON'T LOVE YOU ANY MORE!)  Now all your disks have the updated program on it, which you can toss to Casey.


OBJECTIVE
The objective is to be part of a hard-working team of self-driven individuals.  A position in the field of spelunking is most desirable.

The other objective is to get Casey to the goal.  She's got a fondness for spinning checkboard patterns, and she needs your help to scratch that itch!

Using a combination of intelligence, dexterity, wisdom, strength, constitution, and charisma, you'll have to navigate Casey through a maze of blocky obstacles to get him through... a maze of blocky obstacles... and sharp stuff.  Ooh, and fire, gotta have fire.

Minimalism: it's all about imagining what something /isn't/.  Like maybe a decent videogame.


CONTACT

You can send me mail by going to your favour UNIXy server or desktop and typing the command `cat > /dev/null', typing your letter, and finishing off with a Ctrl-D for good measure.  To retrieve my response, wait approximately one week after sending mail, then type the command `cat /dev/random > /dev/dsp`.

Happy bugling!


