On this page
Thursday 1st Adapted docking sim to use Unity physicsLots of small fixes to work with the more complicated physics Added 3d rings in space, showing docking axis Friday 2nd Fixed control inputs when craft is rotated Fixed kill rot/kill lar when craft is rotated Properly wrapping angles in displays Discovered that the FUI framework uses a deprecated Unity component (Animation
).Investigating the newer replacement (Animator
) Monday 5th Changed Panel
to use an Animator
for expanding and collapsing Modified OverlayMessage
to use the new Panel
expand/collapse animation Added numerical readouts of rotation and position offset Adding more sfx:Humming Computer noise Creaks Playtesting (Graham): Tuesday 6th Rewrite theme system to use explicit method calls instead of Unity message broadcasts Added debugging aids to theme system (showing the node a colour came from) Theme system custom editors Added "Theme Debugger" in ThemeNode
inspector Docking sim difficulty modes:Easy: nothing changes Medium: random impact - costs about 40% fuel to scrub off Hard: fuel leak - constant fuel drain and torque Adjusting volume based on thruster power More playtesting: Wednesday 7th Fixing corner case leaks of IDisposableComponent
in CommandBuffer
(Myriad.ECS) Swap Kill Rot
/Kill Lat
indicators so they're on the same side as the controls for that axis Made kill Rot
/Kill Lat
indicators clickable to toggle independent kill modes Deliberately made tutorial UI overlap more of the HUD, to make it harder to ignore! Moved later speed indicators to be attached to the moving reticule, less overcrowding in the middle of the screen Added more control over panel theming from scripts Added actual target model (ISS) Made various parts of the panel not raycast targets Added collision geometry to station and ship Thursday 8th Added separate buttons for kill rot/lat (enter/space respectively) Modified tutorial to add separate prompt for kill rot/kill lat Added a skip mode to tutorial in editor Gave the spacecraft an initial "kick" for some lateral movement Given a little more starting fuel, to account for that Collision handlingwin condition loss condition Friday 9th Experimenting with a new "text log" component Learning more about Unity layout system Created ScrollView
and ScrollViewPanel
prefabs Created a few experimental "callout" panels Monday 12th Experimented with callout panel layout. Walking back up the tree adding up margins, so that the root can be resized such that the leaves are the target size. Experiment with multiple scenes for menu loadingOne "background" scene, with multiple menu scenes being loaded and unloaded on top: Added "tinting" to the theme system Building a button prefab (using tinting to show when the button is hovered over) Added theme support for inverting colours fetched from a redirect Created FUI button prefab Tuesday 13th Fixed button background animator Added Remove
to Myriad DyanmicSystemGroup
Added GameTime
and WorldHost
to MyriadUnityIntegration
package Updated main Ephemeris project Installed FUI in Ephemeris project Begun creating DockingSimulator
scene in Ephemeris Added support for system groups owned by a MonoBehaviour
to Myriad integration package Improved "system providers" in Myriad.ECS
integration package Wednesday 14th Added editor display to WorldSystemGroup
in MyriadUnityIntegration
Moved orbital systems into a separate WorldSystemGroup
in docking scene Created a Phobos moon meshPhobos is really small, this may have been a waste of time. Might need to consider special handling for very small astronomical bodies (e.g. asteroids) Creating docking sim menu Investigating Unity audio assets Thursday 15th Fixed script reference error Phobos normal map Modified SolarSystemLoader
to activate child scripts when loading is done, allowing further subsequent loading to proceed Tripped up during initialisation by one frame delay on MyriadEntity
binding to Entity
Friday 16th Investigating AssetBundle
for streaming scene content (planet by planet) Developed a prototype for content loading using scenesEach planet is in a scene, with the planet having the same name as the sceneOther GameObjects can exist System loader can load those scenes (additive, async), transfer the GameObject to the main scene, and then unload the holding sceneUnloading ensures that other objects in the scene (lights, cameras etc) do not get loaded in the main scene. Monday 19th Started creating Docking Sim menuInitially using split scenes, with the full scale solar system Switched to a hand built scene with the planets all very close together. This makes composing the camera shots and transitions easier Built a colour slider for TextMeshPro
text Switched to simpler Lerp, it looks better anyway Updated SpaceGraphicsToolkit
Improved Europa normal map Built Ceres using NASA data Tuesday 20th Updated Myriad "count" queries to accept an optional query description Built out docking sim menu (buttons from FUI framework) Improving panel show/hide animation in FUI library Adding settings/custom difficulty panel Improved handling of Panel
elements starting in hidden (collapsed) state Wednesday 21st Added show/hide events to panel Set up orbit for Ceres Created a way to pass info between scenes when they are loaded Loading DockingSimulator
scene from menu Modified game setup script to use the difficulty/location info sent from menu Added support for vertex colour to BackgroundStripes
shader Thursday 22nd Improving Kepler orbit calculation usability Generating a random orbit for target + player Constructing DockingSimulator
scene, ensuring all the various components works togetherCamera focus Instanced icons Planets Adjusted atmospheric scattering on Earth Friday 23rd Rewriting how entities are resolved after creation in Myriad.ECS
, simplifying setup code Updating everything based on Myriad.ECS
Protologic Unity integration Ephemeris Monday 26th Bank holiday Investigated BEPU physics Used it before with Heist Unfortunately not compatible with netstandard2.1 Jitter2 Also no support for netstandard2.1 Jitter1Third party port to netstandard: Jitter.Core JVector
and JQuaternion
instead of standard vector/quaternion will get annoying, but it's usable.Forked and refactored here Tuesday 27th More Jitter.Core refactoring Imported Jitter.Core into Unity, making some tweaks to make it work A lot of cleanup work:Removed soft bodiesRemoved IBroadphaseEntity
, previously this was the abstraction layer between rigid and soft bodies, so it's no longer necessary Removed multithreading Removed terrain Rewritten a lot of the vector internals (preparing to remove custom JVector
type entirely) Removed JQuaternion
(using System.Numerics.Quaternion
) Replaced JVector
type with System.Numerics.Vector3
Enabled nullability checks in some files and fixed nullability issues Detailed clean up in RigidBody
Wednesday 28th Moved Jitter.Core
into a Unity package so it can be easily installed in Unity Fixed subtle bugs with pooled resources in Arbiter
/ArbiterMap
Started basic implementation of Jitter.Core
with Myriad.ECS
Bound to Myriad, using a shared world for all entities Endless cleanup Thursday 29th Further cleanup on Jitter.Core
constraints Imported Jitter.Core
into main Ephemeris project Started building systems for having many small worlds (owned by specific entities) Reimport all, attempting to fix a unity error ("inconsistent result on import" whatever that means) Setup basic systems to copy from Jitter RigidBody
into Unity transform Written a quick test script to apply forces to the RigidBody
when an input is pressed Friday 30th Rewritten some of Jitter.Core
to remove support for mass points Built Unity inspector for Jitter World
Built systems for copying orientations into ECS (from Jitter) and from ECS (into Unity)