May
Friday 1st
- Finishing April work
- Implemented leaving Unsteam lobby
- todo:
- Leave lobby button
- Indicate over budget
- cost
- mass
- show player in team
- implicit spectator team
- switch teams
- set title text
- choose campaign/scenario
- metadata
- map
- mode
- name
- password
Monday 4th
- Lobby
Invitebutton - Added button to select a random scenario
- Showing lobby title
- Adding IDs to all test campaigns/scenarios/teams
- Adding budgets to all teams
- Ready state
- Per-player indicator
- Toggle ready
- Launch game when ready
- Password
- Button
- Click to show overlay
- dismiss overlay
- Change password
- Set "is password protected" state
Tuesday 5th
- Building application to test through Steam
- Fixing some build errors (editor only stuff)
- Testing
- Launching app hangs for ~5 seconds
- Menu transitions are sluggish?
- Lobby list doesn't show anything
- Steam overlay won't open
- Investigating hang
TMP Parse Text/TryAddCharactertakes all the time- Switching from dynamic to static font asset seems to have fixed it
- Investigating overlay
- Now it works shrug
- Sluggish transitions
- Probably the same font issue
- Testing round 2
- Game won't launch
- Need
steam_appid.txt!
- Need
- Game won't launch
- Refactoring some code into lobby helper methods, simplifying UI code
- Creating script to launch gameplay when everyone is ready
- Right now that's a no-op
- Testing 3
- Leave and rejoin doesn't work
- Definitely rejoin that's broken
- Password text doesn't always auto focus (inconsistent)
- Leave and rejoin doesn't work
Wednesday 6th
- Fixing issues from test yesterday:
- Leave and rejoin:
- Leaving lobby never updated lobby service, so it never knew we left in the first place!
- Password autofocus
- Leave and rejoin:
- Adding tooltip to rank badge
- Started adding UI for selecting fleet
- Creating Dropdown prefab
Thursday 7th
- Fleet selection for player
- Fleet serialisation system
- Loading fleets
- Caching fleets
- Lightweight fleet info (name/description etc without full spec)
- Caching fleet info list
Friday 8th
- Updating to Unity 6.4
- Installing (6000.4.6f1)
- Backup copy (on desktop, Unity 6.3)
- Errors:
- Shapes error
- Fixed by update
- Unified Universal Blur
- Shapes error
- Warnings:
GetInstanceID- Replace with
GetEntityId().GetHashCode()
- Replace with
FindFirstObjectByType- Replace with
FindAnyObjectByType
- Replace with
FindObjectsByType- Replace with
FindObjectsByTypewithout sort param
- Replace with
- Features:
- Enabled direct storage
Saturday 9th - Thursday 14th
- On Holiday!
Friday 15th
- Investigating shader warmup
- Refactoring lobby fleet selection
- Splitting self/other into two behaviours
- Handling spectators properly
- Moving UI (Dropdown) management into one place
- Async loading of fleet listing
- Launching gameplay when all players are ready
- Adding start game event to lobby interface
- Unsteam server
- Unsteam lobby client
- Steamworks client
- Adding start game event to lobby interface
Saturday 16th
- Upgraded Myriad Unity package to Unity 6.4
- Created https://github.com/martindevans/HandyUnityLogging
- Checked old bug report: https://unity3d.atlassian.net/servicedesk/customer/portal/2/IN-133371
- Fixed in Cinemachine 3.1.6!
Monday 18th
- Creating script to begin connecting network session when lobby is "launched"
- Host
- Client
- Creating loading scene
- Spawn network manager
- Configure address and connect network
- Spawning player prefab
- Tweaking Io planet texture (reducing saturation)
Tuesday 19th
- todo:
- Handle exception in
ScenarioLoaderController.LoadAsyncExceptionHandler- Destroy network
- Transition to main menu
- Popup on main menu with error message
- Handle exception in NetworkScenarioLoader
- Fix time control
- Just needs a player entity spawned to hold state
- Replace game scene UI/HUD
- Add orbits to all scenarios
- Set name for network players
- Delete old lobby data system
Assets.Scenes.Multiplayer0.Scripts.Lobby
- Spawn player object explicitly on server
- Send object with player config
- Name
- ID
- Team
- Fleet?
- Move into UniTask/async
- Send object with player config
- Handle exception in
Wednesday 20th
- Updating Unified Universal Blur
- Removed on Friday 8th, fix has been merged upstream now
- Updated in UI project
- Added back to main project
- Refactoring network connection script
- Cleaning up connection scene
- Modifying UI framework to store theme settings in an asset (re-usable across scenes)
ThemeColorassetThemeTintasset- Integrating with existing assets (backwards compatible)
- Updating editor
- Helpers for converting old format to new format
- Creating editors for new types
- Fixing styling on
Connectingpanel in main project
- Passing per-player team GUID over network
Thursday 21st
- Removing mask bullet effect on menu
- Adding ship info to fleet file
- Refactoring storage caching of fleets in memory
- Serialisation to JSON and bytes
- Cleaning up network scenario loading code
- Adding some more tests
- Suppressing coverage for various things
- Fixed bug with radar/optical resolution scaling with aperture area instead of diameter
Friday 22nd
- Splitting some prototype code off to separate assemblies, so they can be ignored in coverage
- DockingSimulator
- GunLeadingOrbital
- More tests
- RADAR physics
- Optical physics
- Kepler BodyProperties
- OrbitRailPage
- Fixed bug calculating the end time of the page
- RailEvent
- UserRank
- NativeArrayOfEngineBurnExtensions
- ExtractPairsJob
- NumberGenerator/Vector3Generator/OrbitGenerator
- Recreating RADAR scenario: goldstone planetary radar tracking 3mm sphere 1000km away
- Sanity checking numbers
- Implementing helper for Johnson-Nyquist thermal noise calculation
- Unit mixup bug!
- Noise is in watts (power)
- receive is in joules (energy)
- Helper function for RCS calculation
- Including Rayleigh scattering
- Not including Mie scattering, nobody likes Mie
Monday 25th
- Splitting off more prototype code into assemblies
- GunLeading
- Missiles
- RadarBeams
- Octree
- OpticalLandingSystem
- ReferencePlane
- TurretTargeting
- Symbols (instanced)
- SweptSphere
- Additional tests
- BodyProperties
- PhasedQuery
- Fixed edge case with zero phases not working properly
- EventBus
- Layers
- FleetInfo
- RootFinder (Quadratic)
- RootFinder (Iterative)
- NativeArrayOfUnsafeListExtensions
- WorldExtensions
- IncrementalUpdateOctreeSystem
Tuesday 26th
- Tests will continue until morale improves:
EngineBurn- Entity Selection
- Modifying lobby system to better handle current lobby membership
- Adding fleet creation to `NetworkScenarioLoader
- [[Connection & Loading Process]]
- Back and forth designing process
- Client spawns fleet
- Server spawns fleet
- Client spawns individual ships
- Decision:
- Once planet loading is done, switch game to "spawning mode", time is frozen and players can create ships (choosing initial orbit etc). Server checks budget remains within limits.
- Switching lobby helper methods to use GUIDs directly instead of strings
- Removed a load of possible error paths where a string was not a valid Guid
Wednesday 27th
- Testing
- RKF45 Integrator
- Basic kinematic checks
- RailIntegrator
- More advanced orbital tests
- Cleaned up memory leaks in test code
- RKF45 Integrator
- Setting up temp UI for spawning ships
- Creating
ShipSpawningManagerto handle loading process- ShipSpawningManager
- Manages process
- Handles comms
- ShipSpawningRootElement
- Root UI element
- Interfaces defining nested elements
- Root UI element
- ShipSpawningManager
- This sucks, refactoring:
- Building a central "game state manager" which allows the server to explicitly switch states
- Auto show/hide loading overlay when in loading state
- Auto how/hide spawn menu when in spawning state
- Creating NetworkBarrierManager which handle generic synchronisation of all players
- They all block on a "barrier" waiting for everyone else to do the same
- Building a central "game state manager" which allows the server to explicitly switch states
Thursday 28th
- Switching loading overlay and spawn menu to manage themselves based on gamestate
- New script to manage loading overlay (event based, decoupled from actual loading)
- It's too hot to think.
Friday 29th
- Setting up loading progress UI to use new event based loading progress system
- Tweaking menu UI (removing spinning mask thing that confused everyone)