<para>&kolf; is a miniature golf game with block graphics and a 2d top-down view. Courses are dynamic, and up to 10 people can play at once in competition.</para>
<para>&kolf; comes with a tutorial course. <link linkend="tutorial">Playing this course</link> is the easiest way to get started.</para>
</chapter>
<chapter id="tutorial">
<title>Tutorial</title>
<para>&kolf;'s game-play is simple. It is easiest to learn how to play hands-on, and thus a tutorial course is included to guide you through the basics. This chapter will guide you through this tutorial. To start the tutorial, choose <menuchoice><guimenu>Help</guimenu><guimenuitem>Tutorial</guimenuitem></menuchoice>.</para>
<sect1 id="hitting">
<title>Hitting the Ball</title>
<para>To aim the ball, either line up the mouse behind the ball so the
putter aims in the direction you want to hit it or press one of the
<keycap>Left Arrow</keycap> (counterclockwise) or <keycap>Right Arrow</keycap> (clockwise) keys, to rotate the putter.</para>
<tip>
<para>To rotate the putter more quickly with the keyboard, hold down <keycap>Shift</keycap> while pressing or holding the arrow keys. To rotate more slowly, hold down <keycap>Control</keycap>.</para>
</tip>
<para>To hit the ball, press and hold either the &LMB; or <keycap>Down
Arrow</keycap> key. The longer you hold down the key or button, the
more strength the putt will have. It will take practice to get a good
feel for speed.</para>
<tip>
<para>To stop abort the putt while you are still holding moving the putter back in your stroke, press <keycap>Escape</keycap>.</para>
</tip>
<para>Hit the ball into the hole (gray circle) to move on the next.</para>
</sect1>
<sect1 id="slopes">
<title>Slopes</title>
<para>Slopes are areas of slanted down that the golf ball rolls down in an expected manner. The light of the golf course is from the upper-left, so the brightest slopes will push the ball towards the upper-left corner of the hole. Choose <menuchoice><guimenu>Hole</guimenu><guimenuitem>Show Info</guimenuitem></menuchoice> to see an arrow that points in the direction the slope will roll the ball.</para>
<para>On this tutorial hole, hit the ball onto the upward-pointing
slope and let it roll into the cup to move onto the next hole.</para>
<sect2> <title>Directions</title>
<para>On the next hole, experiment with the other kinds of slopes. There are elliptical, vertical, horizontal, and diagonal slopes in &kolf;. Hit the ball into the hole.</para>
</sect2>
<sect2> <title>Steepness</title>
<para>The next tutorial hole has two slopes of differing steepness. If you choose <menuchoice><guimenu>Hole</guimenu><guimenuitem>Show Info</guimenuitem></menuchoice>, the steepness of the slope will appear as a number from 1-8, where 8 is steepest and 1 is shallowest. Also, the more extreme shading the slope has, the steeper it is. Hit the ball into the hole and continue to the next hole.</para>
</sect2>
</sect1>
<sect1 id="walls"> <title>Walls</title>
<para>Balls bounce of walls as one would expect them to, with a little bit of dampening. Deflect the ball off the walls and into the cup to advance to the next hole.</para>
</sect1>
<sect1 id="puddles-sand"> <title>Puddles and Sand</title>
<sect2> <title>Puddles</title>
<para>Puddles are blue. When your ball rolls into a puddle, a penalty stroke is added to your score and your ball is placed outside the puddle.</para>
</sect2>
<sect2> <title>Sand</title>
<para>Sand is yellow. Balls roll through sand very slowly.</para>
<para>Hit the ball around the puddles and through the sand into the hole to continue to the next tutorial hole.</para>
</sect2>
</sect1>
<sect1 id="windmills"> <title>Windmills</title>
<para>Windmills are compound objects with brown border walls and a moving arm at either the top or bottom of the object. Half-walls create the opening to the windmill, which a black arm swings across. It takes practice to be able to time stroke of the ball to pass through the opening. Hit the ball through the windmill into the hole to continue.</para>
<para>When you hit your ball into a black hole, it is transported to the exit and ejected at the angle of the exit at a speed directly relational to the speed your ball was going. Choose <menuchoice><guimenu>Hole</guimenu><guimenuitem>Show Info</guimenuitem></menuchoice> to see which Black Hole goes to which exit and which direction the ball will come out of the exit. The rim around Black Holes and their corresponding exits are also the same color. Hit the ball into the black hole, which will then eject the ball into the cup so you can go to the next hole.</para>
</sect1>
<sect1 id="floaters"> <title>Floaters</title>
<para>Floaters are moving platforms that carry a ball that lands on it. Floaters' speeds vary. This one is a pretty slow floater, but you still must time your shot so you can go over the wall and into the cup.</para>
</sect1>
<sect1 id="bridges"> <title>Bridges</title>
<para>Bridges are simple - they just lift the ball above the things below them, like slopes, sand, and puddles. They can have brown walls on their perimeter.</para>
</sect1>
</chapter>
<chapter id="basics"> <title>Basics</title>
<para>Here's in-depth description of &kolf;'s basic features.</para>
<para>To choose the course that you want to play, click it's entry in the list box on the left of this page. &kolf; comes with many built-in courses that you can play.</para>
<para>To add a course that you have downloaded or made, click on the <guibutton>Add...</guibutton> button on the bottom of this page, and choose the course file in the file dialog.</para>
<para>On this page you can choose whether or not this game will be played in <guilabel>Strict mode</guilabel>. In strict mode, there is no undo, moving holes, or editing of the course. This mode is generally for competition. Only in strict mode are high scores kept.</para>
<para>&kolf; can keep a history of your rounds that are still in progress and save them to disk so you can load them and play them later. Saved games include the current hole, names and colors of all players in game, and the scores of the players.</para>
<sect2> <title>Saving Your Game</title>
<para>To save your game while still playing, choose <menuchoice><guimenu>Game</guimenu><guimenuitem>Save Game</guimenuitem>
</menuchoice>. If you have not saved a game on this game before, you will be prompted for the file to save to.</para>
</sect2>
<sect2> <title>Loading Your Game</title>
<para>To load the game that you saved, choose <menuchoice><guimenu>Game</guimenu><guimenuitem>Load Saved Game...</guimenuitem>
</menuchoice>. You can then choose the saved game to open.</para>
</sect2>
</sect1>
<sect1 id="practicing"> <title>Practicing</title>
<para>There are a few features that make practicing your golf easier. These features are not enabled during strict mode.</para>
<sect2> <title>Undo</title>
<para>To undo a bad shot, choose <menuchoice><guimenu>Hole</guimenu><guimenuitem>Undo Shot</guimenuitem></menuchoice>.</para>
</sect2>
<sect2> <title>Switching Holes</title>
<para>The <guimenu>Go</guimenu> menu contains many menu items for switching to different holes that are quite self explanatory. See the <link linkend="go-menu"><guimenu>Go</guimenu> menu reference</link>.</para>
<para>&kolf; has a few ways to putt. The basic putting method is <link linkend="hitting">described above</link>.</para>
<para>The mouse is enabled by default. This means that whenever the mouse is moved, the putter aligns to the line between the mouse and ball.</para>
<para>If you prefer to only use the keyboard and arrow keys, you can disable mouse putting by unchecking <menuchoice><guimenu>Settings</guimenu><guimenuitem>Enable Mouse for Moving Putter</guimenuitem></menuchoice>.</para>
<para>Advanced putting can be enabled by checking <menuchoice><guimenu>Settings</guimenu><guimenuitem>Enable Advanced Putting</guimenuitem></menuchoice>. This putting mode is slightly more challenging than the regular click-and-hold mode, and can be used with either the mouse or keyboard.</para>
<para>To putt in this mode:</para>
<procedure>
<step>
<para>Click or press the <keycap>Down Arrow</keycap> key once to begin the swing. The putting indicator will appear, and the strength gauge will start filling up with a color, which changes as the gauge fills up.</para>
</step>
<step>
<para>Click or press the <keycap>Down Arrow</keycap> key when the strength gauge has filled up the amount that you want. The farther around the circle the strength gauge has filled up, the stronger the putt will be. It takes practice to be able to get the correct strength on putts.</para>
<para>After this, the color in the putting indicator will start to wind down back to where it started.</para>
</step>
<step>
<para>Click or press the <keycap>Down Arrow</keycap> key again when the strength-indicator is as close as possible to the center line of the putting indicator.</para>
</step>
</procedure>
<para>The closer the final click (or key press) is, the more true the putt is to the original line.</para>
<para>&kolf; comes with a versatile editor for its course file format. Courses can have any number of holes, and there is no limiting the creativity of the course designer.</para>
<sect1 id="creating"> <title>Creating a New Course</title>
<para>To create a new course, choose <menuchoice><guimenu>Game</guimenu><guimenuitem>New</guimenuitem></menuchoice>. Go to the <guilabel>Course</guilabel> page of the dialog, and choose the <guilabel>Create New</guilabel> course. Make sure that, under the <guilabel>Options</guilabel> page of the dialog, <guilabel>Strict mode</guilabel> is unchecked.</para>
<note>
<para>To play this new course later, click the <guibutton>Add...</guibutton> button to add the course to your list of courses.</para>
<para>Choose <menuchoice><guimenu>Hole</guimenu><guimenuitem>New</guimenuitem></menuchoice> to add a new hole at the end of the course.</para>
<tip>
<para>You can restore a hole to a blank state, similar to when it was first created, by choosing <menuchoice><guimenu>Hole</guimenu><guimenuitem>Clear</guimenuitem></menuchoice>.</para>
</tip>
<para>Two items will appear on new holes: a cup, and a white ball. The white ball marks where players' balls start the hole.</para>
<para>The basic building block of &kolf; courses is the <quote>object</quote>. Holes are made up of a bunch of objects. Objects can be moved to any location, and the different kinds of objects each have different properties you can set.</para>
<para>To start editing a hole, toggle the <menuchoice><guimenu>Hole</guimenu><guimenuitem>Edit</guimenuitem></menuchoice> menu item, or press the pencil icon on the toolbar. To leave editing mode, uncheck this menu item (or the toolbar icon).</para>
<sect2> <title>Adding Objects</title>
<para>To add a new object to the course, choose it's name in the list box labeled <guilabel>Add object:</guilabel>. The object will appear in the center of the course.</para>
<caution>
<para>Bridges and signs will cover up new objects if they were already in the center of the hole.</para>
</caution>
<tip>
<para>You can add more than one cup to a hole! Doing so can create interesting hole designs.</para>
</tip>
<para>Some &kolf; objects are available as plugins. If you add these objects to your course, course players will need to download the plugin.</para>
<para>Third-party &kolf; plugins are available at the &kolf; website. See <ulink url="http://web.mit.edu/jasonkb/www/kolf/">the &kolf; plugins download page</ulink>.</para>
</sect2>
<sect2> <title>Moving and Resizing Objects</title>
<para>Move your mouse cursor over the object that you want to move, and the mouse cursor will change to a hand cursor. Then click and drag the object to where you want it.</para>
<para>Puddles, sand, floaters, bridges, and signs can be resized by dragging the small circle at their lower-right corner.</para>
<note>
<para>Walls can be moved by clicking and dragging their endpoints, or you can move the whole wall by clicking and dragging on the middle part of the wall as normal.</para>
</note>
</sect2>
<sect2> <title>Objects' Settings</title>
<para>Objects' properties can be changed in the area at the lower-right corner of the &kolf; window. To edit an object, move your mouse cursor over it until the cursor changes to the hand cursor. Then click. Various controls for that object will appear in the lower-right corner of the &kolf; window.</para>
<sect3> <title>General Hole Settings</title>
<para>To edit general hole settings, click an area of the hole that is not covered by an object. When this is possible, the cursor will be the normal pointer cursor.</para>
<para>Whether or not to show walls around the border of the hole.</para>
</listitem>
</varlistentry>
</variablelist>
</sect3>
<sect3> <title>Slopes</title>
<variablelist>
<varlistentry> <term>Type</term>
<listitem>
<para>Choose the type of the slope - <guilabel>Vertical</guilabel>, <guilabel>Horizontal</guilabel>, <guilabel>Diagonal</guilabel>, <guilabel>Opposite Diagonal</guilabel>, <guilabel>Circular</guilabel>. Diagonal and opposite diagonal slopes are triangles, while circular slopes are circles. Vertical and horizontal slopes are rectangles of course.</para>
<para>Whether or not to reverse the slant of the slope. For example, consider an elliptical slope (a circular slope). When it is not reversed, it pushes balls outward like a mound. When it is reversed, it sucks balls inward like a hole.</para>
<para>Choose the grade (steepness) of the slope by moving the slider so the grade moves towards 0 or 8, where 8 is steepest and 0 is flat. Steeper slopes push the ball more.</para>
<para>Whether or not this can be moved by other objects, like floaters.</para>
<caution>
<para>If a floater overlaps with this object at any point on this path, and the slope is large and thus won't move the floater, you <emphasis>must</emphasis> make the slope <guilabel>Unmovable</guilabel>, or &kolf; will suffer poor performance!</para>
</caution>
</listitem>
</varlistentry>
</variablelist>
</sect3>
<sect3> <title>Puddles and Sand</title>
<para>Puddles and Sand have the same configuration options as each other.</para>
<para>Checking this enables the flashing of this puddle or sand.</para>
</listitem>
</varlistentry>
<varlistentry> <term>Show/Hide speed</term>
<listitem>
<para>The more towards <guilabel>Fast</guilabel> the slider is, the faster the puddle or sand flashes.</para>
</listitem>
</varlistentry>
</variablelist>
</sect3>
<sect3> <title>Bridges, Windmills, Floaters, and Signs</title>
<para>Bridges, windmills, floaters, and signs all have similar settings for configuring on which sides there are border walls. To show the wall on a side, check the check box for that side.</para>
<para>There are also some more specific options for windmills, floaters, and signs.</para>
<sect4> <title>Windmills</title>
<variablelist>
<varlistentry> <term><guilabel>Windmill on bottom</guilabel></term>
<listitem>
<para>Whether or not the black windmill arm is on bottom or top - the default is that it is on the bottom. The two half-walls will always be with the arm. Note that you cannot enable a border wall on the side that the arm is.</para>
</listitem>
</varlistentry>
<varlistentry> <term>Speed</term>
<listitem>
<para>The more towards <guilabel>Fast</guilabel> the slider is, the faster the black windmill arm moves.</para>
</listitem>
</varlistentry>
</variablelist>
</sect4>
<sect4> <title>Floaters</title>
<para>The path the floater moves along is shown by the wall it's connected to.</para>
<para>The more towards <guilabel>Fast</guilabel> the slider is, the faster the floater moves. If the slider is all the way at the <guilabel>Slow</guilabel> end, the floater will stop.</para>
<para>You can enter any valid &HTML; here. For example, entering <markup>Hit it <i>softly</i> towards the slope!</markup> will create the text <quote>Hit it <emphasis>softly</emphasis> towards the slope!</quote>.</para>
<para><action>Save the current game</action> with the last saved game filename, or under a filename you specify if you have not saved the game yet.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><menuchoice>
<guimenu>Game</guimenu>
<guimenuitem>Save Game As...</guimenuitem>
</menuchoice></term>
<listitem>
<para>Opens a file dialog allowing you to <action>save the current
game with a filename of your choice.</action></para>