Skip to content

Features

Nick McDonald edited this page Jan 20, 2020 · 1 revision

Features Master

Reading

  • Implemented Feature
  • Not Implemented Yet

Milestone List

In no particular order, here are the major aspects which I would like to have in this simulation.

  • Inventory and Resource Hierarchy System
  • Buildings and Individual Agent Progression
  • Agent Groups and Social Interaction
  • World Generation and Complex Systems

Features

Game Engine

Input Handling

  • Movement Keys rotate according to camera rotation
  • Better Handling for Simultaneous / Multi-Tick Inputs

Renderer

Sprites
  • Full Sprite Animation Pipeline
Shaders
  • Shadow Mapping
  • Normal Mapping
  • Day Night Cycle
  • FBO rendering for fancy effects
    • Water Reflections
  • Arbitrary Water Reflections (might never do this - very expensive)
  • Sprite Texture Shadows
  • Transparent Selection Volumes (i.e. look into buildings through walls)
  • Bloom Effect
  • Particle Handling
  • Sprite Texture Picking (i.e. outlining upon selection)
Meshing
  • Greedy Meshing for Voxel Data
  • Support for differently shaped blocks WITH GREEDY MESHING
  • Only remesh chunks which are freshly loaded
  • Doing a world edit simply adds cube vertices to the chunk mesh for speed
  • Choice of block color based on bezier curves, parameterized by hashed block position for simple variation
  • Support for textured surfaces (aesthetic choice, but also some distinct uses
  • Implement more block shape prototypes
    • Loading from a resource file would be best!
    • Grasses, plants, slopes, steps, slabs, pillars, beams, small objects
  • Reimplement LOD upon Zoom-Out

World Saving / Loading

  • Multiple possible save files, loading via commandline argument
  • Convert flat array to octree and back for compact storage file sizes
  • Chunks are loaded dynamically according to the camera position
  • World sizes are theoretically arbitrary (limited by storage size and loading times due to single region file)
  • World edits are stored in an editBuffer and written to memory on chunk deload
  • Split single world region file into multiple region files for faster access
  • Multithread Chunk Saving and Loading
  • Reduce flat array size by using bytes instead of ints

World Generation

To-Do Master

Clone this wiki locally