Skip to content
Class project. Procedurally create a valley path, add water and obstacles and allow a player to navigate through this.
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
dist
.gitignore
CMakeLists.txt
LICENSE
OgreFramework.cpp
OgreFramework.hpp
OgreLogfile.log
TerrainGenerator.cpp
TerrainGenerator.h
ValleyApp.cpp
ValleyApp.hpp
go
main.cpp
noiseutils.cpp
noiseutils.h
readme.md
readme.pdf

readme.md

Procedural Valley Game

About

My game is built off the sample Ogre tutorial framework which is found slightly modified in OgreFramework.cpp and OgreFramework.hpp.

At run time, a terrain is generated by TerrainGenerator and used as the heightmap for the Ogre terrain. This terrain is build from some simple perlin noise and then has a valley carved through it for purpose of the game.

Obstacles (fallen trees and boulders) as well as decorations (trees and stones in river bed) are procedurally added. Textures are missing for trees currently.

Water and skybox animation come from built in Ogre resources.

By pressing K, course only movement can be toggled. It is beneficial to turn this on while near the beginning of the valley.

Known issues

  • Camera movement through valley is rough.
    • Jerks when reaching end of individual path segments.
    • Strafing and jumping not yet implemented.
  • Terrain texture detail.
    • Terrain is only blended based on height currently, needs more detail from slope of terrain and noise.
  • Missing texture and materials
    • Trees and fallen logs are missing materials and textures. This is due to an issue with finding Ogre meshes and materials in a modern usable format.

Controls

  • W, A, S, D - Movement.
  • Hold shift - Increase movement speed.
  • Mouse Movement - Rotates camera.
  • K - Toggles course only movement. Helpful to be near start of course when turning this on.
  • L - Toggles a display of the course path as it is defined through world coordinates.
  • O - Toggles Ogre overlay.
  • M - Toggles through geometry display modes.
  • PrintScreen - Takes a screenshot.
  • Esc - Exit game.

Requirements

  • Ogre and OgreTerrain
  • OIS and Boost (Ogre pre-reqs)
  • libnoise (for terrain generation)
  • Cg (for animated water/skybox textures)

Running

Note: This has only so far been tested on Linux using OpenGL.

  1. Use Cmake to create platform specific build files.
  2. Follow steps for your platform (open Visual Studio file, run make, load XCode, etc).
You can’t perform that action at this time.