Chickens

SOMEONE WHO HAS BEEN PLAYING CHICKENS FOR TOO LONG!

INDEX

  1. Summary
  2. Introduction
  3. What the player perceives
  4. How the player interacts with the game
  5. Game dynamics
  6. Sample levels
  7. Multi-player mode
  8. The construction set


  1. Summary
  2. 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.

    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, 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 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.

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

    There is also a level editor so that players can design their own levels. As well as designing fun and puzzling levels to challenge the player and get their adrenaline going, the nature of the game allows you to use the level editor as a scientific toy to build your own digital computers. You can even use the level editor as an artistic tool to express yourself in a new and exciting and abstract way.

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


  3. Introduction
  4. 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 north 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.


  5. What the player perceives
  6. How is the system of pipes displayed?

    The game will be a 2 dimensional game. A 3-dimensional version would be possible, but 2-dimensional spaghetti junctions (with pipes crossing each other) are easier to conceive, and a 3D pipe-junction would be beyond more peoples' junction-visualisation thresholds. The rest of this document discusses the 2D version. Another idea is to have an Isometric 3D junction, which is an ordinary 2D junction, but the pipes are cleverly arranged so the player has the illusion that it is 3D. The version discussed in this document has pipes in the direction of the orthogonal axes and the diagonals (in 2D space, this is 8 directions in total). An isometric version would just have the orthogonal axes (6 directions). The result of adding diagonals and having all 26 directions would be too confusing when it is in fact just a cleverly drawn 2D junction of pipes. Having 6 directions instead of 8 reduces the complexity of the game, but it introduces the possibility of having Escher-like illusions that play havoc with the brain's ability to interpret a 3D image, which would add to the experience of Chickens. In fact, Isometric 3D levels with 6 directions are easier to figure out than 2D levels with 8 directions, as they are easier to untangle. Isometric 3D also looks nicer than 2D. Perhaps a future version of this document will discuss the isometric 3D version instead of the 2D version. In a future release of Chickens, a true 3-dimensional version of this game could be made, or even a 4-dimensional version where you would use the '4th-dimension' movement controls to travel to a different 3D subspace of the 4D junction space. This will have the effect of morphing the 3D subsection of the junction into a different shape. An alternative 4-dimensional version could have the 4th dimension as a discrete dimension with a limited number of positions, and some pipes would cause object to jump positions in the 4th dimension. The pipe layouts at the same position would be shown as normal 3D graphics, and the pipe layouts in other dimensions could be displayed as faint and very translucent graphics (the translucency depending on the distance from the main view in the 4th dimension). Unfortunately, this would confuse too many people and the graphics would become too messy.

    How are the junctions composed?

    The junctions are built up from a series of blocks. Each block is a square on the junction grid that can contain one section of pipe, or many pipes overlaid on top of each other. Some blocks can make things that pass through them do something. These are known as command blocks. An example is the lay egg block that makes any chicken or duck passing through it stop to lay an egg (if the block is empty at the time). There are many more obstacles to avoid and some that are beneficial too.

    It would also be possible to use splines to build the pipes instead of blocks. This would enable the pipes to be even more complicated, but it would then become possible to hide one pipe behind another, thus pushing the system's complexity further beyond some people's scope for complexity. Another good reason for using blocks instead of splines is that if each object spends the same length of time in every block (except for some command blocks), it will be easier to visualise some levels where the pipes have been arranged to act like a digital logic circuit.

    Most of the pipes can be given their own colour. This not only makes levels look more colourful, but the level designer can use the colouring of the pipes to hint as to what their purpose is. In the case of interchanges, the colour of the interchange distinguishes the different types of interchange from eachother. There is a fixed set of colours that can be used to colour the pipes, but these colours' values can be changed when changing the colour-scheme of the level. In fact, there could be a set of graphics that instead of giving different pipes different colours, gives them different brightnesses or textures instead. As well as just adding to variation in the graphics, there could be a special set of graphics that is based more on brightness and texturing than on colour, so that people with monochrome displays, or colourblind people can enjoy the game.

    The simplest way of drawing the objects and the pipes is just to draw and erase the chickens, and not do anything with the pipes unless they change. This has the problem of not showing the objects passing underneath any pipes that are on top of the pipe in which the objects are passing through. The solution to this would be for each block that has had movement in either this or the last frame to be re-drawn. First, each pipe-layer would be drawn, and then the objects passing through that pipe-layer. This is repeated for all layers. All modern computers can handle this. For more powerful systems the best method of rendering would be to use translucency to draw the pipes. In 2D, a good pipe-effect can be made by making the center of the pipe almost transparent, and the edges almost translucent (as well as a bitmap for each pipe, an alpha-map can be used for the translucency (the pre-calculated alpha value for each pixel would usually be proportional to the angle of pipe-surface for that pixel relative to front (dot product of front-vector and pipe-surface-normal))). Then for each layer, firstly the objects would be drawn, and then the pipe. Most modern computers can handle this. The pipes could be tinted according to what colour they are. When two pipes of different colours join on to eachother, the colours change gradually for the first few pixels next to the border of the two differently-coloured pipes. If the programmers are ambitious, they could program the pipes to bulge whenever an object goes through them.

    All the blocks that are to be used are shown and described below. The graphics here are just a mock-up of what the final graphics will look like.


    Ordinary orthogonal pipes.


    B A Orthogonal interchange sections. The interchange blocks are grouped in groups of two. Each group (set of states of a junction) is the set of interchange blocks who's pipes share the same exit directions (the pipes shown above are grouped in pairs of two where each pair shares the same set of exit-edges). Depending on the type of interchange, it switches states under different circumstances. In the first state (state A), the curved pipe curves towards one end of the straight pipe, and in the second state (state B), it curves towards the other end. Objects pass through the curved bit as if it were a normal curve (top and middle arrows). Any object coming from the straight bit that is closed by the curve goes through a flap, and continues to go straight ahead (bottom arrow).

    There are several different types of interchange sections:

    Fixed interchanges (FI) These maintain the same state throughout the game. Used to merge two pipes into one in a way that remains unchanged throughout the game. Due to their static nature, they are coloured the same colour as the standard pipe colour.
    Player-controlled interchanges (PCI) This interchange changes state when the player moves the mouse cursor over it, and presses the left button. Changing the state of interchanges of this type is one of the two ways the player controls the level.
    Object-controlled interchanges (OCI) Any object passing through an interchange like this changes it's state. The state is changed immediately after the object has determined it's direction. Object controlled interchanges make the game more dynamic as the player has to keep up with changes to the pipesystem caused by the OCIs changing state. OCIs have the potential to completely change the way the player must interact with the level to get the desired results.

    There are also interchanges that are controlled by an object passing underneath (Nearby-object-controlled interchanges (NOCI)), but these are discussed later.

    The colour (or brightness, or texture) of the pipes of each interchange show what type of interchange it is (FI, PCI, OCI, etc.). This means that unlike ordinary pipes where the level designer can assign a colour just to give the pipe a colour, the colour of the interchange reflects it's purpose. Underneath each player controlled interchange, there will be an icon showing which species controls an interchange (not shown here). The icon will be in the shape of the egg of the species controling it (in one player mode, this will always be a Chicken's egg (circle)).


    Ordinary diagonal pipes.


    Diagonal interchange sections.



    Half curves and one-and-a-half curves (mixtures of orthogonal and diagonal).



    Mixed orthogonal and diagonal interchange sections.
    Only half of these are shown here. The other half are the same as these, but rotated 45 degrees.



    Nearby-object controlled interchanges (NOCI) These interchanges stay on one state, and only change state (for about 2 seconds) when an object is passed through the red pipe underneath. An interesting consequence of this behaviour is the ability to be able to construct digital logic circuits. Also, any stream of ducks' eggs can be put to good use by holding the interchange in a particular state. Another idea would be to have similar blocks that permanently change state until another object passes underneath, but this sort of behaviour can be emulated by a flip-flop constructed out of the interchanges described here.
    Only half of these are shown here. The other half are the same as these, but rotated 45 degrees.


    One-way pipes Any object going in the direction of the arrow continues as normal. Any object going in the opposite direction of the arrow gets sent back to where it came from (ie. it's direction is reversed).

    Duck. Place where there is a duck at the start. Ducks then wander around the level confused, leaving the pipe as a normal pipe.

    Bomb. Any chicken/duck that touches the bomb is killed, and this then becomes a normal pipe. Eggs are not affected.

    Sterilise. Any chicken or duck that touches this radioactive chicken feed starts to glow (the pixels composing the sprite vary in intensity from normal to dark) and cannot lay eggs. Eggs are unaffected. It is then turned into a normal pipe (the chicken feed has been eaten).

    Lay egg. Any unsterilised chicken or duck that passes through pauses for two seconds to lay an egg. The colour of the chicken's egg is chosen randomly. The chicken/duck continues where it was going, and the egg moves off in the opposite direction. If the lay egg block is already occupied, it acts like a normal pipe. All eggs and sterilised chickens and sterilised ducks pass through unaffected. Another idea is to have a separate lay egg block for each colour of egg (ducks will always produce white eggs in these blocks). There could be lay-egg blocks that only make Chickens produce eggs of a certain colour, or there could be Chickens that only produce eggs of a certain colour. The rest of this document assumes that the same block can make all unsterilised chickens produce eggs of any colour.

    Superfowl. Any chicken or duck that touches this becomes brighter (the pixels composing the sprite become brighter), tougher, and can win fights against anything that hasn't come across one of these. Unsterilised Superfowl can still lay eggs, but they can do it whenever they pass a lay-egg block without stopping. This pipe is then turned into a normal pipe.

    Delay. Any egg kept here will be delayed until it is released. When it's released it continues going where it came from. If the delay block is already occupied, it acts like a normal pipe. Eggs are released by the player in two ways. Either releasing individual eggs, or releasing all eggs from all delay blocks. All fowl pass through unaffected. An idea is to make it look like an egg-cup. Releasing delayed eggs is one of the two ways the player controls the level.

    Incubator Any eggs stored here hatch into fowl, and after that, the pipe leads directly to the next level, or it could just send the newly-hatched fowl back into the level. Each incubator is assigned a colour. In the simpler levels, there is one, and only one incubator for each of the four colours of chicken eggs, but the level designer could make levels with more incubators for certain egg-colours, or have no incubators for a particular colour (any eggs without an incubator to hatch them could be used to help reclaim incubators being used for ducks' eggs, or to activate a nearby-object controlled interchange, etc.). An egg of the right colour entering the incubator is stored there until it hatches and leaves as a chicken or duck in the same direction the egg was going. If an egg of the wrong colour enters an incubator, it is destroyed, along with one of the eggs inside the incubator (the most recent to have entered). The incubator displays the number of eggs it contains. Each egg takes 10 seconds to hatch. If a duck's egg tries to enter an empty incubator, it becomes a ducks' eggs incubator, and destroys all chickens' eggs trying to enter until all the ducks' eggs have gone (it acts like an incubator of the colour of ducks' eggs, except that when all ducks' eggs have gone, it reverts to an empty incubator for either ducks' eggs or chickens' eggs of it's original colour). The shape of the egg inside the incubator determines which species' eggs are in the incubator (an empty incubator does not have any indication of which species' eggs it is for because empty incubators can be claimed by whichever egg of the right colour enters it). The colour of the egg determines what colour eggs it takes (there will have to be a second means of determining the colour so that the player still knows about the colour when the incubator is empty, or incubating ducks' eggs). Any chickens or ducks that try to enter the incubator are turned back in the direction they were coming from.

    Splitter. Sometimes, eggs may become so close to each other, that they get on top of each other, which can become a nuisance. This block sends any object entering it going off in a random direction. This is also useful to create more chaos, but should be used sparingly if the level is supposed to me mainly a puzzle type level.

    Dead end. Any object that touches this block instantly gets killed. Useful for getting rid of too many ducks' eggs. This affects both eggs and fowl. Whenever something touches the block, the skull glows, or it can be animated.

    Space-warp. While farmer Pineapple had been researching more efficient ways of buttering his toast for a solid six hour stretch, he discovered how to make a space-warp, wrote it down somewhere, and forgot about it for a while before he incorporated it into his egg-gathering apparatus. A space-warp block enables any object that enters the block to be instantly transported to another space-warp block (All space-warp blocks would have to be twinned and there would have to be some sort of way (eg. each pair has a unique colour, or a wire going from one warp to the other warp of the pair)). Farmer Pineapple could have realised the huge potential this discovery could have for being able to go anywhere instantaneously, long-distance travel, voyeurism, etc. but he was perfectly happy just to use it in his monstrosity of pipes and not bother telling anyone. Too many space-warps can make a level too hard to figure out, but are also a convenient way of sending things to nearby-object controlled interchanges which is particularly useful when wanting to send a current of ducks' eggs to a logic gate without cluttering the screen with pipes.

    Chicken supply. This is where the chickens come from at the start of the level. This is usually located on the left side of the screen. These taps also act like a one-way pipe (anything that heads towards the taps gets sent back to the level).

    Ducks' eggs supply. This is where ducks' eggs originate from. Usually on the top of the screen. Also acts like a one-way pipe. The ducks are mean green egg laying machines, and can sustain a constant flow of eggs from this supply. More than one of these supplies can be present on a particular level. Ducks' eggs tend to be a nuisance, but these supplies can be put to good use by being used as a source of 'current' in digital logic circuits. These taps also act like a one-way pipe (anything that heads towards the taps gets sent back to the level).

    Exit. This is where chickens must get to in order to move on to the next level. Usually, this is only connected to the incubators, but on some levels, the chickens from that level can get there and also move on. Ducks and all eggs are repelled. To get to the next level, a certain number of chickens must reach here (the target). If there is a surplus, the next level can be entered (the game could be made in such a way that if there is a surplus, you have completed the level and you immediately go on to the next level). If the target still has to be reached, the red number inside the box tells how many chickens are still needed. If there is a surplus, the green number inside the box tells how many surplus chickens there are. If the number is a red 1 and another chicken enters, then it becomes a green 0. This means that a green number means that you have completed the level.

    Separator. All fowl entering this block go out via the top-left corner. All eggs entering this block go out via the top-right corner.

    + = + + =
    + = + + =
    Multi-layer blocks.
    These blocks are made up from two or more layers of pipes. Up to four layers of pipes can be used (not counting the missing corners (see below)). You cannot have two layers in the same block that use the same exit (in this system, each block has 8 exits). Four examples of this are shown above. However, pipes with any sort of junction (any pipe-piece with more than 2 exits to the block) can only be in a block with one layer (not counting the missing corners (see below)), although for the purposes of rendering, nearby-object controlled interchanges count as two layers so that objects can pass underneath the junction to control it's state. This rule also applies to any blocks that would be hard to see with too many blocks overlaid (eg. command blocks). However, pipes with a thing inside them (eg. bomb, one-way-arrow, etc.) can be part of a multi-layer block, but then, the pipe with something inside it must be on the top layer. Each layer is drawn separately along with the objects traveling in that layer, so that no object overlaps a pipe it should not overlap.



    Missing corners. In order to have diagonal pipes, the corners of certain blocks must contain a pipe edge. Instead of making each piece have every combination of edges in the corners, it's best to copy a block with corners on top of the first block. There are 16 possible combinations of corners (including no corner). The images shown in this order allow for the combination of corners to easily be represented by a 4 bit binary number (the top-left corner is the least significant bit, followed by the top-right, bottom-left, and bottom right, which is the most significant bit). Each and every block is capable of having up to four corners. When assigning a level to these corners, they are on the 'half-levels' that lie halfway between the layers. They can occupy five possible positions (top-most of all layers to bottom-most). As they never overlap each other, you can have up to four of these per half-level. In the translucent mode, corners still need to be drawn if they are overlaid by a pipe exiting the block at the corner. In the
    example levels that are part of this document, these corners have been made grey so as to show when they are used.

    What travels through the pipes?

    There are four types of object that travel through the pipes.

    How is the status displayed?

    The system of pipes will take up most of the screen, however, the bottom 1/8th or so will be used to display the current status. The following data will be displayed on the bit at the bottom.

    What is happening in the background?

    Everything will be overlaid on top of a backdrop. The backdrop could depict various farm-images and farm-machinery. This backdrop will be of low contrast so as not to distract from the moving objects in the foreground which are of high contrast (this may not be a good idea if you want the weather to be bright). Parts of the background may be animated if there is some spare processor time left. If scrolling is implemented, the backdrop will also scroll, but at a slower speed, creating a parallax effect (different parts of the backdrop will scroll at different speeds). There could be a set of backdrops that will be shared amongst the levels, and if there is time, a complete set of pipe-blocks will be made to suit each backdrop (you can cheat here by just changing the colour-scheme of the level instead of drawing new sets of pipe-graphics).

    Should there be scrolling?

    The junctions of pipes will be a lot easier to work out if you can see the entire junction at once. However, if we allow the scene to scroll, a larger junction can be used (both the size of the junction, and the size of the junction blocks can be increased if scrolling is allowed. Larger blocks give more detail, but allow less of the junction to be seen at once).

    If a junction must be scrolled, it will be harder to visualise where all the pipes lead to. One possibility is to have a reduced version of the complete junction in a corner of the screen (part of the status display).

    If the scrolling of the screen is restricted to horizontal or vertical scrolling only, it will be easier to explore than if both directions are allowed. This will make it harder to miss out parts of the junction, but may not be a good idea if large blocks are to be used because the resolution of blocks in the direction with no scrolling would be limited.

    If it is horizontally scrolling only (or scrolling in both directions), then stereo panning can help to pinpoint certain events by giving you the ability to hear where an event is happening.

    If a scrolling version is used, an idea that can be used to pinpoint objects off the view is to have dots on the edge of the screen that point in the direction of the objects they represent. The brightness of the dots will be proportional to their proximity to the screen (the nearer the object, the brighter the dot, and the higher it's priority when multiple dots share the same pixel). There are two ways of positioning the dots. Either position them at the edge of the screen on the line that goes from the object to the centre of the screen, or if one of the coordinates is on the range of the screen dimensions and the other is not, plot a dot on the edge of the screen closest to the object, and the other coordinate will be the same as that for the object (in the event of both coordinates being off-screen, the dot will be in a corner).

    It is possible to get the best of both worlds by giving the player the ability to zoom into areas to see the graphics in more details, and to zoom out until they can see an overview of the whole level.

    The best balance can be found out by creating a mock-up of both fixed screen and scrolling versions of the game, and find out which people prefer or find easier to visualise. However, the advantages of having large blocks are only apparent when the graphics are complete, as large blocks give the opportunity to create more detailed graphics. Personally, I prefer the version where you zoom in to see the details clearly and zoom out for the overview.

    For example, there can be a static screen of dimensions 20 blocks by 13 blocks with the bottom of the screen used to display information. Assuming the resolution of the screen is 640*480, the block size will be 32*32, and an area of the bottom of the screen of height 64 pixels (2 blocks) will be used to display the status. However, the game can be written to adapt to any graphics mode it comes across, so for example if someone has bought an 8 megabyte graphics card for their PC, Chickens will detect it and set a high resolution graphics mode (however, the resulting graphics for 8 megabyte graphics cards may only be available on the CD-ROM version. Fortunately, people who tend to buy 8 megabyte graphics cards also buy lots of system ram and a fast computer to go with them). Even 320*200 versions could be made, but then the player would have to zoom in quite a bit to see the detail.

    Another possible idea would be to have a wraparound level where when a pipe goes off the edge of the level, it connects to the pipe going off the other edge of the level, but this could become too complicated if scrolling is implemented, and besides, you can emulate having a wraparound level by using the space-warp block whenever a pipe comes to an edge.

    For levels that are so large that the important parts are several screens apart, there could be a "flyby mode" where just before the level starts, the screen will automatically scroll to a sequence of points in the level that the level-designer wants the players to see before they explore the level themselves. These points could be crucial areas to watch, imnportant sets of interchanges, or the level designer could mislead the players if they want to. Perhaps the level designer could 'hide'certain areras by not visiting them in flyby mode, but they can be seen when the player scrolls to them. The last destination of the flyby will always be the chicken supply tap (with no flyby, all scrolling levels will start with the sully-tap in view). To prevent the tedium of seeing the flyby before every time the player attempts the level, it can be cancelled by pressing an input control (eg. a mopse-button), and the screen will scroll to the chicken supply tap.

    Of course, the final decision as to wether a screen should scroll would lie with the level designer. If they do not like scrolling, then all levels designed by that particular level designer will only be large enough to fit on a single screen.

    Conclusion: The game will support scrolling levels, but level designers can chose to make levels that either do not scroll, or are restricted in the number of dimensions in which they can scroll.

    What about the sound effects?

    Each and every level will start off with the usual 'cock-a-doodle-doo' chicken wake-up noise (another 'easter-egg' is to have a hidden mode where you can substitute this with a human saying 'cock-a-doodle-do').

    Each event will have an associated sound. However, if the resulting cacophony of sounds is too much, then some events may not have a sound.

    It could be made possible to tag certain pipes to make a noise whenever an particular type of object is passed through them (this may also be used as a hint for solving the level, but anyone with the sound-effects turned off cannot hear this). Another idea is for the player to tag sections of the junction to make a sound whenever something passes through. This will alert the player to a pipe being used. This is especially useful when there is scrolling.

    What about the music?

    The title-screen soundtrack will be a fairly funky/upbeat tune, and the background soundtrack to the game will be a medley of lots of different songs that are whistled ad nauseam, and will be designed to increase your stress level. If the player gets so stressed up that they start screaming their own self-composed lyrics when the tune is playing, then the music has been successful. There will be an option to turn off the music for all those Philistines out there.

    An idea for a tune that is played in the background is to have the song "Living-Doll" by Cliff Richard with the lyrics substituted by clucking and quacking. If this tune is used, an idea for an 'easter-egg' is to mix in the extra lyrics from the Young-Ones when the song was re-released in 1986. Another idea for a tune is to have a combination of the Teddybear's picknic theme (you know, the song that starts with "If you go down to the woods one day"), Oh I do like to be beside the seaside, the theme tune to The Archers, the old theme tune to Neighbours.

    When there is just 10 seconds of time left (several levels will be designed so as to be completed just seconds before time-out), a siren/klaxon will sound, and chime once every second (increasing in pitch each time) until the time runs out. If it is possible, during these 10 seconds, the soundtrack will become increasingly more out of tune, further frustrating the player (if this can be implemented, it may be too much to have the chime as well). If the tune is a MIDI tune, then all you have to do to change the pitch of individual notes is to find which part of the tune is being played and dynamically re-write the music data's notes just ahead of the position in the tune.

    There will be an option to adjust the volume of the sound effects, and the volume of the music separately.


  7. How the player interacts with the game
  8. There are two ways in which the player interacts with the level. Firstly, they can change the state of individual player-controlled interchanges, and secondly, they can release delayed eggs.

    The mouse (or joystick, joypad, keyboard, etc.) controls the position of the cursor. If screen scrolling is implemented and the cursor touches an edge of the screen, the screen scrolls until the mouse is moved away from the edge, or if the scene cannot scroll any further.

    The junctions can be controlled by pressing button 1 (left mouse button) when the cursor is on a block with an interchange. This toggles it form being in any of it's two interchange states. This might be a bit difficult if using a digital joystick, but it will be much easier with a mouse (more control over the positioning of the cursor, and more control over the speed of the cursor movement).

    Button 1 also releases an egg that is currently inside a delay block when the cursor is over that block. Button 2 (or spacebar) releases all delayed eggs simultaneously.

    Although the cursor can be controlled with any user input device, I strongly recommend a mouse.

    To make things easier and more convenient, it could be possible for the player to assign a key (or surplus button) to their most frequently-changed junctions so they do not keep having to move the cursor to it. This is particularly handy for people without a mouse.

    There will of course be keys for things such as pausing the game, re-starting the level, or quitting the game, etc.


  9. Game dynamics
  10. This section describes the parts of the game that have not been described elsewhere.

    The player starts playing the game at the level they chose to start at. They are given a number of chickens at the start of the level, and move on to the next level if they have managed to get the target number of chickens to the exit within the time limit. If the player is successful, they proceed to the next level. If they fail the level, the game ends. To fail the level, the player either runs out of time without having reached the target, or there are no more chickens or chickens' eggs in circulation when the target has not been reached. Once the target has been reached, the player can either try to show off by getting as many eggs to the end before the time runs out (surplus chickens will not be carried forward to the next level so that each level is considered it's own puzzle that always starts with the same number of chickens (although if you do want to simulate carrying eggs forward from one level to another, you could design a level in such a way as to be like having several sub-levels in a single level, and to get to the next sub-level, you should get a certain number of chickens pass the first sub-level)), or they can skip to the next level without having to wait for the time to run out (there will be an option available so that whenever the target is reached, the player automatically skips to the next level). If the player attempts to skip the level without having attained the target, the game ends. This is useful for someone who is in a hopeless situation and wants to quit. They can then re-start the level. Whenever someone wants to quit, the chickens all commit suicide in some sort of bizarre way. There should be several methods of chicken-suicide - some of which are not shown until the later levels (this helps keep the humour fresh). This suicide can be skipped if the player wants to rapidly quit, although the first time this method is shown, the player is forced to watch this method (it should only take a few seconds). All the levels have a title and a password. The password for each level is given out at the start of the level. Each level has a unique password. Players can start the game at any level they chose if they know it's password. The titles and passwords for some levels are chosen creatively, so as to be a hint for how the player should complete the level. To give a new player a greater overview of the game, the levels are divided into groups, and they can select to start at the beginning of any group without knowing the password of the first level of that group. Whenever a group of levels from the original game is completed, an animation will be played (probably a full motion video if it's on a CD-ROM). To conclude the game, the last level of the most difficult group of built in levels will have to be completed. When this happens, an animation of the events on Pineapple farm will occur.

    As well as the built in groups of levels, more groups that have been edited in the construction set, or that have been downloaded from somewhere else and are on disk, can be loaded in, and all the levels of that particular group will be played sequentially.

    There are two extremes for the type of level. The action level where the player must have fast reflexes to react to the situation at hand, and the strategy level that can be solved by setting up the interchanges in such a way so that you have to do as little work as possible or figuring out how to solve a puzzle. Most levels are somewhere in between the two extremes, but the trickier levels involve more mental unraveling of the vast mass of spaghetti. To solve some puzzles, 'idea-hacking' is required.

    Due to the nature of 'Nearby-object controlled interchanges', it is actually possible to construct digital logic circuits. Most people will find it hard to solve puzzles that require digital logic, but there could be a fixed section of pipes that on it's own, that can be considered a 'black box' where the player learns that it behaves in such a way if objects are sent through certain pipes. One such puzzle could consist of having to send an object through a pipe that would open the only passage to the exit. In order to release that object, four pipes could be placed in parallel (representing a 4-bit binary number). In order to open the gate, a specific number must be sent through these four pipes. For example, if the number 10 must be sent through, then if the pipes are represented in letters (A is the most significant bit, and D is the least significant bit), then the following circuit will only fire if the number 10 is sent.
    A and not(B) and C and not(D)
    There are two ways to figure this out. Either unravel the pipes and figure out the number, or the title of the level could be a clue (i.e. it could contain the number (or a reference to the number). For example, the level just described could be called "10th heaven" or something else with the number 10 in it). Even this example could be too hard for some people to solve, but the idea has great potential, especially in the construction set where the player can play with their own designs. This is where the game's potential as a scientific toy comes in. Players can experiment with logic circuits and even design their own mini-computers that run off ducks' eggs. Level designers can make use of the ability to colour individual pipes to help make their logic curcuits more clear by colour-coding the purpose of the pipes. For example, the 'supply-voltage' pipes, 'earth' pipes, 'data' pipes, etc. could all be coloured differnetly from eachother.

    The game revolves around controlling the interchanges (and to a lesser extent, releasing delayed eggs) in order to get the required number of chickens to the target (or more if the player feels up to it).

    The chickens must be directed to the exits or the 'lay egg' blocks where they lay eggs. Eggs travel in the same pipes as chickens and ducks, but travel twice as fast. There are four colours of chickens' eggs. When a chicken is laying an egg, it's colour is determined randomly (or there could be lay-egg blocks that only make Chickens produce eggs of a certain colour, or there could be Chickens that only produce eggs of a certain colour). Each egg must be directed to the incubator of it's colour to hatch. If an egg reaches an incubator of the wrong colour, then it is destroyed, along with an egg that's already inside an incubator (the egg in the incubator that is destroyed is the most recent one to have entered it). Each egg stays in the incubator for 10 seconds until it hatches, and then, it leaves as a chicken. When a duck's egg tries to enter an incubator full of chickens' eggs, it is also destroyed, along with one of the chickens' eggs that is inside. If the incubator is empty when the duck's egg tries to enter, the incubator transforms into an incubator for ducks' eggs until all duck's eggs that are inside have left or been destroyed, and then it reverts back to it's original status as an incubator for chickens' eggs of a certain colour. Ducks' eggs incubators behave just like chickens' eggs incubators that are for ducks' eggs (white). A duck's egg can enter any of the four incubators if they are white.

    At the start of some levels, there are some ducks wandering around the level. These ducks start a fight with any chicken that they come across. The outcome of such a fight is that both the chicken and duck die in the fight, and disintegrate into a pile of feathers that floats downwards. However, if a chicken or a duck comes across the 'Superfowl' block, it becomes 'Superchicken' or 'Superduck' (the superfowl block then reverts to a normal block). Any superfowl can then win all fights with normal fowl of another species (when the loser is punched, it gives off an explosion of feathers that falls to the ground, is instantly turned into an plucked chicken/duck (it looks like the sort you buy in a butcher's/supermarket) and punched off the screen in the direction the victor was traveling in). Two superfowl fighting each other both die in this manner. Ducks and their eggs also tend to be a nuisance when passing over object controlled interchanges, or under nearby-object controlled interchanges (although a steady stream of ducks' eggs can be useful when holding a nearby-object controlled interchange open).

    All chickens and ducks can die by touching a bomb (the bomb explodes and leaves an empty path behind). Chickens, ducks, and eggs can die by reaching a dead-end block which remains throughout the game. Chickens and ducks can also be sterilised by coming into contact with radioactive chicken feed (the 'sterilise' block). Any chicken or duck that comes across this block eats all the chicken feed, leaving nothing behind, and is then sterilised, i.e. unable to reproduce. Sterilised chickens are turned away from the exit, but they can still fight ducks, or become superfowl. Superfowl are not immune to bombs and sterilisation.

    Ducks can either originate from blocks containing the location of a duck at the start (the pipe becomes empty when the duck wanders off in a pre-determined or random (most likely to be pre-determined) direction), or they can hatch from ducks' eggs. The ducks have no intelligence and just keep wandering in whatever direction they are heading in (in fact, there's no artificial intelligence in the game (although it might be possible to simulate computer players in multi-player mode)). Some levels have ducks' eggs supply blocks that release a constant stream of ducks' eggs throughout the game. However, due to limitations of sprite engines, there would have to be a mechanism for preventing too many sprites appearing. The sources of ducks' eggs are the biggest threat to the sprite engine. There would be a maximum number of sprites that are allowed in the game, and if the total number of sprites that are onscreen is too close to that magic number, then all ducks' eggs supplies will dry up. This temporary egg supply stoppage can be explained by saying that the ducks who are laying the eggs have seen the system of pipes full of ducks and their eggs, and therefore think they have enough eggs inside to win. However, if the number of sprites is close to the limit, chickens can also lay eggs, so the ducks' eggs supplies would have to dry up well before the safe limit is reached. Once the number of sprites is back down to safe levels, the supplies of ducks' eggs can resume supplying ducks' eggs. Another solution is to let the game slow down if there are too many sprites on the screen. This would allow 'average-speed' computers to run close to their capacity, while people with slower machines can still play chickens, but it would be slower.

    All the blocks are described elsewhere in this document.


  11. Sample Levels
  12. In these example levels, the corners have been made grey so as to show when they are used.


  13. Multi-player mode
  14. Note: the other parts of this document describes the single-player version of Chickens.

    In order to make the experience of playing Chickens more sociable and let players have a friendly war, it is possible to have a multi-player mode for Chickens. This would mean that several people can play Chickens gathered round the same computer, or accross a network. There are several possible ideas for how a multi-player game can be played. There now follows a description of how Chickens can be turned into a two-player game, and after that, how more players can join in.

    The game would be re-worked so that the second player controls the "Ducks of Hazard" and has to get as many ducks as possible to the exit for ducks (or both species could share the same exit). In order for both players to have an equal opportunity, the ducks' controller would be able to do anything that the chickens' controller can. Ducks' eggs would then come in four colours (they will be ovular instead of circular). The incubators would only accept eggs of the correct colour, but can be converted between chickens' eggs incubators and ducks' eggs incubator by sending enough eggs of the correct colour to the incubator to eliminate any eggs waiting to hatch - just like it works in the original game. At the start, the incubators will be neutral in terms of which species' eggs they are to hatch. The shape of the egg inside the incubator block is an indication of which species it incubates eggs for. The usual penalties apply for sending an egg to the wrong coloured incubator. There may be some chickens wandering around the junction at the start as well as ducks. Also, there could be streams of chickens' eggs as well as streams of ducks' eggs. There would also be PCIs that can only be controlled by the chickens' player, and some that can only be controlled by the ducks' player. Maybe, there could be some PCIs that can be controlled by both players, but this is a bad idea, because it would then degenerate into a constant battle where the payers are doing nothing but changing that junction. This tension and distraction from the true meaning of Chickens could result in the combat leaving the world of the computer and it could turn nasty. Delay-egg blocks would also be only controllable by one player, who when they press button 2, they release all of their delayed eggs (and not those inside the other player's delay-egg blocks). The shape of the egg in the background of the delay-egg block (or the shape of the delay-egg block's egg-cup) determines who controls it.

    The level would have to be designed in such a way as to reduce the possibilities of the players doing nothing but constantly swapping the state of their interchanges to keep up with the other player, but instead encourage the players to think of new and exciting ways to out-smart each other. If the level is a particularly active level, the players may just concentrate on getting their own eggs through instead of hindering their opponents. Splitter-blocks would be useful for making multi-player levels hectic.

    When more than two players play, the rules would be the same as the two player version, but there will be extra species (such as geese, moorhens, swans, etc.) with different shaped eggs (square, triangular, star-shaped, moon-shaped, etc.) who must compete to get their species through.

    As well as rivalry, teamwork could be encouraged. Two or more (possibly all) players may have to work together to solve a level. It could also be possible for all players to get into one of two (or more) teams and compete together. Usually, the levels are designed to evenly mix who goes in which team when teamwork is required, although some groups of levels could be biased so that certain players are often grouped together. This is so that in case whoever chooses which group of levels to play secretly fancies another player, they can choose a group which makes the two of them work as a team, thus bringing the two of them closer (in the event of such increased closeness leading to marriage, the Chickens design team will give the happy couple a toaster).

    In multi-player mode, there are several possible goals.

    In the level editor, the player would have to determine wether it is a single or multiple player level so that a different set of options are available.

    Unfortunately, if there is to be scrolling, and the players are playing on the same machine, then there would be a problem if the players wanted to see different parts of the game. One solution is to have a split screen view, but this drastically reduces the area visible to the player. Another solution is to have a fixed screen with no scrolling for all multi-player games, but this may get too overcrowded. Some computers have the facility to connect multiple monitors, but only a small minority of computer users actually possess multiple monitors, and besides, you can only connect one monitor to a console.

    The best solution is to have a networked version of Chickens. However, the network would have to be fast, otherwise the positions of the objects traveling through the maze would be updated before any information on the changing of the state of a junction can be communicated. A fast network is defined as a network fast enough to communicate all information about user input within the time it takes to update the positions of the objects. If it is too slow, an object could take different paths of an interchange on the different computers. The Internet is not suitable for this purpose. Another possibility is to communicate the positions of the objects as well. This might be possible with the Internet, but on levels with lots of streams of duck's eggs, it may take ages to communicate all the positions of objects. On slow connections, the objects may spontaneously appear to jump if they've just passed through a recently changed interchange. There may also be problems with deciding which version of events is dominant. It could be decided that the dominant version is the version on the computer where the player has just changed the interchange, but if the two players change different interchanges at the same time, then some events are dominant for one set of objects, and the events on the other machine are dominant for other objects. The best solution for doing this is to just freeze the game until all information about user-input is synchronised among all machines (these freezes will not be noticeable on fast networks, and the game could still be played on the Internet). The timer for each level (time remaining before the time expires) would have to be frozen as well.


  15. The construction set
  16. The construction set (or level editor) is there to let the player design their own levels, save them, and share them with other people. The ability to create levels and play other people's levels is what makes Chickens more than just a game you play. An FTP site could be set up so people can submit and download each other's levels. People can also put levels on their homepages. The construction set should be the first part of the game that is written, so that the people working on it can start designing levels immediately (it's much better than making levels out of HTML code ;-)

    The levels are clustered together in groups of levels. Each group of levels is stored on disk as a single file that is compressed using LZW compression (or some such method). Having larger files means that on filesystems where the size of a data cluster is large, little space will be wasted. This also enables tens of thousands of levels to be stored on a CD-ROM (although the first version of the game will only have about as many levels as the game design team can come up with). To play a group of levels, the player can chose to load a group from the disk as an option on the title screen. Console users will have to make do with the test option to try out their groups (unless the console is connected to a storage device). Groups of levels can be locked to prevent them from being edited. The levels that come with the game will be locked. The only way a locked group can be loaded into the construction set is if you know the password for the group. Both locked and unlocked groups can be played from the title screen.

    Normally, games consoles would not be able to permanently save designed levels (serves people right for not buying a proper computer). It could be made possible by either building static memory into the game cartridge, or having some sort of widget that connects the console to a PC, the Internet, or to a storage device (static memory will only allow the player to store a limited number of levels and not share them). Both these methods add extra cost to the end product. Levels can easily be recorded by drawing the design on paper, or if it's easier, converting the blocks into a 20*13 (or whatever the size of the level) array of numbers that are written down (The console versions will include sheets of paper with grids of squares). Some people may just want to draw the design, whereas others will want to copy down the numbers. The home-computer versions will have the ability to display the screen as an array of numbers, and allow the numbers to be entered, so that they can share levels with consoles.

    When the player enters the construction set, they will start off with an empty group, and an empty level.

    There is an option to select how many people are to play a level (this number should be the same for all levels in a group so that a fixed number of players can work through the group). The options available to anyone editing a level change according to the number of players (the ability to select who controls a particular block, which species you can place in the junction, which species the egg-taps produce eggs for). If this option is changed when the level is not empty, and the new option does not allow some of the things that are already in the level, you are told that you cannot change, and any objects preventing you from changing flash to attract attention to themselves.

    The construction set screen layout looks just like the screen layout of a game in progress, except that there is nothing moving through the pipes. The bottom part of the screen (2 blocks high which is equivalent in size to the status-display area in the game) is used for the icons, etc. (see below), and the top is used to display the level. The bottom of the screen contains the console where you press the mouse-buttons to make things happen and select what to draw. Keyboard-shortcuts will be available for all commonly used commands.

    The bottom bit of the construction set screen

    Pressing the left mouse button (button 1) over an area of the screen puts the currently selected pipe in on the top of that block on the grid and selects that block (if this block already has the maximum number of layers or the currently-selected pipe is not suitable for the block in it's current state, the block is just selected, and if the topmost layer must always remain on top, the new block is placed in the secondmost-top layer). Pressing the right mouse-button (button 2) selects the block without modifying it. Level-designers will not be allowed to place pipes leading off the edge of the level. If there is to be scrolling, moving the mouse to the edge of the screen scrolls it (just like in the game).

    In the bottom area are four squares that show the four layers that compose the currently-selected block. The leftmost square represents the topmost layer, and the rightmost square the bottommost layer. Layers can be swapped by dragging one layer to the place of another in the layer-display area. Certain pipes can only appear on the topmost layer (such as pipes with arrows or bombs in them) so that they can clearly be seen. Other types of blocks can only have one layer (interchanges, incubators, command-blocks, etc.) to reduce confusion (but they can still have corners). Nearby-object controlled interchanges count as a single layer from the point of view of the construction-set (they are among the pipes that can only appear in a one-layer block). As a general rule, if it is a command block or has more than two exits, it must be a single-layer block.

    There are too many blocks to display on the bottom, so the blocks are grouped together by type (ordinary pipes, interchanges, command blocks, etc.). Pressing the left mouse button chooses the most recently selected block from that group (which is displayed in the square for that type of block). Pressing the right mouse button or double-clicking the left mouse button displays a menu of all blocks in that group. The player then selects which object they want with the left mouse button, and this window then disappears. The icon for the group now changes to the selected object. There will also be some sort of system for being able to select any of the 5 most recently used objects at a single keystroke. It may also be possible to create a palette of favourite blocks. One of the construction set buttons turns the cursor into an eraser and when button 1 is pressed over the grid, the entire block it's over will be erased. When pressing it over a pipe in the layer-select area, that layer is erased. There will be some sort of undo-mechanism present. Button 2 changes the cursor back to what it was before the eraser was selected. You can also choose another block to turn off the eraser.

    There is a button that when pressed, selects a question mark. When the player tries to put the question mark somewhere on the screen, a random block is placed there. There is also another button that when pressed, places the currently selected object at a random position (holding the button down will continue to put the object at random points on the screen (the longer the button is held down, the faster the objects are pasted)). If the selected object is the question mark, then this button places random objects on the screen randomly. This is useful for when the player has a lack of inspiration. They can then clean up the mess and make something of it. There will a way of randomising the layers of the selected block (or several blocks) so that the pipes appear on top of each other in a random order. There will also be options to limit choosing empty areas only for random objects, or an option to limit the positions chosen by the randomiser to a certain area. To complement this, a surrealistic title generator will be available to think up titles and passwords. In fact, if there was enough time to experiment, a simulated neural network can be trained to recognise patterns in the level, and think up appropriate names.

    Additionally, there are some icons for commands. The player can select a command from one of these icons in the same way they select a block from a group. Commands are grouped into the following categories: IO, testing, and statistics. Each category has it's own icon. The commands to chose from are:

    Some blocks will need to have extra things done to them. Ordinary pipes need a way of assigning colours to them, space-warp blocks will need to be twinned (they could just be colour-coded and you select the colour from a set of space-warps). Also, the sort of interchange that is being used, and who controls it can be selected, as well as delay-egg blocks, and even lay-egg blocks if it is decided to only let them make fowl produce eggs of a certain colour. Blocks with ducks in them will have to be told which way the duck heads off when the level starts. One way of doing these things would be to right-click (press button 2) on the block in the layers area. An alternative would be to have a context sensitive button that has a set of commands for the selected block depending on what sort of block it is.

    It is possible to select both states of a particular interchange in the construction set. The state that is chosen will be the initial state of the interchange when the game is played. If you've selected an interchange, you can change it's state by re-painting it with the same interchange, or chosing it's changed state from the blocks menu, or if the mouse has 3 buttons, the middle button could change the state of the interchange under the cursor (even fixed interchanges can have their state changed in the construction set). You can change the type of junction (FI, PCI, OCI) by right-clicking (pressing button 2) on it in the layerarea. Nearby-object controlled interchanges (NOCI) are displayed in the construction set in the state where no object is passing underneath.

    If it is decided that the designer can choose the colour-scheme of the pipes (ie. choose a set of colours to colour the pipes, as well as choose a colour for an individual pipe), there will be an option to let them do so. Having a different colourscheme for each level will add to the challenge in that the player will have to work out which coloured interchanges do what, but working it out for each level may become a bit tedious after a while.

    When testing a level, the level must be complete in the sense that all pipes lead somewhere, and there must be a start and an end. In the event that someone tries to test an 'incomplete' level, all open pipe-ends will flash to show the designer where they are. The test icon will be a test-tube with some liquid in it. The colour of the liquid will indicate whether or not the level is complete (green) or incomplete (red). The designer must close these pipe-ends (make them lead somewhere) before testing is done. If you can't be bothered to close all pipes just yet, use the 'debug' option instead (see above). Incomplete levels can be saved so that someone can take a break without finishing the level, but these unfinished levels cannot be played. There would be an option to scan a group of levels to highlight unfinished ones.

    It will also be possible to cut, copy and paste blocks of blocks. There will be a group button with options to select a rectangle (or any other shape) of blocks, cut, copy, paste, flip and rotate it. This block of blocks becomes the currently selected object, can be pasted anywhere, and can even be pasted randomly when the 'random position' button is pressed. When in 'block-of-blocks' mode, pasting overwrites anything else that was at that location previously, even if the block in the block of blocks that is to be pasted is empty. There would even be a possibility to save these blocks of blocks and buld up a 'clip-library' of blocks of blocks.

    The missing corners of the diagonal pipe sections at the corners of the blocks are automatically worked out, but when there is a pipe crossing at a corner, the most recently laid out pipe will be displayed on top of the least recently laid out pipe. It will be possible to swap the ordering of pipes at these corner-crossovers by pressing the right (or middle) mouse button on the corner. Corners are still stored in memory when they are overlayed by the pipe exiting the level so that they can still be rendered in translucent mode.

    What better way to show the world what you have created than to have a World Wide Web site where people could submit their favourite levels for downloading. A compilation of these could be released on a CD-ROM if a 'Chickens plus pack' is ever released. This could easily contain thousands of levels. One way of advertising the Web site would be to mention it in the end-sequence that appears once all the game's built in levels are complete. To encourage people to make levels, there could be a competition to design the best level. The winner will win something like a holiday or a large cash prize. Runners up could receive some free software. The competition could have three categories. Most playable / puzzling / enjoyable level, most scientific / innovative level, and most artistic / creative level. The manual will mention where to FTP your levels, and give the URL of the Chickens WWW site. A JAVA applet could be made that can display any level, or allow you to enter the raw level data if you are using a games console. For people whose web browsers do not support JAVA, a CGI-BIN script will be running on a central computer that can do all this stuff.

    Once Chickens has been around for a while, level designers will develop their own styles, and people will have experienced many Chickens levels. It should be possible for a Chickens level connoisseur to instantly recognise who made a particular level.



Document version: 1.07

This document was written by Andrei Ellman. Have a look at the Wacko Software homepage to read about other programs that Andrei has written, and download them (For the Atari ST and the PC).