RESISTANCE
Version 1.1 - by Nebula Software 2003

nebulasoftware@gmx.net
www.nebulasoftware.tk
home.hetnet.nl/~nebula

1) TABLE OF CONTENTS

2 RUNNING THE GAME 2.1 Disclaimer 2.2 Setup 2.3 System Requirements 2.4 Windows NT/XP/2000
3 PLAYING THE GAME 3.1 Ways to run RESISTANCE 3.2 In-game 3.3 Controls 3.4 Troubleshooting 3.5 Using the game-manual 3.6 Don't read this!
4 NEBULA-ENGINE 4.1 RT Engine 4.2 N-E version 1.0 4.3 N-E version 1.1 4.4 Bots 4.5 Weapons
5 DEVELOPMENT HISTORY 6 AND NOW... 7 CREDITS

2) RUNNING THE GAME

2.1 DISCLAIMER

RESISTANCE is a FREEWARE program! This means that the author gives the software for free and encourages you to DISTRIBUTE IT FURTHER.
The program is coded in DOS-environment and uses a lot of assembly routines and interrupts. Handle this software with care, and there will be no problems. However, THE AUTHOR IS NOT LIABLE FOR ANY DAMAGES CAUSED BY AN IMPROPER USE OF THIS SOFTWARE!
This program contains violence. We take no responsibility for any emotional damage caused by playing this game. We advise not to run this program if you are unable to distinguish games from reality
All names of characters and nations are chosen randomly, without personal means by the author.

2.2 SETUP

There is no setup. Just unzip, and play! Make sure you create a new directory before you unzip the files (for example "\resistance\")
If you have Windows NT/XP/2000 please read paragraph 2.4.

2.3 SYSTEM REQUIREMENTS

RESISTANCE operates in DOS-environment and requires the maximum of conventional memory. Also ca. 4Mb of extended memory is required. To run RESISTANCE on a WINNT-based operating system (WinNT/XP/2000) please read paragraph 2.4 WINDOWS NT/XP/2000.
RESISTANCE is developed and tested in the following environment: O/S-Windows98, CPU-233MHz(PII), DirectX-7.0

- 133 MHz Pentium or better (266 MHz recommended)
- 5Mb of free hard disk space
- 440 Kb of conventional memory
- 4Mb of free XMS memory
- Mouse recommended
- DirectX 3.0 or higher recommended for sound-support (a no-sound version is included)
- 100% compatible soundcard
- VESA compatible SVGA video adapter
- Operating System:

  DOS/Windows 3.x Windows 95/98/ME Windows NT/XP/2000 Linux | - V (no sound supported) - V (recommended) - V (no sound supported) - X

2.4 WINDOWS NT/XP/2000

If you have Windows NT, XP or 2000 you have to enable extended memory as follows:

- Right click on 'Resist.EXE' in the Program-directory (which is created in the destination-directory)
- Go to 'properties'
- Enable XMS-memory

3) PLAYING THE GAME

3.1 WAYS TO RUN RESISTANCE

In the main directory there are two batch-files:

- Run.bat - Normal mode, sound & music enabled (calls "Resist.EXE")
- RunNoSnd.bat - Sound & music disabled (calls "Resist.EXE" with parameter "nosound")

3.2 IN-GAME

After you starts RESISTANCE the loading can take some minutes, because of the highly compressed music-files (.MO3-files)
In the menu you have the following options:

- [NEW GAME] - Starts a new game (Episode I / Episode II / Tutorial)
- [LOAD GAME] - Load an old game (up to 9 games can be saved)
- [OPTIONS] - Sound, music and in-game brightness-settings
- [CREDITS] - Who did what?
- [QUIT] - Well...

Use the ARROWKEYS and ENTER to select.
You always have to hit SPACEBAR to leave a screen (for example a briefing-session).
Note: I have add a brightness-control, because some video-configurations might be a little darker. However, I recommend to leave the brightness-setting as is (settings will be reset every startup).

3.3 CONTROLS

