1403 lines
44 KiB
Markdown
1403 lines
44 KiB
Markdown
@page renderertodo TODO
|
|
|
|
@subpage bigthings Big Things To Build
|
|
|
|
|
|
|
|
# DONE
|
|
|
|
|
|
|
|
(6/10/2023)
|
|
|
|
Scene
|
|
- Generic entity & btree grouping mechanism
|
|
|
|
Server Data Cell
|
|
- Wrapper around scene used by server to manage server scenes and players associated with them
|
|
Realm
|
|
- Manages server data cells including rudimentary spin up/down
|
|
Realm Manager
|
|
- Manages all realms + provides constructors for types of realms
|
|
Data Cell Manager
|
|
- Interface defining method for laying out cells and querying for cells based on real or world coordinates
|
|
Gridded Data Cell Manager
|
|
- Implementation of Data Cell Manager that manages a grid of data cells if using terrain engine
|
|
Data Cell Location Resolver
|
|
- Takes a vector3d and an entity and figures out what data cell that should correspond to
|
|
- Breaks the above resolver relationship out of cells so that can support different "worlds"
|
|
Entity Data Cell Mapper
|
|
- Takes an entity and gives the data cell that entity is inside of
|
|
- Breaks this out from data cell manager to support multiple worlds
|
|
Data Cell Physics Manager
|
|
- Breaks the physics generation for chunks out of the data cell manager
|
|
Data Cell Search Utils
|
|
- Combine the above classes to provided utilities for searching cells nearby a location for groups of entities
|
|
|
|
Client Scene Wrapper
|
|
- Wrapper around scene used by client
|
|
- Specifically adds translating server/client entity IDs to one another
|
|
|
|
Loading Threads
|
|
- Separate client and server versions of loading threads to different files
|
|
|
|
Server Bone Loader
|
|
- Server bone loading for server only collision simulation
|
|
|
|
Instancing support
|
|
|
|
Server Scene Management
|
|
- Creating and simulating entities per chunk
|
|
|
|
Server Terrain Management (specifically for collision)
|
|
- Generation collision meshes
|
|
- Also generate texture array
|
|
|
|
Terrain Chunk Shader
|
|
- Procedural textures for eg rock and dirt
|
|
|
|
Client Terrain Entity Management (specifically creation/teardown for client)
|
|
- Do the basic query stuff for getting terrain
|
|
|
|
Diagnose weird walking physics
|
|
- Character terrain collision messiness
|
|
|
|
Upgrade terrain editing user experience
|
|
- Sphere pallete
|
|
- Gradual updates
|
|
- Terrain Deletion
|
|
|
|
Upgrade Terrain Chunk
|
|
- Fully connect world chunks
|
|
|
|
Terrain Editing
|
|
- Server interface for editing terrain
|
|
- Ability to request terrain change from client
|
|
|
|
Voxel Data Storage
|
|
- Store metadata about types of voxels (rgb offsets, foliage placements, etc)
|
|
|
|
Foliage Manager upgrades
|
|
- Place foliage based on voxel type
|
|
- Use timeout queueing system to evaluate voxel locations to place foliage
|
|
- Destroy foliage on voxel edit
|
|
- Regrow foliage on empty cells after timeout
|
|
- Gradually regrow
|
|
|
|
Chunk Saving System
|
|
- File that maps world position to chunk file
|
|
- Save chunks to compressed files
|
|
- Server load chunks as needed
|
|
- Unload chunks after 100 frames of not being used
|
|
- Save chunks on unload
|
|
|
|
Convert client and server terrain entity composition to use 8 chunks instead of 1
|
|
|
|
Server Diagnose Physics potentially broken
|
|
- Server physics calculation not happening <-- hard to test bc gravity tree might not actually be updating client to turn off or something
|
|
|
|
Foliage Manager upgrades
|
|
- Fix popping
|
|
|
|
(2/25/2024)
|
|
Generate Tree Entities
|
|
- Generate leaf blobs container entity
|
|
- Attach individual leaf blob entities to container entity
|
|
- Sways in the wind
|
|
- Synchronize creation on server and client
|
|
- Synchronize swinging on server and client
|
|
- Tree types configurable via files
|
|
Scene Streaming (streaming state of a scene to client)
|
|
- Solidify the work that has already been done in this space and PARTICULARLY add good high level documentation
|
|
Server Content Engine
|
|
- On first loading a new-to-server chunk, generate all content (foliage, terrain objects (boulders), structures, etc) entities for the chunk
|
|
|
|
|
|
(2/28/2024)
|
|
Improve Fonts
|
|
- Support multiple fonts in engine
|
|
- Leverage https://github.com/SilverTiger/lwjgl3-tutorial/wiki/Fonts to load fonts with java
|
|
|
|
(2/29/2024)
|
|
Properly prioritize close trees over far trees
|
|
|
|
Implement proper Frustum Culling
|
|
- Regular Actors
|
|
- Instanced Actors
|
|
|
|
(03/06/2024)
|
|
Bake in imgui
|
|
|
|
(03/07/2024)
|
|
Server frametime bar graph
|
|
|
|
(03/09/2024)
|
|
Ability to attach ambient audio emitters to entities
|
|
|
|
Timekeeping class that defaults to gltf time and falls back to systemCurrentTimeMillis
|
|
|
|
Methods for sleeping physics bodies if nothing nearby them is dynamic (ie trees if there are no moving creatures near them)
|
|
- SAP2 space from ode4j specifically (ended up using BVH space instead)
|
|
|
|
Overhaul mesh class
|
|
- remove unused stuff
|
|
- private constructor
|
|
(this is going to require changing a lot of dependencies)
|
|
|
|
(03/10/2024)
|
|
De-dupe render calls via doing mutations in render pipeline status and dont call setting variables to values they are already set to
|
|
Render pipeline updates to support multiple pipelines defined in different files
|
|
- Grouping meshes together independent of actor so don't have to rebind shader programs or VAOs to redraw
|
|
|
|
(03/12/2024)
|
|
Foliage Manager upgrades
|
|
- Place foliage intelligently
|
|
|
|
Fix arena mode (terrain be crazy)
|
|
|
|
(03/17/2024)
|
|
Optimize instance logic (currently sorting the list of objects to push to buffer each frame nukes the cpu)
|
|
sort nukes cpu because capacity logic is after sort, so it tries to sort ~600k items every frame before caping
|
|
The way to optimize this is to completely gut existing code. One draw call per tile. Draw call calles drawInstanced for all blades within that cell.
|
|
Provide a texture that contains data per blade of grass to the cell on draw. Store positions in that once at creation.
|
|
For dynamic wind later will need to use UBOs or something like that.
|
|
Fix grass flickering (it's frustum culling being inconsistent, try commenting it out in InstancedActor and see what happens :| ) (well we won't have that problem anymore lol)
|
|
|
|
(03/20/2024)
|
|
Free camera system that can detatch from player entity
|
|
|
|
(03/20/2024)
|
|
Half pass at cellular automata fluid dynamics system
|
|
- Diffuse density
|
|
- Streaming chunks over network
|
|
- Basic model creation
|
|
|
|
(03/21/2024)
|
|
Fix character movement (allegedly fixed -- maybe by camera stuff?)
|
|
- Walking left or right while turning camera is very jittery
|
|
- Can lock on moving
|
|
|
|
Fix Frustum Culling for skybox
|
|
|
|
Fix Character creation preview not working
|
|
|
|
(03/23/2024)
|
|
Physics-controlled objects system
|
|
|
|
Clean up main method/class
|
|
- Include Remotery library
|
|
|
|
(03/24/2024)
|
|
Bring LWJGL version up to latest
|
|
|
|
Automatic Scene unloading
|
|
- Tree structure inside scenes for tearing down groups of entities
|
|
- Entity decomposition
|
|
- Server handling
|
|
- Client handling when scene should be unloaded
|
|
|
|
Level loading/saving + Basic Editor
|
|
- Spin up voxel level (think arena mode)
|
|
- Save voxel level
|
|
|
|
(04/10/2024)
|
|
Level loading/saving + Basic Editor
|
|
- Basic editor functionality
|
|
- Menu of types of entities to spawn
|
|
- Button to spawn them at cursor
|
|
|
|
UI Work
|
|
- Make ui feel more responsive, whatever that means (answer is make hover-over styling work lol)
|
|
- Frames for windows (WIP)
|
|
- Need to figure out style-wise what we want to do here (generally minimalist)
|
|
- Fix scrollable handling
|
|
|
|
Terrain editing UI
|
|
- Menu to select palette to generate, populated based on data
|
|
|
|
(04/13/2024)
|
|
UI Work
|
|
- Level editor ability to destroy an entity on server, have it also destroy on client, AND not persist on save
|
|
- Environment controls (not persisting in save yet)
|
|
|
|
Fix Movement Bug where player keeps running after releasing control
|
|
|
|
(04/21/2024)
|
|
UI Fixes
|
|
- Refactor ui toolkit elements to separate absolute and relative position
|
|
- Fix inventory menus
|
|
|
|
Touch Up working with items
|
|
- Make sure the models are appropriately scaled
|
|
- Remove all logic from before client-server separation
|
|
|
|
More Debug menus
|
|
- Screen that shows the overall status of client scene
|
|
- Number of entities
|
|
- Maybe a listing of each one?
|
|
|
|
Another pass at grass
|
|
- Fix shader being camera position independent (if you move the wind moves with you lol)
|
|
|
|
Make cursor less jittery (ie always up to date with where the camera is facing)
|
|
|
|
Physics Tweaks
|
|
|
|
Fix controls not repeating
|
|
|
|
(04/22/2024)
|
|
Data Cleanup
|
|
- Clean up audio
|
|
- Fix ui audio effects having play times that are wayyyy too long
|
|
|
|
(04/30/2024)
|
|
Fix grass not generating for closest tiles
|
|
- There is no distance check in the ClientFoliageManager
|
|
|
|
(05/04/2024)
|
|
Ground Texture Atlas system
|
|
- Basic atlas working with marching cubes
|
|
- Make it work with triplanar mapping
|
|
|
|
(05/05/2024)
|
|
Synchronize attack tree over network
|
|
|
|
Clean up data
|
|
- Tree Model Paths
|
|
|
|
|
|
(05/07/2024)
|
|
Ground Texture Atlas system
|
|
- Refactor to block main thread only when creating the actual texture object (load buffered image separately)
|
|
|
|
First Person Camera
|
|
|
|
|
|
(05/15/2024)
|
|
More consistent terrain editing
|
|
|
|
(05/16/2024)
|
|
Reintroduce strafing
|
|
|
|
(05/??/2024)
|
|
First person render pipeline
|
|
- Properly compositing onto main texture
|
|
- Potentially look at storing the framebuffer for the pipeline in the pipeline class itself
|
|
|
|
(05/19/2024)
|
|
Character movement in particular feels off
|
|
- Bring back strafing
|
|
- Fix interaction with networking
|
|
- Potentially facing vector on server misaligned with client facing vector? - Nope! They're perfectly aligned
|
|
- May be in the ground move tree itself the hard setting velocity instead of applying a force is causing weirdness
|
|
|
|
(05/23/2024)
|
|
Viewmodel
|
|
- Fix hands placement
|
|
- Animations defined in data file
|
|
|
|
(05/24/2024)
|
|
Viewmodel
|
|
- Add animations queues in btrees
|
|
- idle
|
|
- jump
|
|
- ground movement
|
|
- land
|
|
- fall
|
|
- attack
|
|
|
|
Attaching items to hands in first person
|
|
|
|
Fix grass placement
|
|
|
|
(05/26/2024)
|
|
|
|
VERY rudimentary first person documentation to give basic navigation to relevant files.
|
|
|
|
Fix attacking looping and freezing the character in place
|
|
- Was using delta real time (0.02ms) instead of delta frames in server and client attack trees (1 frame/simulate() call)
|
|
|
|
Document hitboxes
|
|
- Documented how it works currently and the architecture we want to move towards
|
|
|
|
Redo hitboxes to have capsules and also chaining between frames (but not between swinging the camera around)
|
|
- Need to have an object attached to creature that stores the rigid body
|
|
- When creating the creature, for each hitbox, create shapes for the rigid body
|
|
- Attach the overall object to the creature entity
|
|
|
|
(05/27/2024)
|
|
|
|
Redo hitboxes to have capsules and also chaining between frames (but not between swinging the camera around)
|
|
- Synchronize hitbox positions each frame
|
|
|
|
(05/31/2024)
|
|
Redo hitboxes to have capsules and also chaining between frames (but not between swinging the camera around)
|
|
- Write custom callback for the collision engine for just hitboxes
|
|
|
|
(06/04/2024)
|
|
Redo hitboxes to have capsules and also chaining between frames (but not between swinging the camera around)
|
|
- Need to have an object attached to creature that stores the rigid body
|
|
- When creating the creature, for each hitbox, create shapes for the rigid body
|
|
- Attach the overall object to the creature entity
|
|
|
|
(06/07/2024)
|
|
Hitboxes work to properly use capsules (constantly destroy/recreate every frane because od4j doesn't allow rescaling :<)
|
|
|
|
(06/10/2024)
|
|
Add flow for demo menu/level loading
|
|
|
|
(06/11/2024)
|
|
Redo hitboxes to have capsules and also chaining between frames (but not between swinging the camera around)
|
|
- Properly calculate the capsule that bridges from previous frame to current frame hitbox location
|
|
- Write custom callback for the collision engine for just hitboxes
|
|
Fix player model side-jog animations
|
|
|
|
(06/13/2024)
|
|
Fix newly exported model not rendering correctly
|
|
- All bones are passed into the shader every render call, the bone values must be corrupted
|
|
- NIGHTMARE BUG
|
|
Fix equipping an item spawning two items
|
|
|
|
(06/14/2024)
|
|
Fix inventory ui not closing when you hit 'i' key (will need to update utility functions to manage input mode so you're not doing it in callback)
|
|
Develop debug ui for equip points
|
|
|
|
(06/18/2024)
|
|
Block state synchronization between client and server
|
|
Highlevel netcode gen updates
|
|
- Fix formatting for imports so it doesn't put an extra newline
|
|
- Fix formatting for function generation so it DOES put a new line when the function isn't being replaced
|
|
- Convert fields to using id variables so all behavior tree classes don't get git updates every time the ids shuffle
|
|
- Furthermore, keep tracking of the existing ids for trees and fields and only generate ids for new trees and fields
|
|
Fix client gravity tree name
|
|
|
|
(06/19/2024)
|
|
Transvoxel implementation
|
|
- Begin work on transvoxel algo
|
|
|
|
(06/21/2024)
|
|
Transvoxel implementation
|
|
- First working implementation of mesh generation for transvoxel chunks (architecture of adding it to drawcellmanager still todo)
|
|
|
|
(06/22/2024)
|
|
Transvoxel implementation
|
|
- Scaling LODed chunks by lod level
|
|
|
|
Fix items falling below the ground
|
|
Fix server always rotating entity to face client camera -- should only be changing movement vector
|
|
Probably some kind of tutorial text
|
|
|
|
(06/??/2024)
|
|
Start working on script engine documentation/design
|
|
|
|
(06/27/2024)
|
|
Animations
|
|
- 2H Sword Hold (3rd person)
|
|
- 2H Sword Attack (3rd person)
|
|
- 2H Sword Block (3rd person)
|
|
- 2H Sword Hold (1st person)
|
|
- 2H Sword Attach (1st person)
|
|
- 2H Sword Block (1st person)
|
|
|
|
Audio
|
|
- Sword Swing
|
|
- Sword Sheath
|
|
- Sword Unsheath
|
|
- Sword Hit Metal
|
|
- Sword Hit Flesh
|
|
|
|
(07/02/2024)
|
|
better scaffolding for scripting engine with hooks for equipping items, spawning entities, pausing/resuming play, etc
|
|
Redo hitboxes to have capsules and also chaining between frames (but not between swinging the camera around)
|
|
- Introduce block hitbox (blockbox) type
|
|
- Sour spot, sweet spot for damage hitboxes and hurtboxes
|
|
|
|
(07/03/2024)
|
|
Clean up framebuffer class
|
|
- Comment everything
|
|
- Error checking
|
|
Overhaul opengl error checking generally (as in, actually use it)
|
|
- Add all over the place to help debugging graphics issues
|
|
- Handle uniforms being sent to shaders that don't have the uniform defined
|
|
Extracting pixels from framebuffers
|
|
|
|
(07/07/2024)
|
|
Work on testing
|
|
|
|
(07/16/2024)
|
|
Scene Loading Refactor
|
|
Hooking into engine from script-side
|
|
|
|
(07/19/2024)
|
|
Element Manager debugging and logic simplification
|
|
Hooks debugging
|
|
On add item to inventory hook
|
|
Hook manager debugging
|
|
|
|
(07/20/2024)
|
|
Properly drill static classes to script context
|
|
Expose framestep control to script side
|
|
Show tutorial hints from script side
|
|
TextBox element (not editable yet)
|
|
Word element
|
|
Text Wrap handling
|
|
Overflow handling
|
|
|
|
(07/21/2024)
|
|
AI scaffolding
|
|
Attacker ai tree
|
|
|
|
(07/24/2024)
|
|
2 Hand katana
|
|
Switching between first and third person
|
|
Devtools for updating first person attachment rotations
|
|
|
|
(07/26/2024)
|
|
Viewmodel equipped item rotates inverted to bone rotation
|
|
Utility object for reducing boilerplate when writing btree transitions that just play an animation then transition
|
|
First animations flickering in first person (enforce animation priority requirement)
|
|
Debug third person animations flickering (attachments not reflecting animations that were played that frame)
|
|
Small data fix
|
|
Refactor spawn point to not be global
|
|
Synchronize objects between client and server
|
|
Synchronize life state between client and server
|
|
|
|
(07/27/2024)
|
|
Small bugfix with blocking
|
|
Refactor math to be client/server agnostic in attach utils
|
|
Attach utils fixes for first person handling
|
|
|
|
(07/28/2024)
|
|
Tear out first person rendering pipeline
|
|
Partially fix first person attachment to viewmodel
|
|
Creature data validation
|
|
Unify animation format data on disk
|
|
Leverage animation masks to block while moving
|
|
Remove Airplane movement system
|
|
Fix client-attached models to viewmodel drawing on previous frame
|
|
Alignment work for human right hand
|
|
|
|
(07/29/2024)
|
|
Option to load all cells on init scene file
|
|
Insidious Entity protocol bugfix on server
|
|
Refactor network protocols to enforce async/sync split
|
|
|
|
(07/30/2024)
|
|
Fix depth texture for shadow rendering
|
|
Fix eyebrow weights on human model
|
|
|
|
(07/31/2024)
|
|
Massive netcode gen refactor
|
|
Server synchronization manager
|
|
Jump tree synchronization
|
|
Fix jump bugginess
|
|
|
|
(08/01/2024)
|
|
Fix server entity camera rotation
|
|
Fix world bounds application
|
|
Bone debug rendering
|
|
|
|
(08/02/2024)
|
|
State transition packets and support on both client and server
|
|
State transition utils interrupt support
|
|
Block animation cancels immediately on first person model
|
|
Bone-attachment fix
|
|
Fix data for viewmodel hand.r equip point
|
|
Support audio on state transition
|
|
Audio on block state transitions
|
|
|
|
(08/04/2024)
|
|
Strafe/backpedal movement speed multipliers
|
|
Properly equipping/unequipping 2hand items
|
|
|
|
(08/08/2024)
|
|
Client surface-audio system
|
|
Sound effects on footstep
|
|
New sound effects for movement
|
|
Jump sound effects
|
|
Don't play walking audio when entity is jumping
|
|
Server alert client on collision
|
|
Sound effect on sword hit
|
|
Fix walk animation not stopping on state change in ground movement trees
|
|
Fix server entity not rotating when ai commands it to
|
|
|
|
(08/09/2024)
|
|
Math overhaul
|
|
- Engine defined origin, up, and left vectors
|
|
- Redo math for camera calculations
|
|
Rotate player models to face correct direction
|
|
Remove BLENDER_TRANSFORM token
|
|
Redo of creature-spawning logic to support including attached items
|
|
- Items do not necessarily send from server if they are in the scene! They must also not have a parent
|
|
Ability to serialize/deserialize a creature with equipped items
|
|
- Serialize
|
|
- Deserialize
|
|
- Send to client
|
|
- Receive from server
|
|
|
|
(08/11/2024)
|
|
Sending initial synchronized state on player connect to chunk
|
|
Pass at client-server physics synchronization
|
|
|
|
(08/12/2024)
|
|
Fix server animation playing at reduced timescale
|
|
Block override concept for hitboxes
|
|
Block sfx
|
|
Fix server hitboxes freaking out at animation end
|
|
Fix hitcapsule misalignment
|
|
Always upright tree
|
|
Fix upright tree clearing linear force/velocity
|
|
Movement tweaks
|
|
|
|
(08/13/2024)
|
|
Hitbox support offsets now
|
|
Multiple hitboxes per bone
|
|
Potential fix for client concurrency issue
|
|
Debounce attack collisions
|
|
Remove entities on death
|
|
Remove movement restriction on attack
|
|
Update frame data for first person 2h sword swing to align with third person better and make it feel snappier
|
|
Fix katana is frustum culled incorrectly
|
|
- This is because the data is incorrect (blender has an animation already applied, need to push down)
|
|
|
|
(08/14/2024)
|
|
Fix rendering pipelines being broken when the katana is not drawn
|
|
Fix deleting entities on server not properly deleting the whole entity
|
|
Windup and Cooldown animations on 2h block
|
|
AI rearchitecture to actually do behavior trees now that I know what they are
|
|
|
|
(08/15/2024)
|
|
True behavior trees
|
|
- Decorators
|
|
- BT Timer service
|
|
- Meta nodes
|
|
- Colections
|
|
- Combat
|
|
Melee ai using BT framework
|
|
Server block nullchecks
|
|
Melee AI tweaks
|
|
Walk tree
|
|
Slow down strafe movement somehow
|
|
Better creature damage sfx
|
|
Audio debugging
|
|
Play animations offset by network delay
|
|
- Attack animation
|
|
Fix viewmodel animation framerate
|
|
|
|
(08/16/2024)
|
|
Fix server not starting
|
|
Fix client disconnection causing wrong socket to be closed from server
|
|
Fix build tooling, scripts, etc
|
|
Launcher fixes
|
|
Fix inventory control state suggestions not working correctly
|
|
Fix unequipping item hard crashing engine
|
|
Fix terrain editing hard crashing engine
|
|
Fix attack animation mayyybe caching on non-local clients ??
|
|
Fix sword double-swing
|
|
Fix physics freakout for vertically aligned entities
|
|
Fix AI components not resetting on turning off ai manager
|
|
Fix broken rendering pipeline when creating new level
|
|
Fix ui alignment for item panels in inventory menus (ie dont have to place in corner)
|
|
Netconfig file support
|
|
Fix rotation not sending correctly on initialization of creatures on client
|
|
Fix F2 menu not regaining controls when Xing menu instead of hitting F2 to close
|
|
Logger toggle debug window
|
|
|
|
(08/17/2024)
|
|
Foliage serialization/deserialization
|
|
|
|
(08/18/2024)
|
|
Cursor transparency, cloud transparency
|
|
Small oit shader work
|
|
|
|
(08/19/2024)
|
|
Disable cloud ring
|
|
Undo oit shader work to fix build pipeline
|
|
Testing rearchitecting
|
|
|
|
(08/20/2024)
|
|
Update image assert method
|
|
Jenkins save and display captured images when failing a rendering test
|
|
Setup MantisBT
|
|
|
|
(08/22/2024)
|
|
Fix rendering testing on jenkins
|
|
Fix entity scene test spinup by preventing networking sockets from closing
|
|
Thread manager/tracker + properly closing threads on engine close
|
|
|
|
(08/24/2024)
|
|
Resetting globals for multiple test runs from coding environment
|
|
Return to main menu from ingame
|
|
Tagging threads in manager
|
|
Quitting to main menu
|
|
|
|
(08/25/2024)
|
|
Server utilities provided to scripting engine
|
|
Spawn player character with weapon when testing levels
|
|
|
|
(08/26/2024)
|
|
Automated testing fixes
|
|
|
|
(08/28/2024)
|
|
Fix scene state not resetting on engine shutdown
|
|
Fix threads not closing on engine shutdown
|
|
Update jenkins config to rerun tests with all logging turned on if maven hard crashes while testing
|
|
More logging
|
|
More OpenGL error reporting
|
|
Fix shader uniforms caching due to same pointer, different value
|
|
Fix Yoga double free bug
|
|
Explicit error on setting uniform to unsupported type
|
|
Methods for getting buffers from mesh
|
|
|
|
(08/29/2024)
|
|
use STBImage instead of ImageIO
|
|
Signal passing architecture
|
|
Services architecture
|
|
|
|
(09/01/2024)
|
|
Lots of jenkins pipeline work (finally got it mostly consistent!)
|
|
|
|
(09/02/2024)
|
|
Engine mostly building reproducibly/consistently/testably
|
|
Framebuffer fixes
|
|
Attack tree integration test
|
|
Shadowmap fixes
|
|
Shadowmap pipeline debug menu
|
|
Shader storage refactor
|
|
Unit definition/spawning
|
|
Hitbox updates for katana 2H
|
|
Fix bug with geometry references not properly flipping in server hitbox collision callback
|
|
Fix level editor entity tree not re-rendering when an entity is deleted
|
|
Fix server entity not rotation when first person camera rotates
|
|
Entity details debug menu Data View
|
|
|
|
(09/03/2024)
|
|
Documentation reorganization
|
|
Better jenkins documentation
|
|
Include jenkins dockerfile in repo
|
|
Better model for gameobjects
|
|
Server synchronization of sprint tree
|
|
Fix potential bad path for item state lookup
|
|
Fix multiple ItemUtils NPE bugs
|
|
Fix AttachUtils NPE bug
|
|
Work on testing stability
|
|
Viewport loading
|
|
|
|
(09/04/2024)
|
|
Fix viewport realm server data cell not being flagged as ready
|
|
Fix NPEs on property lookups on entities
|
|
Unit tests for above
|
|
Fix physics debug rendering pipeline
|
|
Update human collidable data
|
|
|
|
(09/05/2024)
|
|
Fix AI tracking deleted entity
|
|
|
|
(09/06/2024)
|
|
work on debugging framebuffer bug
|
|
|
|
(09/07/2024)
|
|
par_shapes integration
|
|
|
|
(09/08/2024)
|
|
Directed graph datastructure
|
|
Framebuffer + RenderingEngine tests
|
|
|
|
(09/09/2024)
|
|
Fix obnoxious opengl state caching bug w/ framebuffers in junit context
|
|
Recoil on attack block
|
|
Movement speed penalty on swinging sword
|
|
Fix fall tree blocking attack starting on server/Fix falling tree not always deactivating on server
|
|
ParShapes integration fix
|
|
Fix server ground movement tree playing animation over falling animation
|
|
Fix cursor visuals
|
|
3D spline implementation
|
|
|
|
(09/10/2024)
|
|
Fix jump/fall/land animations being buggy and inconsistent between client/server
|
|
Remove extraneous println's
|
|
Fix empty item slot not showing underneath dragged item
|
|
Fix voxel selection popout rendering, nav logic
|
|
|
|
(09/11/2024)
|
|
Voxel updates (+new type!)
|
|
Fix return-to-title button from ingame main menu
|
|
Fix F2 controls bug with title menu
|
|
ChunkOctree implementation
|
|
Octree approach for rendering foliage on client
|
|
Foliage scaled cell generation
|
|
DBody key refactor
|
|
Audio for grass/leaves
|
|
Re-enable UI test
|
|
Fix foliage chunk-level radius being too low (causing grass cutoff)
|
|
Turn on anti-aliasing for font generation
|
|
|
|
(09/12/2024)
|
|
Alias fonts
|
|
Fix audio handling bug
|
|
SSBO implementation
|
|
Rearch instanced actor
|
|
ParticleService implementation
|
|
Fix SSBO implementation misusing BufferUtils
|
|
Massive entity spawning refactor to collapse entity type permutations
|
|
Move AttachUtils package
|
|
Move Scene package
|
|
Crate object
|
|
Data cleanup
|
|
Delete Structure entity type
|
|
Physics work
|
|
|
|
(09/13/2024)
|
|
Physics debugging
|
|
Fix terrain physics updating on server
|
|
Lots of animations
|
|
Organization and documentation around creatures
|
|
|
|
(09/14/2024)
|
|
More animations
|
|
Skeleton 3rd person model
|
|
NPE fixes in hitbox collection state + commonentityutils
|
|
Debug menu ability to play animation locally or on server
|
|
Documentation updates
|
|
|
|
(09/15/2024)
|
|
Fix movement packet timing bug
|
|
Fix all items spawning above player head
|
|
Fix items falling below terrain
|
|
Fix gridded data cell manager saving attached items on realm save
|
|
Fix render signals caching between frames (not reseting global flags per usual)
|
|
Capture image from opengl to pixel-check
|
|
Add ui tests
|
|
Fix image panel displaying texture flipped
|
|
Fix drag event relative positions
|
|
Fix slider behavior
|
|
New character customizer component
|
|
|
|
(09/16/2024)
|
|
Fix Scrollable position miscalculation
|
|
Fix equipped item packet not being sent to creature's player
|
|
Component-ify natural and equip inventory menus
|
|
Post Processing Pipeline w/ blur
|
|
Blur on open inventory/main menu in game
|
|
Remove legacy UI handling of positioning -- entirely reliant on yoga now
|
|
|
|
(09/17/2024)
|
|
Framebuffer position drilling
|
|
Redesign inventory menu
|
|
Remove deprecated ui constructors
|
|
Refactor menus to package under client
|
|
Fix buffered scrollable regression in above work
|
|
Memory fix
|
|
Start proliferating audio through ui
|
|
Item-based ui audio
|
|
Better sfx for opening/closing inventory menu
|
|
Different title menu audio
|
|
New katana icon
|
|
UI fix
|
|
Initial hitstun implementation
|
|
|
|
(09/18/2024)
|
|
Migrate documentation
|
|
Netcode generator qol fixes
|
|
Combat Stances Component
|
|
Remove geometry shader support
|
|
Work on clustered lighting
|
|
|
|
(09/19/2024)
|
|
Cluster lighting completed
|
|
ClientPointLightComponent
|
|
Small rendering info display
|
|
Fix terrain editing across chunk borders on server
|
|
- This is because the ray on the client doesn't intersect at the border (because the physics generation isn't working on chunk-end)
|
|
- Also because the client doesn't scan border chunks to see if they should update
|
|
Fix shader program bug with no-bone variants
|
|
Particle Emitter work (it renders! it has management!)
|
|
Texture atlasing for particle system
|
|
Texture atlas caching
|
|
Point light offsets
|
|
|
|
(09/20/2024)
|
|
Light manager buffer overflow bugfix
|
|
Particle Emitter data definitions
|
|
Torch w/ particle + lighting
|
|
Fix text input collapsing while typing
|
|
Voxel selection item
|
|
Fix ui elements not storing default discrete world size on level editor menu
|
|
Fix skeleton right strafe
|
|
Fix ui audio playing at world origin
|
|
|
|
(09/21/2024)
|
|
Snow voxel type
|
|
Move animation work
|
|
|
|
(09/22/2024)
|
|
Hide viewmodel hands when idle
|
|
Autodisabling implementation
|
|
Fix static friction coeff causing player to slide on shallow slopes
|
|
- Turns out it needed auto disabling logic
|
|
Change timescale for test
|
|
Refactor graphics entity definitions to be under dedicated object
|
|
Tree model debug menu
|
|
|
|
(09/24/2024)
|
|
Make voxel selection panel have better spacing
|
|
Partially fix idle animations for human + skeleton
|
|
Directional lighting color control
|
|
Skysphere affected by directional lighting
|
|
|
|
(09/25/2024)
|
|
(09/26/2024)
|
|
Work on toolbar refactor
|
|
|
|
(09/27/2024)
|
|
Toolbar state mostly working
|
|
Filter toolbar slots out of equip menu
|
|
|
|
(09/30/2024)
|
|
Fix attack tree checks
|
|
Disable client equip tests until can review
|
|
Toolbar scrolling
|
|
Items executing script engine hooks on usage
|
|
Fix server attack tree regressions
|
|
Editing voxels hook and extensions for voxel palette item
|
|
Entity spawning palette item actually working via hooks
|
|
Model fix for shovel, shuffling item models
|
|
Work on separating procedural tree generation steps
|
|
|
|
|
|
(10/16/2024)
|
|
Camera offset definitions in entity files
|
|
Non-Lsystem pine tree
|
|
Potential fix for ground audio bug
|
|
|
|
(10/20/2024)
|
|
Fix SP debug launcher actually entering world
|
|
Fix virtual scrollable clipping logic
|
|
Fix ui scaling on abnormal monitors
|
|
- This is literally just a function of the settings file not being updated for different resolutions
|
|
Fix inventory null pointer check on virtualaudiomanager
|
|
|
|
(10/21/2024)
|
|
Fix inventory message for undefined id on client
|
|
Fix movement audio service when audio engine disabled
|
|
Fix idle animations (for katana)
|
|
Fix equipping sword on toolbar
|
|
Add punching/unarmed combat
|
|
Fix script spawning NPE
|
|
|
|
(10/22/2024)
|
|
Editor movement system + editor entity
|
|
Ability to disable physics
|
|
Inspector item
|
|
Fix alignment on spawn palette menu
|
|
Add padding setters to ui kit
|
|
Refactor ui components to be under client folder
|
|
Scaffold out recipes data
|
|
Initial implementation of tooltips
|
|
|
|
(10/23/2024)
|
|
Tooltip improvements
|
|
Terrain generation testing realm
|
|
Biome data definition
|
|
Notes on biomes
|
|
OpenSimplex util class
|
|
Chemistry system collision engine instance on server and client
|
|
|
|
(10/24/2024)
|
|
CraftingPanel implementation
|
|
|
|
(10/27/2024)
|
|
World gen docs + ideas
|
|
Update default resolution in config
|
|
|
|
(10/28/2024)
|
|
Fix main menu ui test
|
|
Refactor math utils to spatial math utils to make room for more fundamental utils
|
|
|
|
(10/29/2024)
|
|
Begin drawcellmanager rewrite
|
|
|
|
(10/30/2024)
|
|
Integrate transvoxel algorithm
|
|
Document NetArranger
|
|
Break out datastructures library
|
|
|
|
(10/31/2024)
|
|
Fix some transvoxel bugs
|
|
Optimizations
|
|
Refactoring generator code
|
|
|
|
(11/01/2024)
|
|
Optimizations
|
|
Fix transvoxel xnzn edge generation
|
|
|
|
(11/04/2024)
|
|
Major draw cell optimizations
|
|
Fix normals calculation in transvoxel rasterizer
|
|
Fix draw cell LOD joining bug
|
|
Fix draw cell bounding sphere calculation
|
|
Hill Gen tweaks
|
|
|
|
(11/05/2024)
|
|
More normals fixes for terrain
|
|
|
|
(11/06/2024)
|
|
Fix server caching of terrain
|
|
Implement server side striding of chunk data
|
|
|
|
(11/07/2024)
|
|
Add quarter, eighth, and sixteenth scale chunk gen
|
|
Add network pressure capping
|
|
Add stratified updates that prioritize game chunks
|
|
Add message deduplication
|
|
Fix LOD bounding sphere calculation
|
|
Hook up content generation to test generation realm
|
|
Reorganize biome data
|
|
|
|
(11/08/2024)
|
|
Player and entity tracking overhaul in grid data cell manager
|
|
Add more profiling points
|
|
Height manual adjustment for content placement
|
|
Fast track client draw cell manager cell evaluation
|
|
Fix foliage rendering
|
|
Fix async physics gen on client
|
|
Convert volumetric + shadow pass to entity tags
|
|
|
|
(11/09/2024)
|
|
Fix eighth res chunk radius
|
|
Fix chunk gen debug ui regenerate button
|
|
Script-defined chunk generators
|
|
Script engine synchronization utility
|
|
Convert ScriptEngine to service
|
|
ScriptEngine full re-initialization signal
|
|
Add surface width to test generator
|
|
User setting to toggle foliage manager
|
|
Fix client terrain cache lookup bug
|
|
Memory debugging work + update memory flags in launch file
|
|
|
|
(11/10/2024)
|
|
Attempts at optimizing ClientDrawCellManager
|
|
Server-driven homogenous tracking to accelerate client draw cell manager
|
|
Face data fill bounds check optimization
|
|
Data fill skipping optimization
|
|
Homogenous node skipping optimization
|
|
Remove evaluation by distance
|
|
Squared distance optimization
|
|
Distance calculation caching optimization
|
|
Two layer destruction optimization
|
|
Non-reallocating list iteration for children in draw cell manager optimization
|
|
Split leaf/nonleaf tracks for node evaluation optimization
|
|
|
|
(11/11/2024)
|
|
Chunk data now stored/transmitted in 17 dim instead of 16 dim (Thereby cutting down on network/storage cost)
|
|
Unique actor concept
|
|
Asset manager pipeline to destroy models/meshes/textures
|
|
Terrain model freeing on destruction
|
|
Potential physics destruction fix
|
|
Join propagation further up tree
|
|
Lower client cache size (to fight memory stalling)
|
|
Manual free button on memory debug window
|
|
Passing chunk data between nodes
|
|
Fix homogenous value propagating from chunk gen to client cache
|
|
Fix homogenous value joining on client
|
|
|
|
(11/12/2024)
|
|
Work to optimize javascript chunk generators
|
|
Solve curve SDF
|
|
|
|
(11/13/2024)
|
|
Fix shadows on terrain
|
|
Work on an anime-style mountain generator
|
|
Work on making chunk reloading less obvious
|
|
Fix default chunk generator
|
|
Fix unit test
|
|
Fix missing data on katana item
|
|
Ability to replacing a player's entity
|
|
Fix shadows on main shader
|
|
Button to swap between player entity and editor entity
|
|
Fix physics being disabled on editing a level
|
|
Fix entity repositioning bugs + Enable recursive logic
|
|
Fix hitbox manager handling of destruction
|
|
Fix gridded data cell manager player + entity position handling and refactor to simplify logic
|
|
Add debug options for entities to reposition on server
|
|
Item data refactor to make it recursive
|
|
Loot pool data definition
|
|
Implement items dropping from entities on death
|
|
Officially mark transvoxel algo as solved
|
|
Fix shovel not having texture
|
|
Re-enable foliage manager
|
|
Fix chunk value lookup
|
|
|
|
(11/14/2024)
|
|
Workbench model
|
|
Item usage definitions
|
|
Way to define auto generated spawner items (ie item form of a furniture item)
|
|
Define interaction distance explicitly
|
|
Fix client side store-in-inventory transform failing to destroy world-side item
|
|
Fix gravity trees failing to handle missing collidables
|
|
Fix token NPE
|
|
Physics editing debug tab
|
|
ControlHandler refactor to break out callbacks into dedicated files
|
|
Add concept of interaction definition in common entity type
|
|
Fix bug with entity ray casting selecting player entity
|
|
Fix crafting menu yoga appliation logic
|
|
Workbench can open crafting menu
|
|
Fix character customization panel layout
|
|
|
|
(11/15/2024)
|
|
Script engine preloading
|
|
Fix YogaUtils.refreshComponent breaking when passed null window
|
|
Remove FontUtils .testcache creation
|
|
File watching scripts source dir
|
|
Fix STBImage flipping bug (set flag statically)
|
|
Update visuals on pine tree
|
|
|
|
(11/16/2024)
|
|
Mountain generation work
|
|
Implement crafting
|
|
Fix image panel test
|
|
Add explicit kinematic flag in data
|
|
Fix hitbox destruction logic to not double-delete
|
|
|
|
(11/17/2024)
|
|
Mountain generation work
|
|
Fix flickering chunks on unload
|
|
Fix draw cell distance cache busting on far distances
|
|
Fix skybox not updating position with player entity
|
|
Add Scene shorthand for registering runnables as behavior trees
|
|
Re-integrate frame time tracking
|
|
Solve y last in chunkgen to optimize height calc
|
|
|
|
(11/18/2024)
|
|
Defining noise functions in config files
|
|
Invoking noise functions from noise functions
|
|
Voxel and Heightmap generators based on noise functions in files
|
|
Set all client terrain rigid bodies are kinematic
|
|
Add caves
|
|
Tweaking test2 noise definition
|
|
Add sleep to server socket thread
|
|
|
|
(11/19/2024)
|
|
Fix draw cells not deleting once all children have reported generation
|
|
Fix server data cells unloading before ready state
|
|
Fix terrain chunk generation trying to generate rigid body for no-vertex cell
|
|
Fix server homogenous chunk check on generation with variadic weights
|
|
Optimize data passing from voxel rasterizer to model generation
|
|
Vector pooling in transvoxel rasterizer
|
|
Fix invalid normals from transvoxel rasterizer
|
|
|
|
(11/20/2024)
|
|
Design storm engine icon
|
|
Fix edge-polygon generation for invalid cases
|
|
Add engine logo to title menu
|
|
Use STBttf for font loading/remove dependency on java.awt.fonts
|
|
Fix font height lookups in string carousel, text input, and word
|
|
Fix invalid audio source ID bug
|
|
Up threshold on tests for approximate color matching
|
|
Refactor signal service subscription mechanism
|
|
Add main thread signal service
|
|
Fix backing out to main menu
|
|
Refactor ShaderProgram -> VisualShader
|
|
Break out shader uniform setting into shared file
|
|
Fix being able to walk off far side of the world (ie in level editor)
|
|
Fix chunks saving to disk in wrong stride
|
|
Fix server terrain generation lock spinning on loading terrain from disk
|
|
Fix crosshair NPE when camera undefined
|
|
Fix ray casting entity filtering bug
|
|
Fix ClientTerrainManager concurrent editing bug
|
|
Fix point lights not being cleared from buffer after deletion
|
|
Remove point lights from skeleton + human
|
|
|
|
(11/21/2024)
|
|
Change grass texture
|
|
Fix allocations on FoliageChunk child iterations
|
|
Reduce near clip to remove flickering on far chunks
|
|
Complete overhaul of foliage management
|
|
Fix foliage inconsistently placing on varied terrain
|
|
Fix foliage texture wrapping when drawing too many foliage items
|
|
Fix memory management in asset loader for queued assets
|
|
Add functionality for texture freeing from asset manager
|
|
Increase foliage chunk range
|
|
Swtich collision engine to use reentrant lock
|
|
|
|
(11/22/2024)
|
|
Foliage manager non-collision engine height lookups
|
|
Fix foliage manager not respecting graphics settings
|
|
Small noise sampling refactor
|
|
Fix test data for main menu render test
|
|
Change voxel weight reporting from server to align with foliage
|
|
Use jenkins data for unit test temporarily
|
|
Disable tunnel noise to align foliage better + adjust manual value for foliage placement
|
|
|
|
(11/23/2024)
|
|
Clean up top level folder
|
|
Break out dependency documentation into a dedicated file
|
|
|
|
|
|
# TODO
|
|
|
|
|
|
|
|
|
|
Implement gadgets
|
|
- Chemistry System
|
|
- Emitters
|
|
- Subscribers
|
|
- Dedicated collision engine on server
|
|
- Trap
|
|
- Bear
|
|
- Freeze
|
|
- Flame
|
|
- Bomb (to be thrown)
|
|
- Regular (Deals damage, ignites)
|
|
- Air (high push coeff)
|
|
- Flash (dazes)
|
|
- Sleep (puts enemies to sleep)
|
|
- Smoke (creates LOS blockers)
|
|
- Decoy (creates a decoy)
|
|
- Torch
|
|
- Throwable potions
|
|
|
|
Bug Fixes
|
|
- Fix hitbox placement does not scale with entity scale on server
|
|
- Fix not all grass tiles update when updating a nearby voxel (ie it doesn't go into negative coordinates to scan for foliage updates)
|
|
- Calculate bounding sphere for meshes by deforming vertices with bone default pose instead of no bone deform
|
|
- Fix light cluster mapping for foliage shader
|
|
- Fix foliage placement
|
|
- Fix block tree preventing initiating an attack
|
|
- Fix particles not spawning in correct positions
|
|
- Fix flickering when applying yoga signal (may need to rethink arch here)
|
|
- Fix virtual scrollables not working
|
|
|
|
Startup Performance
|
|
- Allow texture map to bind multiple model paths to a single set of mesh->textures
|
|
- Cache texture atlas for terrain
|
|
- Separate thread loads non-critical assets async while on title menu, but blocks main game display until completed
|
|
|
|
Scripting enhancements
|
|
- setTimeout
|
|
- Get marker by entity name/id
|
|
- Play/Stop animations on actors
|
|
- Apply cameras
|
|
- Show/Hide UI
|
|
- Enable/disable controls states
|
|
- Spawn/Destroy entities
|
|
- Ability to define regions in space (ie with entities)
|
|
|
|
Code Generation
|
|
- Generate static "hasXComponent", "getXComponent" functions on sync'd components
|
|
|
|
Rearchitecting
|
|
- Main render is a ui element (that we can have multiple of)
|
|
- Shader handling updates to allow for library based shader compilation
|
|
- Also allow injecting consts from the engine itself (ie max lights is dynamically injected, that way never have to worry about .glsl and .java not aligning)
|
|
- Cache busting for particle atlas cache
|
|
|
|
Code cleanup
|
|
- Rename "BehaviorTree" to be "Component" (what it actually is)
|
|
- Refactor ground movement components
|
|
|
|
Build system to allow specifying certain audio files to load as stereo
|
|
|
|
Rework how chunks are written to disk to make them more cache friendly
|
|
- IE, write consecutively higher LOD levels the further into the file, so that you can read just the first few bytes if its a far away chunk
|
|
|
|
Debug
|
|
- Draw all bones with orientations
|
|
|
|
Biome description enhancements
|
|
- Weather description
|
|
|
|
Would be nice to be able to cut clients that stream their logs to my server
|
|
|
|
Refactor render flags
|
|
|
|
Data Cleanup
|
|
- Clean up creatures
|
|
- Remove unused ones
|
|
- Clean up unused models
|
|
- Clean up textures
|
|
- Move model textures into models
|
|
- Recursive model transform data
|
|
|
|
Clean up Material class
|
|
- fix storing textures in the mat class ( pain :c )
|
|
|
|
Overhaul of 'attach' semantics
|
|
- Having different types of attach tree propagation
|
|
- Ability to turn on/off combinations of models at will (already exists, but needs review)
|
|
|
|
More Debug menus
|
|
- Screen that shows the overall status of draw cell manager
|
|
- Screen that shows the overall status of fluid cell manager
|
|
- Screen that shows the overall status of realm 0
|
|
- Screen that shows the overall status of realm manager
|
|
- Particularly, want a view of all entities in the scene, and the ability to click on a single entity to get an overview of everything on the entity
|
|
- For each behavior tree, ability to click into the tree and view fine details about its state (both pure state variable as well as other relevant variables)
|
|
|
|
Revisit first attempt at instancing (its really laggy lol)
|
|
- Maybe have draw call happen on top level entity and immediately queue all children recursively
|
|
|
|
Shader library system
|
|
- Abiltiy to include the shader library in individual files (ie implement #include)
|
|
|
|
Another pass at grass
|
|
- Multiple foliage models in same cell
|
|
|
|
Build a lod system
|
|
- Could potentially be held at actor level
|
|
- Link different models based on LOD level
|
|
- LOD trees aggressively
|
|
- LOD foliage cells aggressively
|
|
|
|
Refactor attach logic to better encapsulate semantic attachment
|
|
|
|
Light Manager
|
|
- Support "flickering" somehow
|
|
- Eventually support spot lights?
|
|
- Point shadows ???
|
|
|
|
gltf Support
|
|
- Texture loading from gltf file
|
|
|
|
Security
|
|
- FileUtils sanitation function check if requested file is in game root dir
|
|
|
|
Cellular Automata Fluid Dynamics System
|
|
- Advect force
|
|
- Advect density
|
|
- Diffuse density
|
|
- Do not bound to single chunks
|
|
- Only add compression when it starts to become an issue
|
|
|
|
|
|
skybox work
|
|
- make it prettier
|
|
- be able to manage its colors through a clean interface
|
|
|
|
Ray Traced Audio Engine
|
|
|
|
Documentation Pass on as many files as you can stomache
|
|
|
|
Generate Tree Entities
|
|
- Generate stem
|
|
- Ability to specify central stem
|
|
- Cubic function for limb dispersion over length
|
|
- Generate branch starters from trunk that are not full length
|
|
- Have leaves point out of branches at specific angles
|
|
|
|
Foliage Manager upgrades
|
|
- Wind system (environment ubi that defines wind that is lookup'd by individual blades)
|
|
|
|
|
|
Server Micro/Macro transitioning (turning entity into character in macro simulation and vice-versa)
|
|
Macro level content tracker
|
|
- Keep track of chunks that would have trees and include this in the data passed to client
|
|
|
|
|
|
Season tracking
|
|
- Have a concept of seasons as loaded from assets/data
|
|
- Have a season manager that keeps track of seasons at the macro scale
|
|
- Maybe make it per biome or something in data?
|
|
- Create interface for querying and updating season in a given chunk
|
|
- Update foliage system to transition models and colors based on the current season (update maybe every minute in game or something?)
|
|
|
|
|
|
Weather tracking
|
|
- Keeps track at macro level of wind direction and level
|
|
- Keeps track at macro level of cloud coverage and structure (ie transmits same cloud to client as server)
|
|
- Keeps track at macro level of temperature
|
|
- Keeps track at macro level of precipitation
|
|
|
|
Environmental Audio Service
|
|
- Tracks characteristics about surroundings to determine looping audio to play
|
|
- Voxels nearby
|
|
- Major entity types nearby
|
|
- Biomes
|
|
|
|
|
|
Color Palette Generator
|
|
|
|
|
|
Foliage Manager upgrades
|
|
- Add wind simulation if relevant
|
|
|
|
|
|
|
|
Server Content Engine
|
|
- On reloading a chunk with macro objects like structures, apply appropriate modifiers to align micro object with macro object
|
|
- EG if a building is damaged in macro simulation, regenerate the micro one to be damaged before marking chunk as valid
|
|
|
|
|
|
Upgrade terrain editing user experience further
|
|
- Leveling tools
|
|
- Lock to axis tools
|
|
- Server validation for client request to change terrain
|
|
|
|
|
|
|
|
|
|
# Ongoing
|
|
|
|
Upgrade terrain generation algorithms
|
|
- This one should be an ongoing process in general as it is a matter of taste
|
|
- Make a route hard coded that throws you straight into a generated world
|
|
- This makes it easier to tweak algo and immediately get results
|
|
|
|
Documentation
|
|
|
|
Test Creation
|
|
|
|
|
|
|
|
|
|
|
|
# Eventually
|
|
|
|
Procedural Cliff Texture
|
|
- Uses noise or fractals or something to generate infinite textures in shader
|
|
Loot Generator
|
|
- System that can generate items that would be appropriate reward given some variables
|
|
- ie you tell it 'this is this character's stats, this is the relative level of loot I want to provide'
|
|
- it then searches through the lore to generate appropriate weapons, armor, materials, consumables, etc
|
|
Computational Fluid Dynamics System
|
|
- Basic transparent voxels for fluid
|
|
- Fluid simulation algorithm
|
|
- Vectorize/JNI fluid simulation
|
|
- Separate fluid chunks
|
|
- Networked fluid chunk transportation (including force vectors for generating particles on client)
|
|
- Save fluid chunks
|
|
|
|
|
|
|
|
|
|
Gameplay:
|
|
|
|
- Swordsman with movement abilities
|
|
- Archer with movement abilities
|
|
- Mage with elemental physics based abilities
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# Fun pie in the sky stuff
|
|
Ability to cast spell to extinguish sun, making world permanently dark/night time
|
|
dynamic camp/house system - npcs will gradually join your camp the longer you stay there
|
|
- They also leave to go on quests and missions
|
|
- You see the composition of the camp change over time
|
|
dynamic warfare system
|
|
- Guard towers that need to be captured by factions before enabling assault on real settlements
|
|
- Raids against villages
|
|
|
|
|
|
|
|
|
|
|
|
# Known bugs
|
|
- Draw cell manager iso values dont make sense and should scale empty cells based on neighbor cells
|
|
- Draw cell manager logic doesn't fill in border cells properly (the logic to check if a border cell exists always succeeds as long as the potential location is within world bounds, not if it actually exists in cache)
|
|
- Control handler re-polls for mouse coordiantes for each control handler group it processes, so only the first group gets the mouse movement event properly |