# Milestones

## Hello world

Released as `0.0.1`: `Pre alpha 1`

- [ ] From the ground up cleanup

## System

  - [~] Dependencies updater
    - [x] Tracy
    - [ ] ImGui
  - Compile time
    - [ ] Warnings
    - [ ] Unit build
    - [ ] Ninga
    - [ ] Clang
  - [x] CI build
    - [x] CMake package
    - [x] GitLab CI
  - Platforms
    - [x] Linux
    - [x] Windows
      - Mingw: requires picotls, picoquic and FastNoise compatibility
    - [ ] MacOS
  - [ ] Launcher / Updater
  - [ ] Review documentation
    - [ ] Code cleanup
    - [ ] Proper wiki
  - [ ] Yaml config
  - [ ] I18L

## Data

  - [ ] Element hierarchy
    - [ ] Collide
    - [ ] Soft part break
    - [ ] Relative position
    - [ ] Rotate
    - [ ] Merge World and Entities
    - [ ] Galaxy
      - [ ] Orbit system
      - [ ] Gravity referential
  - Edits
    - [ ] More shapes
    - [ ] Anchor
  - [ ] Multi-block system
  - [ ] Cross chunk structure
  - Generation
    - SIMD
      - [ ] Dynamic SIMD level libs
      - [ ] https://github.com/Auburn/FastNoise2/releases
      - [ ] Double precision
    - [ ] Surface features
    - [ ] Biomes
      - https://imgur.com/kM8b5Zq
      - https://imgur.com/a/bh2iy
      - https://speciesdevblog.files.wordpress.com/2012/11/biomemap.png
  - [ ] ECS
  - [ ] Inventory
  - [ ] Octree
    - [ ] Surface aware LOD
  - [ ] Level converter
    - [ ] Minecraft import
    - [ ] Base unit size change
  - [ ] Local generation prediction
  - [ ] Modding API

## Graphics

  - [ ] Disable VK for now
  - [ ] Slash screen
  - [ ] Proper UI
    - [ ] Pause menu
    - [ ] Start menu
    - [ ] Using texture pack
    - [ ] FontAwesome (https://github.com/juliettef/IconFontCppHeaders)
  - [ ] Define standard unit size
  - Visual debug
    - [ ] Chunk / Region border
    - [ ] Area box
    - [ ] Collision overview
  - [ ] Effective occlusion culling
    - [ ] Cast from chunk center
  - Curvature
    - CubeSphere
      - [ ] Area corrected CubeSphere
      - [ ] Corrected Normals
      - [ ] Surface curvature
      - [ ] Curvature aware frustum
    - [ ] Healpix

### Raster

  - https://www.iquilezles.org/www/index.htm
  - [~] 8 for 1 contouring problem
  - [ ] Merge stochastic and triplanar
    - https://assetstore.unity.com/packages/tools/terrain/microsplat-96478
    - https://www.youtube.com/user/slipster216/videos
  - [x] Biplanar
  - [ ] Distance resampling
  - [ ] Tesselation
  - [ ] Planet scale LOD (using chunk level average)
  - [ ] Hard shadow
  - [ ] Ambiant occlusion
  - [ ] World lights
  - [ ] HDR
    - https://www.youtube.com/watch?v=iikdcAA7cww
    - Toon shading
    - Eye adaptation
    - GLSL gamma correction
      - https://github.com/skurmedel/shaders/blob/master/glsl/gamma_correct.glsl
  - [ ] Post processing
    - https://learnopengl.com/Advanced-OpenGL/Anti-Aliasing
    - Bloom
  - [ ] Procedural Skybox
  - [ ] Deferred
  - [ ] Cascaded shadow maps
  - [ ] Avoid transparent back-face
  - [ ] Translucency
    - Back-face depth based
  - [ ] Contouring service

### Ray

  - All of it
  - Probably v2

## Network

  - [x] QUIC protocol
  - [ ] Use in memory protocol
    - replace server_handle
  - [ ] Private messages
  - [ ] Commands
  - [~] Authentication
  - [ ] Clean kick
