MicroMan ======== A Playable Demo Using WAP Programmed and Developed by: Brian L. Goble Copyright (c) 1993 Brian L. Goble WHAT IS MICROMAN? ================= MicroMan is an arcade-action style game for Windows 3.1 developed using the new Windows Animation Package (WAP), also developed by Brian Goble. The object of MicroMan is to move, jump, duck, climb and shoot your way past the enemies while exploring new areas and collecting special powerups! This release of MicroMan serves the purpose of demonstrating the capabiltities and potential of WAP. If you would like to see a shareware version of MicroMan, with expanded game play, more puzzles, more graphics more sounds and more levels, please let the author know by contacting him at the address given at the end of this document. Please feel free to contact the author if you have any problems, comments, ideas, suggestions, offers or if you find any bugs. Thank you. To run MicroMan, simply execute the MICROMAN.EXE file using Program Manager or File Manager from Windows. The title screen should appear and the game will begin cycling through it's attract mode. To play MicroMan, press the space-bar (or press Ctrl+N) to start a new game. Press F1 to view the quick reference help screen. To explore new rooms, simply move to the edge of the screen (and keep going) to enter the neighboring room. MicroMan does have an end, so keep playing until you get there! The MicroMan archive should contain the following files: * MICROMAN.EXE * MICROMAN.IMG * MICROMAN.RMP * MICROMAN.WAV * MICROMAN.PG1 * MICROMAN.PG2 * MICROMAN.TXT * README.TXT System requirements and recommendations for running MicroMan are: * Microsoft Windows 3.1 (required) * 2 megabytes of memory (required) * 720k free disk space (required) * 386DX processor (recommended) * 8-bit color graphics (recommended) * Sound card (optional) Quick Info: * Press F1 to view the "Quick Reference" help for MicroMan. * If your system is too slow, select the "Skip Frames" option under the "Animation" menu. * Sound card users, be sure to select the "Extended Sounds" option under the "Sound" menu. * All settings are saved in the MICROMAN.INI file. * The keypad works best for game play--make sure Num-Lock is off. Use your left hand to jump with the space-bar and place your right hand over the keypad, with your thumb on the Ins key for firing. * Programmers, be sure to check out the MICROMAN.TXT file for more information on how MicroMan was developed. * If you use hDC's Micro App Manager, also called microman, you must rename microman.exe (from this archive) to mm.exe This version of MicroMan is FreeWare. You are free to distribute it as long as all files are included in their unmodified forms. WHAT IS WAP? ============ WAP stands for Windows Animation Package. The package implements real software sprites and flicker-free sprite animation under Microsoft Windows 3.1. WAP was developed for use with 8-bit color but is able to execute on systems using less than 256 colors as well. The heart of WAP is the WAP.OBJ file which is linked with the Windows application that wants to use WAP's services. WAP also consists of 3 utility applications for capturing sprites, editing rooms, and manipulating palettes. WAP was developed by Brian L. Goble based on his DOS based GFX sprite animation package. WHAT LANGUAGE WAS USED TO CREATE WAP? ===================================== WAP was compiled using Microsoft C/C++ 7.0. No C++ was used so C and C++ programmers should both be able to use WAP. Future versions of WAP will likely have some routines "hand optimized" in assembly language for further speed improvements. WHAT DOES WAP SUPPORT? ====================== * Sprites * Images * Patterns * Pages * Rooms * RoomSprites WHAT SPRITE FEATURES DOES WAP SUPPORT? ====================================== * Drawing * Moving * Erasing * Clipping * Flashing * Mirroring * Inverting * Mirverting * Removing * Virtual Frames * Collision Detection * Sprite Types * Sprite States * Sprite Control Programs IS WAP EASY TO USE? =================== WAP is very easy to use. All the low level functions required for flicker- free sprite animation are carried out by WAP. The programmer merely calls the high level functions when necessary. A typical main animation loop might consist of the following WAP routines: // --------------------------- // // Example Main Animation Loop // // --------------------------- // case WM_TIMER: WAP_ProcessSprites(lpWAP); // execute sprite control programs WAP_DrawSprites(lpWAP); // draw all active sprites WAP_SwapPages(lpWAP); // display new sprites, erase old ones WAP_CheckSpriteCollisions(lpWAP); // check for sprite collisions return(0L); The main programming effort required by the programmer is the coding of the Sprite Control Programs (SCP). A SCP is a routine that controls a specific sprite. For example, a simple SCP to animate a sprite walking across the screen to the right might look something like: // ------------------------------------------------------- // // Example Sprite Control Program for Walking to the Right // // ------------------------------------------------------- // int FAR WalkRight(lpS) LPSPRITE lpS; { if (lpS->MoveState == MS_UNINIT) { // if first time, initialize sprite lpS->MoveState = MS_WALKING; // set move state to walking lpS->x = 10; // set initial x coordinate lpS->y = 50; // set initial y coordinate lpS->image = 5; // use graphic image #5 lpS->frame = 1; // use frame #1 of image #5 } else if (lpS->MoveState == MS_WALKING) { // process next frame of walking lpS->x++; // increment x coordinate if (lpS->x > 600) { // is sprite at right border? lpS->SpriteFlags |= SF_REMOVE; // if done walking, remove sprite } lpS->frame++; // use next animation frame if (lpS->frame > 24) lpS->frame = 1; // if end of frames, wrap to start } return(1); // finished - return to WAP } So, by using SCP's, the programmer still has full control over all sprite actions and logic but doesn't have to worry about all the tasks necessary to animate them--WAP does these tasks! WHAT LIES AHEAD FOR WAP'S FUTURE? ================================= This release of MicroMan is intended to inform programmers of WAP's existence and, hopefully, obtain some feedback from interested programmers. If there is sufficient interest in having WAP made available to programmers, then the author will try to make it happen. HOW CAN I CONTACT THE AUTHOR? ============================= To contact the author of both WAP and MicroMan, use: Brian L. Goble 2218 Franklin Ave E. Seattle, WA 98102 (206) 322-7932 goble@u.washington.edu