Clone wiki

PrEdiTer / Home

Welcome to the PrEdiTer project wiki



Coding Standards


Current Tasks

  • Change terrain rendering to use an octree with dynamic subdivision
  • Reorganize program flow, allowing for self-registration for updates and input
  • Write a Settings class for easy management, reading and storing of various settings

kamiln 's specific tasks

  • Implement Angel Script scripting and Game Object entities to use for all in-game logic [CURRENT]
  • Improvements to DebugDrawManager (VBO's, shape lifetime, more shapes)
  • Refactoring of our keybinds - extend keybind capability to use not only F-keys but also any other key (A-Z, combinations Alt/Ctrl etc.)
  • Move most of current keybinds to console commands to allow binding
  • Finish terrain picking function using depth buffer so its defined as some sort of utility we can use for debugging or gameplay
  • Add more out-of-the box shaders (for textures, basic light, debugging etc.)
  • Particle system using geometry shaders
  • Decal system
  • Vegetation / vegetation manager (implemented grass)
  • Optimize ambient occlusion so its as fast as possible, we use it mostly as an indicator of complete shadowing for cave and underground areas

Some near future

High Priority

  • Overhaul of biome system, dividing planet into bigger zones that contain many smaller biomes, which allows us to diversify terrain in a much better way
  • Rework interface and related interface components to use better drawing
  • Rework the interface event callback system to be more general and Object Oriented
  • Objects. Need to be scalable to accomodate all varieties. This follows implementation of Model class, so objects can be imported as 3D models into game first.

Low Priority

  • Construction of buildings on fixed grid
  • Add more collision points for camera to prevent it going into terrain.
  • Add more biomes

Ideas for later

  • Optimization (dividing mesh into uniform and non-uniform depending on material and drawing them with different shaders to avoid very big amount of unnecessary sampling)
  • Simple weather system
  • Seasons
  • Volumetric clouds
  • Vegetation (undergrowth, trees) (Note: Overlaps with Objects task, but is more specific)
  • Flowing bodies of water (rivers, waterfalls?)
  • Make the TDM Pre-generate blocks around given position(s) [ON HOLD: Supercedeed by Partial, on-demand voxel generation]

Complete tasks

  • Basic implementation of Model class (using Assimp library to import model file)
  • Wrappers for using FrameBuffer so we can render to off-screen target
  • Water, static bodies of water (lakes, ponds, seas)
  • Added simple AO + player's flashlight.
  • Removed fixed pipeline / immediate mode from rendering anything world-related. Added VBO / VAO classes, shaders have now their own class and are properly and efficiently loaded
  • Normal texture maps.
  • Optimize hi-res loading times, try locating bottlenecks that cause stuttering whenever player moves
  • LOD
  • Day/night cycle, skydome colouring
  • Make world a globe, instead of infinite landscape
  • Move terraforming logic to player class, add possibility to make it tool dependent
  • Simple digging implementation
  • Tri-planar texture mapping
  • Blending between any 2 given materials
  • Terrain Data Management - abstracting data storage and memory from visuals
  • Saving generated terrain to disk, allowing for persistent changes
  • Materials support
  • Datablock analyzer, assigning materials to generated terrain
  • Biomes affecting terrain generation
  • Basic console setup
  • Re-work material assignment system