Skip to content

Latest commit

 

History

History
130 lines (130 loc) · 5.04 KB

todo.md

File metadata and controls

130 lines (130 loc) · 5.04 KB
  • Cell rendering.
    • Pass cell material data to shader.
      • Create image with 32bits cell material data for each cell material.
      • Pass to cell shader as a texture.
    • Display base cell color.
      • Cell have a base color.
      • Take base colors from cell material and compile into a color palette texture.
      • Add base cell color (from cell resource) palette to shader.
    • Color value 16
      • Define gamma correct value palette.
      • Add 4 bits modulate to cell data.
      • Add value palette to cell shader.
    • Color modulate 16
      • Define color palette.
      • Add 4 bits modulate to cell data.
      • Apply modulate on cell shader.
    • Add booleant to not apply color in cell material.
    • Check that cell can have color when changing material.
      • set color (gdscript)
      • reaction
      • set cell (gdscript)
      • cpp
    • Color generation (noise/sudoku/texture)
      • Generation type can be set on cell material data.
    • Bloom 80%+
      • Add bloom to environment.
    • Light
      • Add padding to light viewport, so that light does not pop-in
      • Take cell data that can be seen + padding
      • convert cell data to color
      • raycast global light
        • Raycast toward global light origin
        • Can disable (eg. when no sun/moon or too deep)
      • raycast light
        • only update if affected chunks changed or light moved.
      • global light
        • Can set strenght
        • Take color and add light if we can see bg
        • Can disable (eg. when no sun/moon or too deep)
    • Merge color pass with global light pass.
    • Backgroud cells
      • data: 8 bg color, 3 wire, 1 actuator, 12 actuated tile, 8 actuated tile color/value
      • only alocate a chunk if there is any
    • last color bit is transparency (20%)
    • Draw cells & lights above layer 0.
  • World gen.
    • Can configure infinite border cells material.
    • Figure out gdscript interface.
    • Generation passes
      • Carvern
        • Large cave
        • Snaking tunnel
      • Ocean
      • Desert
      • Pyramid
      • Ice
      • Bedrock
      • Hell
      • Tower
      • Sky islands
      • Surface plateau
      • Mountain
      • Slime pit
      • Mushroom cavern
    • Post generation
      • Add set_cell_generation(x, y, mat) to gdscript which can set border cells and skip activation
      • Take border cell from cells's border.
      • Activate all
      • Paint all
      • Simulate for 3k-10k ticks for cells to settle
    • Add layer height to some global state.
  • Border cells.
    • Looping infinite border.
    • Reapply border cell when border is modified.
  • Benchmark
  • Simulation
    • Run without blocking main thread.
    • Run using multiple thread.
    • If too many active chunk, only update those close to the player.
    • Consider storing ractions in hashmap.
    • Refactor cell movement.
    • Activate rows manualy when setting cells.
  • Character
    • Fix character going slightly down just before going up for some reason.
    • Animation template
    • Player
      • Hands
        • Show current item.
        • Look where the player is aiming
        • Item use animations.
          • Melee attack
          • Mining
          • Consume item
    • Enemies
      • Spawn based on player biome.
      • Ai templates
    • Bosses
  • Items
    • Player inventory
      • Chest
      • Equiped armor/accessories
        • Change sprite
    • Dropped item
      • Picked-up if enough space & nearby
      • Merge same item nearby
      • Delete if > than a configurable amount
  • Biome
    • Biome condition
      • Min cell coverage needed.
      • Min distance from center.
      • Min depth.
      • Priority over other biome
    • Add biome to cell material.
    • New biome scan node
      • Continuously scan nearby cells. Keep a moving average
      • Emit signal on biome change.
    • Remove biome depth requirement
    • Only cavern + surface layer
    • Add bg to biomes data
      • Background
        • Use layer height to clamp biomes bg position
        • Not affected by light
        • Infinite loop
        • Change based on current biome
          • Seamless transition
        • Add biome background node to biome data.
        • Add cavern fallback bg
        • Add cavern start texture
        • Add surface color gradient
        • new bg should fade-in as well (so that the bgs overlap does not add to >1.0).