CONTENTS:
1. Foreword / usage conditions
2. Playing JDE / general info
3. Making your own dances
4. Version History

---~~~ 1 ~~~---
Thank you for showing interest in JDE!  My overarching intent in making the JDE applet was to create a quick & dirty limited DDR-type game framework, playable on any machine, with which users could share their own music and dances.  As such, I encourage people to put the JDE framework on their own sites, but only under the following conditions:
1. Most importantly, make your JDE site yours.  Use the JDE applet, but write your own dances.  If you feel like it, hack up the graphics set (it would be best to keep the images their original size, however...).  Just be sure the JDE experience you offer on your site isn't the same as anyone else's to your knowledge.  If everyone has the exact same thing, a) it starts to get old, and b) you start running into copyright issues (see below!)
2. Use your own music!  Stick to tunes you either write yourself or get with permission from their original authors or from the public domain.  I don't want a zillion copyright lawyers on my back saying I'm encouraging piracy!  This downloadable package was originally made available with no music, and having stated this condition, I accept no responsibility for the music internet users decide to write dances to!
3. If you wish to put JDE up for download on your site, a) try to find the most recent version (check http://www.andrew.cmu.edu/user/spkelly/ or do a web search if that page no longer exists) and b) post the original .zip archive, including this readme.  No more, no less.
4. Tell me about it!  I like to know when people like my site or my software!  If there's enough interest, I may even post a list of sites containing JDE!  See the bottom of this file for contact info.

---~~~2~~~---
For those of you who don't know DDR, the point of the game is to 'dance' (traditionally on a floor mat or block, but you'll have to make due with the keyboard here) to music by hitting arrow buttons/squares in time with the music.  Most arcades and console renditions contain multiple play modes and multiple quality tracks, with varying levels of dance for each track.  Here music quality will be dictated by the JAVA interface I use (too lazy to write my own), graphics will be dictated by transfer time, and only 10 dances per applet will be supported.  And I don't think I'll ever code beyond one player/one pad.  None the less, enjoy!
Controls are pretty simple.  Everything is by keyboard.  Once the applet loads ('Welcome to...' message appears in console window, or starting instructions in main window), press a number between 0 and 9 to load up a music track.  When it's finished loading, music will start playing.  Press spacebar to start/restart the dance whenever it's not playing, or stop it before the end.  Either the arrow keys or the num pad 4/2/8/6 will register for the dance arrows.  If you press a recognized key at a time when its use isn't defined (such as arrows while on instruction screen) you may get some odd java error or other.  To my knowledge, no such errors are terminal, so you should be able to just keep going.  If the applet doesn't appear to be working at all, try reloading the page or clicking the mouse within the applet window.
Scoring: You get 5 points per step you hit within 1/8 second of the beat (arrow turns green), 2 points for within 1/4 second (arrow turns yellow) and 1 point for within 1/2 second (arrow turns red).  Outside of that range, steps don't register at all and you are neither rewarded nor penalized.  You're given a percentage score based on the fraction of total points possible you achieved.  It is possible to score a perfect.
There are still a few bugs, most having to do with lack of error-handling for bad dance files, but if you have any questions/comments, my e-mail is at the bottom of this file.  Also, while I was planning originally on making JDE partly shareware (player free, editor for encoded dance files shareware), this is the internet after all, and if I want to keep expecting cool free stuff, the least I can do is give back some of my own.

---~~~ 3 ~~~---
What you've probably been waiting for, how you, yes ~you~, can write your own JDE dances!  The files are intimidating, but it's really not all that difficult.  All you need is a bare-bones ASCII-standard text editor (for MacOS9 use SimpleText or SimpleEdit, for Win machines try notepad, for OSX users- do NOT use TextEdit as even in plain-text mode it's save encoding causes problems.  Instead, try running pico from a Terminal window (type 'pico', hit return).  I'll just presume UNIX people know what they're doing on this front) and a reasonable audio conversion utility (SoundAppPPC for Mac, not sure what will work elsewhere).  A graphics editor can also be useful.  Just follow these simple steps:

1. Read section 1 of this file.  Really.  If you're making dances, you ought to know the basic guidelines of JDE usage.
2. Double-check that you've thoroughly, properly, and successfully completed step 1.
3. Find an audio file you wish to write a dance for.
4. Convert it to a 16-bit mu-law (lower-case mu looks like a 'u' with a long tail on the left, for those of you who don't know greek) encoded 8012Hz mono .au file.  For information on how to do this, read the docs with your conversion utility.  No, you cannot just use an MP3, no you cannot just use a .wav, no you cannot just use a MIDI.  If I went into detail on why you cannot use each format you cannot use, I'd probably end up shooting you first.  Just take it on faith that the obscure Sun Microsystems .au format is the only one JAVA is going to like.
5. Find/make a suitable background image in .gif or .jpg format.  Ideally make it 400x400, but I think the applet can handle other sizes.
6. Now start a new plain ASCII text file named 'dance.jde'.  This is the data file that will contain the dance.  The format of the file is as follows (replace all [] entries, []s and all, with a value of the type described within the []s.  Hence [author- string] would be replaced by 'John_Doe', only without the 's.  All 'string' values should contain no spaces.  All 'red'/'green'/'blue' values are components of a color to be used in a specified aspect of the game):

[author- string (on first line of file)]
[dance name- string]
[music name- string]
[dance difficulty- string]
[pathname to music file from dance directory, usually just the name of the .au file you just converted- string]
[pathname to background image, usually just the name of the background image file- string]
[background red- integer 0-255] [background green- integer 0-255] [background blue- integer 0-255]
[main text red- integer 0-255] [main text green- integer 0-255] [main text blue- integer 0-255]
[secondary text red- integer 0-255] [secondary text green- integer 0-255] [secondary text blue- integer 0-255]
[accent text red- integer 0-255] [accent text green- integer 0-255] [accent text blue- integer 0-255]
[beats on screen at once (arrow will show up on screen when it is this many beats from the current point in the song)- decimal]
[number of tempos in music- integer 1-30]
[tempo1 milliseconds per beat- decimal] [# beats to use tempo1- integer]
[if present, tempo2- integer] [# beats tempo2- integer]
[{repeat previous line for each tempo used}]
[number of steps in dance- integer 0-500]
[step1 type- integer 0=left 1=down 2=up 3=right 4=FREE] [step1 beat- decimal >=0 (first beat is 0)]
[step2 type- integer] [step2 beat- decimal]
[{repeat previous line for each step in dance}]
{end of file}

Not too difficult.  A few hints- ms/beat=( 1/( (beats/min)/60) ) )x1000.  The higher you set beats/screen the slower the arrows will move, but setting it too high will make arrows appear so close as to be difficult to distinguish.  If you'd rather just define steps by their time in milliseconds, set the tempo to 1 ms/beat with however many hundred 'beats' per screen.
7. Create a directory/folder within the main JDE directory/folder named 'danceN' where N is a single digit 0-9 corresponding to the numeric slot you wish the dance to fill.  Place your .au, dance.jde and background image files in the new directory/folder.  JDE should now be able to find and load the dance.
8. Place the whole JDE directory/folder in the same place you have the .html/.htm file you want to contain the applet.  Now copy the following lines into your .html/.htm file (open it in a text editor):

<CENTER>
<applet codebase="JDE" archive="JDE.jar" code="JDE" width=400 height=400>
</applet>
</CENTER>

Now when you open the file in a Java-capable browser, the applet should play.
9. Test and debug.  Adjust timings and speeds.  If you get a text window with a bunch of errors, or if the music or dance doesn't seem to load, there's probably a problem with your dance file.  Make sure you have the proper format, and make sure it is saved as a plain ASCII text file named 'dance.jde' with no appended/hidden '.txt'.  If your music doesn't play, double-check its format in an audio player.  If you can't even get past the 'press 0-9 to load dance/music' screen, try moving your mouse into the applet box, clicking the applet box, or simply reloading/refreshing the page.
10. Put the whole shebang (JDE folder, .htm/.html file) online and let others see it!  If you're nice, add a link to SGIC.

---~~~4~~~---
1.0:
	playfield area quadrupled (200x200 to 400x400)
	added 'freestyle' step definition
	overhauled dance loading to process steps based on beat/tempo 
		rather than straight milliseconds
	up to 30 tempo definitions now supported
	max steps raised to 500
	revised text, added new intro screen
beta:
	10 dances per applet now supported
	background images and color loading added to dance files
	text revision
alpha:
	applet runs
	single dance is supported
	steps written by millisecond timing

JDE source & docs (c) Sean Kelly
spkelly@andrew.cmu.edu
http://www.andrew.cmu.edu/user/spkelly/