T UXEDO T. P ENGUIN: A Q UEST FOR H ERRING.
by Steve and Oliver Baker
Prerequisites. For this initial beta release, you'll need the following hardware:

- Pentium 266MHz or better for great performance, 100MHz might be bearable.
- 3D graphics card with OpenGL/Mesa support.
- 32Mb RAM for reasonable performance.
- A sound card that Linux can support.
- A joystick (even a cheap one will do just fine - but a 'game pad' with lots of buttons is best).

The following software needs to be correctly installed:

- GLIDE (for 3Dfx cards) - skip this if you have a non-3Dfx 3D card.
- Mesa - or some other hardware-accellerated OpenGL. Don't expect a beta release of Mesa to work - pick the latest full release. (Mesa 3.1 beta is known not to work for example).
- For Linux users: The standard Linux Joystick driver.
- For Linux users: The standard Linux Audio driver.
- The PLIB libraries from my web site at http://plib.sourceforge.net

If you wish to develop more levels, or to improve the existing levels, you'll need a paint program (eg GIMP) and some kind of 3D modeller. I currently use AC3D - which is a $40 shareware package. Playing Tux. If you have a 3Dfx card, then as usual with 3D games under Linux, you need to set some environment variables:

       setenv MESA_GLX_FX           "fullscreen"
       setenv FX_GLIDE_SWAPINTERVAL       1

       setenv SST_GAMMA                   1.4
       setenv SST_SCREENREFRESH           60
       setenv SST_SWAP_EN_WAIT_IN_VSYNC   1

       setenv SSTV2_GAMMA                 1.4
       setenv SSTV2_SCREENREFRESH         60
       setenv SSTV2_SWAP_EN_WAIT_IN_VSYNC 1

If you do not have /dev/3dfx installed and setup correctly, you'll need to run as root. Either way, you need to be running Xfree86.

During this development phase, it's possible to start the game running at any level...clearly that has to change in time - but for now, it's *very* convenient.

       tux_aqfh {-g|--gown|-t|--tux} {-h|--help} {-r|--reset}

The first time you play the game, you need to specify whether you wish to play as Tux (the boy Penguin) or Gown (the girl Penguin). Do this by passing '--gown' (-g) or '--tux' (-t) on the command line. The first time you play, it'll create a save file in your home directory called '.tux_aqfh_rc'. If you want to reset the game, either delete that file or start the game with '--reset' (-r) on the command line. You never have to manually save the game, this happens automatically whenever Tux (or Gown) completes a level,

This release of the game comes with several levels - most of these are just tests for various features of the software rather than seriously playable levels.

The training level is designed to teach beginners the mechanics of the game without the need to read the manual. The .tux_aqfh_rc file. Tux saves the current game automatically in '~/.tux_aqfh_rc' by default. You can pick a different file to load/save by setting the full path in the environment variable 'TUX_AQFH_RC'. The Objective. Right now, the only objective is to get to the end - but to do that, you have to collect a certain unspecified number of Golden Herring. Each level contains a temple-like building with a green swirling whirlpool in the middle. Jumping into the whirlpool takes you either on to the next level or back to a room called "The Antechamber" which gives you access to just those levels that you have enough Golden Herring to reach. The game is only saved when you return to the Antechamber.

Typically, you will have to collect items (Herring mostly) or gain special powers, or search very hard and manouver with dexterity in order to reach this level's temple and hence progress to the next level.

Other collectables include:

- Silver Herring - which give you energy which is consumed in short flying hops and perhaps for operating certain machinery.
- Green Herring - which are disgusting and harm you.
- Red Herrings - which can be used for any purpose by the level designer - switching things on and off, giving special powers or equipment to Tux, dressing him up in silly costumes for no special reason, etc. The only rule is that each Red Herring should always do the same thing. The effects of Red Herring should always wear off by the end of the level.
- Gold Herring - sometimes there are doors that cannot be passed unless you have collected enough Golden herring. There are usually only one or two Golden Herring on each level. Sometimes they will be hidden very deviously, other times they will be in plain sight but defended heavily.
- Lives - these are little spinning Tux icons which add to your 'lives'.
- Snowballs - these can be thrown as missiles against Tux's enemies, smashing into a snowman increases Tux's supply.

Controls. Tux is moved using the joystick, the 'trigger button' (or the 'A' button on game pads) causes him to jump if walking or swimming on the surface, to try to fly if he is already in freefall for some reason, or to swim faster if he's underwater. The 'other' button (or the 'B' button on game pads) causes him to throw snowballs if on land, or to dive if he's swimming on the surface. It doesn't currently have a function when falling or flying.

