-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Happy Birthday, Keen:Vorticons!
- Loading branch information
0 parents
commit 6a3413e
Showing
7 changed files
with
794 additions
and
0 deletions.
There are no files selected for viewing
Binary file not shown.
Binary file not shown.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
Commander Keen Randomiser | ||
Ⓒ 2020 David Gow <[email protected]> | ||
|
||
Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted. | ||
|
||
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,104 @@ | ||
=========================== | ||
Commander Keen 1 Randomiser | ||
=========================== | ||
|
||
Author: David Gow <[email protected]> | ||
Version: 1.0 | ||
Website: https://davidgow.net/keen/randomiser.html | ||
|
||
|
||
About | ||
----- | ||
|
||
The Keen 1 Randomiser lets you play Keen1 with a twist: items, levels, and | ||
enemies are all randomised. | ||
|
||
The randomiser takes a copy of Keen 1, and rewrites the level files to give you | ||
a new experience. It also creates a CK1PATCH-compatible patch file which loads | ||
the replacement files and patches the random number seed in. | ||
|
||
What does it change? | ||
-------------------- | ||
|
||
- Entrances to all levels on the world map are randomised. | ||
- Positions of key items (spaceship parts and pogo stick) are randomised. | ||
- Enemy positions are shuffled (within a level). | ||
- Point items (lollies) are shuffled within a level. | ||
- Door/Keycard colours are randomised (cosmetic only). | ||
- Some block colours are randomised. | ||
- Yorp statues now hint at item locations. | ||
- You can see the random number seed on the Status Screen (press Space) | ||
|
||
Note that there are some things which don't change: | ||
- Level layouts remain the same. | ||
- Raygun ammo remains where it is in the original game. | ||
- There is always a Pogo Stick at the bottom of the Vorticon Commander's Castle | ||
- The Garg statue remains unhelpful. | ||
- The world map looks identical (but the levels within are different) | ||
|
||
How do I use it? | ||
---------------- | ||
|
||
Just run RNDKEEN1.BAT: a differently-randomised version of the game will greet | ||
you each time you play. | ||
|
||
If you want to replay the same game (or have several people play the same | ||
randomised version), you can pass a random number seed to the randomiser: | ||
C:\RANDKEEN> RNDKEEN1 /SEED 12345 | ||
(Replace 12345 with the seed you want to play.) | ||
|
||
You can check what seed you're running from the Status Screen by pressing SPACE. | ||
|
||
If you just want to generate the game, not play it, you can run RANDKEEN.EXE: | ||
this will generate the randomised maps and patch file. Note you'll still need | ||
to rename LEVEL81.CK1 and LEVEL90.CK1 to RNDLV81.CK1 and RNDLV90.CK1 | ||
respectively for the world map and ending screen to work (this is usually done | ||
by the RNDKEEN1.BAT file). | ||
|
||
RNDKEEN1.BAT and RANDKEEN.EXE accept some extra command-line parameters: | ||
- /? -- Show a help screen listing these parameters. | ||
- /SEED <seed> -- set the random number seed to <seed> | ||
- /DEBUG -- show additional debug information (can contain spoilers!) | ||
- /NOLEVELNAMES -- Make Yorp hints use level numbers instead of names | ||
|
||
The Keen 1 Randomiser requires a 386 or better to run, and probably needs a | ||
megabyte or so of memory. | ||
|
||
Hints! | ||
------ | ||
|
||
Playing Keen 1 Randomiser is, for the most part, very similar to playing Keen1, | ||
but there are a few things to be wary of. | ||
|
||
- You'll probably need to play through levels which are not necessary to win | ||
the original game. Familiarise yourself with them. | ||
- The Pogo Stick is much harder to get: you'll probably need to complete a | ||
lot of levels without it! | ||
- Ship Parts and the Pogo Stick will always be either in their original | ||
locations, or right next to the exit. You can't miss them! | ||
- Raygun Ammo is where you remember it from the original game, but because | ||
you'll be playing levels in a different order, you'll probably find ammo | ||
hard to find. Use it wisely (and get good at dodging!) | ||
- Shrine levels may contain Yorp statues, which have hints. You'll want to know | ||
the level names[1] to take advantage of these. (Or, if you know the level | ||
numbers, you can use the /NOLEVELNAMES switch.) | ||
- There's always a Pogo Stick in the Vorticon Commander's dungeon. | ||
|
||
[1]: http://www.shikadi.net/keenwiki/Keen_1_Levels | ||
|
||
Building the Source Code | ||
------------------------ | ||
|
||
If you want to modify Keen 1 Randomiser (or just see how it works), the source | ||
code is included in this archive (randkeen.c), and is also available on GitHub: | ||
|
||
https://github.com/sulix/randkeen | ||
|
||
It's normally compiled with DJGPP, but can also be built for non-DOS platforms | ||
(just compile randkeen.c with your favourite compiler: it should be reasonably | ||
standard C99). | ||
|
||
Make sure that CK1PATCH and CWSDPMI are copied to the Keen1 directory, as well | ||
as the RNDKEEN1.BAT and RANDKEEN.EXE files. There's an included shell script | ||
which compiles RANDKEEN.EXE and does this, though it has some hardcoded paths | ||
in it. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
@ECHO OFF | ||
COPY LEVEL81.CK1 RNDLV81.CK1 | ||
COPY LEVEL90.CK1 RNDLV90.CK1 | ||
RANDKEEN %1 %2 %3 %4 %5 | ||
CK1PATCH RNDKEEN1.PAT |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
#!/bin/sh | ||
|
||
OUTDIR=rndkeen1/ | ||
|
||
/usr/local/djgpp/bin/i586-pc-msdosdjgpp-gcc -o RANDKEEN.EXE randkeen.c | ||
cp RNDKEEN1.BAT $OUTDIR | ||
cp RANDKEEN.EXE $OUTDIR | ||
cp CWSDPMI.EXE $OUTDIR | ||
cp CK1PATCH.EXE $OUTDIR |
Oops, something went wrong.