3D maze
C C++
Switch branches/tags
Nothing to show
Clone or download
Permalink
Failed to load latest commit information.
demo Add demo files; tweak. Jun 16, 2014
res Cleanup, floats over doubles. Jun 16, 2014
src Fix args to attempt_movement(). Jun 16, 2014
.gitignore Add demo files; tweak. Jun 16, 2014
README Add demo files; tweak. Jun 16, 2014
makefile Add demo files; tweak. Jun 16, 2014

README

Oriadnos
========

Can you escape this maze before your torches run out?

Playing
-------

Run `make` and then `./oriadnos` in the main directory. SDL must be installed.
Use the arrow keys or the mouse to rotate the camera, and WASD to move the
player.

Goals
-----

Most of the main goals of the project were achieved, including full perspective
texture rendering, z-buffering, and simple lighting. The game is "playable" but
it does not test for win conditions. We did not have time to implement a
dynamically generated maze, so wall and floor positions are hard-coded.

Note that SDL is only used to display the array of pixels onto the screen in
real-time, and to get user input. All rendering, including loading the image
files (as PPMs) and UV texture mapping, is our own code.

Project Layout
--------------

src/    C source code
res/    textures
demo/   game screenshots
build/  temporary object files

Work Distribution
-----------------

Ben: z-buffering, shading, PPM loading, collisions, speedups

Victor: matrix manipulation/rendering, movement, UV texture mapping, maze data

Known Issues
------------

Walls often disappear when getting too close to them. We know what's causing
this, but we couldn't figure out the math to fix it by the deadline.

Additionally, the game is very slow, often going below 10 FPS on a fairly
decent computer. Steps were taken to reduce rendering time in various
situations, and it is much faster than before, but additional work should be
done. Since a large amount of work that is normally done in the GPU is being
done in the CPU, it is unlikely that the game will ever run as fast as we would
like it to. To mitigate some speed issues, we use delta timing to ensure a
relatively smooth movement speed.