
            DOGS v1.0

   Code and graphics by Ronny Wester
       (C) 1994 Ronny Wester

    Written using Borland Pascal 7.0, 
the shareware graphics package SPX 2.0 by Scott Ramsay 
               and
the DSMI sound library by Otto Chrons and Jussi Lahdenniemi (Pascal version).
     
--------------------------------------------------------------
This game is freeware, feel free to spread it around.
If you like it, I'd appreciate a postcard to boost my ego ;-)

Ronny Wester
Ostbergahojden 8, 1tr
S-125 73 Alvsjo
Sweden


Enjoy!
--------------------------------------------------------------

Updates:

Beta #2: 
This version of Dogs has been updated in many ways. Most notable is the 
addition of digital sound fx and music by ways of DSMI. Also courtesy of DSMI
is a timer interrupt handler which dynamically adjusts the gamespeed. Thus both
the cycles per frame and the VSync settings are gone now.
    Bad guys have learnt how to negotiate obstacles in their paths. They are 
not particulary bright about it but make up for it with persistence. It can be
quite spooky when the bad guy you know you saw behind that wall has disappeared
- only to reappear from behind sometime later!
    Missions consist of walking around nuking enemy machines (CM/2:s?) into 
oblivion. A target requires a direct hit from a grenade to be destroyed. Don't
waste your grenades!! Bad guys can be disposed of by any weapon. Powerguns and 
grenades can kill anything with one shot.

Beta #3: 
GUS sound fx are still NOT working, but I have located the problem.
Some bugs have been fixed, most notably the one that caused the second player 
in two player games to always fail missions.
Mission targets can now be destroyed by any weapon, but if the weapon is puny 
it will require some persistence 8-)
The background maze is now somewhat less mazey, thanx to the addition of rooms.
Some assorted junk has been added all over the place. It serves no purpose 
what so ever other than getting in the way, obscuring vision and trying to 
add some atmosphere. Everything but walls can be blown up.
Some mission have "mobile targets". These are big black-armoured guys with 
mean guns and lots of armor. They count as mission targets and have to be 
eliminated before you can use the exit. 
Scoring has changed. Average scores in beta #3 are higher than beta #2. 
Also, more statistics are kept.
Missions are now generated slightly differently:
Each campaign has a "theme" of sorts (same wall texture, similar colors & 
maze layout) and the missions stick to it. The baddies in the missions are 
now generated in such a manner as to present a steadily increasing difficulty 
level as missions are completed. You also get a simple briefing before the 
mission to enable you to pick your weapons in a sensible manner. 
NOTE: sometimes the actual number of mobile targets is lower than the 
briefing claims. The actual number of remaining targets is displayed in 
top center of the screen during mission play.
Roughly ten percent of the bad guys created are now "awake", ie out to get 
you right away! 
Last, but not least, the joystick code has been rewritten (with kind assistance 
of Christian Wagner. Thank you!). Hopefully this will eliminate the problems 
I've had (sometimes right on stick causes character to "wobble", alternating 
left or right).

Beta #4:
------IMPORTANT------------
If you have trouble making selections in the mainmenu your stick is probably 
miscalibrated. Disable the stick entry in the ini file (set it to 0) and 
reselect/calibrate.
---------------------------
GUS sound finally working.
The three player characters now have different weaponry selections. 
Available equipment has changed somewhat:
- close combat chainsaw. close combat rating raised with [value]. 
  Normal close combat is 1. A chainsaw you find in game has value 10. 
  See INI-section for related sound fx.
- Armor add on. Raises your max armor by [value] and also restores you to full 
  armor. In game addons have value 10.
- New grenade launcher (MegaGun). The old launcher has had its power reduced. 
  The old one is now mainly for use against baddies. 
  The new one is very powerful but has little ammo. 
  You can NOT find one of these during a mission.

Beta #5:
Reverted back to mercenary style game play, ie you earn money from missions 
and have to pay for your equipment. Also, you now win when you complete ten 
missions. High score list contains more info. The exit is now operational at 
all times, but exiting without completing will force you to replay the mission
- without the positive cash flow from a completed mission!


v1.0:
Some minor tweaking of bonus time limits and weapons/ammo costs.


Background story:

Everyone familiar with Warhammer 40k or Space Hulk/Crusade/Marine? 
More or less the same thing 8-)
You (and optionally a buddy) assume the roles of [insert favourite martial 
profession here] and are sent on missions. 
All missions consist of collecting objects/wasting baddies/blowing up enemy 
installations and then head home.


Gameplay:

Gauntlet-style top down 8 way scrolling view. 
View is line of sight shaded so you can't see past walls.
Walk around blasting baddies into oblivion. No puzzles as of yet.
Bad guys sleep until spotted when they become active and try to kill you in
your average computer-game-bad-guy kind of way. Some, however, are "awake" and 
will come for you.
Use the automap to locate your targets (they are highlighted on your map
from the start - as is the exit). You can destroy targets with any weapon and 
some persistence. You can NOT destroy a target or any other structure with 
close combat, ie you need a weapon and some ammo.

