This project uses FastNoiseLite.
- Basic world generation
- Basic Player Entity
- Working Collision System
- Solve Graphical Problems
- Sprite2D
- Tiles System
- Enable "Nullable" in project for better type safety
- Decouple game world logic from LoadContent()
Use a main Spritesheet and make sprites only point to them- Or alternatively load all sprites - and keep them in a dictionary where Sprites look them up
- Good resolution and automatic scaling
- Reverse engineer how many tiles fit in the Terraria's screen
- Basic Input System (Keyboard)
- Core, Keyboard
- Mouse
- Only render what's visible
- Basic World Generation
- Passes
- Layers
- Change spawn (not working with caves)
- Add map/debug mode to help see whole map
- Basic Input Handling for that
- More complex world generation
- Better caves
- Blending
- Refactor
- Stone, dirt, clay patch passes
-
Test variationsGARBAGE
- Random should be singletons/factory
- Remember to use it on the offset fiasco that's happening in the passes and masks
- Skybox
- Tile Types from XML (data-driven approach)
- Lighting
- Ambient
- Light source tiles
- Player must be illuminated as well
- Walls (starbound-style)
- Destructible/Placeable walls
- Affects lighting
- Add torch to player for easier debugging
- Allow player to place them
- Vegetation
- Grass
- Trees
- Plants in general
- Autotiling/Atlas
- Tile State (Manager)
- Objects
- Entity System
- Player Interaction with the world
- Actions (no need to generalize for Entity right now)
- UI
- Make Input Action registering data-driven (like in godot)
- Saving
- Chunking
- Generation Improvements
- Need an algorithm for longer, winding caves
- Maybe perlin worms?
- Need an algorithm for longer, winding caves
- Layer specific parallax walls
- Affects lighting as well
- Improve lighting (I can see a cross)