Alpha Shooter - An OpenGL 3D First-Person Shooter game
Copyright (C) 2005, 2006, 2007 Nicola Cocchiaro <ncocchiaro [at] users.sf.net>
Alpha Shooter can be found at http://www.sf.net/projects/alphashooter,
released under the GNU/GPL license version 3 (or, at your option, any later 
version).


Alpha Shooter README file

Summary

0. License
1. How to compile and run Alpha Shooter
2. History
3. Main Features
4. Known issues and limitations
5. Under development
6. How you can help

--------------------------------------------------------------------------------


0. License

All code in Alpha Shooter is licensed under the GNU/GPL license.
See the data/ directory for additional information on texture licenses (see 
info.txt and readme.txt files).
Here's a snippet of the GPL, for the complete text please see the COPYING file 
or http://www.gnu.org/licenses/gpl.html.

Alpha Shooter - a 3D OpenGL First-Person Shooter game
Copyright (C) 2005, 2006, 2007 Nicola Cocchiaro <ncocchiaro [at] users.sf.net>

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 3 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.


1. How to compile and run Alpha Shooter

Instructions on how to run the game vary according to the operating system 
the game runs on. Alpha Shooter runs on GNU/Linux, Mac OS X 10.3 (Panther) and 
above and Windows systems. In addition it can be compiled and run successfully 
under CygWin.


1.1 How to compile the game

NOTE: if you have downloaded a binary package and just wish to run the game, 
you can skip to the next subsection.

You will need to have OpenGL and GLUT installed in your system if you wish to 
compile the source files. OpenGL libraries are normally pre-installed on 
Mac OS X and Windows systems, and can easily be installed on Linux and CygWin; 
GLUT (written by Mark Kilgard and ported to Windows by Nate Robins) is not 
part of Windows natively, but can be found at:

http://www.xmission.com/~nate/glut.html

or pre-compiled GLUT libraries for Windows are included in the Alpha Shooter 
source distribution for your convenience.

To compile the game it's sufficient to open a shell/DOS window and run, once 
the source archive has been uncompressed, the 'make' command followed by the 
target operating system:

  `make linux`	to compile for GNU/Linux systems
  `make osx`	to compile for Mac OS X systems
  `make cygwin`	to compile a CygWin environment executable from CygWin
  `make cyg32`	to compile a Windows native executable from CygWin

It is also possible to cross-compile a native Windows executable from Linux or 
Mac OS X by issuing the command:

  `make win`	(needs the MinGW cross-compiler toolchain installed)

The included Makefile may be customized changing compile-time parameters like 
paths to libraries.

On Linux and Mac OS X, executing `make install` as root will install the game 
in /usr/games and game data in /usr/share/games/alphashooter.


1.2 How to run the game

If you have downloaded a binary package all you have to do is install or 
uncompress it following the instructions below:

- if you are using the Windows installer, you will find shortcuts to Alpha 
Shooter in your Start menu after installation; if you are using the ZIP 
distribution (again, on Windows) all you have to do is drag the contents to a 
folder of your choice.

- if you have obtained a Linux Debian package, install it as usual by running 
a command of the form `dpkg -i alphashooter-x.y.z-w.deb` as root, or using 
your usual package manager. You may run the game with the command 
`alphashooter` from a shell or may have shortcuts in your applications menus 
depending on your desktop environment and/or window manager.

- if you have a Mac OS X DMG disk image, mount it by double-clicking on it 
then drag the contents to a folder of your choice (/Applications, or your 
Home folder, or anything you like). Double click on the "Alpha Shooter x.y.z" 
icon to run the game or run it from a Terminal window.

If on the other hand you decided to compile the sources yourself, assuming the 
compilation step above was successful, you may run the game with:

  `./alphashooter`	on Linux, Mac OS X and CygWin;
  `alphashooter.exe`	on Windows, if run from a DOS console, or
    double clicking on the executable

You may also add the parameters '-h' or '--help' on the command line to have a 
list of the command-line parameters that the executable recognizes, including 
the '-k' or '--keys' parameter that prints out keyboard and mouse controls to 
use during the game.


2. History


Alpha Shooter was born as a project for the Computer Graphics course at the 
University of Bologna. The main objective was to develop a very simple 3D game 
using the OpenGL, GLU and GLUT libraries only (and some creativity). Emphasis 
was not placed on the game itself, rather on learning how to use the libraries 
to produce a 3D environment and interact with it; it was thus required to build 
a suitable scenery using polygonal meshes and quadric surfaces, appropriate 
textures and materials, lights, and effects.

According to my personal taste I chose a sci-fi setting, trying to reproduce 
an environment that could remind players of a warehouse or loading area located 
inside a space ship or space station, like those often seen in movies or 
commercial videogames (of course I was aware of the limits of my 
implementation). I focused development on a single room, with an outside view, 
for ease of development (it was my very first attempt at graphics programming) 
and because it was enough to make use of a wide set of elements of OpenGL, 
consistently with the project requirements.

The game I wrote was inspired to the First Person Shooter genre, 
in which the player can move around in a 3D environment, looking around 
freely through the eyes of the played character, interacting (in very limited 
ways) with some of the objects present, shooting crates and barrels and some 
holographic targets. I had a lot of fun creating that simple game, so after I 
got my Master's Degree I decided it would be a waste to just leave it hidden in 
some obscure directory at home; it is now here, released as Free Software, so 
that I can keep working on it and improving it, with help from whoever will be 
interested, in the hope that it will be useful as an example on how to get 
started in computer graphics and games development.


3. Main features

- Multi-platform support (currently Linux, Mac OS X, Windows and CygWin)
- 3D environment built with OpenGL
- Simple particle system
- Dynamic lighting
- Quaternion-based keyboard and mouse rotations

For what to expect in the future, see the TODO file.


4. Known issues and limitations

Here's a list of current known issues. Given the current alpha state of 
development, please do not report these issues as bugs, as they will be worked 
on in the future.

- Control keys cannot be remapped
- Collisions don't work as intended in all parts of the map, for example 
  you can shoot rockets right through the bigger, light colored crates and 
  the slanted portions of the ceiling
- The doors in the room cannot be opened
- Explosions may die too quickly on higher-end systems
- The HUD displays characters in a strange white-green color under Windows 
  instead of solid green


5. Under development

Currently under development:

- Various fixes
- Real collision detection
- Redefining object system

6. How you can help

Contributions are always welcome, in the form of patches, testing and bug
reports, suggestions or any other kind of useful additions. 3D models and
textures are always appreciated, as I'm not an artist; the only thing I ask is
that all the material sent does not belong to someone other than the sender 
and be released under the GNU General Public License version 3 (where 
applicable), like Alpha Shooter is. In any case please see the TODO file 
included with the source code to see what I'm currently working on and what 
the known issues are. Whoever is interested in helping can write to 
ncocchiaro [at] users.sf.net and we'll discuss the possibilities. Proper 
credit will be included in the source code and the website, and ultimately in 
the game itself and accompanying documentation.



EOF