Moving: [Arrows] [A] + [D], MOUSE [Ctrl], [S] [RShift], [W] [<] + [>] Weapon handling: [Enter], Left MouseButton [Backspace] [1] - [9] [0] Other: [Space], Right MouseButton [Tab] [Delete] | move turn down jump lean (left / right) fire reload weapon select weapon deselect weapon interaction (for example open a door) / centre view show map kamikaze

3.4 TROUBLESHOOTING

I build a primitive error-handling-routine in the program. I never had any error, but I know that's no guarantee. I will explain one particular error-message because it appeared on some environments.

Failed to initialize: old extended memory manager not supported - If this error appears your operating-system is probably WINNT-based (Windows NT/XP). I'm afraid that means your system is unable to run RESISTANCE (except the menu-routines without sound and music, but I don't think you like that).

The other error-messages most of times will have a short description, which must be clear (for example VESA NOT DETECTED - your video adapter is not VESA compatible). It is possible that an error is caused by a missing file or something like that. Then you have to download RESISTANCE once more. If you want to keep the saved games you have to copy the file "Savegame.DAT" to the new "Program"-directory.
If you get an unknown error-message (AN ERROR HAS OCCURED) please contact me and give me a description of the circumstances at the moment of the error-trap (in-menu or in-game / during loading or while waiting for a key etc). Then I will note the solution on the Nebula-Website if possible.

3.5 USING THE GAME-MANUAL

It looked too boring to me to put all enemy-, weapon- and other information in this readme-file. So that's why I wrote a game-manual.
Shortly: this readme contains practical information about getting the game started, the game-manual contains detailed information about the game history and other things you have to know. By the way: you can find the controls in the readme-file.

Click here to open the MANUAL

3.6 DON'T READ THIS!

Maybe you are wondering if there are ways to cheat in RESISTANCE. Well, during the development I needed a way to step to levels that were not saved. So I add a system that alows a level-warp. Now RESISTANCE is finished I decide not to erase this system.
The level-warp is very easy to do:
Step 1: Go to the menu
Step 2: Select "New Game"
Step 3: Move with the arrows to select a episode
Step 4: Don't press ENTER, but insteat of that CTR+W+ENTER
Step 5: Choose the level using 1-9
That's it! I hope you did not read the information above, and if so, DON'T MISUSE THIS INFORMATION. The Episodes of RESISTANCE are build up with care, and a level-warp can be very confusing.

4) NEBULA-ENGINE

RESISTANCE uses Nebula-Engine Version 1.1. Nebula-Engine is a first person-shooter engine that makes use of a 2D level map (64x64 cells) like Wolfenstein 3-D, but also features textured floor and ceiling and a scrolling sky like Doom. Besides that I add a lot other features to the Nebula-Engine which make stealth-actions possible (like for example Metal Gear Solid).

4.1 RT ENGINE

The Nebula-Engine is based on RT Engine; a great raycast-engine by Enhanced Creations. This engine has the following features:

- VGA 320x200x8 video-environment
- Double buffered animation
- Scrolling background sky
- 64x64 pixels textures
- Up to 10 textures (wall/ceiling/floor) stored into XMS
- Up to 482 sprites stored into XMS
- 64x64 cells level map
- Up to 128 doors into a single map
- Up to 256 objects into a single map (using flat sprites)
- Objects can be solid or passable by player
- Light shading, with support for fogging effects (palette indipendent)
- Selectable detail level (toggling floor, ceiling, sky, shading, etc.)
- Customizable sight range
- Sprite put from XMS, with support for scaling
- DQB-compatible font support
- Player's visited areas map
- Built-in collision detection
- Angle finder between two given points
- Keyboard handler for multiple keypresses
- Basic mouse routines
- Console drawing

4.2 NEBULA-ENGINE v1.0 (Capture The Flag)

To make a first person-shooter I had to mutate the RT Engine and add a lot of new features (RT Engine is no first person-shooter engine actually, but a raycast engine). The first version of Nebula-Engine is released as the game Capture The Flag.
Because I needed a concrete target working on the Nebula-Engine I decided to "remake" two examples of Unreal Tournament's capture the flag (Facing Worlds and November).
This version of the Nebula-Engine had the following new features:

