Tried to use Tweakpane Table but it's for an older Tweakpane and couldn't get it working on the new branch either
Looked into making my own Tweakpane Plugin but it seems cumbersome, for now I can get away with just overriding it's inner contents and managing it myself.
Refactoring camera into new Cameras class with separate sub cameras
Implementing orbit control target selections
Todays notes:
32 - Basic Gameplay
Just noticed there's no http server built into dev... never mind it was on https
Exporting a pirate model from Blender, could be good to add a thruster to it..
Never mind it looks wrong aesthetically and the file size is rough
Checking Yuka documentation for what I need to do for basic bot behaviours, looks like the options are quite API-ey so I need to think about what I want first and then figure out what parts of the spec I need to use
Brainstorming bot requirements. There are two sets of bots I want to build at this stage
Freight ships that travel between the structures
Could be fun to make them run away from attack so it's a game of cat and mouse to get ships to their destination
Pirate ships that are trying to raid the freight ships and attack players who approach them
A timer that spawns in the pirates initially and replacements
Randomise the spawn location between a couple of pre-set spots
They should target the nearest freight ship when spawned, fly towards it and begin attack
If a player approaches while they are engaging cargo ships, the player is ignored
If a player attacks them while they are attacking the ships, they switch targets to the player
If they are not near a freighter yet and the player intercepts them they will immediately aggro and target the player
Renaming "Ship" class to Player so that it makes more sense alongside the incoming Bot class
Testing, looks good
Reviewing Yuka documentation, looks like there's quite a lot to do in order to implement the behaviours
Adding the Raven model to the scene within the Bot class
Implementing the Wander steering behaviour so the 3D model just flies around at first
It's moving but very slowly and I can only seem to get it going backwards..
Fixed it up, it needs to be restricted to boundaries somehow
The camera isn't able to track the ship, need to look into that
Checking project board to make sure I don't give myself tasks out of scope, looks good
Finishing off very basic movement AI for enemy bots
Restricting wandering to boundaries... tried to get ChatGPT's help but it has no idea what valid functions are for Yuka, it's hallucinated calls to non existent methods and I'm not sure if it's worth implementing them in case there's a better way to do this within Yuka.
Refactoring my implementation so Entity Manager sits further up in the app
Comparing time module to my delta, looks like I'm sending in the application uptime not a delta... investigating. The animation loop is just passing along currentTime which is passed in by requestAnimationFrame itself.
Trying to use ObstacleAvoidanceBehavior but I'm not sure it's compatible with wandering behavior
Implemented path following and now it seemingly won't need the obstance avoidance, might leave it with this for now
Fixed camera tracking issue, gave it an exemption for the vehicle entity from YUKA
Implementing cargo ship AI so they travel between structures
Reviewing possible improvements to the Bot/Cargo Ship/Player classes topology, but it's a bit unclear what it should be. Maybe "Entity" and "Scenery" at some point?
Adding code from Bot to the cargo ships, it all looks in order but it's not moving
Tried Wanderer Behavior also no go... looks like it was the MatrixAutoUpdate = false requirement, going to have to rememeber that one!
Implementing Overlays class to draw flight related overlays
Adding sensors class with initial hardcoded target of the bot
Having issues accurately scaling the overlay in 3D space, I believe I already have it's coordinates in 2D the issue is that I'm currently drawing a diamond in 3D space.
Trying browser side overlay to see if current 2D coordinates are accurate.. they are!
There's a weird ghost that appears but that's OK.
TODO:
Fix accuracy issues with scanner overlay
Players flight instruments overlay
Comment out current flight instrument and replace with a Tweakpane debug view for now
Thinking about how to do the target list VS locked targets
A table with a list of detected objects plus a list of locked targets like EVE Online would make sense but I don't think the mechanics being the same would make sense
Given players can free fly in Langenium, the target lock should be involve some kind of tracking or flight manouvering.
Refactoring targeting UI to use PUG based templates
Updating distance of targets dynamically
Reducing UI update interval
Tried a refactor of the objects in current scene but the impetus to do so made less and less sense as I went down the rabbit hole so it's been rolled back. Turns out attaching objects to current_scene does make more sense than holding them in memory
Adding cargo ships to targeting scanner UI
Adding new metadata to meshes to track icon lookup keyname and standing with player to determine colour
Tweaking the UI and adding hover effect using CSS
Adding full list of targetable scene objects
Checking how scene overview works, might need to add a flag as I don't want the skybox and other scene objects in the list
Adding a 'targetable' flag to all scene objects
Refactoring the existing Targeting Scanner UI class and templates to be a sub component called Locked alongside List within Targeting.
Functionality needed:
Out of scope:
Acceptance Criteria: