
TOMATO BOXES Version 1.1 - Clyde Mandelin (clydem3@asu.edu)
------------------------   http://www.public.asu.edu/~clydem3
Version 1.1 - April 1998


HISTORY & EVOLUTION
-------------------

TOMATO BOXES is based on the original game known as "Sokoban", written by
H. Imabayashi.  Many different versions have been ported to nearly every
platform in existence.

Although I had seen pictures of the Gameboy version before, the first
version I played was on my TI-85 calculator (yeah, you can program games
for calculators - try ti-calc.org for information on TI games.)  This
version was graphically unimpressive, but I enjoyed it immensely.  After
a while, I realized the actual gameplay was very simple and that I could
easily program a version for DOS systems.

So I wrote the program.  At the same time I was learning about manipulating
the VGA palette, so I put some of my experiments into the Sokoban game I
created, and Tomato Boxes was born.  This was about January of 1997.  I
completed most of the game, but it was never completed due to feature-itis;
I was making custom-level editors, new palettes, new levels, and many other
things.  The one thing I really wanted to add was sound effects.  However,
I did not know a thing about sound, in fact I didn't even have a sound card.
Also, the original Tomato Boxes was programmed and tested on my 16Mhz 386SX
with 2MB RAM.  Seeing as how it ran without any problems, I am glad how 
portable my game is to different system configurations.

Since I didn't know how to program sound and the features kept coming, I
finally dropped the program.  But just a few months ago, I found a game
programming library called "Allegro" that had nearly everything I needed
(It didn't have everything, though).  It included MIDI and .WAV support
in an easy to use interface, so I immediately started to learn how to use
Allegro.

Finally, I rewrote the entire game.  The original was in C, the rewrite
was done in C++.  Why?  No reason, just to get practice.  I also added
sound, new palettes, an ending, and other stuff.  So here it is.  Version 1.1.
I enjoyed making it over spring break so much that I plan on making many 
updates.  If you like the game and want to get updates, check my web site:

                http://www.public.asu.edu/~clydem3

This web site should be around for 3 more years (until 2001/2002) for sure,
after that, who knows where I'll set up at.


OBJECT OF TOMATO BOXES
----------------------

The object of the game is to push all the boxes onto the little green spots
located throughout the level.  Once you have done this, you will go onto the
next level.  There are 55 levels in all.  Not all the levels are from the
original Sokoban game, and the do not go in the same order.  The reason for
this is that many other versions put all 50 original levels, and then put
new ones after that.  To me, doing this stifles creativity of the programmer
and the players.  However, doing it that way does preserve the nostalgic
feel of the game, but I opted to do it my way.


SCORING:
--------

At the end of each level, your score is determined by how many moves you took
subtracted from the par for that level.  The par for each level was calculated
by giving the program to many people and have them record their scores for each
level.

As for the best scores for each level, let's just say that they can be easily
beaten by Sokoban pros.

Also, in this version, only your moves are counted, not your pushes.  In future
versions this will be implemented.


KEYS:
-----

The instructions are displayed during the game, but here are some more detailed
descriptions:

 * Arrow keys - move/push
 * R - Restart current level
 * N - Start new game - score goes back to 0, start at Level 1
 * U - Undo - Records 1000 moves - if you move more than 1000,
              it records over other moves - it'll still work,
              you just won't be able to go back to the very
              beginning.
 * S - Toggle Sound On/Off - works only if you have a sound card
                             that works with this game (most should)
 * P - Toggle Palette On/Off - is that palette making you dizzy or
                               is it bothering your thinking process?
                               Press P to turn it off.

 * Are there any cheat codes? Maybe. Maybe not.


REQUIREMENTS:
-------------

 * VGA card or better (VGA is pretty old now, so you probably have this)
 * 25MHZ processor or better (not too sure about this for the ending)
 * Keyboard (duh)
 * Monitor (you probably have a monitor if you didn't print this out)
 * Sound card optional (many kinds supported - autodetected by game)
 * Speakers optional (if you want to hear the sound)
 * At least 1.5 MB RAM (more recommended)
 * DOS-based operating system (DOS, Windows 3.x, Windows 95)
 * Giant meat cleaver
 * Other stuff

 NOTE: The 25MHZ part is only an estimate - my other computers don't run
       DOS anymore, so I can't test the game on them.


NOTES ABOUT MUSIC (no pun intended)
-----------------

  We DID NOT make the MIDI files used in the game.  We found them on the
  Internet.  Since we did not make them and somebody else might feel
  angry about our selling their products, we are not selling this game.
  Please note, we do not have any ownership on these MIDI files.  If you
  notice that your MIDI is being used and would like it taken off, please
  send an e-mail to clydem3@asu.edu saying so and we will quickly do take
  it off.  I do not want to get in any legal trouble so I won't ask any
  questions.

  If you really like this game and you compose MIDI music, feel free to
  contact me if you would like to contribute some music to the game.  I
  happen to be artistically and musically declined.

  However, the .WAV files are our original work (although not impressive).


NOTES ABOUT PALETTE DESIGNS
---------------------------

  ALL of the palette designs in the game are created at the beginning of
  each level, meaning each design has some equation or algorithm.

  The diamond, for instance, doesn't really have a good equation, so I
  use a simple loop to draw it.

  The really impressive stuff, though are just multivariable equations.
  There is no randomness to any of them.

  How did I make them? (yes, I made them all)  I'm just a math genius.

  In the future versions, I will add more backgrounds and probably delete
  some current ones, so please tell me which ones I should keep.  My
  e-mail address is somewhere around here.


STUFF TO BE ADDED:
------------------

 * More levels
 * More/different palette designs
 * More/different music
 * More/different sound effects
 * Better ending
 * Custom tilesets
 * Custom level editor
 * Little fixes here and there 
    i.e when you restart a level, the music doesn't restart
 * Number of pushes and moves calculated
 * Better high scores
 * Better par scores
 * Bosses (just joking)
 * Other stuff I can't think of - maybe two player game
   where you try to squish the other guy with a box
   against a wall or another box.
 

CREDITS:
--------

 Programmer:          Clyde Mandelin  (clydem3@asu.edu)
 Palette StufF:       Clyde Mandelin

 Character Graphics:  Eric Thorson (ethorson@student.devry-phx.edu)
 Sound Effects:       Eric Thorson

 Testers:             Many people who know who they are (Thanks!)



If you would like to program games, get DJGPP and Allegro at

            http:/www.delorie.com

DJGPP is a cool C/C++ compiler and Allegro is a game programming library
for DJGPP.  You can do A LOT with it, 3d stuff, hi-res graphics, data file
stuff, whatever.