Skip to main content

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 Invite button
  • 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
    • Investigating overlay
      • Now it works shrug
    • Sluggish transitions
      • Probably the same font issue
    • Testing round 2
      • Game won't launch
        • Need steam_appid.txt!
  • 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)

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
  • 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

Saturday 9th - Thursday 14th

  • On Holiday!

Friday 15th

Saturday 16th

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

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)
    • ThemeColor asset
    • ThemeTint asset
    • Integrating with existing assets (backwards compatible)
    • Updating editor
    • Helpers for converting old format to new format
    • Creating editors for new types
    • Fixing styling on Connecting panel 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
  • Setting up temp UI for spawning ships
  • Creating ShipSpawningManager to handle loading process
    • ShipSpawningManager
      • Manages process
      • Handles comms
    • ShipSpawningRootElement
      • Root UI element
        • Interfaces defining nested elements
  • 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

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)