Do-It-Yourself Graphic Adventureby JERRY A. LeMAITRE
A graphic adventure/arcade game in three versions-plus instructions for easily customizing the game even more. The program runs on all Atari computers of any memory configuration. Antic Disk subscribers RUN "D:OMNIVENT.BAS"
The prefix omni means, roughly, "all-encompassing." Omniventure is a
fast arcade/adventure game written completely in BASIC. You can easily
modify it into many different themes that you choose. It's a great
practice tool for beginning graphics adventure programmers.
Listing 1 is "Dinoventure." Type it in, check it with TYPO, and SAVE a backup copy or two.
RUN the program and you'll see your player, a small dancing figure that you can move in eight directions with a joystick. Your path through the randomly-created maze is blocked by two types of obstacles-enemies and walls. There are two kinds of enemies, placed randomly about the playfield. The number of enemies depends on the skill level at which you're playing. To defend yourself, you'll find weapons in various places about the maze. Pick one up by passing over it. If you're carrying a weapon and standing directly beside an enemy, press the fire button to use the weapon (each can only be used once!) and kill the enemy. You need not aim the joystick.
You can also pick up "tools" throughout the maze. Each of these can be used once to break through a "wall" (or whatever your non-moving obstacles may be), similarly to destroying an enemy with a weapon.
Lastly, but not least, are the treasures. Pick up as many of these as you can. They are also randomly placed, and the number depends on the skill level.
You can only carry one item (excluding treasure) at a time. Whenever you want to go to another screen, touch the wiggling 'space warp' line at the top of the screen. Your goal is to pick up the highest amount of treasure points.
You start with three players, with figures representing the number of remaining players displayed in the upper right corner.
DRAGOVENTURE AND ROBOVENTURE
Listing 1, the main program, is already set up for Dinoventure. Listings 2 and 3 provide alternate data for the games-Dragoventure and Roboventure. Type them in and LIST them to disk or cassette. To convert Dinoventure, first LOAD the main program, then ENTER Listing 2 or 3. Antic Disk subscribers LOAD"D:OMNIVENT. BAS", then ENTER"D:DRAGVENT.LST" or ENTER"D:ROBOVENT.LST". If you want to speed up the game, you can get rid of a delay loop by changing line 500 to:
500 CH=CH+1:POKE 756,CH(CH):
IF CH=1 THEN CH=-1.
Here's a step-by-step method for creating your own Omniventure games.
1. Think up a title and a theme for your game, and determine what type of obstacles, enemies, weapons, tools, and treasures are best suited for your theme.
2. Change the REM statements in lines 2 and 3 to show your name and the new title.
3. Change line 9010. Make A$ your weapon's name, B$ the tool's name, and C$ your prefix for "-venture" to make up the title. NOTE: the length of both A$ and B$ should-equal nine -pad with spaces if necessary. Also, C$ shouldn't contain more than seven characters.
4. See Figure 1 to find which lines change for the title screen.
5. Change the numbers in line 10030 to represent the colors you want. Here's how: a) choose the number you want from Figure 2. b) Add a number between 0 and 15 for brightness (0=very dark, 15=very light). c) Figure 3 shows which color registers are used for the game's various elements. Find the corresponding POKE in line 10030, then change the second number (the one after the comma) to the one you've selected.
6. Draw your figures on graph paper so they fit into an eight-by-eight square, then calculate the eight data values for each character. For each row, add up the values of the columns containing filled-in squares (the bits are "on"). See Figure 4. Also see "Character Graphics" (Antic, February 1984) for further information on developing custom characters. Design two images or 'frames' each for enemies and treasures. This creates a sort of animation when the program alternates between the two images.
7. Use Figure 5 to place the data from step 6 into the program. In lines 9230-9250, place data after the first number as shown in Figure 5.
Move man and adjust for carrying an object
Check for fire button and use object being carried
Delay loop and alternate character frames
Title screen and dimension strings and variables
Initialize character set
Set movement variables
Draw playfield and position characters
(note: I did cheat a bit by using a Machine-Language subroutine to copy the character sets but it doesn't affect game play.)
Jerry A. LeMaitre is a high school student in Collingwood, Ontario. He is currently starting his own business selling software and computer accessories.