-
Notifications
You must be signed in to change notification settings - Fork 0
Yanoid is "Yet Another arkaNOID"
License
madsdyd/yanoid
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
2014-08-18: Just imported this from sourceforge. Hope to get around to updating this README at some point. --------------------- This is the readme file for yanoid - Yet Another arkaNOID. The projects home page is at http://www.sf.net/projects/yanoid/ ---------------------------------------------------------------------- * CONTENTS - Authors and introduction - License - Requirements - Building Yanoid - Running Yanoid - Controls - Adding your own maps and ressources - Bugs - Final notes ---------------------------------------------------------------------- * AUTHORS AND INTRODUCTION Mads Bondo Dydensborg <[email protected]> Jonas Christian Drewsen <[email protected]> Bjarke Sørensen <[email protected]> Please see the AUTHORS file for contributors. Game Title : Yet Another arkaNOID (short: yanoid) Brief description : A GPL SDL implementation of the classic game Arkanoid, in which a ball bounces on a map that has a number of bricks. As the ball hits bricks, they are removed from the map. If a ball leaves the bottom of the screen, the ball is lost, and the player looses a life. To avoid this, the player can control a paddle on which the ball bounces. Each time a brick is removed, the player is awarded points. The aim of the game is to score the most point. Yanoid has been designed to be extensible and flexible, allowing the game to be extended in novel ways. Build instructions: Please see the section "BUILDING YANOID" Email address : [email protected] Web site : http://www.sf.net/projects/yanoid/ Credits : Please see the file CREDITS. A special "Thank You" goes to John Hall, author of "Programming Linux Games", for answering a large number of questions about the contest. ---------------------------------------------------------------------- * LICENSE Yet Another arkaNOID is released under the GPL. Copyright (C) 2001 Jonas Christian Drewsen <[email protected]>, Bjarke Sørensen <[email protected]> and Mads Bondo Dydensborg <[email protected]> Copyright (C) 2001 contributers of the yanoid project Please see the file "AUTHORS" for a list of contributers This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ---------------------------------------------------------------------- * REQUIREMENTS Yanoid "was born" under Linux with the Intel line of CPU's, but should build on any platform that supports the necessary tools and libs. (Yanoid has been reported to build under Windows with the mingw compiler. Doing this should be a pretty straightforward process) Yanoid uses the gnu autotools to (try to) auto configure it self, and automate the build and install procedure. Ideally the process should automatically identify any missing software, and inform about what is needed to do to be able to build yanoid. However, this procedure has been tested only for a limited number of distributions and to make it easier to correct in case of errors, the following list of requirements are given. Yanoid is written in a combination of C++ (using STL) and Python. * Tools Yanoid should compile with the ordinary GNU tools. Yanoid is known to work with g++ version 2.96 (stl version from this compiler is?) ld version 2.10.91 make version 3.79.1 * Libraries A number of standard libraries are needed, as well as a number of libraries that could be considered non-standard. Standard libraries include: glibc (libc & libstdc++), pthread, dl, util, m (math), X11 & Xext These libraries should be present in any modern Linux installation pr. default. For some distributions you may have to install "devel" packages to be able to compile. (Eg, glibc-devel, etc). Non-standard libraries or programs: SDL >= 1.2.2, SDL_mixer >= 1.1, SDL_image >= 1.1, python<version > 2.0>, artsc, esd, audiofile, vorbis, smpeg, jpeg, png, z, ogg & tiff. NOTE: Yanoid has failed to work with Python 2.2b1 on at least on occasion! If you get python errors in the terminal you started yanoid in, please try and use Python version 2.1.1 (or the latest stable version of Python) which should work. SDL, SDL_mixer & SDL_image is in fact part of many distributions and if you have a "correct" development installation of the SDL, SDL_mixer and SDL_image, the remaining libraries should be present. In other words, the dependencies are introduced by the SDL libraries, and not directly by yanoid. Depending on your installation you may need more or less of these libraries. The important thing to note is that in some cases you may need to install "devel" packages for these libraries as well. ---------------------------------------------------------------------- * BUILDING YANOID Yanoid uses the GNU autotools, and configuration and installation should be quite straightforward. * Bootstrapping (only relevant for cvs users) If you have checked out the sources from cvs, you should run the shell script "bootstrap", which will create the script "configure" for you. For reasons not understood by the development team, it may be necessary to run this script twice to get the necessary files created. * Configuration If you have downloaded a tar ball, the configure script should already be in place. Run "./configure --help" to get an overview of the options. The file "INSTALL" provides generic installation instructions for the configure script. Note, for configuring for the SDL contest, please see the section "NOTES FOR THE SDL CONTEST" in the beginning of this document. If configure fails, it is most likely because you are missing needed libraries. The configure script will try to identify all missing libraries when run, and will let you know what is missing. * Compiling After a successful configuration step, you can compile yanoid like this: $ make Compiling yanoid takes about 3-4 minutes on a Ppro 232 with 128 MB ram. If the installation fails and it is during the linking stage, it is most likely because you have discovered a dependency on a library, that the configure script does not take into account. A likely cause is that you need a "devel" package for some library on your Linux system. Please install the necessary package and "make" again. You are very welcome to write us, if you have problems with the yanoid build process. * Installing You do not need to install yanoid to test it out. But if you wish, you can issue the command $make install to install yanoid to the location you configured for (default /usr/local/). Yanoid does not follow the LSB directions of installing games to /usr/local/games/bin/yanoid, but instead installs to /usr/local/bin/yanoid. Shared files are installed into /usr/local/share/games/yanoid however. ---------------------------------------------------------------------- * RUNNING YANOID After building yanoid, you can either issue the command $src/yanoid or, if you installed yanoid $/path/to/yanoid to run yanoid. ---------------------------------------------------------------------- * CONTROLS * Menus Use the arrow keys (up and down) to navigate the menus. Use enter or space to select an item. * Play During play, use the arrow keys (left and right) to move the paddle. If you have shots, use the space key to fire. Press the escape key to display the in game menu. * Special keys During play, you can press F3 to display the console and F11 to toggle full screen mode. Please note, that to run in full screen, you should have a 800x600 resolution defined for your X server. ---------------------------------------------------------------------- * ADDING YOUR OWN MAPS Adding your own maps and ressources is quite easy. When you configure yanoid (before compiling), you can provide a directory to put the yanoid data tree into (either by using the --prefix option, or the --data-dir option). Default is /usr/local/share/games/yanoid and this will be assumed for this explanation. Yanoid looks for its data in here, but before that, it looks for a directory called "data" in the directory where it is run from. Any data in here overrides data in the installed data tree. So, if you want to experiment with the layout for the first map - which is called map1.py - you can issues the following commands $ mkdir data $ mkdir data/maps $ cp /usr/local/share/games/yanoid/maps/map1.py data/maps/map1.py You can now edit the file data/maps/map1.py with your favorite text editor. All maps in yanoid are defined as python scripts. Have a look at the different maps to get a feel for how you can construct them. Here is a quick overview: All maps contains of a number of objects, called entities<. The most fundamental ones are "bricks", "statics" and the "paddle". How these are constructed, use graphics and trigger functions when hit, should be quite clear from looking at the current maps. Every map also need a "RoundStart" function, most likely one that will add a ball. To interface with the yanoid engine, you will use most of the functions defined in the scripts in /usr/local/share/games/yanoid/scripts/ . Look in the file map_interface.py for functions that are related to map creation (Adding bricks, etc), game_interface.py for stuff that is related to the current game (AdjustScore, etc), and in client_interface.py for stuff like playing sounds. When you want to check out your changes, you can start yanoid, and it will automatically use your edited map when you start a game. If you want to make adjustments, you can hit escape to show the in game menu (this will let yanoid use fewer CPU cycles), then change to your editor, edit the map, return to yanoid, display the console (use the menu, or hit F3 in game), and issue the command "loadmap maps/map1.py" to load the map). You can also reload all the scripts and data files, by typing "i yanoid.yreload()" in the console. This can be very handy, when you want to change the behavior of bricks, etc. You probably want to run yanoid with DEBUG support (default) to debug your maps. Look for Python errors in the terminal you started yanoid in. Remember that spelling errors (e.g. defining a RoundStar() function instead of a RoundStart() function) often will mean that a previously defined function/value will be used instead of the one you intended. Currently the exported functionality from the yanoid engine has not stabilized enough or matured enough to describe it further. Although you can make quite interesting maps with the current model, these possibilities have unfortunatly only been superficially explored in the current collection of maps for yanoid. Defining new and interesting behavior for powerups, etc, are limited currently, and will often require you to hack the C++ sources of yanoid. We invite you to submit your maps, code, graphics, sounds and music to us, for future inclusion in yanoid. See the project homepage at http://www.sf.net/projects/yanoid/ for information about the development mailing list. ---------------------------------------------------------------------- * BUGS Why, of course. Look at the TODO file for _some_ of the _known_ ones. Please report bugs and/or send patches to yanoid-devel@@lists.sourceforge.net - it will make you fell all warm and fuzzy inside.... ---------------------------------------------------------------------- * FINAL NOTES You read this far? Amazing....
About
Yanoid is "Yet Another arkaNOID"
Resources
License
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published