Wacko Software presents:

Chickens 0.2.0.2 (pre-release)


_NOTE:_ This is only a pre release version of chickens. I decided to release this pre-release version so that I can get some feedback and so volonteers can start creating levels etc. Chickens is only about 85% finished, but the gameplay implementation is complete, so you can now play Chickens today! I can guarantee you, it will be better than playing Chickens tomorrow.

There are still a few glitches to be ironed out, the sound and music need doing (this is what's most obviously missing), there's a shortage of levels, it wouldn't hurt to tweak some of the existing levels, and a few more bits and pieces of graphics need doing. But the important thing is that the game can be played and the construction-set (level editor) can be used, so let's see some levels and feedback!!!!!!

Currently, Chickens runs best in full-screen mode (although it is possible to run the game in a window by tweaking a the 'iswindowed' setting in the INI file, but there are problems with scrolling using the mouse in windowed mode). In Windows, to switch to another program you have running while in fullscreen mode (such as the program you are using to read this readme-document), hold down ALT and press TAB twice or more than twice.



CONTENTS:

+ Installation
+ Un-installation
+ Running
+ Introduction
+ The front-end
+ Playing the game
+ The construction-set (level editor)
+ Notes to level designers
+ Keyboard Shortcuts
+ Tweaking
+ Troubleshooting
+ Credits
+ The bit at the end




INSTALLATION:

Un-zip the zip-file you downloaded into an empty directory of your choice using a Zip program such as WinZip ( http://www.winzip.com ) in Windows, or pkunzip in DOS. The levels (files ending in .pmg) should be in their own directory (most UnZip-programs make sure that directories are preserved (but with pkunzip, you need to pass the '-d' switch on the command line)). If not, create a directory called "levels" and move the .pmg files (files ending in .pmg) there). If there's a previous version of Chickens installed, un-install it before you install this one (see the 'UN-INSTALLATION' section).


UN-INSTALLATION:

Delete the contents of the directory you installed Chickens to (if you installed chickens to a non-empty directory, delete only the files that were from the Chickens Zip). But if you created some of your own levels, you may want to move them elsewhere BEFORE you delete the directory.


RUNNING:

To run Chickens, launch the Chickens executable (in Windows, double-click on ChickensWin.exe, or if running the DOS version, type in "chickens.exe" from the DOS prompt while in the directory you installed Chickens to).



INTRODUCTION:

The chickens on Farmer Heironymous Pineapple's farm near the delightful village of Springle on the Sprog had lived a peaceful existence, until one day, a swarm of ducks (called the "Ducks of Hazard") flew over from the west of the river Sprog with intentions of domination of all forms of poultry.

As soon as they arrived at Farmer Pineapple's farm, they immediately broke into the DNA stores, got out the picture of the chicken's DNA, and using one of those pencils with an eraser at the end, they erased part of the chicken's DNA. This had the immediate effect that the head of all chickens faded away and disappeared. 

The chickens who were currently wandering around the barn and every so often pecking the floor suddenly started running around aimlessly, for they were now without heads ... without direction. The ducks took this opportunity to close in and chase the chickens into nearby ponds and rivers. 

The ensuing chaos was beginning to distract the cranky Farmer Pineapple from polishing his carrot-sculptures and as soon as he opened and looked out the window, he saw the ducks making a mess by laying eggs all-over the place and he saw them chasing his headless chickens into the river. He was beginning to get angry. The final straw occurred when a duck laid an egg on him. He was gnashing his teeth in anger and steam started to pour from his ears, and he immediately gathered together his collection of religious artifacts which he kept in a cardboard box under his bed, dimmed the lights and started chanting verse in an unknown tongue. This caused the remaining chickens to group together and form a posse called the "Clueless Clucks Clan" (or "C.C.C." for short). 

Farmer Pineapple was the sort of person who thought that doing things the easy way was too boring and simple for the likes of an eccentric village-idiot like himself. He could have ordered Daisy the cow (yes, he had one of those too) to charge and squash the legion of magnificent mallards that was guarding the DNA stores, but he instead decided to lead the C.C.C. (who were wearing false heads as a symbol of pride) through the complex labyrinth of his egg-gathering apparatus which eventually leads to a secret entrance to the DNA stores. The chickens would then restore their DNA to it's rightful state so that they and their offspring could have real heads. 

The main purpose of the egg-gathering apparatus was to collect the eggs that had been laid, sort them, place them in containers, and hatch some of them into more chickens. Like Farmer Pineapple's mind, it was unnecessarily complex, and re-defined the meaning of the word obfuscated. The reason this was so complicated was so that Farmer Pineapple could combat the existential angst created by those pictures in the Mister Men books that just showed simple pathways, and also so that he could show off his mechanical ingenuity and twisted mind. His contraption had the ability to separate eggs by size, mass, and the mood of the hens that had laid the eggs. As well as sorting the eggs, the contrivance also had the ability to play with the eggs as they were being sorted. The system of tubes, when properly set, could emulate a digital computer where the binary information was carried in egg, no-egg pulses, and the pathways of the tubes could be set by the passing eggs. Most of the system was constantly being upgraded, so to make it easier to experiment with new ideas, some of the pipe interchanges could be controlled manually, and there was a console inside the barn where Farmer Pineapple could change the path of the egg flow. 

Some of the ducks had already entered the egg-gathering apparatus, had got hopelessly lost, but there were enough of them to hinder an advancing brigade of headless chickens, but as the ducks were so confused by the apparatus, they just kept on wandering around as aimlessly as the chickens. Just in case, they decided to sabotage parts of the system to prevent any attempts at infiltration by headless chickens (although the ducks had no idea about what they were doing once they entered the system). 

In the mean time, the ducks had been having a go at 'DNA-hacking' with the pig's DNA, and had made them produce excessive amounts of hydrogen from any organic matter they consumed. This made them lighter than air and gave them the ability to fly, thus invalidating any expression of the type "If pigs could fly...". 

Only the C.C.C., under the guidance of the whimsical Farmer Pineapple stand in the way of complete chaos at Pineapple Farm. 




THE FRONT-END:

When you start Chickens, you are presented with the front-end. This is where you can play the game or launch the construction-set (level editor).

All of the buttons that do something in the main front-end screen have tooltips explaining what they do. Just hover the mouse-cursor over a button, and a tooltip should appear that tells you what it does.

There are five pre-defined groups of levels (groups) you can play. Click on one of the smiley faces to play a group (or press a key from F1 to F5). You can also press the 'Load and Play' button (the one that looks like a floppy-disk with an arrow coming out of it) (or press 'L') to load in a group that's not part of the game - that is, a group that you created in the construction-set, or one that you copied off someone else or downloaded. You can also choose to go to the construction-set from the front-end. In the bottom-right hand corner, there's a button you can press to get the credits-screen, and there's an 'exit' button next to credits button.

When the group has been chosen, you are presented with the "Choose a level in this group" dialog. This is where you see an overview of the group, and can select which level to start playing in this group. You do this by typing in the level's password in the password-field (the mouse-cursor must be hovering over the password field in order for you to type there), or leave it blank to play the first level in the group. The password for a level will be revealed when you have completed the previous level and are about to start the new level. Remember this password (write it down, type it in a text-editor, remember it in your head, tatoo it onto your person, or whatever you do to remember Things) so that you may start playing the group at this level. When you've typed in the password (or left it blank), press the "Play group" button to continue. You will be sent back to this dialog if there is no level in that particular group with the password you entered (even if there is such a level in another group). The password of the last level to be played is remembered for each group and is filled in the password-box automatically, although you will have to remember it when you exit Chickens.

Once the level has been chosen, the "Play level" dialog appears. This reveals the details of the level including the level's password (which is blank in the first level of the group). Also revealed are the following:
+ Level speed: This is the minimum speed (in ticks per second) that the level will run at. 
+ Number of Chickens at Start: Howmany chickens are introduced to the level fron the Chicken tap at the start.
+ Target Number of Chickens: Howmany chickens you need to get to the target to complete the level.
+ Chicken Release Delay: The delay in ticks between chickens being released from the chicken tap. The lower the number, the faster the rate of chicken release.
+ Duck constipation: The delay in ticks between ducks' eggs being released from a ducks' eggs tap. The lower the number, the faster the rate of ducks' eggs release. The rate at which a single tap releases eggs remains constant no matter howmany taps there are in the level. This is only displayed if there's at least one ducks' eggs tap in the level.
+ Maximum number of eggs in incubator: The number of eggs an incubator can contain before it is full. If it is full, any egg attempting to enter the incubator regardless of colour and species will be destroyed.
+ Time to hatch egg: Time it takes for an incbator to hatch an egg (in ticks).
+ Time to lay egg: Time it takes for a fowl (chicken or duck) incbator to lay an egg (in ticks).
+ Time to lay egg (superfowl): Time it takes for a superfowl (super-chicken or super-duck) incbator to lay an egg (in ticks).
+ Time limit: The time in which the player has to complete the level. This is in minutes:seconds format.

Press the "Play Level" to play the level. If you succeeded, you will move onto the next level (if there is one). If you failed, you will re-play this level. Press the "Back to title-screen" button to return to the main front-end screen.



PLAYING THE GAME:

Chickens is a game that gives players a chance to solve problems in a new way. It presents bizarre problems that require bizarre solutions. The chickens must negotiate their way through a complicated spaghetti junction of pipes in order to reach the end of the game. Not only do they have to deal with the threat of the evil ducks, but the layout of the pipes also poses a puzzle. The game is divided up into levels, which are subsets of the pipe system. Each level consists of a series of pipes with obstacles, a certain number of chickens at the start, a target (number of chickens that have to reach the exit), and a time limit. The player must solve a problem by sending the target number of chickens to the end of the level within the time limit in order to be allowed access to the next level.

If reading the text below is a bit too much for you, just play the 'Easy' group of Chickens. It introduces the varoius elements one by one, and at the start of the level, you are given plenty of hints in the "Play level" dialog.

All chickens come from the chickens tap somewhere on the left edge of the level. The number of chickens to be released and the delay between subsequent chickens releases are determined by their respective level-paramaters. Some levels contain ducks' eggs taps at the top of the level which release a continuous stream of ducks' eggs into the level. This can be a nuisance, but sometimes, it can be beneficial too. The chickens must be sent to the exit (located somewhere on the right edge of the level). If the level is large enough, you can scroll it by moving the mouse past the edges of the screen (or alternatively, press the keys on the numeric keypad to scroll the level in the direction of the number-key relative to the position of the '5' key. Note that on laptops, 'Num-Lock' must be enabled for scrolling with the keyboard to work). Any square that can be interacted with by the player becomes highlighted when the mouse is moved over that square. Such squares include player-controlled-interchanges and delay-egg blocks.

Or altertnatively, when playing the game, pressing the keys on the numeric keypad now scr
A chicken will die if it encounters a duck and attempts to fight it (and so will the duck it's fighting), or come across a bomb or a dead end. However, they can reproduce by laying eggs, and sending the eggs to the incubators to hatch. To make things difficult, the chickens' eggs come in four different colours (green, red, blue and yellow), and must be guided through the same system of pipes to the correct incubator for that colour in order to hatch. The Ducks can lay eggs too, and while there are ducks' eggs in the incubators, any chickens' egg trying to enter will be destroyed.

The junctions consist of ordinary pipes, interchanges, command blocks, and other obstacles. The main control the player has over the game is the ability to switch the paths of some of the pipe interchanges by moving the cursor over the interchange and pressing a button. The player can also release eggs that are being delayed. The light-green interchanges (Player-Controlled-Interchanges) can be changed by pressing the left mouse-button when the mouse-cursor is over the interchange. Light-blue interchanges (Object-Controlled-Interchanges) change whenever something moves through the pipe, and black interchanges always remain in the same state. However, some black interchanges have red paths underneath. Whenever there is at least one object in the red pipe-section, the interchange changes to it's changed state, and reverts to it's normal state once the red path is clear. Such interchanges are called 'Nearby-Object-Controlled-Interchanges'. There are also 'Y'-shaped separator pipes where chickens and ducks go through the red wall, and eggs go through the blue wall (unless entering from either of the two exits, in which case, all traffic goes to the entrance). Splitter-tiles contain 8 pathways and send anything trying to enter off in the direction of the golden arrow. Depending on the splitter-type (colour), the arrow either moves clockwise (orange), anticlockwise (yellow) or random (magenta). Sometimes, the initial placement of the arrow is pre-determined, and sometimes, it is random.

If an egg passes over a delay-egg block, then pressing the left mouse-button over the block releases the egg. Pressing the right mouse-button releases all the eggs that are currently being delayed (holding down the right mousebutton prevents any eggs from being captured by dealy-egg blocks until the right mousebutton is released). When a fowl (chicken or duck) reaches a lay-egg block (one that looks like a nest), it stops and lays an egg if the lay-egg block is empty. If the nest of the lay-egg block is brown, it lays an egg in a random colour, otherwise, it lays an egg in the same colour as the nest. Spacewarps instantly transport anything thying to enter them to their twin-spacewarp (the spacewarp with the same colour). Dead-ends instantly destroy any object trying to enter them (hence the dead-ness of the dead-ends).

The incubators are where the eggs for a particular colour hatch (they can also hatch grey ducks' eggs). Incubators hatch one egg at a time and all the other eggs queue up to wait their turn. When hatched, the fowl will leave the egg in the opposite direction to where it entered. Eggs entering the incubator will queue up in the order entered, even if they entered from different sides, so any hatched fowl will continue moving in the same direction. If an egg of the wrong type tries to enter the incubator, it will be destroyed, destroying the last egg to have entered the incubator in the process (the incubator shakes for a bit when this happens). An incubator can only contain it's maximum number of eggs before it does not allow anymore in (further eggs of the right type are destroyed, but these do not destroy an egg inside the incubator). The incubator's icon resembles an egg of the type it is currently hatching. It has a face that appears in time with the progress that the egg is making in hatching. The incubator also shows the number of eggs inside, and a fullness bar indicating how full it is.

Pipes can also contain obstacles. If anything touches a bomb, it is destroyed (along with the bomb). If it picks up a superfowl-costume (consisting of a pair of sunglasses and a leather jacket), it turns into a superhero (becomes super-chicken or superduck - AKA superfowl). Superfowl run at 1.5 times the speed of ordinary fowl, can lay eggs much faster, and win all fights with ordinary fowl (although in a fight with another superfowl, both superfowl get killed). There are also piles of radioactive chicken-feed. Any fowl that eats them becomes sterilised (radioactive) and can no longer lay eggs (but they can still start fights and become superfowl). If an object encounters an arrow, it can only move in the direction the arrow is pointing. If an obstacle meets an arrow pointing in the opposite direction, it is turned back in the direction it came.

One way to find out what particular tiles and obstacles do is to go to the construction-set and find the tile in one of the tile-menus and hover the mouse-cursor over the tile so that a tooltip appears (sometimes, the tooltip depends on the currently-selected tile-type).

It is also possible to change the speed at which the level runs. To do this, move the mousewheel or press the up/down arrow keys (in the INI file, the setting 'invertmousewheelspeedchangedir' reverses the direction the mousewheel/arrows must be moved/pressed). Hold down 'SHIFT' to quadruple the rate of change of the level-speed. This is useful in one of those levels that requires setting the interchanges up and then leaving the level alone, as you get to see the level complete itself much faster. Pressing the middle mouse-button or 'Z' immediately restores the level-speed to it's minimum value.

The game can be paused by pressing 'SPACE' (press the 'Press to continue' button or 'ENTER' to continue). To quit the game, press 'ESC'.

To bring up a dialog to remind you of the level-text and some other information on the level while playing, press 'H'.

To save an image of the entire level (not just what is currently visible onscreen), press 'CTRL-K'. The screenshot is saved as chlvimxx.pcx in the directory Chickens was launched from.

Some of the levels are pure puzzles, some just straightforward action, but most are a mixture of the two. 

In other words, Chickens is the game for people who like to tie their brain in a knot. 



THE CONSTRUCTION-SET (LEVEL EDITOR):

The construction-set is the level editor of Chickens. Use it to build your own levels and play them, and more importantly, to share them with other egg-layers (chickens players).

The Screen is layed out just like it is in the game. Like with the game, if the level is large enough, you can scroll it by moving the mouse past the edges of the screen (although scrolling with the numeric keypad only works when laying pipes with the numeric keypad). However, the status-display has been replaced by the level-editor user-interface.

All of the buttons in the user-interface that do something have tooltips explaining what they do. Just hover the mouse-cursor over a button, and a tooltip should appear that tells you what it does (for tile-buttons, the tooltip will tell what each tile does in the game which is useful when learning about the game). Not all buttons are active at the moment. All of them are activated by the left mouse button, but some also bring up a menu if you press the right mouse button over them, and some even react to middle-click presses (for those of you using a mouse with no middle mouse-button, holding down 'CTRL' and the left mouse button achieves the same effect. The right mouse button can be simulated by holding down 'SHIFT' while pressing the left mouse button). The tooltips will tell you which buttons you can use and what they do.

The interface is intuitive, and can be explored by pressing things with the left and right mouse-buttons. You can tell which buttons do something by hovering the mouse-pointer over them and if the button reacts to having a mouse over it, then it does something. If you leave the mouse over the button long enough, a tooltip appears. Just try it out and see what happens. The worst you can do is overwrite an existing level (but fortunately, you are asked to confirm before doing this, and even if you do, a backup is made).

You start out the construction-set with an empty group consisting of an empty level. A group is a collection of levels but it can also contain only one level. Most of the screen is occupied by the level (the "level-area"). The controls are in the area at the bottom of the screen.

There is a selected tile or obstacle which is the one that is being carried by the mouse (unless you have just entered the editor, in which case, no tile or obstacle is selected). The level-area can be drawn on by pressing the left mouse-button on where you want to draw the tile being carried by the mouse. Individual areas in the level that can contain tiles are referred to as "squares". Up to 4 tiles can be drawn in a square (although some tiles monopolise the square). Each slot that a tile takes up in the square is called a layer. Some squares may contain an additional obstacle in the topmost layer (this depends on the tile of the topmost layer). Obstacles can be one-way arrows, ducks, radioactive chicken-feed, etc. Currently, an obstacle requires a straight section of ordinary pipe to be at the topmost layer of the square. Some obstacles (the duck and the one-way arrow) require that they be facing one of the two directions of the pipe). The one-way arrow points in the direction you want the arrow to point to, and the duck starts moving in the direction it is facing when the level starts.

It is possible to flip and rotate the selected tile or obstacle. Use the flip and rotate buttons in the level-editor, or use the '/' and '\' keys to flip or 'PGUP'/'PGDN' keys to rotate. An alternative way to rotate the selected tile or obstacle is to use the mousewheel (in the INI file, the setting 'invertmousewheelrotatedir' reverses the direction the mousewheel/'PGUP'/'PGDN' keys must be moved/pressed).

It is also possible to select a square by pressing the right mouse-button (or left mouse-button while holding down 'SHIFT') over the square in the level ('drawing' onto a square also selects it). The selected square will be highlighted, and it's contents will be displayed in the four buttons at the bottom of the screen (known as the "Layer-select area") as well as the "Corners and Obstacles" button. As well as selecting individual squares, it is also possible to select an area of squares for cut/copy operations. Use the right mousebutton to drag an area to select. The square displayed in the layer-select area and "Corners and Obstacles" button is the top-left of the selection.

If there is an interchange under the mouse, you can change it's state by pressing the middle mouse-button (or left mouse-button while holding down 'CTRL') (if you have an interchange selected, this also changes the state of the selected interchange). The middle mouse-button also inverts the direction of any arrow-obstacle or duck-obstacle.

You can select what to draw with by pressing on any of the six tile-type buttons (near the left side of the buttons). The three big ones let you draw tiles, and the three small ones let you draw an obstacle in the topmost tile (not all tiles allow obstacles). Each button shows which object of that type was selected. Press the button with the right mouse-button to bring up a menu of available blocks for this type of tile (As usual, hovering the mouse cursor over a button in the menu of available blocks brings up a tooltip). As a shortcut, pressing one of the six tile-type buttons with the left mouse-button selects the most recently used tile of that type (and is a shortcut for bringing up the menu).

Some blocks come in different types. The type may determine how the interchange changes, what colour eggs an incubator will accept, what type of splitter a splitter is, or sometimes, it could just be used to colour ordinary pipes. To change the type of the object currently being carried by the mouse, press the 'type' button. Left-clicking it (or pressing '5' on the numeric keypad) cycles the type of the thing currently being carried by the mouse. Right-clicking it brings up a menu of up to four tiles. These let you chose the type of the tile. Use the tooltip for the button in the menu to find out the difference between the types. In the case of ordinary pipes, the tile-type just selects the colour of the pipe. This can be useful for giving the player a hint as to the purpose of each pipe (eg. in levels that use digital logic), or could just be used aesthetically.

To erase the contents of a square, press the 'erase' button (the one that looks like a pencil with an eraser at the end). This clears any square you 'draw' on. Press the button again to return to normal drawing with the selected block.

At the bottom of the screen are four buttons known as the "Layer-select area". They give a breakdown of the layers that compose the currently selected square, as well a showing which layer contains the obstacle (this is always the topmost layer). Individual layers can be drawn on, cleared and modified just like you would modify a square in the level, except that it only affects the selected layer. Remember that some tiles will not share the same square with other tiles (eg. interchanges, command-blocks). Pressing the right mouse-button over a tile in a layer-button cycles through the possible types this tile can have (this is an alternative to erasing and re-drawing the tile just to change it's type). Interchanges can be switched using the middle mouse-button. Two tiles can have their positions sqapped by dragging and dropping a tile to a different layer. To drag, press and hold down the left mouse-button on the tile you wish to swap, move the mouse to the tile you wish to swap it with, and release the left mouse-button.

To the left of the four buttons of the "Layer-select area" lies a fifth similarly-sized button - the "Corners and Obstacles" button. Use this button to modify the status of the square-corners (if another pipe passes over a corner of the current square, the status of the corners means whether or not the pipe at the corners passes over or under this square) and the square's obstacle for the currently selected square. If an obstacle is selected, pressing this button will place the obstacle in the selected square. If the eraser is selected, pressing this button will erase the obstacle in the selected square. The corners of the tiles are also shown. If a corner is shaded light or dark, that means it's visibility can be toggled. Press the button with the mouse over the corner who'se visibility you wish to toggle, and the corner's visibility (whether or not the pipe crossing this pipe at the corner is displayed on top of or undeneath of) will be toggled.

In case you run out of inspiration, press the "Random tile" button and a question-mark is now being carried by the mouse. Drawing on the level-area or the layer-select area now draws a randomly chosen tile. Press it again to return to normal drawing. There is also a "Random position" button underneath the "Random tile" button that draws the currently-selected tile at a random position on the screen. Try combining "Random tile" and "Random position" to see what happens.

It is possible to cut ('CTRL-X'), copy ('CTRL-C'), delete ('DEL') and paste ('CTRL-V') areas of squares. The area copied to the 'clipboard' on cut/copy actions (known as a 'Block of squares' or 'BloS') can even be flipped and rotated. Pasting can either overwrite the existing squares ('CTRL-V'), or be combined with the existing squares ('CTRL-U') (as long as combining the two sets of squares does not produce an impossible combination). To cut/copy/delete, an area of the level must be selected. Right-click one corner, and drag the selection until the selection covers the area you wish to manipulate. There is a menu that can be accessed by pressing the "Block of squares" button that gives a set of options for the current selection or the Block of squares in the 'clipboard'. Note that the contents of the clipboard can be pasted into a different level, or even in a level in a different group.

Each group has a set of paramaters, and each level within that group also has some paramaters. Press the level information / group information / statistics button (the one that looks like a notepad) or press 'CTRL-P'. This will bring up the statistics dialog, showing the filename of the currently loaded group, whether the group is complete or not, and other group-related paramaters. These are:
+ Group Name: The name of the current group.
+ Group Authour: who created this group, or "Various artists" if several people contributed levels to this group.
+ Group Password (currently unused): When groups have the ability to be locked and unlocked (not yet implemented), this is the password that will unlock the group. In a future version of Chickens, it will be possible to lock the group so that it can only be played and not edited in the construction-set.
+ Group Text: Some accompanying text that gives an overview of the group. It is shown in the group's level-choser when playing a group.

There is a sub-dialog for the current level. It shows the number of the level in the group, whether the level is complete or not, and other level-related paramaters. These are:
+ Level Name: The name of the level group.
+ Level Authour: who created this level.
+ Level Password: This is what the player types in on the level-choser dialog when playing the game in order to start on this level instead of the first. If this level is the first, the password should be left blank. If it is not the first, a password should be used. You will be warned if you pick a password that is being used by another level in the group.
+ Level Text: Some accompanying text that gives an overview of the level. It can be used to give hints as to how to solve the level, or not if you don't want to give any hints. It is shown in the 'play-level' dialog when playing a level.
+ Level speed: This is the minimum speed (in ticks per second) that the level will run at. 
+ Number of Chickens at Start: Howmany chickens are introduced to the level fron the Chicken tap at the start.
+ Target Number of Chickens: Howmany chickens you need to get to the target to complete the level.
+ Chicken Release Delay: The delay in ticks between chickens being released from the chicken tap. The lower the number, the faster the rate of chicken release.
+ Duck constipation: The delay in ticks between ducks' eggs being released from a ducks' eggs tap. The lower the number, the faster the rate of ducks' eggs release. The rate at which a single tap releases eggs remains constant no matter howmany taps there are in the level. This is only relevant if there's at least one ducks' eggs tap in the level.
+ Maximum number of eggs in incubator: The number of eggs an incubator can contain before it is full. If it is full, any egg attempting to enter the incubator regardless of colour and species will be destroyed.
+ Time to hatch egg: Time it takes for an incbator to hatch an egg (in ticks).
+ Time to lay egg: Time it takes for a fowl (chicken or duck) incbator to lay an egg (in ticks).
+ Time to lay egg (superfowl): Time it takes for a superfowl (super-chicken or super-duck) incbator to lay an egg (in ticks).
+ Time limit: Howmany seconds the player has in which to complete the level. The number you enter here is the time-limit in seconds.

To edit one of these paramters for the group or level, move the mouse-cursor over the text box, and type in the value.

A level is considered 'complete' if the following conditions are met.
+ There is a chickens-tap and an exit present in the level
+ All pipes are connected. That is, there are no pipes with loose unconnected ends.
+ For each spacewarp, it should be twinned with another spacewarp of the same spacewarp-set.

A group is considered complete if all levels in the group are complete.

You can tell if a level is 'complete' by the status of the test-tube at the bottom-right of the screen. If the liquid inside is green, the level is 'complete', and if it's red, it isn't 'complete'. Only 'complete' levels are allowed to be played. In the statistics dialog, it also tells you if the current level is complete, and also if the group is complete. Also, the 'Select level in this group' dialog and 'Split level-group' dialogs show complete levels with a green border and incomplete levels with a red border.

Note that chickens-taps can only be drawn on the left edge of the level, exits only on the right, and ducks' eggs taps only at the top. No pipes may have an exit leading off the edge of the level, and there should be no more than two spacewarps of each spacewarp-set.

To save your masterpiece, press the "Group, Level, and IO" menu button (the one on the right that looks like a floppy-disk with two arrows) and choose save (the one with an arrow going in to the floppy-disk (or the one that looks like that, but with a question-mark on the arrow)). Towards the top of the file-select dialog, you can type in the name of the group to save (the .pmg extension is automatically added so you don't have to add it yourself). Take care not to over-write an existing group (you will be warned if you try to do that). A backup of the group is created. The backup filename is the filename of the group with '.PMG' replaced with '.BAK', and when the level is saved again, the old backup will be overwritten by the new backup.

To go to another level in the currently-loaded group, choose the "Select level in this group" button from the "Group, Level, and IO" (or press 'CTRL-E'). You are presented with a dialog of buttons containing a thumbnail of each level in the group (surrounded by a green rectangle if the level is complete, or red if incomplete). Hovering the mouse-cursor over the box will give the level's name as a tooltip (unless there's only one level in the group). Press one of the buttons to select the level. The positions of two levels can be exchanged by dragging one level on to another level, and they will be swapped.

Have a look at some of the existing levels. Try loading in an example group by pressing the "Group, Level, and IO" menu button and choosing load (the one with an arrow coming out of the floppy-disk). The group is then loaded into the construction-set. Loading and saving loads and saves entire groups. All levels within are loaded/saved.

It is possible to combine two groups by merging another level into the existing level. Press the "Group, Level, and IO" menu button and chose 'merge'. Likewise, it is possible to split off a new group of levels from the existing group into a new file ("Group, Level, and IO"/"Split"). Firstly, the 'Split' dialog appers. Here, you get to chose the first level in the new group to be created. All levels that are to be saved and taken out of the existing group are highlighted. When you have chosen which levels to split, chose the filename of the group you wish to create (it should be a file that does not yet exist unless you intentionally intend to overwrite an existing file). Use 'Split' in combination with 'Merge' to shuffle levels spanning multiple groups (eg. move a level from one group to another group).

The size of the level is 20 x 13 squares by default, but this can be changed by either adding borders or cropping the level. To add borders, go to the "Group, Level, and IO" menu and press the "Add borders" button. There, you are shown the existing size of the level, and are asked how much space you wish to add to the sides of each level (NOTE: the maximum level-size is 96 x 96, although this could be enlarges in future versions). To shrink the level, select the area you wish to crop the level to, and press the "Crop" button in the "Group, Level, and IO" menu. Note that your cropped level must be at least 20 x 13, and because some pipes may be pruned, the level might have to be modified before it becomes complete once again.

There is a much faster way of laying ordinary pipes than manually selecting each type of tile and pressing each square with the mouse. The alternative method is to use the numeric keypad. Lay a single pipe-section in the usual fasion, and press the numbers on the numeric keypad to lay the next pipe in the direction dictated by the numeric keypad (relative to the '5' in the middle of the keypad). Either pipe must already have an exit leading to the square in the direction of movement, or the last pipe to be layed must be an ordinary pipe (which can be bent). If using it on a level larger than a screen, it scrolls the screen if the newly layed pipe goes off the edge. This allows you to lay a complicated line of pipes much more rapidly. Note that selecting a different area without drawing anything (or erasing something) cancels this mode. Note that on Laptops, "Num Lock" should be enabled for this to work.

To save an image of the entire level (not just what is currently visible onscreen), press 'CTRL-K'. The screenshot is saved as chlvimxx.pcx in the directory Chickens was launched from.

To exit (not that you should ever want to exit now that you've discovered the joys of making Chickens levels - oh well, you had to ask...), just choose the 'exit' button on the "Group, Level, and IO" menu (or press 'CTRL-Q).

Note that the group loaded into the construction-set is independant of the group loaded into the game using "Load and Play" from the front-end. Although this does not matter at this stage.




NOTES TO LEVEL DESIGNERS:

Here is some advice for those brave souls experimenting with this unique craft. These are just guidelines, and don't have to be followed to rule.

+ To make an interesting level, it shouldn't just be about getting chickens to the end of the level. There should be a puzzle which the player must solve. Of corse, interesting could mean making a chaotic level. Chaotic-but-fun levels are a welcome break from levels where you have to solve a problem.

+ The time limit for a level is an important element. For example, the player may find they never have enough time to finish the level. Suddenly, if they solve a certain puzzle, they find they now have plenty of time. A level that's timed be finished just as the time-limit is running out can make for an exciting finish. As the game-music starts to get out of tune, this is the cue that the player is running out of time, so when they hear the music 'melting' they become very anxious.

+ Try designing puzzles where there's plenty of time, but there's just a small number of chickens left over that need to be sent to the exit. If the player tries different approaches they will find the solution.

+ Levels that have many ways to solve are enjoyable because they are addictive - the player will want to play it over and over again because every time they try something new, they get a better time/result.

+ Avoid fustration. Don't overwhelm the player. Make them believe they were so close, that next time they will do it. OH YES!

+ Very Large levels should be used sparingly as they can fustrate player. Keeping a level the size of the screen makes it easier for the player to keep track of what is going on. Even only making one dimension of the level area larger than the screen makes it easier to follow than having both dimensions larger than the screen, as that way, it is easier to search for something. However, large levels can be usesful for some digital logic stuff.

+ Designers should take care to make sure that the level does not have an easier way of being completed that means that the player doesn't get the chance to solve the original puzzle. One way round this is to get someone who is unaware of the level's secret to test it. But if the designer wants, there could of course be several ways of solving the level.

+ Do get other people to play your level before you release it to ghe general public. Feedback is always useful. If you've been thinking a lot about the level and designed it round your thoughts, bear in mind that those playing your level will have to solve the problem using the reverse thought-process that the designer used when designing it. Solving the same problem you solved in reverse is a completely different thing to designing the level. Remember, what may seem intuitive to you may be fustrating to others.

+ If you insist on making levels that rely too heavily on using the "digital logic" properties of Nearby-Controlled-Object-Interchanges, bear in mind that most people don't have an understanding of digital circuits, and will probably not be able to complete the level. The actual game will probably contain very few of these types of levels. They are best left to be exchanged on the Internet amongst enthusiasts of that sort of thing. Of course, it is possible to have digital logic in a level without the palyer having to decipher it all. All they may have to do is send eggs down the right pipe and everything will be fine and dandy without them ever wondering why. If you have not got a clue what I'm on about, you don't have to worry about this point.

+ Spacewarps should be used sparingly, as they make the flow of the level harder to follow.

+ There does not have to be any ducks in a level. An example of this is the first level.

+ There do not have to be incubators of all four egg colours. In fact, there don't have to be any incubators at all. It may be possible to create a puzzle where you only have the chickens you start off with at your disposal. An example of this is the first level.

+ As well as making levels that are fun to play. It might be worth experimenting making levels levels with an artistic meaning, levels with hidden messages in the pipes (the pipes/level looks like a word), or levels that act like a scientific toy (levels that make use of digital-logic are good examples of this). However, this should be left to more advanced level-designers.

+ When designing levels where two fowl come very close to fighting or avoiding a fight, bear in mind that in future versions, the sprite-graphics may change (eg. if a graphics-set is drawn for a higher resolution). This means that you shoud not rely on pixel-accurate collisions or collision-avoidance.

Chickens docs hints for designers: Relying on pixel-accuracy for collisions: Bear in mind that bitmaps still subject to change. Also, 320x240 version and 1280x960 version.


+ Currently, if there are about 1920 objects circulating the pipes, the ducks' eggs taps dry up. This limit may be raised in future versions of the game, but until then, bear this in mind.






KEYBOARD SHORTCUTS:


Global keyboard shortcuts:

'=':	Exit Chickens immediately (although you will be asked for comfirmation if playing a game or editing an unsaved level).


Front-end keyboard shortcuts:

'L':	Load and Play.
'C': 	Construction-set.
'K':	Credits screen.
'A':	'About' dialog.
'ESC':	Quit Chickens.

'F1'-'F5':	Play one of the built-in groups.


Game keyboard shortcuts:

'SPACE':	Pause game.
'ESC':		Quit game.

'H':		Brings up a dialog with the level-text and some other pieces of information about the level.

'DOWN ARROW':	Increase (or decrease if 'invertmousewheelspeedchangedir' is set) the speed at which the level is running at (equivalent to moving the mousewheel down). Rate of change quadruples if 'SHIFT' held down.
'UP ARROW':	Decrease (or increase if 'invertmousewheelspeedchangedir' is set) the speed at which the level is running at (equivalent to moving the mousewheel up). Rate of change quadruples if 'SHIFT' held down.
'Z':	Restore level speed to minimum level speed (equivalent to pressing the middle mouse-button).

NUMPAD-keys:	When playing levels larger than a screen, pressing the keys on the numeric keypad now scrolls the screen in the direction of the number-key relative to the position of the '5' key (on laptops, 'Num-Lock' must be enabled)

'BACKSPACE' (or 'CAPS LOCK'): Release all eggs currently being delayed (equivalent to pressing the right mousebutton).
'ENTER':	When the mouse-cursor is over a changable object, pressing 'ENTER' changes the object (equivalent to pressing the left mousebutton).

'CTRL-K':	Save an image of the entire level in play (not including the status-area). The image is saved as chlvimxx.pcx in the directory Chickens was launched from.


Construction-set (level editor) keyboard shortcuts:

'CTRL-Q':	Quit/Exit construction-set.
'CTRL-L':	Load Group.
'CTRL-S':	Save Group.
'CTRL-E':	Bring up the level-choser dialog for the current group.

'CTRL-P':	Level information / group information / statistics / etc.

'F1':	Select Layer #1 in the layer-select area.
'F2':	Select Layer #2 in the layer-select area.
'F3':	Select Layer #3 in the layer-select area.
'F4':	Select Layer #4 in the layer-select area.

'F5':	Select the currently-selected pipe in the "Ordinary pipes" menu.
'F6':	Select the currently-selected pipe in the "Command pipes" menu.
'F7':	Select the currently-selected pipe in the "Interchange pipes" menu.
'F8':	Select the currently-selected obstacle in the "Species obstacles" menu.
'F9':	Select the currently-selected obstacle in the "Ordinary obstacles" menu.
'F10':	Select the currently-selected obstacle in the "Arrow obstacles" menu.

'R':	Simulate a press of the "Random position" button.

'CTRL-T' or 'ENTER':	Test the level.

'SPACE' or 'ESC':	Get out of a menu.

'/' and '\':	Flip the selected tile or obstacle.
'PGUP' and 'PGDN':	Rotate the selected tile or obstacle.

'DEL':	Delete the currently selected area.
'CTRL-X':	Cut the currently selected area and store in 'clipboard'.
'CTRL-C':	Copy the currently selected area and store in 'clipboard'.
'CTRL-V':	Paste the contents of the clipboard at the selected square and overwrite the existing contents of the pasted area (a square must be selected for this to work).
'CTRL-U':	Paste the contents of the clipboard at the selected square and attempt to merge with the contents of the existing area (a square must be selected for this to work).

NUMPAD-keys:	Fast pipe-laying (on laptops, 'Num-Lock' must be enabled)

NUMPAD-5:	Cycle through the valid object-types for the object being carried by the mouse.

'CTRL-K':	Save an image of the entire level (not including the construction-set controls). The image is saved as chlvimxx.pcx in the directory Chickens was launched from.




TWEAKING:

There is a file called 'chickens.ini' which contains all the configuration settings used by chickens. A brief description of each setting is given next to each setting in the INI file. Be warned that unless you know what you are doing, you could cause Chickens to malfunction. If you do make a mess of the INI file, copy a fresh version of the INI file over your existing INI file. Here are some selected values to tweak.

'iswindowed': Set to 0 to run in fullscreen, and 1 to run in Windowed mode. Be warned that in windowed mode, there are a few outstanding issues with scrolling levels that are larger than the screen. The workaround is to try and position the mousecursor as close to the edge as you can, and then slowly move the mousecursor off the window. Or altertnatively, when playing the game, pressing the keys on the numeric keypad now scrolls the screen in the direction of the number-key relative to the position of the '5' key. Note that on laptops, 'Num-Lock' must be enabled for scrolling with the keyboard to work.

'invertmousewheelspeedchangedir': Reverses the direction the mousewheel/arrows must be moved/pressed to increase/decrease the speed the level is running at.

'invertmousewheelrotatedir': In the level-editor, changes the direction that the object being carried by the mouse will rotate in when the mousewheel/keyboard is used.

'enabletooltips': Set to '0' to disable tooltips and '1' to enable them.

'tooltiptimetodisplay': Set this to the number of ticks to wait before a tooltip is displayed.




TROUBLESHOOTING:

For a troubleshooting guide giving answers and solutions to common questions and problems, please consult the FAQ ( faq.txt )



CREDITS:

Andrei Ellman:
  Concept
  Game-design
  Programming
  Level-design
  Project-managment
  User-interface
  Game-testing
  Storyline
  Documentation
  Additional graphics

 Dennis Busch:
  Graphics
  Animations
  Game-testing

 Martijn van Iersel:
  Level-design
  Game-testing
  Feedback



THE BIT AT THE END:

This is only a pre release version of chickens, so expect some improvements in the future.

For more information about Chickens and where to download the latest updates, visit the website at: http://software.wackonet.net/chickens/


Happy egg-laying...



AE.	18/11/06

ae-a-chickens
wacko
wackonet
ten

(to get email address, reverse the contents of the last line, conactenate the lines with an @ for the first concatenation and a . for the next two concatenations.)