From beta #5 missions are slightly more varied:
- Collect a certain number of objects from the ship/base.
    These objects are vital documents left behind as the ship/base was evac'd 
    in a hurry: papers, folders, disks and circuit boards. Oh, and if you could
    collect some of the admirals daughter's Teddy bears he would be ever so 
    pleased. He can't get any work done when she's upset.

    This do NOT show up on the map - until found of course - but there are 
    always AT LEAST twice, more often three, times as many objects scattered 
    about as is required for completing the mission.

- Eliminate/retire/kill/slaughter a certain number of opponents.
    This doesn't need further explanations, does it?

- Blow target installations to smithereens.
    Same as before. These still show up on the automap.

- Combinations of the above.

[NOTE: In beta #5 the exit is operational at all times, HOWEVER if you exit a 
mission without completing all objectives you have to replay the ENTIRE mission.
You will have earned very little money with which to replenish your equipment]


Controls:

Fully definable (in game). Joystick(s) supported.
 
  Menu controls: 
Arrow keys + Enter or joystick (if selected).

  In game fixed controls:
Esc - quit to main menu
F1  - press and hold for map
[NOTE: The map key is now redefinable. It is not saved 'cause I forgot]

  Default controls for players:

Player 1: Arrow keys, left Ctrl to fire and Enter to change weapon.
Player 2: Keypad "arrow" keys, right Ctrl to fire and Alt Gr to
          change weapon.

As you can see the layout is not suited for two player games as is. The 
defaults are set for comfortable one player mode.

  Joysticks:
Upon selecting joystick control you have the option of calibrating the stick.
You should do this initially. *** Settings ARE saved in DOGS.INI. ***

NOTE: If you hold [change weapon] down whilst moving your character will not
      turn. This allows sideways and backwards moving. To change weapon you 
      must press and release [change weapon] WITHOUT moving!

NOTE: In beta #3+ there are two modes. 
You can select them from the Options page:

Move while firing only when strafing:
  If you press and HOLD [change weapon] while you are firing, you can move 
  about. You will not change direction while doing this. If you are not holding 
  [change weapon] you cannot move while firing.

Move while firing always:
  Shooting does not impair your ability to move around at all. 
  Holding [change weapon] still prevents your character from changing direction.


Completing missions:

You complete a mission by
a) attaining the required goals.
b) making it to the exit.

An ALERT sign will appear on screen whenever bad guys are close. Note that they 
will occasionally be within sight before the Alert lights up. The Alert sign is 
mainly to avoid running into nasty surprises as you turn corners 8-).

Bad guys are more intelligent in this version (although marginally so) and 
will try to find their way around obstacles to get to you once alerted to 
your presence.


Goodies:

  In each mission the following items can be found:
Extra armour, 2 * [mission] (twice that in two player mode).
NOTE: In this version armor bonuses have the effect of restoring your armor
to initial values. If your'e already at the top you cannot pick it up.
Extra lives, 1 per player.
Armor addons, 2, as armor but also increases armor beyond initial values.
One weapon.

Weapons:

All your weapons come with advanced Friend-Or-Foe targetting systems making
it entirely impossible to hit any comrades 8-)

Your hands: walking into bad guys hurts them. 
            (some bad guys hurt you too...some quite a lot)
Chainsaw: Increases the close combat damage inflicted. You do not need to 
activate the chainsaw in any way, merely carrying it is sufficient.

Very much out of order, you figure out which is which:

PowerGun: Very high impact, long range, low rate of fire.
Blaster:  Fair impact, fair rate of fire.
Minigun:  Fair impact, high rate of fire, short range.
Flamer:   Low impact, short range, high rate of fire(!). Easy to hit with!
Launcher: Grenades. fair impact. Low rate of fire.
MegaGun:  Grenades. VERY high impact. Very limited ammo!!

Note: when firing a weapon your character will grit his teeth. You may not 
fire again until your character stops doing this and raises his gun again. 
It is quite possible to hold the fire button down of course.
Changing weapon also enables immediate fire.
You may not move and fire simultaneously unless you hold [change weapon] or have
selected 'Move while firing always' on the Options page.


Bad guys:

  The opponents come in six flavors:
Basic mutant zombie: Slow, stupid (even for a bad guy that is) and weak 
      (no close combat capability). Wimpy guns.