- Startup-script that contains all information about the level and filenames (map, textures etc.)
- Mutation-scripts that change the start-settings and control in-game cut-scenes and interaction possible
- Map loaded from external file
- Textures and sprites loaded from external files
- Animated sprite-routines
- Weapon-handling
- Bots
- Interaction between player, bots and environment

4.3 ADDITIONAL FEATURES OF NEBULA-ENGINE v1.1

Resistance uses the Nebula-Engine version 1.1. The following features are new:

- Fly-over modus; a round trip through a selected map (script controlled)
- Bots now react when they are hit
- Open doors are passable by bullets and the view of a bot
- Doors are making a noise when they open
- Random returning background-sound
- New "animated" sight indicator
- Possibility to activate a time-break
- New kinds of bots included

4.4 BOTS

The bots are sprite-based. Each bot is build up of 42 different sprites. In a graphical way a bot has 4 different directions. I have chosen for this (and not 8 directions like Wolfenstein and Doom) because the amount of sprites was not unlimited.
Because the Nebula-Engine supports team-based levels, every bot is able to shoot at any direction (and not only at the player). A bot is also able to stoop so he is harder to hit, and stoop-and shoot. When a bot has to reload his weapon there will be a fire-pause.

The bots don't really have art intelligence. They are controlled by situation-handling-structure:
When a bot sees an enemy he will try to shoot at the enemy. When a bot is weak he will probably stoop. When the enemy is to far away the bot will walk towards the enemy. When another bot sees him walking to the enemy, he will give him a backup ...etc.
That is the way the bots handle; the friendly ones as well the enemy's.

Every bot belongs to a site. Your friends belong to your site, and they will shoot at enemy's. There are two different enemy's. The first one shoots at you always, and the second one only when you show your weapon. This system makes spy-levels possible.
Beside that a bot can have a target. When the target is attacking the bot will follow the attack-route (this is included in the map-file), and when the target is guarding the bot will guard the place where he is started.

The Nebula-Engine also includes a "respawn"-system. When it is activated (by the startup-script) you, your friends and the enemy's will respawn when they die.

4.5 WEAPONS

The startup-script includes a weapon-set-file. This file contains a list of 9 different weapons. More weapons are not supported, but in Resistance it is enough. Every weapon exists of 5 sprites, and is set up in a different way. A shotgun for example is set up as a short-range weapon (power-100%, range-10% or something like that).

5) DEVELOPMENT HISTORY

A good idea, but not possible for me
The very beginning of the project RESISTANCE is in the summer of 2000. I got the idea of making a strategy game that mixes the stealth of Commando's with elements of Command & Conquer. I began designing and coding, but I was very inexperienced. Very soon my over-sized program caused an "out of memory-error". For then that was the end of project RESISTANCE.

A new impulse
The following year I gained some new basic-experience. In August of 2001 I decided to pick up project RESISTANCE again.
During these months I created the characters Fred, Jane, Rick, Leia, and Eric (Ryan in those days). So RESISTANCE had to be about a group of 5 para's with each of them his own speciality.

Internet - the key to the world of QuickBasic
I succeed to open 16 coloured (4-bits) bitmaps in QuickBasic-environment (by imitating and improving other basic-programs). That was a big step forwards.
The rise of the internet happened a bit slowly in the Netherlands - the country where I live - and in the winter of 2001 we also went online. I began to discover the "world of quickbasic".
I downloaded a lot of programs handling waves, bitmaps, mouse etc. In the mean time I tried to add all those features to RESISTANCE. When I downloaded the Future Library it was possible to me to work in up to 32-bits colour-modus, and opening bitmaps and .GIF's more easily.

RESISTANCE - THE MOVIE
Displaying .AVI video's in QuickBasic was possible thanks to OpenAVI Version 1.0. It was February 2002 when I decided to display a movie in RESISTANCE (like in Command & Conquer).
Classmates were well-willing to play as actors in short cut-scenes. So I wrote a script and arranged everything with support of some people.
On February 12th of 2002 we recorded all scenes at once (location: my school). I controlled the camera and my friends acted in front of a white-wall. Later I had to edit a new background. This work took the 4 months.

