net5 has problems with structs and [UnmanagedCallersOnly] - so pass as a IntPtr Unsafe.AsRef if var has flag asref
Added ViewDesc shared struct
Call GameLoop.GetView from SetUpView to set up the view params
Added Camera class
Added GetActiveCamera to Gamemode
Added Camera property, GetActiveCamera to Player
Added FirstPersonCamera
Test gamemodes use FirstPersonCamera