Mutant zombie with goggles: Equal to you but with inferior firepower. 
Blood red mutant zombie: Fast and deadly (take 'em out fast!).
Black mutant zombie: Even faster.
Cyborg: Very slow but very strong. Powerful guns, but low rate of fire.
Big baddie: Cyborg++. Bad news.


Automap:

Press and hold F1 (or whatever you defined) to see the automap.
(If you have a four button joystick and have not selected joystick for the 
other player you can use button three as well).
Action pauses. Remaining targets are red blobs, exit is cyan blob, useful items 
are small cyan blobs. Mission items are small red blobs. 
Players are white and yellow dots with rectangles around them. 
Enemies are NOT shown.


Options screen:

Split screen mode (two player games):
  Never  - players have to stay on the same screen.
  Always - players always have their own screen (default).
  Often  - Split screen whenever players stray about half a screen apart
  Seldom - Split only when necessary
Player 1 is always to the left, player 2 to the right.

Music & Sound fx on/off

Movement options:

Move while firing only when strafing - see movement.
Move while firing always - see movement.

Campaign:
  Zero, Seventeen or 4711. 
  Equivalent to commandline switch -c0, -c17 and -c4711.

2 Players:
  Pool lives or separate life counts. 
  When lives are pooled a character about to die will instead "steal" a 
  spare life from the other player (if that character has one of course).


Command line options:

-cn  Play campaign n (n is an unsigned int).
     This value is used to form the random seed when generating missions.
     Default is 0. If n is omitted a random campaign will be chosen.


INI file options:

The INI file is divided into sections.
Sections [Player1] and [Player2] store settings for player 1 & 2. They are
automatically updated by DOGS.

[Sound] section:
bang=<enter file name of raw sample w/o extension>
powergun=
blaster=
minigun=
flame=
pickup=
switch=
kill=
laser=                 *NEW*  Used for baddie cyborg guns
chainsaw=              *NEW*  you figure it out 8-)
poof=                  *NEW*  Used when blowing up the junk scattered about
Set the related sound to be the specified sample. Default is none.
Note: DOGS append .RAW to specified filenames. The files have to be in the
current directory. You can NOT specify a path.

irq=x
dma=x
Set irq and dma (of your soundcard) to x. If omitted DSMI autodetects 
(default and usually sufficient).

486=true or false
Enables 486 support in DSMI, default is false

quality=true or false
Enables DSMI quality mode for 8bit cards. Not applicable for 16bit cards.
Default is off.

[Music] section:
menu=<amf filename - WITHOUT extension>  AMF to be played in menus etc.
credits=                                 Credits page
success=                                 When completing a mission
failure=                                 When killed
famous=                                  Hall of fame

level=
level=
...
DOGS will alternate between the specified level AMFs in a circular 
fashion.
.AMF is appended to all filenames. 
The files must reside in the current directory.
AMF is a format by Otto Chrons, used in his DMP mod player and the DSMI library
- which was used for all sound in Dogs. You can probably find AMFs on your 
favorite ftp-site or you could convert some other music file to AMF.
A converter is included in the DMP package.


Known bugs:

PROBLEM: Occasionally bad guys appear on screen when a mission starts and then
immediately vanish.

CORRECTED: In order to ensure that no bad guys are on screen at the start
of a mission I set them up after the players. What can occassionally be
seen at the start of a mission are the guys left over from last mission.
As soon as the fade is complete they are reset and promptly disappear off
screen as they are relocated. I now clear the bad guys before doing the
fade.

PROBLEM: Hard to get out of the Credits page.
CORRECTED: This was lazy coding. To get a pause between the two pages I had put 
in a delay when a page finished. What happened was that a keypress caused a 
page to abort, then came the delay and after the delay the key was no longer 
down so it started on the next page. Sloppy!

PROBLEM: Main menu refuses to accept commands.
This is apparently related to the joystick routines. 
It has been somewhat fixed. If you select joystick without calibrating you can
still get this behaviour. Unfortunately you'll have to reset. Dogs should 
detect the anomaly when you start it again. Otherwise set the corresponding
stick= entry in DOGS.INI to 0 manually.

PROBLEM: Player characters can get hopelessly entangled.
CORRECTED: The code has been changed to hinder movement only if characters 
approaching each other would get entangled. Two characters may now ALWAYS move 
away from each other.


Things to come:

NOTE: This is probably the final version of Dogs, at least for the time being. 
I will work on other things now and may or may not do any more work on Dogs. 
I have considered removing this section from this file but decided to leave 
it in for no particular reason.

NOTE: Well, I am considering doing a level editor and abandoning the random 
stuff. We'll see...8-)

x More varied missions. A mission will consist of teleporting in - as today -
  completing assigned goal(s) and making it to an exit.
  Ideas of goals:
    Kill target bad guys    *** Implemented, at least somewhat 8-) ***
    Retrieve certain item(s)

    As of beta #5, I am content with this.

+ More bad guys
    Basically, more variety.

x Better game areas (more like floor plans)
    This has already started somewhat. Hopefully i can improve on it.

+ Designed, rather than randomly generated, levels

+ Doors
    Maybe, maybe not.

+ Possibility to destroy parts of walls
    Ditto.

x Mission briefings. Targets and expected opposition.
    Done.

x More intelligence in bad guys (ie can get past obstacles). (DONE)

x Sound (DONE)

+ Have characters be "pushed" when hit by bullets.
    Unlikely to happen.

+ Fix explosions. Currently the blast goes through walls and the effect is not
  lessened by distance (it's all or nothing).
  Probably blasts will not be FOF-sensitive either 8-)

x Credits screen. So do come up with some nice ideas 8-) (DONE)

x High score list(s). (ONLY ONE SO FAR...)
  I am considering keeping a few lists: top score, most kills, most missions,
  best hit/shots fired ratio or something like that...


Suggestions and ideas welcome.
Bug reports not exactly welcome but appreciated none the less 8-)

Ronny Wester
ronny@rat.se
