ACK-3D ( Animation Construction Kit 3-D ) Introduction: Welcome to ACK3D! This contruction kit is part of a project created to allow you, the user, to design your own 3D games and applications. While still in its infancy the hope is to present enough of a kit to give you the idea of what is still to come. With ACK3D you can create your own maps and link them together together to form a 3D world of adventure. A variety of objects can populate this world, both stationary and moving, to add realism to the environment. Please feel free to experiment with the sample files provided, they are included for your enjoyment. Any comments regarding the kit will be greatly appreciated. Address your comments to: Lary Myers 76004,1574 (CompuServe account) 5 Jacob street Ballston Lake, NY 12019 The Game Design library of the Gamers forum is a good place to check on CompuServe for latest versions, discussions, etc. Disclaimer The author, Lary Myers, and any other persons referred to in this documentation or in the computer programs ACK3D and MAPEDIT accept no responsibility for any loss of time, money or productivity, or damage to any person(s) or computer hardware or software, as a result of using the programs ACK3D and MAPEDIT, even if the above mentioned had knowledge or had been notified of the possibilities of such events. Distribution The programs ACK3D and MAPEDIT along with any associated files, are being released into the public domain as "PUBLICWARE" and may be freely copied and modified providing the disclaimer mentioned above is maintained in effect for any released versions. ------------------------------------------------------------------------------ The Master Description file: This is the master file read into ACK3D at startup. It contains information used to create the map and images. Both ACK3D and MAPEDIT use this file. Naming convention; ACK3D will first look for the file called ACK3D.L01 to load. This is always the level one starting place for the program. Levels are named starting with ACK3D as the filename and L## as the extent where ## is a two digit number for the level (ie L01, L02, ... L99). Thus, 99 levels are possible with this naming convention. Comments; A semi-colon (;) as the first character of a line indicates a comment. Commands; The following sections are available; Walls: - Begins the section that list all of the wall bitmaps used in the map. Start with a Files: command then list the walls with the syntax, #,wallfile[.ext] If no extent is given then .IMG is assumed. If the extent is .BBM then a Deluxe Paint II brush is loaded, all other extents load in the original IMG format. The following wall numbers are special, 58 - Secret door (either X or Y). 60 - Door on a vertical (X) wall. 61 - Side panel for doors. 62 - Door on a horizontal (Y) wall. End the files section with EndFiles: End the Walls section with EndWalls: (This will allow other info to be placed in here besides walls). Objects: - Begin the files section with the Files: command then list objects with the same syntax as the Walls ( #,objectfile[.ext] ) End the files section with a EndFiles: command. Next comes the object description section, the following commands apply to every object, Number: Object number from 1 to 100 identifying the object Bitmaps: Numbers from the object files section identifying which bitmaps to display for this object. A single number here says the object has only 1 bitmap to display. Multiple numbers separated by commas indicate the object has multiple views or bitmaps. Direction: Number from 0 to 10 where 0-7 are movement directions using, 7 0 1 \ | / 6 - + - 2 / | \ 5 4 3 Direction 8 is move up, 9 is move down, and 10 is stay in one place and cycle through the multiple views. This will allow objects to animate in one place. Speed: Number from 0 to 255 (Higher than 48 seems to be way too fast and may not be reliable yet). A value of 0 means the object is stationary. Continue listing objects with the above commands. End the objects section with the EndObjects: command. StartX: - Initial X coordinate of player. Should be greater than 64 (since the map needs walls all around its borders) and less than 4032. StartY: - Initial Y coordinate of player, from 65 to 4031. StartAngle: - Initial angle player is facing. For now this number is based on a circle that is 1920 units around, so... (270 deg) (225 deg) 1200 1440 1680 (315 deg) \ | / (180 deg) 960 - + - 0 (0 or 360 deg) / | \ (135 deg) 720 480 240 (45 deg) (90 deg) SkyColor: - Color from 0 to 255 to use on the top half of screen FloorColor: - Color from 0 to 255 to use on the bottom half of screen FlashColor: - Color from 0 to 255 to use with random lightning flashes DoorSpeed: - Number from 1 to 255 to use when opening the door, 2 is the default, 4 seems to work pretty well. MapFile: - Filename of map to load (default is xgrid.dat) PalFile: - Filename of palette file to load GoalScreen: - Filename of screen to load when goal is reached. (May be either an IMG file or a LBM Deluxe Paint file). GoalPal: - Filename of palette file to load when goal reached. Only needed if an IMG screen is used (LBM files have embedded palettes). ------------------------------------------------------------------------------ Controls when running ACK3D: Use the mouse or keyboard arrows to move around the map. When coming upon a door, click the right button of the mouse to open it (it will close by itself after a brief interval). Use ESCAPE to exit ACK3D. ------------------------------------------------------------------------------ Map Editor: The mapedit program supplied (don't laugh, it was a quick and dirty program to avoid using a hex editor to edit the maps!) allows the MapFile to be edited for use with ACK3D. To use type MAPEDIT followed by the name of the description file (NOT THE MAP FILE!). MapEdit will use the information in the description file to load the object bitmaps and the map codes. A mouse is required to use MapEdit. Controls: Use the left mouse button to select a wall or object and to place it on the map. Use the right mouse button to place a blank square on the map (The same as selecting the blank square and using the left button). Select Exit or press ESCAPE to exit MapEdit. MapEdit Layout: ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» º ÚÄ¿ º º ³2³ ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ÚÄ¿ ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ º º ÀÄÙ ³ ³ ³3³ ³ ³ º º ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» ³ ³ ÀÄÙ ³ ³ º º º º ³ ³ ÚÄ¿ ³ ³ º º º º ³ ³ ³4³ ³ ³ º º º º ³ ³ ÀÄÙ ³ ³ º º º º ³ ³ ÚÄ¿ ³ ³ º º º º ³ 9 ³ ³5³ ³ 10 ³ º º º 1 º ³ ³ ÀÄÙ ³ ³ º º º º ³ ³ ÚÄ¿ ³ ³ º º º º ³ ³ ³6³ ³ ³ º º º º ³ ³ ÀÄÙ ³ ³ º º º º ³ ³ ÚÄ¿ ³ ³ º º º º ³ ³ ³7³ ³ ³ º º º º ³ ³ ÀÄÙ ³ ³ º º º º ³ ³ ÚÄ¿ ³ ³ º º º º ³ ³ ³8³ ³ ³ º º ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ ÀÄÙ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ º º ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ º º ÚÄÄÄÄ¿ ÚÄÄÄÄ¿ ÚÄÄÄ¿ ÚÄÄÄÄ¿ ³ ³ ³ ³ º º ³Load³ ³Save³ ³New³ ³Exit³ ³ 11 ³ ³ 12 ³ º º ÀÄÄÄÄÙ ÀÄÄÄÄÙ ÀÄÄÄÙ ÀÄÄÄÄÙ ³ ³ ³ ³ º º ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ º ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ Areas: 1 - Map display area, use the scrollbar arrows on the sides to scroll around the map. 2 - Current selected wall or object. 3 - Pass checkbox. When selected any objects placed on the map will allow the player to walk/pass through the object. A small dot to the left of the number in the map (area 1) will indicate the object is passable. The pass option is good for things like lights, etc. 4 - Blank square. This square can be selected to erase any walls or objects on the map. 5 - Start square. Only ONE allowed per level. When used the start square will override the StartX and StartY commands in the master description file (but not the StartAngle). 6 - Up square. Causes the player to move back up one level until level one is reached. 7 - Down square. Causes the player to move down one level. 8 - Goal square. Only one of these should be in the entire game. Presents the screen specified in the master description file and then ends the program. If no goal screen is found then a simple YOU WON is displayed. 9 - Walls. Select the current wall to use. The bitmap will appear in area 7 when selected. 10 - Objects. Select the current object to use. The FIRST bitmap for the object will appear in area 8. NOTE: The object numbers in area 5 are the identifiers that appear in the Objects: section of the description file, NOT the bitmap numbers. Only one occurance of an object can appear on the map. A warning box will display if the same object is being placed more than once. 11 - Bitmap of current wall. 12 - Bitmap of current object. Buttons: Load - Not functional yet. Will eventually allow other maps to be loaded. Save - Saves the current map to the MapFile specified in the description file. New - Will give a warning box and then clear the entire map to blank squares. Exit - Will warn if the map has been modified and then exit to DOS. Colors: MapEdit has a pretty dull screen. This was done so that the actual bitmaps and palette file could be loaded and viewed while still allowing the user to see the edit screen. In order to do this the colors 0,11, and 15 are forced to thier default palette color by MapEdit. This may cause some of the bitmaps to show speckles of the wrong color if they happen to use any of these 3 colors.