Things In The Dark

Scott Baker
Can you wrest control of the Dark World from the norfs by capturing snakes, dinits, blockheads, and pink graps? "Things In The Dark" is populated by a myriad of strange creatures and is paced for youngsters. Originally written for the Atari (16K RAM with tape, 32K RAM for disk), we've added versions for the Commodore 64; unexpanded VIC-20; Apple (at least 48K RAM); TI-99/4A; IBM PC (at least 64K RAM and color/graphics adapter); and PCjr. The Atari and Commodore versions require a joystick.
You are in a strange Dark World populated by bizarre creatures. Your job is to keep this world free of gremlins, dinits, blockheads, snakes, and pink graps. To accomplish this, you move your robot over these creatures. If you score 2500 points you are rewarded with another robot (except in the TI version).
Your adversaries in the Dark World are the terrible norfs, who can appear anywhere on the screen. They won't attack you directly, but if you bump into one, your robot and the norf will be zapped out of existence. As more and more norfs fill the screen, it becomes increasingly difficult to maneuver. Eventually, you may have to sacrifice a robot to escape from a ring of evil norfs, creatures whose rapacity cannot be overemphasized.
Avoiding Turncoat Graps
All versions of "Things In The Dark" have their own instruction screens explaining the particular details of each program. But they share the same basic features. Each version has six levels of difficulty. The game automatically advances to higher levels at 5000-point intervals unless you select the No Advance option (which allows you to play the entire game at the same level). The robot in play always appears first at the center of the screen. A spare robot appears in the upper right corner of the screen, ready to jump into action should your current robot be done in by a norf.
Your score is recorded in the upper-left corner of the screen. Above the score is the grap count, which tells you how much time is left before a grap changes color. This is important because you gain points by running over a normal-colored grap, but you'll be destroyed by touching one that has changed color. (Grap colors vary in the different programs; also, the grap turns upside-down instead of changing colors in the Apple version.) The game's present level of difficulty is also displayed on the screen, along with the number of turns you have left. If the turn counter reaches zero, the game ends.
In the IBM, TI, and Apple versions, your robot moves continuously. Use the cursor keys to control direction in the IBM and TI versions; use I-J-K-L in the Apple version.
You can temporarily freeze the action on the Atari, Commodore 64, and VIC-20 versions by pressing the joystick button. Continue the game by pressing the button again. On the TI version, freeze by pressing P (for Pause) and continue by pressing R (for Restart). On the IBM version, freeze by pressing Ctrl-Num Lock on the PC or Function-Q (Pause) on the PCjr; continue by pressing a cursor key. On the Apple version, freeze by pressing CTRL-S; continue by pressing CTRL-S again.
To fit Things In The Dark into an unexpanded VIC-20, the VIC version is broken into two programs. Program 3 is the loader and Program 4 is the main program. Type in and save both programs before attempting to run the game. Save Program 4 with the filename V5. (If you're using cassette, be sure to save Program 4 immediately after Program 3 on the tape, and change the 8 to a 1 in line 400 of Program 3.) Finally, run Program 3. It displays the instruction screens and automatically loads the main program from disk or tape.
Atari Version Notes
When you run Things In The Dark, the screen will blank out for 13 seconds as the program initializes. Afterward you'll see the first of three instruction screens. Press SELECT to advance to the next screen or to return to the first screen from the final screen.
Type in the level you want when the menu appears on the third instruction screen. You can also press the OPTION button to choose the No Advance option. To begin the game, press START.
On the higher levels, you have fewer turns in which to score (only ten turns in level six). Also, turns will go by rapidly, fewer creatures will be plotted, and graps will stay pink for a shorter period of time.
Toward the end of the game, it's wise to open important channels by sacrificing a robot against a norf. After all, there's no point in having extra robots if the turn counter runs out. Remember that the robot can wrap around to the other side of the screen. You can safely pass over dinits, although no points will be earned. In addition, a norf will never appear on a space occupied by a dinit.
Smart Snakes And Other Secrets
After playing Things In The Dark for a while, you may notice that the snakes never land on any green or orange creatures. Basically, the series of LOCATE statements in the snake subroutine (lines 350-434) tell the snake to check first for a space free of orange or green creatures in front of itself.
The variable D determines whether to go to the LOCATE routine from lines 380-389 or to the routine from lines 390-399. These routines move the snake right and left, respectively.
If there is a clear space in front of the snake, it moves to that space and the program returns to the main loop. If the space is occupied, the spaces below the snake and then above it are checked for a clear space. If both these spaces are occupied, the snake is stuck. The snake never reverses direction except when it reaches the left or right side of the screen.
Similar logic moves the grap, except that it avoids orange creatures and moves diagonally. DATA statement 2600 decides whether to pass control to line 560, 580, 600, or 620, where routines locate the first space to the lower right, lower left, upper left, and upper right, respectively. Also, unlike the snake, the grap only tries to move once before control returns to the main loop.
Both the snake and the grap display a simple sort of simulated intelligence, and the logic behind them may be worth using in other games.
| SNK | Number to score before a new snake appears. |
| SNKCT | Flag set to one to prevent more than one snake from being onscreen at the same time. |
| E | Column position of the leftmost bonus robot. |
| XRBT | Number to score to earn a bonus robot. |
| TRNCT | Maximum number of turns left in which you must score to prevent the game from ending. |
| MN | Flag set to one when a string of dinits is plotted, preventing green things and norfs from being plotted. |
| INCRLVL | Automatically advances game to next level of difficulty when INCRLVL is less than SCORE and OP equals zero. |
| OP | Prevents levels from advancing when set to one. |
| EDCT | Controls number of times through inner main loop before a norf, dinit, or green thing is plotted. Set equal to LVL when grap first appears. |
| LVL | Maximum number of turns in which you must score for a given level of difficulty. |
| LEVEL | Level of difficulty. |
| D | Determines the direction the snake will travel. |
| ND | Determines the direction to plot a string of dinits. |
| COL, ROW | Horizontal and vertical position of robot. |
| SNKC, SNKR | Horizontal and vertical position of snake. |
| GRPC, GRPR | Horizontal and vertical position of grap. |