This is an experimental project in an effort to apply basic design principles and OpenGL.
The core idea revolves around a first person labyrinth/dungeon game similar to "Legends of Grimrock".
The whole project started after playing Grimrock, which reminded me how huge of a dungeon-crawling R.P.Gs fan I am.
Sample documentation (work in progress) is available at http://zztach.github.io/Dungeon/index.html
How to run on Ubuntu
- Install SDL2 sudo apt-get install libsdl2-dev
- Install CMake sudo apt-get install cmake
- Install GLEW under /opt sudo wget https://sourceforge.net/projects/glew/files/glew/1.11.0/glew-1.11.0.tgz; tar -xvzf glew-1.11.0.tgz -C /opt;rm -f glew-1.11.0.tgz
- Install glm under /opt sudo wget https://github.com/g-truc/glm/releases/download/0.9.4.6/glm-0.9.4.6.zip; unzip glm-0.9.4.6.zip -d /opt;rm -f glm-0.9.4.6.zip
- Compile Code Go to root project directory and execute "cmake --build . --target Dungeon -- -j 6"
- Run Executable cmake-build-debug/Dungeon
cd /opt/glew-1.11.0; sudo make install to get the libGLEW lib deployed
If you get an error similar to "error while loading shared libraries: libGLEW.so.1.11: cannot open shared object file: No such file or directory" during try running "export LD_LIBRARY_PATH=/usr/lib64"
Core Features
- Camera Player can move/strafe using the WASD keys and rotate his view with the mouse
- Image loading Ability to load .BPM/.TGA image files
- Textures Load texture objects at startup using .xml configuration file
3D effects
- Particle engine Basic particle engine (used to simulate a fire effect)
2D effects
- 2D text Display text on screen (e.g FPS Counter)
- 2D Controls Primitive display of 2D controls like listbox
Libraries Used
- OpenGL 4.2 core profile
- SDL2 : window/keyboard/mouse management
- glm-0.9.4.6 : math operations
- glew-1.11.0 : OpenGL extentions
- pugixml : handle xml files