Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Fly around and blast through asteroids in this OpenGL C++ game
C C++ Objective-C Shell CSS FORTRAN Other
branch: master

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
animations
audio
eigen2
freeimage
games
geometry
kdtree
levels
soil
textures
.gitignore
LICENSE
README
SOIL.lib
activemodel.cpp
activemodel.h
asteroid.cpp
asteroid.h
ball.cpp
ball.h
boundingbox.cpp
boundingbox.h
boundingshape.h
boundingsphere.cpp
boundingsphere.h
boundingspheres.cpp
boundingspheres.h
box.cpp
box.h
crosshair.cpp
crosshair.h
enemy.h
envmodel.cpp
envmodel.h
explosion.cpp
explosion.h
force.cpp
force.h
game.cpp
game.h
geometry.h
intersection.cpp
kamikaze.cpp
kamikaze.h
level.cpp
level.h
log.cpp
log.h
main.cpp
main.h
makefile
model.h
objgeometry.cpp
objgeometry.h
parser.cpp
parser.h
passivemodel.cpp
passivemodel.h
plane.cpp
plane.h
processOBJ.py
projectile.cpp
projectile.h
ship.cpp
ship.h
shipgeometry.cpp
shipgeometry.h
teapot.cpp
teapot.h
trace.log
turret.cpp
turret.h
utilities.cpp
wall.cpp
wall.h

README

  _________ __              ___________.__       .__     __                
 /   _____//  |______ ______\_   _____/|__| ____ |  |___/  |_  ___________ 
 \_____  \\   __\__  \\_  __ \    __)  |  |/ ___\|  |  \   __\/ __ \_  __ \
 /        \|  |  / __ \|  | \/     \   |  / /_/  >   Y  \  | \  ___/|  | \/
/_______  /|__| (____  /__|  \___  /   |__\___  /|___|  /__|  \___  >__|   
        \/           \/          \/      /_____/      \/          \/       

Group:
  Long Cheng        cs184-cy
  Kyle Conroy       cs184-cz
  Jillian Moore     cs184-cx
  Wei Yeh           cs184-df

Platform:
    Mac OS X 10.6 - Snow Leopard
    
Submitted by:
    Wei Yeh
    
Website:
    http://www.kyleconroy.com/starfighter.php

    
#####################
# Compilation
#####################

Use "make"; resulting executable is named "starfighter"


#####################
# Usage
#####################

./starfighter -f <levelListFile>


#####################
# Input File Spec
#####################

The input file is a level list with pairs

<level> highScore

separated by newlines. <level>.level refers to the level file in the same directory.

A level file consists of geometry definitions and model definitions.

#####################
# Level File Spec
#####################

Some entries have options [option1 | option2]

# Loading a .obj mesh

{
    objgeometry                 #
    name unique-name            # must be a unique name
    path path/to/file           # relative path
    bs [box | sphere]           # OPTIONAL sets the bounding shape, default is box
    boundingsphere x y z r      # OPTIONAL explicitly sets the bounding sphere 
    boundingsphere x y z x y z  # OPTIONAL explicitly sets the bounding box
}


#####################
# Gameplay
#####################

The objective of StarFighter is to fly and blast through asteroids
and alien spacecrafts, making it to the end of the level with a high score.
The ship is controlled entirely with the mouse. Lasers are fired by clicking
the mouse button. The ship can also launch bombs by holding down the mouse
button and releasing it after at least half a second. The longer the mouse button
is held down, the further the bomb travels. Bombs are detonated by pressing the space bar.


#####################
# Features
#####################

* animation and UI using OpenGL and GLUT
* detailed collision detection, optimized using object-aligned bounding boxes/spheres and kd-trees
* ray tracing technique used to fire lasers/missiles
* gravity-affected, bounce-able projectile simulation with balls
* mouse controlled x/y thrust
* level input file parsing to construct world, using OBJ output of objects designed in Maya


#####################
# Libraries Used
#####################

* Eigen vector/matrix library
* kdtree (http://code.google.com/p/kdtree/)
* FreeImage for writing images
* SOIL (Simple OpenGL Image Library) for texture input


#####################
# Other Credits
#####################

* Ship and Kamakazi model from sender pinarci, on TurboSquid
    * http://www.turbosquid.com/3d-models/sendercorp-sender-ma-free/429728
    * http://www.turbosquid.com/FullPreview/Index.cfm/ID/433482
* Asteroid models from Setro on turbo squid
    * http://www.turbosquid.com/3d-models/free-3ds-model-stones/497091
* Sound effects from http://freesound.org

#####################
# License
#####################

Copyright (c) 2009 Long Cheng, Kyle Conroy, Jillian Moore, Wei Yeh

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
Something went wrong with that request. Please try again.