Home
Name Modified Size InfoDownloads / Week
TCRDOS.EXE 2010-01-25 95.1 kB
README.TXT 2009-08-17 6.5 kB
CRD.EXE 2009-08-17 122.6 kB
CRP.EXE 2009-08-17 39.2 kB
compyrinth-final.tgz 2009-08-17 11.2 kB
compyrinth-winsdl.zip 2009-08-17 222.1 kB
cr.exe 2009-08-17 38.2 kB
Totals: 7 Items   534.8 kB 0
-==============================================================================-
                      C  O  M  P  Y  R  I  N  T  H
-==============================================================================-

PROJECT INFO:
Title:    Compyrinth / One Hundred Levels (working title)
Author:   Mark Burger
Date:     July 17, 2009 to August 18, 2009
Language: C, C/SDL
Status:   Finished

T A B L E   O F   C O N T E N T S :
  + Setup
  + Building
  + Gameplay
  + About

=--SETUP--=

For DOS users, there are two possible executable files. One is compiled with
the PACIFIC C compiler. It does not require DPMI, and, as a result, is slower.
Its filename is simply CRP.EXE. For users with DPMI (most of you), there is
the version compiled with DJGPP. It is faster, but requires DPMI to be loaded.
It is called CRD.EXE. Download the game to C:\ or somewhere easy to find.
Type the executable name that you downloaded and press ENTER.

For Windows users, there are also two executable files. The SDL program is
much prettier and smoother (CR-SDL.EXE). The other file, CR.EXE is console-based. 
Download the file that you would like, or both, and double-click on the program
icon to start.

For *nix/Mac users, you'll have to download the source file and read the
instructions in the next section.

=--BUILDING--=

Building from source requires an ANSI C-compliant C compiler. Optionally, if
you have SDL development libraries installed, you may want the SDL front-end,
otherwise you will have to suffer with text-mode (the default) game-play.

If you use GCC, which is most any Unix, Linux, or Mac user, open a terminal
emulator, type "tar -xvf compyrinth-final.tgz" and press ENTER. Afterwards,
type "cd compyrinth" and press ENTER again. Lastly, type "make" (and press 
ENTER). This will generate a file called "cr", which is the executable for
the game. Typing "./cr" and pressing ENTER will start up the game. Copying
it to the /usr/bin directory will make it available for play from any
directory.

More impressively, if you would like to enable the SDL, open up "render.h" in
your favorite text editor and remove any slashes (/) and stars (*) from the
first line. Save it, then, instead of typing "make", type "make sdl", and
continue following the instructions in the second paragraph. The executable
file will be called "cr-sdl", and, like before, you can copy it to your
PATH directory.

If you make the text-mode version, and then try to make the SDL version,
you may run into errors, because it won't re-compile main.c, which specifies
the main game loop, which differs between versions. If you make the text-mode
version, then alter the "render.h" file, then try typing "make sdl", the
error will occur. Just type "rm main.o" and try "make sdl" again.

For Windows and DOS, there are a multitude of C-compilers available, each
with their own IDE and way of doing things. Read up on your IDE about
installing SDL.

If you are trying to compile the SDL version in an operating system other
than Unix or Mac, a good tutorial for setting up SDL is available here:

http://lazyfoo.net/SDL_tutorials/lesson01/index.php

Another important note: Windows users who are compiling the source must also
uncomment (delete the *'s and /'s) from the first line in IO.C

=--Gameplay--=

The gameplay varies between the SDL and the text-mode versions, but, basically
the player must find the goal and the exit of a maze ("labyrinth") to graduate
to the next, larger maze. If you should find the exit before you found the
goal, an alert will appear showing that the present room is the exit. You will
know when you found the goal, because there will be another alert when you
enter the room with the goal.

These alerts will appear in the upper-left, and will say either "GOAL" or
"EXIT".

In text mode, you must press ENTER after typing each command. The commands
are as follows:

Move forward (slowly)...........w
Move forward (quickly)..........ww
Move forward (really quickly)...W
Turn left (45 degrees)..........(comma)
Turn left (20 degrees)..........(2 commas)
Turn left (5 degrees)...........(3 commas)
Turn right (45 degrees).........(period)
Turn right (20 degrees).........(2 periods)
Turn right (5 degrees)..........(3 periods)
Back up.........................s
Strafe left.....................a
Strafe right....................d
Exit............................quit

For the SDL version, the player can just press or hold the key to perform
the action, which are as follows:

Move forward....................(up arrow)
Turn left.......................(left arrow)
Turn right......................(right arrow)
Move back.......................(down arrow)
Strafe left.....................a
Strafe right....................d
Increase game-speed.............F12
Decrease game-speed.............F11
Exit............................Esc

After the fifth maze level, the game will print your score to the screen, wait
a few seconds, and then exit.

If you are playing the DOS or Windows text-versions (where the console is
pretty slow), consider playing without color and keeping the resolution
low. (40 for terminal width and 15 for terminal height). Having a high
score will be more difficult playing these versions.

As the scores go, anything above 50 is an adequate score. The game has a par
of 10 minutes to complete. Taking time longer than that will cause your 
score to be equal to a mere fifty. If your score is greater than 500, you
are probably cheating.

=--About--=

The game was written in about a month to demonstrate ray-casting in ANSI
standard C. This meant to buffering, pressing ENTER after everything, and
lots of crappy work-arounds. The SDL version was an afterthought, as a
way to make the game more playable. The game began as a predefined maze
render-bed for test scenes. Then I randomized the levels and gave the
game some purpose. The scoring, "goal" and "exit" markers, which are
the only real elements that make this project a game, came into being
within the last week of project development.

As for me, Mark Burger, the author, I'm a college student majoring in
Computer Science, and I write lots of these little projects in my spare
time. If you'd like to give me some feedback on anything, offer me
congratulations on whipping up such an awesome project, or just whine
at how terrible it is, drop me a line at 
scottishpig@users.sourceforge.net
Source: README.TXT, updated 2009-08-17