All of the camera controls are on the arrow keys, and Insert/Delete/Home/End/PgUp/PgDn. The 'camera' can operate in two modes (Follow-behind-Tux and Move-freely-relative-to-Tux), you can toggle between the two modes using the End key. The Insert key toggles the field of view from wide-angle to normal. The Home key restores the camera to 'default settings'. PgUp and PgDn move the camera up and down and in height, the up and down arrows move it closer or further from Tux and the left and right arrows move the camera around Tux in a clockwise or anticlockwise direction.

If you have a game pad then 'L' and 'R' move the camera left and right, clicking both together toggles between follow-Tux and move-freely. Holding the 'C' or 'D' buttons down and moving the joystick allows you to move the camera around instead of Tux.

Pressing 'C' and 'D' gamepad buttons together causes Tux to do a somersault. The 'r' key on the keyboard has the same effect.

The 'p' key pauses the game.

Most other functions are not needed in actual play and are operated from the menu bar. The space-bar toggles the menu bar on and off. Cheat Mode It's necessary to cheat quite a bit during development - all the cheat functions are mapped to the keyboard - but are only enabled after a password has been typed. Currently the password is 'Tuxedo' (case sensitive) - but it will be changed or even removed when we make a formal non-development release.

Cheat mode commands tend to come and go as needed, but the most useful (and most likely to survive) are:

- f : Freeze (or unfreeze) the motion of all bad-guys.
- c : Toggle an on-screen text/debug overlay.
- ? : Display Tux's current X/Y/Z position and the direction he's facing (only visible when the overlay is on).
- + : Go on to the next level without having to find the temple.
- - : Go back to the previous level.
- r : Restock. Gives Tux a full supply of lives, energy, health, herrings and snowballs.
- k : Keypad mode - the game logic is suspended and Tux can be positioned directly using the numeric keypad. It's best to have the camera in 'follow Tux' mode when you do this. Hit 'k' again to return to normal play.
- t : Toggle texture map rendering on and off.
- w : Toggle wireframe rendering on and off.
- x : Exit from cheat mode.

## What Works - What Doesn't?

Well, the basic gameplay pretty much works, here are a number of things that aren't done yet...

- Camera control is not perfect - it's quite easy to have it buried underground - or off the edge of the level.
- When Tux goes under an overhang, the camera doesn't always succeed in following him.
- Only the training level and level 3 are really playable. You can wander around the others - but they don't have objectives, etc. Some of the objects are 'interesting' but don't do anything yet.
- Music: Well, I am shipping 'MOD' music files from fairly dubious sources - it's always hard to discover whether music files out on public web sites are 'free' or not. These files appear to be free - but if anyone knows any different, I'd like to hear about it. If you want to add your own music, create '.mod' files and edit the 'data/levelXXX.dat' file to make it play your song instead of the default.
- There are no 'bad guys' apart from the Killer Whale (Freeware Willy) in level 1. Freeware Willie isn't fully debugged yet - sometimes he gets 'stuck' in shallow water.
- Control of Tux in flight isn't correct yet (check out the rocket pack that you get in one of the Red Herring in level 1).
- There are multiple memory leaks - significant memory is wasted whenever you change from one level to another. Since there are so few levels, and you can't go back to a previous level (except in cheat mode), this doesn't really matter - YET!
- If you play for a long time, switching levels frequently, eventually something in the texture system breaks and you see the odd texture map disappearing.
- Snowballs can be thrown - but they don't do anything yet.

## Contributions.

I'm still having a lot of fun writing Tux - but I'm coming to the point where it might be nice to have some help. The main areas that I need help with will be building new levels (I'd like to have a LOT of levels) - and music (I'm musically hopeless).

I also need database loaders for file formats other than AC3D so that lots of other people can design objects.

Anyone who is itching to get on and hack things ought perhaps to take the code as it is today and use it to build another Tux game with levels, etc all of it's own. Call it something *somewhat* different:

     eg

       "Tuxedo T. Penguin: Death to Leopard-Seals!"
       "Tuxedo T. Penguin: Killer Whales of Doom!"
       "Tuxedo T. Penguin: The return of the Krill."

That way, we'll have a number of games - each with a style of it's own - but the same basic theme. If the various game teams interchange code, models, music and ideas, I believe we could end up with a family of great games.