Some checks failed
		
		
	
	studiorailgun/Renderer/pipeline/head There was a failure building this commit
				
			
		
			
				
	
	
		
			2280 lines
		
	
	
		
			74 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			2280 lines
		
	
	
		
			74 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
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| # 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
 | |
| 
 | |
| 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 ???
 | |
| 
 | |
| 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 |