RESISTANCE unfinished again
During August of 2002 I composed music, designed pictures and coded a level-editor.
I never used the sound-support (.WAV-handling) of the Future Library because that did not work on my system. Instead of that I used DirectSound4QuickBasic (firstly version 1, later version 2).
However, again I was unable to finish RESISTANCE.

FIRST PERSON SHOOTER
Because project RESISTANCE was frozen I began to study other basic-products. I downloaded RT Engine (Enhanced Creations). Wow... I had seen raycasters coded in QuickBasic before, but only stuttering, bad rendered samples. This one was FAST and very good-looking.
I started mutating the RT Engine, coding a level-editor. This was in the autumn of 2002.

NEBULA-ENGINE
In January of 2003 I finished the first edition of the Nebula-Engine - a clone of the RT Engine. This DEMO is a "remake" of two Capture The Flag-levels of Unreal Tournament.
By the way: if you want to download Nebula-Engine: Capture the Flag, please visit the downloads-section of the Nebula-website.
I decided to restart project RESISTANCE but to change the original concept. RESISTANCE would no longer be a top-view strategy-game, but a first person-shooter. After finishing CTF I went on improving the Nebula-Engine (this version of RESISTANCE uses Nebula-Engine v1.1).

A fusion of elements
I wanted to use the original story, but only 9 levels (according to the storyline) was to not enough. I split the game up into two episodes: Episode I - The escape (what an original title!) is a socalled prequel and Episode II - The silent battle follows the original story.
So the characters, meant to be strategygame-based, should act in first person-shooter environment. That was no problem actually, because the Nebula-Engine supports interaction between the good-ones (you and your friends) and the bad-ones.
In all I rendered 7 different characters which all exist of 42 sprites (64x64x8bit). Every character is able to walk, shoot, duck and of course die.

Finally a round off!
During March of 2003 I designed the levels. I decided to keep the size of RESISTANCE as small as possible, so it can be downloaded easily. That meant no video's, bitmap's (I used .PCM-images) etc.
Designing all levels was a tough job. In the mean time I coded the menu-, story- and briefing-screens.
The last month the production of RESISTANCE was at full tilt. And now the job is done.

6) AND NOW...

Well, coding Resistance was a great work to do. However, I'm not doing this again, there will be no RESISTANCE II. I liked it to make a first person-shooter, and I am very satisfied it is finished now.

Actually there ARE some more things I have to do. At first I have to distribute RESISTANCE at the internet. And I have to put together a "Special Edition". That's because I have all edited movies yet, and I promised the crew to release a version that includes all movies.
No, that version will not be available on the internet because it is tooooooo large (maybe in the future when the internet has more capacities).

After that I want to distribute the source-code of the Nebula-Engine included a manual. That gives everybody the possibility to mutate it to their own preferences.
And of course, in the mean time I there will probably release some updates on RESISTANCE. At this moment I see no bugs, but it is possible they exist.

Note:On the Nebula-Website you can always find the newest updates and tips. Feel free to contact me if you have questions or a reaction.

7) CREDITS

RESISTANCE and the Nebula-Engine are coded in QuickBasic 4.5, with the support of several library's and programs.

Coding: Roel Tempelaar Graphics & Level Design: Roel Tempelaar Sounds: Epic Games & Roel Tempelaar (compilation) Music: Roel Tempelaar Actors: Fred Houseman - Marinus Huige Jane Morris - Lieke Brouwer Rick Douglas - Job Mensink Leia Johnson - Christiana van der Sloot Eric Jones - Hugo Bokhorst General Harley - Pieter Oosterwijk Commander Edwards - Freek Snijders RT Engine: Angelo Mottola & Petter Holmberg of Enhanced Creations Future Library: Michael Rye Sorensen & Jorden Chamid of Future Software DirectSound For QuickBasic 2: David Schnur of AetherSoft IN-MENU Keyhandling Rourines: Greg McAusland & Christopher Neill of Exposed Dreams WinNT-Patch: Plasma357 Testers: Coen Jonker Jan Willem Tempelaar Xander Tempelaar Thanks to: Eelco Lempsink Hans Wolf Sjoerd Schut Paul Tempelaar ...and all others who supported me!

nebulasoftware@gmx.net