Some checks failed
studiorailgun/Renderer/pipeline/head There was a failure building this commit
2385 lines
78 KiB
Markdown
2385 lines
78 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
|
|
Fix terrain editing
|
|
Fix foliage not updating at edited chunk
|
|
Dedicated control for opening crafting
|
|
Break out network imgui debug window
|
|
Move text files to documentation pages
|
|
1000th commit milestone!
|
|
Pine tree collidables
|
|
Fix human animation bad data
|
|
Fix script entity spawn utils not spawning on max cursor distance
|
|
Block mesh generation
|
|
Add asset manager support for queueing models asynchronously w/ promised path
|
|
Add promised path support to queued textures
|
|
Code formatting on queued asset classes
|
|
Refactoring server side of terrain management
|
|
Add server manager for block chunk data & management
|
|
Add endpoint to request strided block data
|
|
Add client side handling of block endpoint
|
|
Add server-driven block rasterizer with LOD
|
|
Convert PhysicsEntityUtils to use generic interface to load tri geom rigid bodies
|
|
|
|
(11/24/2024)
|
|
Fix winding order on block meshes
|
|
Add texture atlasing to blocks
|
|
|
|
(11/25/2024)
|
|
Remove unused import
|
|
Geometry mesh generation class
|
|
Cloud shader
|
|
VisualShader refactoring
|
|
VisualShader #include macro implementation
|
|
Fix particles not spawning in correct positions
|
|
|
|
(11/28/2024)
|
|
Fix block not firing
|
|
Fix reentrant locking bug
|
|
Convert server physics cell generation to executor service
|
|
Simplifying physics cases
|
|
Allow variable collision bits for collidable entities
|
|
Autodisable terrain colliders
|
|
Lower grass radius
|
|
Work on diagnosing data cell misalignment with entities
|
|
Fix gridded data cell manager loops iterating incorrectly
|
|
Implement multi-biome sampling for surface heightmap
|
|
Nearest biome sampling for content generation
|
|
Fix recursive delete not actually recursing
|
|
Add floor voxel type
|
|
Singleplayer menu layout work
|
|
Remove explicit garbage collection call
|
|
Actor panel additional functionality
|
|
Better style for character creation menu
|
|
Fix AABB calculation from assimp-loaded models
|
|
Fix singleplayer launching at all
|
|
Store characters in database
|
|
Spawn characters from database
|
|
Fluid spawning item
|
|
Fix fluid shader
|
|
Re-enable fluid simulation
|
|
Remove concurrent datastructure usage in cell management
|
|
Auto close prepared queries that are iterated over
|
|
Fix viewport loading
|
|
|
|
(11/30/2024)
|
|
Water spawner firing on repeat
|
|
Convert server side fluid storage to using buffers
|
|
Move cellular automata simulator package
|
|
Update fluid chunk dimensions to correspond with C code
|
|
Update release build system to include shared libraries
|
|
Break out solver consts
|
|
|
|
(12/01/2024)
|
|
Move header file generation location
|
|
Add more debugging tools for fluids
|
|
Remove conditional update check in fluid sim
|
|
Explicit memory management of fluid chunk cache buffers
|
|
Fix GriddedDataCellManager memory leak caused by physics and ConcurrentHashMap
|
|
Fix fluid sim null pointer bug with unallocated chunks
|
|
Fix fluid sim NP bug with skipped chunks
|
|
Fix fluid chunk indexing from java side
|
|
Memory pooling for chunk buffer allocations
|
|
Server homogenous fluid chunk declarations
|
|
Unsleeping fluid chunks on edit
|
|
Conditionally rasterize fluid chunks based on homogeneity
|
|
Awake fluid chunks based on neighbor state
|
|
Fluid chunk conditionally send update based on sleep status
|
|
Fluid simulation normalization ratio
|
|
Stabilized static liquids
|
|
Integrate CMake + Ninja
|
|
|
|
(12/02/2024)
|
|
Add testing to native code side
|
|
Add native testing step to jenkins pipeline
|
|
|
|
(12/03/2024)
|
|
Native code building correctly in jenkins pipeline
|
|
Refactoring native code
|
|
Fix gravity tree not deactivating when body is disabled
|
|
Refactoring world menu generators into dedicated class
|
|
Fix single player loading
|
|
Spawn player in center of single player world
|
|
Elevation fix + use correct voxel generation in SP worlds
|
|
Fix cache key collision bug
|
|
Fix homogenous flagging on cell managers
|
|
Fix more cache key collision cases
|
|
Store terrain chunk files in dedicated folder
|
|
Start to standardize on doubles for positional data
|
|
Fix placing character at end of world bounds
|
|
Bump ode4j version
|
|
Small collision engine code formatting
|
|
|
|
(12/04/2024)
|
|
Fix testing apparatus for native code on windows
|
|
Fix doxygen also pointing at native code lib folder
|
|
|
|
(12/06/2024)
|
|
Fix arena loading
|
|
Refactoring fluid sim code
|
|
Refactoring fluid sim headers
|
|
Refactor native test code under src/test
|
|
More test file refactoring
|
|
Native fluid chunk dispatcher
|
|
Dedicated native fluid simulator
|
|
Define cellular simulator
|
|
Fix fluid dispatcher array deref
|
|
Bounds array allocation
|
|
Store world pos on native side
|
|
Native bounds solver
|
|
Fix cellular sim bounds check
|
|
Add hard walls to bounds solver
|
|
|
|
(12/07/2024)
|
|
Cellular bounds transfer properly
|
|
Fluid chunk terrain bounds transfer
|
|
Cellular transfer behavior work
|
|
Native math utils
|
|
Frame tracking on native side
|
|
Fix memory leak in client fluid data chunks
|
|
Work on cellular sim determinism
|
|
More cellular determinism verification
|
|
reintroduce sleeping code
|
|
Cellular bounds desync fixes
|
|
|
|
(12/08/2024)
|
|
cellular stability work
|
|
|
|
(12/09/2024)
|
|
cellular stability work
|
|
Add grid2 sim files
|
|
grid2 functioning + lots of tests
|
|
multigrid implementation
|
|
|
|
(12/10/2024)
|
|
Implement conjugate gradient solver
|
|
Fix density advection dx being wrong
|
|
Update gravity const
|
|
Add bounds setting to velocity projection
|
|
|
|
(12/11/2024)
|
|
Fix multigrid solver
|
|
Fix conjugate gradient solver
|
|
grid2 starting to look realtime!
|
|
|
|
(12/12/2024)
|
|
Pass environment data through grid2 solver
|
|
Save assembly on compile
|
|
|
|
(01/24/2025)
|
|
Delete old server physics cell on terrain edit
|
|
Fix server terrain physics entity positioning
|
|
Disable client fluid draw cell loading gate
|
|
Properly differentiate local/world bone attach point calculation
|
|
Floating origin implementation for collision engine
|
|
Improve initial asset loading performance
|
|
PoseModel creation for basic shape types
|
|
Procedural block item types
|
|
|
|
(01/25/2025)
|
|
Update flush method in tests to account for faster loading
|
|
Allow pre-setting queued asset path
|
|
Fix asset manager texture queueing (was not pushing queued textures into loaded texture map)
|
|
Model for single block (hooked up to item as well)
|
|
Single block model custom shader
|
|
Data-defined actor per-mesh uniform overrides
|
|
Proper textures on each block item
|
|
|
|
(03/06/2025)
|
|
Fix bugs with block chunks not being marked as non-homogenous after editing
|
|
|
|
(03/24/2025)
|
|
Fix entity swap button resetting position
|
|
|
|
(03/26/2025)
|
|
Fix block meshgen not incrementing indices correctly
|
|
Fix block meshgen algorithm iteration bug
|
|
Add debug control to swap first/third person
|
|
Setup scaffolding for drag-and-drop asset handling
|
|
Editor mode asset file drag and drop
|
|
Editor mode pauses simulation
|
|
Tabs for editor view
|
|
ImGui drag-and-drop into viewport functionality
|
|
Normalized mouse pos lookup function
|
|
|
|
(03/27/2025)
|
|
Disable fluid sim for performance
|
|
Increase fall delay
|
|
Rearchitect foliage rendering to combat grass pop-in/pop-out
|
|
Increase sim range to fight game object pop-in
|
|
Filter select-able saves on singleplayer screen to full game saves
|
|
Increase number of invalid openAL IDs
|
|
Fix audio engine not cleaning up audio sources
|
|
More accurate block test types
|
|
Block meshgen work
|
|
Delete deprecated foliage manager
|
|
Title menu navigation work
|
|
Fix UI Testing debug menu
|
|
Fix orphan tooltips from inventory screen
|
|
Code formatting
|
|
File-controlled foliage coloration
|
|
Fix TextureInstancedActor packing data texture incorrectly (column major instead of row major)
|
|
|
|
(03/28/2025)
|
|
Grass height variance with control from ui + file
|
|
Fix block mesh ray casting bug due to trimesh overlap
|
|
Fix block mesh samplers incorrectly buffering
|
|
Fix block mesh gen algorithm merging quads incorrectly
|
|
Make HitboxManager threadsafe
|
|
Don't simulate extra frames if we're taking too much time
|
|
Fluid sim toggle on client side
|
|
Lower duplicate physics frame count
|
|
Various code cleanup
|
|
Stop sleeping during high frame time
|
|
Actor bone spatial data caching for performance
|
|
Volumetric pipeline optimization
|
|
Collidable tree simplification
|
|
Near collision callback streamlining
|
|
Reduced mid-range chunk LOD
|
|
MicroSimulation performance checks
|
|
Small hitbox collection optimization
|
|
Remove excess collision call on client
|
|
Move profiler logging
|
|
Disable kinematic colliders on creation
|
|
MainContentPipeline reduce allocations
|
|
Move AI simulation to server level from chunk level
|
|
|
|
(03/29/2025)
|
|
Optimize ray casting near callback
|
|
Chunk file operation threadsafing
|
|
Multithread entity creation on server cell creation
|
|
Network message object pooling
|
|
Threadsafe EntityDataCellMapper
|
|
Code cleanup
|
|
Small ServerAttackTree fix (for when not holding an item)
|
|
Work on optimization
|
|
|
|
(03/30/2025)
|
|
Reorganizing terrain data
|
|
ServerGroundMovementTree concurrent modify fix
|
|
TransvoxelModelGeneration allocation reduction
|
|
More allocation reduction
|
|
Vector pooling
|
|
Simplify WorldOctTree to reduce lag with large node counts
|
|
Increase memory allowance, mostly fixed latency while walking around
|
|
AssetManager streaming budget
|
|
Better chunk position hashing algo
|
|
Hills generator work
|
|
Fix foliage manager and cells confusing worldpos and absolutevoxelpos
|
|
Farther draw radius
|
|
|
|
(03/31/2025)
|
|
HillsGen visuals work
|
|
|
|
(04/01/2025)
|
|
Falling min frames to activate increased
|
|
Reorganizing world creation ui file
|
|
UI panel work
|
|
World creation options work
|
|
|
|
(04/02/2025)
|
|
Homogenous worlds actually generate-able
|
|
Two EXCELLENT rock textures
|
|
Fix rock2 texture
|
|
biome floor elements controlling noise generator's voxel selection
|
|
Plains (rock) biome
|
|
Lore message resend from client on failure
|
|
More surface selection work
|
|
Noise control from biome definition
|
|
|
|
(04/03/2025)
|
|
Add rock and stick items
|
|
Update ServerEntityUtils.repositionEntityRecursive behavior
|
|
Add bush entity
|
|
Add bushes to forest biome
|
|
Make foliage data files recursive
|
|
Fix bug with toolbar not unequipping items when moving to empty slot
|
|
Break out interaction ray casting into dedicated collision engine object
|
|
Bush hitbox
|
|
Harvesting interaction happens on server
|
|
Fix PoseActor position/rotation caching bug
|
|
Bush drops sticks
|
|
Unarmed combat
|
|
|
|
(04/04/2025)
|
|
GriddedDataCellTrackingData created
|
|
Reduce allocations in GriddedDataCellManager methods that loop cells
|
|
Implement max distance for queueing for simulation
|
|
Client hitbox body destruction based on distance from player (for performance)
|
|
ServerEntityUtils move entity function properly transfers entity tags now
|
|
Fix ServerAttackTree freezing bug
|
|
Fix visually attaching item on server creating item at 0,0,0 on init (thereby creating a new datacell if its not nearby)
|
|
Fix test failure debug render writing to file
|
|
Recursive recipe data files
|
|
ServerEntityUtils recursive move function potential bugfix
|
|
Harvest bushes kills them
|
|
Fix harvest interaction targeting client player entity on server side
|
|
Static rocks which harvest into rock items that spawn in forest
|
|
|
|
(04/05/2025)
|
|
Stone Axe item
|
|
Fix human data for RH sword slash attack moves
|
|
Cursor only for specific items
|
|
Added shovel (works inversely of how you would expect currently)
|
|
Script cache busting on file modification
|
|
Block cursor
|
|
Rename editor enum to prevent type conflict
|
|
|
|
(04/10/2025)
|
|
UI work
|
|
|
|
(04/11/2025)
|
|
Fixing text input spacing (padding was taking up all of height)
|
|
|
|
(04/13/2025)
|
|
Transparency support for component decorations
|
|
Cloth sack model
|
|
Pickaxe model
|
|
More rock models
|
|
Voxel type work
|
|
|
|
(04/14/2025)
|
|
Inventory sounds for some materials
|
|
Inventory audio work
|
|
Comment out script engine file watching for testing purposes
|
|
Crafting panel recipe filtering by tag
|
|
Stone Axe crafting
|
|
ClientSynchronizationManager null tree fix
|
|
Update ui test data
|
|
Fix playerless scene updates
|
|
More tool recipes
|
|
UI test data fixes
|
|
|
|
(04/15/2025)
|
|
Cull unused assets
|
|
Update default texture
|
|
Sound effect on swinging fists/weapons
|
|
Queue loading audio file on creating virtual spatial source
|
|
Scaffold grid alignment data for entities
|
|
Remove old title menu items
|
|
Fix first person tree animation not nullchecking
|
|
Fix yoga not applying on item drop window creation
|
|
Fix client not destroying item on remove from inventory
|
|
Tests for above bugs
|
|
Fix rendering 3rd person model-attached entities drawing when in first person
|
|
fix database handling REAL type
|
|
CharacterService first implementation (abstracts away database calls from functions)
|
|
Store player entity position on save
|
|
Cull old SQL
|
|
Clarify content serialization pipelines for character vs non-character entities
|
|
Server send disconnect packet on disconnection
|
|
Associate each server connection with a character ID
|
|
Code cleanup
|
|
Fix dig script function
|
|
Fix shovel functionality
|
|
Terrain editing/saving work
|
|
|
|
(04/16/2025)
|
|
Refactoring server classes under physics package
|
|
Refactoring server classes under entity package
|
|
Refactoring server macro data classes
|
|
Refactoring some macro classes
|
|
Fix native code linking after refactoring
|
|
Obliterate old navmesh/pathfinding code
|
|
Integrate recast4j as pathfinding source
|
|
GriddedDataCellManager pathfinding solution
|
|
ServerTerrainManager nullcheck fix
|
|
Fix nav mesh construction params
|
|
|
|
(04/24/2025)
|
|
GriddedDataCellManager debugging tools
|
|
NavMesh bugfix
|
|
Fix jump trees not enabling physics body
|
|
Priority based foliage content placement
|
|
Hide cursor by default
|
|
|
|
(04/25/2025)
|
|
Macro data unloading/loading
|
|
Macro Character data serialization/deserialization
|
|
Macro character compression/decompression on chunk load/unload
|
|
ServerWorldData conversion methods are static now
|
|
Fix character data serialization only serializing dataType
|
|
Potential fix for realm undefined for server terrain physics entity
|
|
Fix macro character entities not being assigned ServerCharacterData
|
|
Audio on placing blocks
|
|
Audio on placing/removing voxels
|
|
Debounce item usage activations
|
|
Variable block editing size
|
|
Increase block cursor size
|
|
Block area selection
|
|
|
|
(04/26/2025)
|
|
Exporting block prefabs to compressed files
|
|
Minor block fab improvements
|
|
Fab selection tool
|
|
Fab selection tool actually loads fab files
|
|
Fix fab file reading
|
|
Fab tool can show transparent, loaded version of fab file
|
|
Interaction target tooltip at top of window
|
|
Interaction target tooltip shows entity target, voxel targets
|
|
Fix bug where inventory items aren't destroying physics on server
|
|
Align voxel lookups for movement audio and interaction targeting
|
|
Align block lookups for interaction targeting
|
|
Cursor logic around blocks
|
|
Block destruction work
|
|
Block cursor custom textures
|
|
New block type
|
|
Fix inventory item tooltip not clearing
|
|
More item icons
|
|
Toolbar preview ui element
|
|
Fab tool can place fabs
|
|
Fix block items not having texture
|
|
Disable failing ui tests
|
|
Pine trees drop wood blocks
|
|
More block types
|
|
Transparent blocks
|
|
Fix block meshgen
|
|
|
|
(04/27/2025)
|
|
Fab cursor rotation + actually place rotated fab
|
|
Fix terrain and blocks not saving/loading to/from disk
|
|
Fix swapping to/from editor entity in main game mode
|
|
Block cursor work
|
|
ChunkDiskMap code org
|
|
Filter procedural worlds out of level select menu
|
|
|
|
(04/28/2025)
|
|
Area selection utility
|
|
RoomTool item
|
|
Grid alignment actually aligns entity to grid
|
|
|
|
(04/29/2025)
|
|
Fix door tree physics
|
|
BlockFab metadata
|
|
Structure editing tab in editor view
|
|
Reduce physics generation calls on GriddedDataCellManager
|
|
Fab selection doesn't overflow anymore
|
|
Cleaning up parts of Main class
|
|
Spawn test structure in macro data on creation
|
|
Macro data structures block regular foliage generation
|
|
ServerBlockManager places macro data structures when generating chunks that contain them
|
|
Fix life trees creating state items when trees undefined in data
|
|
Unhashing ivec hashed keys in chunk caches
|
|
Unit tests for unhash func
|
|
Filter client entity list to terrain
|
|
Fix server loading full res chunks from disk as strided chunks
|
|
Debugging tooling for foliage manager
|
|
Refactor ProceduralChunkGenerator
|
|
NoiseVoxelGen work to make elevation values align with voxel values that are generated
|
|
Non-procedural voxel generation fix
|
|
Flower foliage item
|
|
Texture loading from model files (ie can load texture path from model file)
|
|
Clean up material class a bit
|
|
Cleaning up dead code
|
|
Fab items
|
|
Items keep charge state
|
|
UI renders charge state
|
|
Item stacking
|
|
|
|
(04/30/2025)
|
|
Voxel placement improvements
|
|
Smaller wall section
|
|
First proper house~!
|
|
Rect area selection expands each axis independently
|
|
Control to toggle mouse release (ie for eventual on-screen controls)
|
|
Undo state transition "fix" that broke harvest interaction
|
|
Undo voxel "fix" that messed up terrain smooth transitions
|
|
Craftable wooden floor fab
|
|
Using up charges destroys the item (including toolbar instances)
|
|
Crafting can consume charges
|
|
Products from crafting can add charges to existing items
|
|
Cache busting when physics sync pulls player entity TELEPORT distances
|
|
Lotta inventory work to bugfix charges, crafting, in-inventory items, etc
|
|
Collapse client hooks for item usage into main itemusage class
|
|
Debounce fab placement
|
|
Blocks stack
|
|
Item tag adjustments
|
|
Pine tree loot pool update
|
|
DB characters store toolbar items
|
|
Scaffolding for new macro-cognizating ai approach
|
|
AI work
|
|
|
|
(05/01/2025)
|
|
Many new AI behaviors
|
|
- AI can seek out items
|
|
- AI can harvest entities
|
|
- AI can pick up items
|
|
- AI can craft
|
|
- AI can equip tools
|
|
- AI can fell trees
|
|
|
|
(05/02/2025)
|
|
New AI behaviors
|
|
- Place block
|
|
- Build structure
|
|
- Stops targeting trees if they're dead
|
|
Fix bug where sync messages eternally bounce if the entity was already deleted
|
|
Fix blocks not saving to disk when being ejected from cache
|
|
Block chunk memory pooling
|
|
Rename MoveToTree
|
|
Major pathfinding work -- breaking MoteToTree
|
|
Pathfinding tiling work
|
|
Refactor recast pathfinding classes
|
|
|
|
(05/03/2025)
|
|
Fix voxel pathfinding logic
|
|
Remove several usages of concurrent datastructures
|
|
Fix block chunk data allocation explosion
|
|
Fix pathfinding voxel hashing calculating
|
|
|
|
(05/04/2025)
|
|
Path to nearest valid voxel instead of a non-walkable voxel
|
|
Blocks factor into voxel pathfinding
|
|
Debugging pathfinding code
|
|
New AI behaviors
|
|
- Will explore for resources if local ones aren't available
|
|
Async pathfinding
|
|
Fix interaction engine not properly destroying interaction data
|
|
ClientSynchronizationManager does not store deleted entity IDs forever
|
|
ClientSynchronizationManager un-deleted entity IDs when client receives creation message for an entity that was deleted
|
|
MoveTo tree doesn't overwrite published status
|
|
Fix AIManager.shutdown call not null checking
|
|
Small explore node height offset
|
|
Terrain items
|
|
Digging produces terrain item form
|
|
Terrain items can be placed to place terrain
|
|
Recipe adjustment + voxel work
|
|
Recursive recipe item sourcing solver that keeps searching if a recipe fails to source
|
|
Block pathing work
|
|
|
|
(05/05/2025)
|
|
Scaffolding for structure scanning service
|
|
Add JSoup dependency
|
|
Proof of concept of loading html to define ui
|
|
Styling support for html-defined menus
|
|
Dynamic html-defined menus support button elements that call a client hook when clicked
|
|
Dynamic menu navigation between windows
|
|
Starting formatting npc intro page
|
|
Code cleanup
|
|
More code cleanup
|
|
Cleanup some TODOs
|
|
|
|
(05/06/2025)
|
|
Refactor block actions
|
|
Placing fabs/blocks triggers structure scanning service
|
|
Try closing ai manager threads on engine close
|
|
Ability to explicitly spawn new characters into macro data and have them then spawn into world
|
|
|
|
(05/10/2025)
|
|
Debug ability to send characters off map
|
|
More windows for debugging work
|
|
GriddedDataCellManager simulates cells that contain creatures
|
|
Characters can pursue goal to leave sim range and the real entity is unloaded when they leave range
|
|
Move all character to database instead of macro data object
|
|
Major work on CharacterService
|
|
Move character utils classe to macro data
|
|
Move CharacterService to service package
|
|
Convert character service to singleton
|
|
Start moving character goal logic from behavior trees to macro level simulation
|
|
Goal macro data work
|
|
Shuffle where macro data is stored
|
|
Structures are stored in character data as IDs into macro data now
|
|
Item acquisition tree can be triggered by setting macro goal correctly
|
|
Macro sim triggers character to try to get mats to build structure
|
|
|
|
(05/11/2025)
|
|
Fix inventory handling in creature templates
|
|
Fix character data associated ids serialization bug
|
|
Block generation doesn't generate structures that are repairable
|
|
Fix character template inventory not clearing
|
|
Character data tracks associated player id
|
|
Player characters not simulated at macro level
|
|
Macro simulation inventory utilities
|
|
Build structure goal properly working from macro sim
|
|
Repairability check when repairing structure
|
|
Fix viewport loading
|
|
Database warning handling
|
|
In memory database support
|
|
Fix test utils creating characters
|
|
Fix server simulation starting prior to database connection
|
|
Scaffolding macro character simulation
|
|
Fix block generation thread filtering repairable structures
|
|
Catch errors in pathfinding threads
|
|
Remove old data classes
|
|
Update default block cursor size
|
|
Creature template -> object template
|
|
Fix foliage saving seed to template
|
|
Scaffolding growing component
|
|
|
|
(05/13/2025)
|
|
Fix character bug with loading into level
|
|
Multiple loot pool support
|
|
Crops replace loot pool on completion of growth
|
|
Display name for all common entity data
|
|
Enitity id collision validation
|
|
Full-sized wheat plants spawn in forest now
|
|
Natural inventory size explicitly defined in data
|
|
Fix server life tree missing nullcheck
|
|
Inventory interaction type
|
|
Debug ui for natural inventory on entity view
|
|
Can open ui menu to view inventories of other entities on client
|
|
Fix windows not resizing internal framebuffer when yoga changes their dimensions
|
|
Inventory window max width
|
|
Natural inventory panel wraps on width limit
|
|
Fix target inventory window clearing
|
|
Non-ideal implementation of multiple inventory windows drawing at once
|
|
Inventory packet for unified item transform requests from client
|
|
Server inventory utility for unified item transform requests
|
|
Toolbar ui uses unified item transfer flow
|
|
New inventory packet types
|
|
Unified container movement utils
|
|
|
|
(05/14/2025)
|
|
Break up InventoryUtils class
|
|
Update inventory utility logic
|
|
Fix styling for inventory panel ui element
|
|
Fix content serialization bug with attached items
|
|
Fix playing audio without item defined in natural inventory panel
|
|
Fix window framebuffer scrunching bug
|
|
Recipes for spawn items defined in parent entity
|
|
Spawn items have stack/charge
|
|
Spawn items respect charge state
|
|
Chest furniture
|
|
Interaction editing debug menu
|
|
Fix chest physics&interaction data
|
|
Break out collidable template edit into dedicated component
|
|
Fix virtual scrollable
|
|
Fix engine not closing when X button is hit on main menu
|
|
Sorting imgui debug windows
|
|
Grid alignment cursor
|
|
Furniture spawner items triggers grid alignment cursor
|
|
Grid aligned entity work
|
|
Grid alignment visualization work
|
|
Move around entity debug tab classes
|
|
Grid alignment data editing in debug menus
|
|
Grid alignment offsets work
|
|
Inventory state in non-creatures actually saves/loads to/from disk
|
|
Fix virtual scrollable mouse alignment for events
|
|
Remove warnings for fast loading
|
|
Work on debugging framebuffers
|
|
Work to unify opengl error reporting
|
|
|
|
(05/15/2025)
|
|
Explicitly scream if trying to bind a shader that is invalid
|
|
Support for freeing shaders
|
|
Utilities to free all of a type of resource
|
|
Slowdown entity tests to prevent VSCode from exploding when running tests
|
|
Fix static state caching between tests in visual shader construction
|
|
Safe executor service creation in non final static contexts
|
|
Fix reloading client world repeatedly
|
|
AI manager thread safeing
|
|
AI manager better error handling
|
|
Delete deprecated classes
|
|
Create ClientState global
|
|
Properly reset ClientState
|
|
Move clientWorldData to clientState
|
|
Move clientScene to clientState
|
|
Move clientSceneWrapper to clientState
|
|
Move clientConnection to clientState
|
|
Move playerEntity to clientState
|
|
Move playerCamera to clientState
|
|
Move global cursor entities into cursorState
|
|
Move lots of global state to clientState
|
|
Create ServerState global
|
|
Move realmManager to serverState
|
|
Move characterService to serverState
|
|
Move entityValueTrackingService to serverState
|
|
Move playerManager to serverState
|
|
Create EngineState global
|
|
Move threadManager into engineState
|
|
Move serviceManager into engineState
|
|
Move timeKeeper into engineState
|
|
Move signalSystem into engineState
|
|
Move some global state into rendering engine
|
|
Push settings into config variable
|
|
Move window pointer into rendering engine
|
|
Move microSimulation into serverState
|
|
Move fluidCellManager into clientState
|
|
Move engine flags under engineState
|
|
Move rendering flags under renderingEngine
|
|
Move database connection into serverState
|
|
Move more services into engineState
|
|
Room tool functionality scaffolding
|
|
Load main level only loads human now
|
|
Human uses capsule collidable
|
|
Physics debug render renders capsules
|
|
Fix virtual scrollable working with certain panels
|
|
Humans use capsule shape now
|
|
Physics numbers reworked
|
|
|
|
(05/16/2025)
|
|
Capsule-BlockChunk collision correction in collidable trees
|
|
Out-of-context typescript compilation that falls back to in-context compilation
|
|
Fix opengl bug
|
|
Fix typescript out-of-context compilation caching
|
|
Script recompilation work
|
|
HTML-defined buttons now directly eval in the js context instead of going through hook manager
|
|
Fix caching with deleted source files
|
|
Proof of concept of ui button calling engine code
|
|
Script engine direct access to joml vectors
|
|
Script engine passing objects back into methods successfully
|
|
Room detection within structures
|
|
Structure metadata organization
|
|
Break out room solver
|
|
Solve for entrypoints to room
|
|
Render entrypoints to current structure data rooms
|
|
Solve for entrypoints into room
|
|
Filter room solver to only include rooms that are enter-able
|
|
|
|
(05/18/2025)
|
|
Solve for furniture placement inside rectangular rooms
|
|
Visualize furniture placement slots
|
|
AssetDataStrings work
|
|
Invert rotation calculation for fab cursor
|
|
BlockFab io work
|
|
File dialog support
|
|
Editor structure tab uses file dialog to save fabs
|
|
Config saving
|
|
Structure data saving
|
|
Validate race data
|
|
Shuffle entity data package
|
|
Rename structure -> virtualstructure
|
|
Update hometown storage on characters
|
|
Filter test scenes out of level selection
|
|
Visualize interaction engine collidables
|
|
AIs build structures based on their character's race
|
|
Scaffolding jobs assigned by town to characters
|
|
Fix character position not saving on creating a player's character for the first time
|
|
Server utility to move entities scans to see if it needs to create macro data if moving a player's entity
|
|
Road macro data generation
|
|
Macro data is injected into voxel chunk generators
|
|
Close macro objects injected into voxel chunk gen instead of all data
|
|
Fix spline3d mat storing calculations when getting positions
|
|
Roads applied to terrain voxel gen
|
|
Support lack of macro data for chunk gens
|
|
Support multichunk select all blocks
|
|
More block types
|
|
New door furniture item
|
|
Commenting rendering classes
|
|
Convert Mesh.java to only use GL45
|
|
Material and Mesh cleanup work
|
|
Texture class cleanup work
|
|
OS data wrapper
|
|
Renderer code cleanup
|
|
|
|
(05/19/2025)
|
|
Renderer code cleanup
|
|
Shader uniform parsing from source code
|
|
Visual shader uniform location caching
|
|
Remove old uniforms from shaders and code to push uniforms
|
|
Break out shader material into dedicated library file
|
|
Materials read some properties from assimp data
|
|
OpenGLState VAO caching
|
|
Ambient light sent in dedicated variable to shader
|
|
Major lighting shader organization rework
|
|
Material albedo work
|
|
Editor entities don't use charges on placing blocks
|
|
Overhaul material loading - uses queued textures now
|
|
Transparent block support
|
|
Grab hardware data on init rendering engine
|
|
Delete unused class
|
|
|
|
(05/20/2025)
|
|
Calculate road-interection nodes for town layout
|
|
Place roads using line segments instead of splines
|
|
Town layout tries to connect intersection nodes with roads
|
|
Macro area objects don't store start/end bounds separate from aabb anymore
|
|
Unify functions to fetch/generate chunks on server
|
|
Macro data blocks terrain and block generation until it is ready
|
|
Content generation blocks for macro data generation
|
|
Roads block content generation
|
|
Properly layout roads along town points in TownLayout
|
|
Town generates a structure -- scaffolding for doing it across roads
|
|
Structures create foundations in terrain voxels
|
|
Place buildings along roads
|
|
Fix town placement structure-road intersection test
|
|
|
|
|
|
(05/21/2025)
|
|
Kinematic collision templates now use geoms instead of setting kinematic (on client)
|
|
Geom-only collidables on server
|
|
|
|
(05/22/2025)
|
|
Block colliders leveraging spaces
|
|
Scene view debug window
|
|
Debug view of entity colliders
|
|
Fix lookup bug in debug physics ui
|
|
Floating point starting to play nice with engine
|
|
Fix geom-body collision sending wrong vector to body
|
|
Per-mesh draw calls in batched static draw calls
|
|
Main content pipeline tracking
|
|
Error checking on mesh rendering (making sure not trying to draw 0-element meshes)
|
|
Fix generating rendering geometry for blocks/terrain with 0 elements
|
|
GriddedDataCellManager filtering optimization
|
|
StandardUniformManager implementation
|
|
Small fixes
|
|
|
|
(05/23/2025)
|
|
Town layout work
|
|
Macro broadphase filters prior to per-voxel macro data intersection checks
|
|
Block chunks properly stride
|
|
|
|
(05/24/2025)
|
|
Work on rotating structures
|
|
Towns spawn a population of characters when they are max-res'd
|
|
Hitbox synchronization work
|
|
LOD emitter service
|
|
LOD component that destroys far-away physics
|
|
visually LOD far away models support
|
|
Profiler work
|
|
Thread manager dispatching futures service
|
|
Bump LWJGL version 3.3.3 -> 3.3.6
|
|
Performance improvements
|
|
- Block entities are back to using same mesh for all blocks, will eventually just have closest ones ONLY on client use multi-mesh
|
|
- Accumulator draw calls do not use bones
|
|
- LOD skipping in realm simulation
|
|
- Shadow map pipeline only considers entities that are nearby
|
|
- Character services references set of already-loaded characters when simulating macro data
|
|
- Normal outline pipeline use draw accumulator
|
|
- Reduced the visual LOD cutoff
|
|
- Multiple visual LOD levels
|
|
- AI does not simulate for low-lod server entities
|
|
- Nearby entity lookup caching per frame
|
|
- Far-away entities do not spawn physics by default
|
|
- Clustering terrain draw calls
|
|
- Reduce allocations in some rendering paths
|
|
- Leverage standard uniforms buffer
|
|
- ShaderUtils memory allocation improvement
|
|
Lod emitter service checker function
|
|
Mesh profiling
|
|
Upgrade target framerate
|
|
|
|
(05/25/2025)
|
|
Flag to enable/disable opengl error checking calls
|
|
Performance improvements
|
|
- Foliage cell quits earlier
|
|
- Behavior tree addition/subtraction from scene optimization
|
|
- Reduce bones on LOD human model
|
|
- Shallow clone on physics cell creation
|
|
- More vector pool usage
|
|
- Model anim calculations no longer allocate new matrix4d's
|
|
- Undo most object pooling
|
|
- ServerBlockChunkDiskMap uses short pool
|
|
- Client leverages block chunk short pool
|
|
- Client doesn't load physics on entities by default
|
|
- Block chunk disk map writes files without allocating a buffer
|
|
- Increase memory limit 6GB->8GB
|
|
- Server block chunk disk map writes directly to output stream instead of inbetween buffer
|
|
- No-allocation block chunk read/write in disk map
|
|
- Fix client collidable memory leak
|
|
Increase human move speed
|
|
LOD components re-attach physics
|
|
VectorPool->JomlPool
|
|
|
|
(05/26/2025)
|
|
Major NetArranger architecture rework
|
|
No allocations on client receiving chunk of blocks or terrain
|
|
Meshgen acceleration structure for block meshgen
|
|
More profiling
|
|
|
|
(05/27/2025)
|
|
QuadMesh memory pooling
|
|
Load characters from save db when re-loading valid save
|
|
Fix memory leaks
|
|
|
|
(05/28/2025)
|
|
Server entities without collidables deactivate gravity trees
|
|
Fix texture map for lod human model
|
|
Properly show loading state when waiting on character list
|
|
Fix standard uniform buffer interaction with actor panel
|
|
Fix foundation generation for structures in chunkgen
|
|
Body synchronization includes enabled state
|
|
Fix upright tree continuously re-enabling bodies
|
|
Fix server collision resolution never triggering for second body
|
|
Fix macro structure rotation generation
|
|
Improvement to building placement math in TownLayout
|
|
Scaffold character job data
|
|
Moving data packages around
|
|
Fix client LOD component re-enabling physics positioning
|
|
Debug rendering of server physics objects
|
|
Server LOD component properly attaches physics bodies when the entity comes in range
|
|
Fix physics destruction on server via ServerLODComponent
|
|
More job data scaffolding
|
|
Config class cleanup
|
|
Fix jobs data, simplify block chunk gen algo
|
|
Convex y-aligned prism intersection checking
|
|
Fix block LOD chunk rendering (scaling not applying)
|
|
Scaffolding for laying out farm plots around towns
|
|
Region interface
|
|
Town layout non-statically generates farm plots
|
|
Y-aligned prism meshgen
|
|
Rendering prism regions
|
|
Utilities for turning mesh gen algos into renderable entities
|
|
Back off farm plots from roads by road radius
|
|
Farm plots properly save/load to/from disk
|
|
Farm plots place dirt
|
|
Farmland voxel type
|
|
Farm plots place farmland
|
|
More verbose loading display
|
|
|
|
(05/29/2025)
|
|
Scaffolding towns and character jobs data
|
|
Properly async-ify inventory/item related tests
|
|
Fix viewport interaction with lod emitter service
|
|
Fix most tests
|
|
Rendering engine legacy code reorganization
|
|
Code cleanup work
|
|
Logging for loading thread failure
|
|
Code cleanup
|
|
More tests
|
|
Move actor masks into dedicated package
|
|
Actor code cleanup
|
|
Refactor animation logic into dedicated actor class
|
|
Simplify draw call logic
|
|
Error report on window.java
|
|
Delete ActorShaderMask
|
|
Fix string carousels
|
|
Fix sprint animation data
|
|
Color uniform on meshes
|
|
Fall and gravity tree fixes
|
|
Potential window fix
|
|
Sprinting/physics work
|
|
|
|
(05/30/2025)
|
|
Reorganizing macro classes
|
|
Start work on macro pathfinding storage
|
|
Town constructs nav graph of road nodes
|
|
Render pathing nodes (still needs some work)
|
|
Pathing construction between town buildings and road nodes
|
|
Pathing construction for farm plots
|
|
Bounding sphere work
|
|
Don't allocate contact joints for geom-geom
|
|
Remove potential collision engine footgun
|
|
Synchronized time-of-day between server and client
|
|
Skybox reflects time of day
|
|
Standardize data sourcing in MacroTemporalData
|
|
Macro pathfinding scaffolding
|
|
Macro pathfinding work
|
|
Actual macro pathfinding implementation
|
|
Enable AI for low-lod entities
|
|
Fix draw cell manager test
|
|
|
|
(05/31/2025)
|
|
Error logging in entity-character assignment
|
|
Potential fix for macro pathing continuous loop
|
|
Unit test for generating a world
|
|
TownLayout test
|
|
Macro pathing test
|
|
Actually fix pathing spinlock
|
|
Support for observing ai entities
|
|
ServerGroundMovementTree supports collidable entities
|
|
ServerGroundMovementTree geom work
|
|
ServerLODComponent replaces bodies with geometries instead of just destroying the geometries
|
|
|
|
(06/01/2025 - 06/04/2025)
|
|
Fix rebase world origin routine
|
|
Non-rigid-body collidables behave as expected
|
|
Fix physics performance issues
|
|
|
|
(06/04/2025)
|
|
ServerGroundMovementTree actually moves collidable-based entities
|
|
Client uses non-rigid-body collidables for farther away entities (via client LOD tree)
|
|
Reorder main content draw calls to support non-OIT transparencies better
|
|
Content debug supports rendering paths
|
|
Rendering ai pathfinding paths
|
|
Simplify part of transvoxel algo
|
|
Work on repairing particle system
|
|
Fix projection matrix being sent to light manager
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# TODO
|
|
|
|
|
|
|
|
High level netcode gen needs to send packets to containing player of inventory items
|
|
|
|
|
|
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
|
|
|
|
Floating world origin
|
|
- Better criteria to update floating world origin in collision engine (can't run every frame cause very very expensive, but need to periodically check so it doesn't become irrelevant)
|
|
- Separately simulated regions of physics that dynamically merge/unmerge based on chunk loading
|
|
|
|
Bug Fixes
|
|
- Fix hitbox placement does not scale with entity scale on server
|
|
- 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 flickering when applying yoga signal (may need to rethink arch here)
|
|
- Fix particles not placing correctly on spawning
|
|
|
|
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)
|
|
|
|
Wrapper callback to debounce a function
|
|
- ie, wrap a given block of code with some special functional class
|
|
- the wrapper lets you specify how frequently the code can execute
|
|
|
|
Rearchitecting
|
|
- Main render is a ui element (that we can have multiple of)
|
|
- Shader 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
|
|
- Convert behavior tree nodes to use static evaluation methods instead of constructing objects
|
|
- This will make stepping through the logic for a tree SIGNIFICANTLY more legible with debugger
|
|
|
|
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
|
|
|
|
Another pass at grass
|
|
- Multiple foliage models in same cell
|
|
|
|
Refactor attach logic to better encapsulate semantic attachment
|
|
|
|
Light Manager
|
|
- Support "flickering" somehow
|
|
- Eventually support spot lights?
|
|
- Point shadows ???
|
|
|
|
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
|
|
|
|
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 |