PMD Experimental Dev Release 0.0.2
(c) Sean Kelly / Psych Software 2008
spkelly@andrew.cmu.edu

Minimum System Specs:
Intel Mac running OSX.  I'm working under 10.4, but 10.5 should be fine.
PPC and (*gasp*) Windows versions of the final game and perhaps some demos are likely to be available, and ought to have rather lower requirements, but to my knowledge there are no Intel Macs with retro specs, so the issue is moot for now.
Your mileage will vary with your graphics card memory and system RAM, and your CPU will dictate how long levels take to build, but not how fast they run once built.


Controls:

movement: up/down/left/right
dash: double-tap a direction

go down or up a level: z when on a stairway (may take time)

regenerate the current level: l (may take time)

quit: esc


Overview:
This is a very early build of the mystery dungeon algo I'm going to be wrapping into a classic-style RPG (if you're feeling echoes of Cave Story, don't worry, I am too- hopefully this won't take quite 5 years, but I'd like to see if Psych Software can give Studio Pixel a run for its money).
The only mechanic right now is to find a stairwell (up is currently drawn as a 0, down is currently drawn as a 1) and proceed to the next floor.  There is always one entrance and one exit to every floor (the top floor's entrance doesn't take you anywhere), and every open point on every floor can currently be reached from every other point, so there is ALWAYS a way forwards.  The end of the dev demo is currently whenever your graphics card cries uncle.  Mine (MBP 2.4GHz, 2GB RAM) gets unhappy in the 200-300 map dimension range (that's 40k-90k individual 'unique' procedurally generated tiles it has to juggle).


Known Bugs:
Mainly texture caching.  As just stated, this program generates a Royal Imperial Excrement Tonne of individual textures.  It gives them all back to the system whenever a level is deleted, and I do delete my levels, but I still find times when, with neither the CPU nor RAM maxxed out, the system will hang for a minute or so, presumably reprioritizing textures because the graphics card is full.  I'm almost certain there's a way to tell OpenGL to clear its texture cache, I just haven't put it in yet.
Likewise, while nothing I can find in my code is leaking copious memory (the only serious allocation is done during level creation, which occurs up front and is deallocated before the next level is generated), traversing large maps will slowly grow the app's RAM footprint, resulting ultimately in it taking up ALL your available RAM, realizing it's taking up ALL your available RAM, and spending 20 minutes ditching unneeded cache so it no longer takes up MORE THAN ALL of your available RAM.  I have yet to experience the app quitting outright.


Trivia:
* The only pre-made assets in this demo are the character sprite, the text font, and a pseudorandom number array.  Everything else is procedural.

* Speedrunners will be interested to hear that currently, and by all plans for the final, the seeds for all random/procedural aspects are based on the running game time and other player-adjustible state data.  The random number system itself is written into the game, so it ~should~ produce identical results regardless of the machine running the game.

* There are currently 2 level carving algorithms- Rooms&Corridors and Caverns.  Caverns, a wildfire type algo, takes a good long time at high map sizes, so if you're waiting more than 30 seconds between floors, expect a cave.

* PMD is not the final title, but it's a working description until inspiration strikes.  It stands for "Procedural Mystery Dungeon."

* That said, I already have my main cast written up, and the beginning, endings, and major turning points / branches in the plot are either written or simply pending a brain dump, so this ~should~ get a tad more interesting than your average "Beat 50 levels, run a bunch of sidequests for 10 different people who don't want to go to the dungeon themselves, and fight the final boss thereby breaking the dungeon's curse" mystery dungeon.

* ... . . .  Okay, okay, I'll spill.  Her name's Martha, and in a society where everyone uses magic, she builds robots.  But don't expect to see much plot entering the dev demos until I can create proper dialog and text box classes, which are currently not on the agenda for the academic phase of the project, at least until I have procedural enemies and items working.
