.\" .\" Copyright (c) 2009-2010, Charles McGarvey .\" All rights reserved. .\" .\" Distributable under the terms and conditions of the 2-clause BSD .\" license; see the file COPYING for a complete text of the license. .\" .TH YOINK 6 "July 24, 2009" .SH NAME Yoink \- An alien-smashing action game. .SH SYNOPSIS .B yoink [-hi] [OPTION=VALUE]... .SH DESCRIPTION Leap tall buildings! Crush stupid robots beneath your feet! Wield your extra-terrestrial powers in the defence of humanity, and send those alien invaders back from whence they came! You play the part of a flying alien heroine who must defend her home on Earth from other airborne alien invaders. The game draws inspiration from classic arcade games like Joust, Bombjack, Rampage, and Defender--simple, fast-moving action. Basic arguments include: .TP .B -h, --help Display basic usage information, and exit immediately. .TP .B -i, --info Display build and environment details, and exit immediately. .SH TIPS To attack, you must dive on the enemy at high speed. If you're going too slowly, you'll just drift harmlessly by. Diving from above gives different results from swooping in and hitting them from the side. If you're too close to attack, try to build up speed by running away and bouncing off a nearby building! By charging your special alien powers, you can throw fireballs. The orange bar at the top of the screen represents your power level--at maximum, you can destroy almost anything. Aiming can be tricky, but with a little practice it's quite easy to launch them in the right direction. Try doing a little swoop or circle in the air to line yourself up before releasing your fireball. The heroine has limited energy, measured by the blue bar at the top of the screen. When it runs out, it's game over! She can regain lost energy by picking up bonuses dropped by enemies. To complete the current attack wave, you must destroy all the enemies. Hunt around, especially in the sky, if you can't find the last few. .SH OPTIONS You have a certain level of control over the operation of \fByoink\fP through options passed as program arguments or given in config files. \fByoink\fP looks for config files in several locations and in this order: .TP 1. \fI@DATADIR@/yoinkrc\fP This is the base config file which should be considered read-only. Look to this file as an example of the format used for config files. .TP 2. \fI/etc/yoinkrc\fP This is the system-wide config file. .TP 3. \fI$HOME/.yoinkrc\fP This is your own personal config file. .TP 4. \fI$YOINKRC\fP This is an optional environment variable you can set to the path of a config file at a non-standard location. See the \fBENVIRONMENT\fP section below for more information. .PP As usual, options that are passed as arguments take precedence over options loaded from any config file. Here is a list of some of the options available at your disposal: .TP .B detail The level of detail. Possible values are 1, 2, or 3 where 1 means the least amount of detail and 3 means the most. This effects the number of objects drawn to the screen. A high level of detail will draw everything but could cause poor frame rates if the graphics driver can't keep up with the load. Lower levels will omit certain details which aren't crucial for playing the game with the possible benefit of higher frame rates. See the Notes for more ways to increase the game's performance. The default value is 3. .TP .B doublebuffer If true, double-buffering will be used to help minimize distortion and artifacts caused by the animation of the game. Otherwise, a single buffer will be used. The default value is true. .TP .B framerate The target number of frames to be drawn per second. If your computer is really old, you can get away with decreasing this value and still have reasonably smooth animation. You can set this to a very high number to effectively render as many frames as is possible, but the actual rate could be limited by vertical display synchronization, depending on the X11 driver and settings used. The default value is 50. .TP .B fullscreen If true, the window will capture the display and render the game in full screen splendor. A value of false means the game will run in a window. The default value is false. .TP .B resizable If true, the window will be resizable by the window manager. This option is meaningless if the game is drawing to the full screen. The default option is true. .TP .B showfps If true, the current number of frames being drawn per second will be printed to the console every second. The default value is false. .TP .B timestep The number of times per second the simulation state will be updated. A value of 100 or higher is ideal for a better physical simulation. Values that are much lower cause the CPU to do less work, but accuracy will suffer. Errors could be introduced in the game with extremely low values. The default value is 80. .TP .B videomode The resolution or size of the window. The value is an array with three number elements representing the width, height, and bits per pixel that make up the video mode. The third number is optional. The default value is {800,600}. If passing on the command-line, you may need to escape the curly braces so the shell doesn't parse them. .PP This is only a list of the more useful options. You'll have to use the source to find out about the more esoteric options, but you probably won't need to. .SH EXAMPLES Here are some examples of typical usage: .TP $ yoink detail=2 Set the level of detail to 2 so that less stuff is drawn to the screen. .TP $ yoink fullscreen=true videomode=\\{1024,768\\} Run \fByoink\fP at full screen with a resolution of 1024x768. Notice the escapes for the curly braces so the shell doesn't parse them. .SH ENVIRONMENT \fByoink\fP responds to some variables in the environment: .TP .I HOME If set to a path of a valid directory (presumably your home directory), \fByoink\fP will look for a file at \fI$HOME/.yoinkrc\fP and load it as a config file. .TP .I USER \fByoink\fP uses this variable as the user's name, for a high score entry or whatever. .TP .I YOINK_DATADIR If set to a path of a valid directory, \fByoink\fP will look in this directory first when it is loading game assets. Set this variable if you move the game's assets to another directory or perhaps want to load your own custom assets rather than the defaults. .TP .I YOINKRC If set to a path of a valid config file, \fByoink\fP will load the options from that file, and those options will take precedence over options loaded from other config files. .SH NOTES \fByoink\fP may or may not be playable with acceptable frame rates without a hardware accelerated GL driver installed and working, depending on how fast your CPU is. \fByoink\fP is really not all that heavy on graphics, but it doesn't take much to overload a software implementation. You should first check the documentation provided by your OS provider to see how to enable direct rendering. If you're really stuck without hardware acceleration, there are some things you can do to get marginally better frame rates: .TP 1. Decrease the resolution. Use the \fBvideomode\fP option or just resize the window if the \fBfullscreen\fP option is false and the \fBresizable\fP option is true. This can speed up a software renderer considerably. .TP 2. Decrease the level of rendering detail. Use the \fBdetail\fP option. The game world may look sparse or incomplete, but that's probably better than choppy animation if you can avoid it. .TP 3. Decrease the framerate and/or timestep. If your machine can't meet the target framerate, your actual framerate will probably vary. You will have a better visual experience if you can reduce the \fBframerate\fP to a point such that the actual framerate is basically constant. A constant 20fps or 30fps will look better than a sporadic 40-60fps. You can also decrease the \fBtimestep\fP at the expense of decreased simulation accuracy. You'll have to experiment with this value to determine acceptable levels. .PP If you are having audio problems, you may need to upgrade OpenAL. Some systems still provide an old, busted version of OpenAL which may result in stuttering, lag, and other oddities. See about installing a recent version of openal-soft, a high-quality software implementation that is still being maintained. .SH BUGS .IP \(bu 3 The robots aren't very bright. .IP \(bu Although the pixelated graphics are intentional, there are some unintended artifacts which are more obvious with certain video drivers. .PP Send bug reports, patches and love notes to: .IP Charles McGarvey <@PACKAGE_BUGREPORT@> .SH AUTHOR .PP Neil Carter was the original creator of Yoink, his winning entry in the uDevGames 2003 Mac game development contest. Charles McGarvey restored the game and is the current maintainer.