_________ _ _______ _________ _______
\__ __/( \ ( ____ \\__ __/( ____ \
) ( | ( | ( \/ ) ( | ( \/
| | | | | (__ | | | |
| | | | | __) | | | | 1.1
| | | | | ( | | | |
| | _ | (____/\ _ | (____/\ _ | | _ | (____/\ _
)_((_)(_______/(_)(_______/(_))_((_)(_______/(_)
(The Little Eggy That Could - (C) 2006 by xCept)
____________________________________________________________
.++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.
+ TABLE OF CONTENTS +
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1.) Forward
2.) Introduction
3.) System Requirements
5.) Feature Overview
6.) Story & Objective
7.) Controls
8.) Menu Options
9.) Game Interface
10.) Hazards
11.) Power-ups
12.) Tips & Tricks
13.) Cheats & Hidden Options
14.) Development Credits
.++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.
+ FORWARD +
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Before spending the time reading through this seemingly long
readme file, I would like to point out that the game itself
is ultra simple in both gameplay and plot. In fact, if you
spend even a brief moment looking through the "How To Play"
section within the game itself, you will learn all that you
need to know about the major objectives and aspects of the
game. However, this extensive readme file is provided
simply to ensure that there are no questions about any part
of the game and so those looking for more information will
be able to find it. This guide also explains features,
tips, and options that are not covered in the game itself.
.++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.
+ INTRODUCTION +
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
I first learned about the 2006 Caiman Easter Competition
back in late November or early December of 2005. The idea of
an Easter-oriented game seemed like a fun idea to me, and
the worldwide competition aspect of it made this all the
more fun! While the competition does not require that the
game be Easter in nature, I still decided to make mine
exclusively about the Easter holiday and traditions -- in
part because it seems Easter games are so rare to come by.
So, after numerous days of brainstorming and dozens of game
ideas flowing through my head, I finally came up with the
basic plot and concept of the game which I would soon be
developing. Now, over two months down the road, I am proud
to present to you...
"The Little Eggy That Could"
.++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.
+ SYSTEM REQUIREMENTS +
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
RECOMMENDED REQUIREMENTS:
- 2.4GHZ Processor
- 512MB RAM
- 128MB Video Card
- DirectX 9.0C
- Surround sound speakers
MINIMUM SUGGESTED REQUIREMENTS:
- 733MHZ Processor
- 128MB RAM
- 16MB Video Card
- DirectX 9.0C
- Stereo speakers (unless you don't care about sound)
WARNING: This game was designed so that it should function
properly across most frame rates. This means that even on
slightly older computers the game should be fully playable,
though the lower the frame rate the more choppy the game
will become. Since the game monitors the frame rate
constantly and adjusts the performance based on the current
frame rate, it is crucial that you do not have any other
resource-intensive applications running while playing the
game. This includes virus scanners, defragging, CD
burning, or any other large applications. If a
resource-intensive application is running in the background
while you play the game, the gameplay and controls may
become erratic which will make the game unplayable. So,
make sure that all other major applications are closed
before launching the game.
As long as your machine is able to achieve at least 45FPS,
you should be able to play the game. Most recent computers
should have no problem running the game at a solid 90FPS.
This game has been personally tested on a 1.2GHZ (with ATI
9200), a 2.4GHZ (with ATI 9800) and an Athlon XP 2200 (with
an integrated NVidia display chip), and each one was able
to run the game without any noticable issues.
If you are experiencing a lot of lag or other unexpected
behavior due to low frame rates, make sure that all other
applications are closed and also try lowering the game
resolution if possible. You may also wish to disable 3D
sounds, fog effects, or other performance-altering
settings. To do so, see the section of this document
titled, "Cheats & Hidden Options". Finally, make sure that
your video card and sound card drivers are up-to-date.
.++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.
+ FEATURE OVERVIEW +
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- 25 unique levels spread across five different worlds
- 10 different characters to select from
- Twenty different candies or candy variations to collect
- Numerous power-ups and hazards spread across the levels
- Worlds become unlocked once beat, so games can be loaded
- High score feature which records the fastest time per map
- Customizable options from controls, to resolution, etc.
- Anti-cheat prevention and checking procedures
- All original content, created exclusively for this game
.++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.
+ STORY & OBJECTIVE +
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
It is the day before Easter, when suddenly the Easter Bunny
comes down with a sickness and feels that he will be unable
to gather up all of the candies in time to deliver them to
the children. Not knowing what to do, the Easter Bunny
decides that the only hope he has is to assign the candy
collecting job to his friend, the Easter Egg.
In the game, you star as the Easter Egg. As the egg, you
must make your way through each level while picking up all
of the pieces of candy that there is to collect. After all
of the candy has been collected, a Golden Egg will appear
somewhere within the level. You must locate and jump into
this Golden Egg in order to be teleported to the next level
or world.
Being the egg that you are, you must be very careful during
your adventure. Avoid falling too far before landing or
you'll crack and break. Also, you will want to stay clear
of all hazards that may appear such as lasers and hot plates
-- or you'll instantly be turned into one very scrambled
egg! In addition, be warned that stepping on a surface fan
will propel you high into the air.
Throughout the game, you will encounter several power-ups
which will prove to be valuable as you make your way across
the levels. One such power-up will turn you into a
temporarily hard-boiled egg so that you won't crack or turn
scrambled if struck by lasers, etc,. Another power-up
enables you to run at a much faster speed when activated.
You also have the natural ability to double jump, which can
prove to be both helpful or hurtful depending on how you use
it.
.++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.
+ CONTROLS +
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
MENU CONTROLS
____________________________________________________________
UP, DOWN - Select previous or next menu option
RIGHT, LEFT - Modify selected option in Options Screen
SPACE, ENTER, or SHIFT - Activate highlighted selection
ESC - Return to previous menu, or exit if on Title Screen
IN-GAME CONTROLS (can be customized in Options Screen)
____________________________________________________________
UP - Move player forward
DOWN - Move player backward
LEFT - Turn player to the left
RIGHT - Turn player to the right
'Z' - Jump, Double Jump
'X' - Activate Speed Power-up
MOUSE FORWARD, MOUSE BACKWARD - Alter camera height
LEFT MOUSE BUTTON WITH MOVEMENT - Alter camera distance
RIGHT MOUSE BUTTON - Reset camera height and distance
MIDDLE MOUSE BUTTON - Auto top-down camera angle
F12 - Pause Game *
ESC - Exit to main menu (game checks for new records first)
* Each time you pause and un-pause the game, up to one
second will be added to your current time (similar to when
you crack or become scrambled). In addition, the cycles
used by any lasers within the level continue to progress
silently even when paused (if you pause the game when a
laser is in-active, there is a chance it will instantly
activate once un-paused depending on its current cycle).
.++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.
+ MENU OPTIONS +
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
When you first launch the game, after you lose all lives, or
after you win the game, you will be taken to the Main Menu.
This menu is used to access all sections of the game:
____________________________________________________________
NEW GAME - Will start a fresh game from World 1, Level 1.
LEVEL SELECT - Will allow you to pick the world and level
that you wish to start from. In order for a full world to
become unlocked, you will first need to finish all five of
the levels for that specific world. Worlds that haven't yet
been completed in full will only allow you to begin from
Level 1 (making the game slightly more challenging).
BEST TIMES - Will display the record times set for each
level of every world. Use the LEFT and RIGHT keys to browse
through all of the records.
HOW TO PLAY - Will provide you with a graphical display of
all major aspects of the game, the objective, and so forth.
Use the LEFT and RIGHT keys to scroll through the various
pages of instructions.
OPTIONS - Will take you to a screen which can be used to
configure various aspects of the game. From here, you will
be able to select a character, adjust the music and sound
volume, change the screen resolution, and set the user
controls.
EXIT - Will terminate the game and return you to Windows.
.++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.
+ GAME INTERFACE +
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
When playing the game, you will see the user interface which
presents you with a variety of different statistics. The
information on screen, from top-down left-right, includes:
____________________________________________________________
LEVEL INDICATOR - Found at the top of the screen, this area
displays the current world and level that you are on. For
example, "3-1" indicates World 3, Level 1.
LIVES INDICATOR - Found at the bottom of the screen, this
area displays the total number of extra lives you have with
a maximum of four extra lives possible (in addition to the
current life you are using).
HARD-BOILED INDICATOR - Found at the bottom of the screen,
this area visually indicates how much time you will remain
hard-boiled (invincible). The moment that the thermometer
reaches zero, you will lose your invincibility power.
CANDY LEFT INDICATOR - Found at the bottom of the screen,
this area displays how much candy remains to be collected in
the current level. Each time a piece of candy is picked up,
the counter will go down. Once all candy has been grabbed,
the Golden Egg will appear.
VEG OIL INDICATOR - Found at the bottom of the screen, this
area visually indicates how much vegetable oil is left in
your inventory. Each time you activate and use some of the
slick, the amount remaining decreases until none is left.
TIME INDICATOR - Found at the bottom of the screen, this
area displays the current game time, along with the record
game time for the active level.
.++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.
+ HAZARDS +
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Depending on which level you are on, there will be a number
of different ways in which your egg may become cracked or
scrambled, indicating death. The hazards are outlined below:
____________________________________________________________
FALL DISTANCE - If your egg drops too far before hitting a
platform, chances are that you will crack (unless you are
invincible or land on a slope). If you fall and land on the
very ground surface of any level, you will also crack even
if you are invincible.
LASERS - There are three different sizes of lasers in the
game (short to long) and two different types of lasers.
Some of them will remain active forever, while others will
flash on and off at set intervals. If you get too close to
any active laser, it will zap you and turn you into a
scrambled egg. So, ensure you are a safe distance away from
these at all times.
HOT PLATES - On the surface of some platforms you will find
hot plates. These come in a couple different sizes, and
even the slightest contact with one of these will instantly
fry you into a scrambled egg.
SURFACE FANS - If you step on any spinning fan located on a
platform, you will be propelled high into the air. This can
be helpful if you need to reach very high distances, but if
you don't land on a high enough platform after launching you
will likely crack.
.++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.
+ POWER-UPS +
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
There are several different power-ups and abilities found
within the game. The various specials and power-ups are
defined below:
____________________________________________________________
DOUBLE-JUMP - This is a natural ability that you always
have. Before reaching the peak of your first jump, you can
perform a double jump by pressing the 'Jump' key one more
time. Be careful, as performing a double-jump without
landing on a higher platform may result in a broken egg.
RAMP LANDING - If you fall too far but are fortunate enough
to land on any ramp or slope, your impact will be absorbed
by the ramp and you will not crack. The rare exception to
this is if you land on a ramp at an unusually high speed or
unusually sharp angle, you will still then crack.
POT OF WATER - Grab the pot of water which can be found on
certain levels, and you will temporarily become hard-boiled.
When hard-boiled, no falls will hurt you no matter how far
they are. Likewise, lasers and hot plates will also have no
effect on you. The one exception to this rule is if you
land on the very ground surface of any level, which will
still break you. Keep an eye on how much time remains of
invincibility as the instant the time runs out, you will be
breakable and destructible.
VEGETABLE OIL - Slide over a puddle of Vegetable Oil and you
will be given the ability to cruise at much faster speeds
each time you activate this powerup. This powerup will stay
in your inventory until you either use all of the slick up,
lose all of your lives, or move on to the next level.
EXTRA LIFE - Occasionally, you may find an extra life
floating around. Collect it and you will naturally be given
one more life (turn).
.++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.
+ TIPS & TRICKS +
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- For an added challenge, replace the default record times
with either the Beginner or Expert times found within the
root 'Maps' directory. You can swap the records or reset
them back to default by clicking on the corresponding
batch file (_Beginner.bat, _Expert.bat, _Reset.bat). *
- Most of the levels have multiple paths and shortcuts which
can be taken if desired. To beat levels in the fastest
times possible, taking shortcuts and using the other tips
included here is a must.
- Moving while using a combination of jumps and turns will
allow you to travel slightly faster than simply moving
forward on the flat surfaces.
- While ramps will automatically accelerate you downwards as
you rest on them (to a degree), you can gain some more
speed by holding in the forward key when accelerating
down any ramp.
- Since landing on ramps will not crack your egg, you can
use this ability to cruise through levels faster and to
reach platforms and areas that otherwise may be impossible
to get at.
- If you jump right as you reach the bottom of any ramp,
especially if you have been holding in the forward key,
you will be able to soar farther distances. You can also
double jump when taking this approach which will achieve
even greater distance.
- Sometimes you may end up in a spot which you can't get out
of no matter how hard you try. If this happens, you will
need to double jump and destroy yourself so that you
appear back at the start of the level. This technique can
also be used if you need to get back to the start area in
a hurry and are far away (for record setting purposes).
- This tip is only for the extreme egg players! If you are
able to land on the VERY edge of any platform after
falling, the platform will absorb the impact and you will
survive. This is a very difficult technique to master but
can also prove to be live-saving if executed successfully.
If you are falling and know you will break when you land,
try aiming for the very edge of the platform and you might
just get lucky. There are actually a couple other moves
which can be executed to also save you from cracking, but
I'll leave that to you to explore.
- The music I've created and included in the game may become
very boring and repetetive in a short time. If you would
like to use your own music in the game, simply replace the
existing WMA files in the "Music" directory with any other
WMA files that you wish - being sure to maintain the same
file names.
* For the beginner high scores included, I went through
each level without taking any shortcuts, moving at a
slower speed. For the expert high scores, I played each
map using every shortcut and technique possible. Many of
the expert scores took numerous attempts to accomplish. If
you are able to beat any of the expert records, consider
yourself to be beyond an expert Eggy (very challenging)!
If you run the 'Reset' batch file, all of the top scores
will be reset to 54:32:10. If you can't figure out how
I finished any level at the speed in which I did, feel
free to send me an e-mail and I can try to help you out!
All records were made using a turn sensitivity of 18.0.
.++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.
+ CHEATS & HIDDEN OPTIONS +
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
--[ HIDDEN OPTIONS ]--
To activate any of these hidden options, simply create a
blank text document using Notepad and save it to the root
TLETC directory (where this Readme file resides) using any of
the names listed below, and then restart the game. The files
must all be in small-case.
nojumpsnd.txt.......Disables the 'Player Jump' sound
nolandsnd.txt.......Disables the 'Player Land' sound
nozapsnd.txt........Disables the '3D Zapper Activate' sounds
nofansnd.txt........Disables the '3D Surface Fan' sounds
nofpslimit.txt......Uncaps FPS (NOT recommended, nor tested)^
showfps.txt.........Displays the current frame rate in game
nofog.txt...........Disables in-game fog effects
nosky.txt...........Disables in-game sky and sky effects
nofarcam.txt........Greatly decreases camera range*
turnspeed.txt.......Allows you to specify turn sensitivity%
^ If you uncap the frame rate, certain aspects of the game
may malfunction. However, if you are experiencing lags and
slow performances when playing the game, uncapping the frame
rate may work just fine while also making the game smoother.
* If you decrease the camera range, objects in the distance
will be clipped, thus reducing the polygon count and likely
improving the performance. This does not look good nor
does it make the game very enjoyable . But, the option is
here if you need it (try all other options first, though).
% To specify a custom turn sensitivity, enter the desired
value inside of the "turnspeed.txt" document. This value
can be any number, but it is highly recommended that the
value be between 14.5 and 20.0 to ensure that all levels
and turns are possible. The default value is 16.0, if you
delete this file the turn speed will be reset to default.
The lower the value, the slower you turn.
IN ADDITION: I have supplied both higher-resolution texture
maps and lower-resolution texture maps along with the game
so that computers with less video or processing power should
still be able to run the game fairly, simply with some lower
quality graphics. To alternate between the texture quality,
run the corresponding batch file(s) included within the root
'Maps' directory (_LowRes.bat or _HighRes.bat).
--[ CHEATS ]--
WARNING: Cheating isn't cool! But, if you do decide to use
any of the cheats to help you through the levels, be aware
that you will not be able to set any records this way as the
game will detect that you are cheating.
UNLOCK ALL LEVELS - While on the Initial Title screen, key
in "letc" to temporarily unlock all worlds and levels. If
done successfully, you will hear a chime and can then select
any level from the Level Selection screen.
EXTRA LIVES - While playing the game, press the following
keys in order to receive an extra life instantly (you must
do this while still alive): "F6, F9, F8, F5, F7" you will
hear the Extra Life sound and the game will be updated
immediately. You can only have four extra lives at any
given time.
INSTANT CANDY COLLECT - While playing the game, press the
following keys in order to instantly collect all candies and
unlock the Golden Egg (you must do this while still alive):
"F3, F4, F9, F8, F5, F2" you will hear the All Candy
Collected sound and the Golden Egg will appear.
.++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.
+ DEVELOPMENT CREDITS +
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Programming................................xCept (Matt Pilz)
Graphics...................................xCept (Matt Pilz)
Textures...................................xCept (Matt Pilz)
Models.....................................xCept (Matt Pilz)
Levels.....................................xCept (Matt Pilz)
Sounds.....................................xCept (Matt Pilz)
Music......................................xCept (Matt Pilz)
All aspects of this game were created exclusively for the
Caiman Easter Competition 2006 (www.caimen.be) by myself.
All coding was done using DarkBasic Pro 1.058. No third
party plugins or libraries were used.
Some of the model and/or platform textures that I composed
may have been based in part on the royalty free textures
available at either imageafter.com or texturewarehouse.com.
However, each texture was modified to such a degree to ensure
that it fit in with my game, that the base textures are
generally not recognizable.
All sound and music was generated using my aged CTK-150
and MD-1160 electronic keyboards, and other natural sounds.
All characters portrayed within this game are fictitious and
any resemblance to persons living, dead, or cartoon is
purely erm... Coincidental?
xCeptDB@GMail.com
http://www.m3Dr.com
____________________________________________________________
E N D
____________________________________________________________
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM|
MMMMMMMMMMMMMMMMMMMMMMM8+?I?????88$8MMMMMMMMMMMMMMMMMMMMMMM|
MMMMMMMMMMMMMMMMMMMMMO8?????OI8?????Z?8MMMMMMMMMMMMMMMMMMMM|
MMMMMMMMMMMMMMMMMMM8???$~+7??????Z~=7??O8MMMMMMMMMMMMMMMMMM|
MMMMMMMMMMMMMMMMM++++I=====I++++8=====I++8MMMMMMMMMMMMMMMMM|
MMMMMMMMMMMMMMM8+++?8?+++++8+++?++++++ON+++IMMMMMMMMMMMMMMM|
MMMMMMMMMMMMMM++++I...:$DZ?7+++O?I8M+...?++++MMMMMMMMMMMMMM|
MMMMMMMMMMMMM++++=,...:I,.,7=++Z:..~I....D++++MMMMMMMMMMMMM|
MMMMMMMMMMMM=====O...==Z8..Z===?~.:~?Z$..:+====MMMMMMMMMMMM|
MMMMMMMMMMM======+..~ZZZZ.,I====N..$ZZ8...O=====MMMMMMMMMMM|
MMMMMMMMMM=======7...:=..:$======$..:=....$======MMMMMMMMMM|
MMMMMMMMM========?~.....8=========I=.....D========MMMMMMMMM|
MMMMMMMM~~~~~~~~~~~I88?~~~+=~~~~+O7~~$DZ=~~~~~~~~~~MMMMMMMM|
MMMMMMM=~~~~~~~~+~~~~~~~=MM?~~~~+MM:~~~~~~~~~~~~~~~~MMMMMMM|
MMMMMMN~~~~~~~~8+~~~~~~~~$MM88MMO=~~~~~~~~+D+~~~~~~~~MMMMMM|
MMMMMM~~~~~~~~O??7Z8Z+~~~~~~~~~~~~~~~~?88ZI+IZ:~~~~~~MMMMMM|
MMMMM$:::::::??::::::~I8O+:::::::~?8O+~::::::D~:::::::MMMMM|
MMMMO::::::::::::::::::::~I8Z=+8Z+:::::::::::::::::::::MMMM|
MMMM:::::::::::::::::::::::::+=::::::::::::::::::::::::MMMM|
MMM~::::::::::::::::::::::::::::::::::::::::::::::::::::MMM|
MMM,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,MMM|
MMM,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:MM|
MM,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,MM|
MM,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,MM|
MM,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:M|
M,,,,,,,,,,,,,,,,,,,,,,,,,,,,,=,,,,,,,,,,,,,,,,,,,,,,,,,,,M|
M,,,,,,,,,,,,,,,,,,,,,,,,,,:8NON7,,,,,,,,,,,,,,,,,,,,,,,,,M|
M,,,,,,,,,,,,,,,,,,,,,,,,?ND7III$NO,,,,,,,,,,,,,,,,,,,,,,,M|
MNNNNNNNNNNNNNNNNNNNNNNNNO$$$$$$$$$NNNNNNNNNNNNNNNNNNNNNNNM|
M$$$$$$$$$$$$$$$$$$$$8N8ZZZZZZZZZZZZZNNZ$$$$$$$$$$$$$$$$$$M|
M++++++++++++++++++ONOZZZZZZZZZZZZZZZZZND?++++++++++++++++M|
M++++++++++++++++++INDZZZZZZZZZZZZZZZZ8NO+++++++++++++++++M|
M$$$$$$$$$$$$$$$$$$$$ZNNZ$ZZZZZZZZZZ8NO$$$$$$$$$$$$$$$$$$$M|
M:::::::::::::::::::::::ONZ777777$DN=:::::::::::::::::::::M|
MO::::::::::::::::::::::::7NOII7N8::::::::::::::::::::::::M|
MM::::::::::::::::::::::::::?NNZ:::::::::::::::::::::::::MM|
MM~~~~~~~~~~~~~~~~~~~~~~~~~~~:~~~~~~~~~~~~~~~~~~~~~~~~~~~MM|
MMM~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~OMM|
MMM=~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~MMM|
MMMM~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~MMMM|
MMMMM~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~MMMMM|
MMMMMM===============================================MMMMMM|
MMMMMMM=============================================MMMMMMM|
MMMMMMMM===========================================MMMMMMMM|
MMMMMMMMM8========================================MMMMMMMMM|
MMMMMMMMMMM+++++++++++++++++++++++++++++++++++++MMMMMMMMMMM|
MMMMMMMMMMMMM+++++++++++++++++++++++++++++++++MMMMMMMMMMMMM|
MMMMMMMMMMMMMMMM+++++++++++++++++++++++++++8MMMMMMMMMMMMMMM|
MMMMMMMMMMMMMMMMMMM?????????????????????MMMMMMMMMMMMMMMMMMM|
MMMMMMMMMMMMMMMMMMMMMMMMMI???????I8MMMMMMMMMMMMMMMMMMMMMMMM|
MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM| |