AscensionGameDev / Intersect-Engine

Intersect provides a complete game development suite for creating 2d mmorpgs with no programming experience required!
https://www.freemmorpgmaker.com/
Other
223 stars 360 forks source link

bug: client crashes on startup with null reference exception #2176

Open jcsnider opened 8 months ago

jcsnider commented 8 months ago

Description

Trying to launch the client on Mac results in a instant crash to do with Gwen border checking.

Steps to Reproduce

  1. Launch client on Mac

Version with bug

v0.8.0.135

Last version that worked well

Unknown

Affected platforms

macOS

Did you find any workaround?

N/A

Relevant log output

2024-03-13 04:32:06.654 [Error] NullReferenceException: Object reference not set to an instance of an object.
    Stack:    at Intersect.Client.Framework.Gwen.Skin.Texturing.Bordered.Equals(Bordered other) in /Users/runner/work/Intersect-Engine/Intersect-Engine/Intersect.Client.Framework/Gwen/Skin/Texturing/Bordered.cs:line 171
   at Intersect.Client.Framework.Gwen.Skin.Texturing.Bordered.op_Inequality(Bordered lhs, Bordered rhs) in /Users/runner/work/Intersect-Engine/Intersect-Engine/Intersect.Client.Framework/Gwen/Skin/Texturing/Bordered.cs:line 186
   at Intersect.Client.Framework.Gwen.Skin.Intersect2021.DrawWindow(Base control, Int32 topHeight, Boolean inFocus) in /Users/runner/work/Intersect-Engine/Intersect-Engine/Intersect.Client.Framework/Gwen/Skin/Intersect2021.cs:line 196
   at Intersect.Client.Framework.Gwen.Control.WindowControl.Render(Base skin) in /Users/runner/work/Intersect-Engine/Intersect-Engine/Intersect.Client.Framework/Gwen/Control/WindowControl.cs:line 328
   at Intersect.Client.Interface.Window.Render(Base skin) in /Users/runner/work/Intersect-Engine/Intersect-Engine/Intersect.Client/Interface/Window.cs:line 32
   at Intersect.Client.Framework.Gwen.Control.Base.RenderRecursive(Base skin, Rectangle clipRect) in /Users/runner/work/Intersect-Engine/Intersect-Engine/Intersect.Client.Framework/Gwen/Control/Base.cs:line 2004
   at Intersect.Client.Framework.Gwen.Control.Base.DoRender(Base skin) in /Users/runner/work/Intersect-Engine/Intersect-Engine/Intersect.Client.Framework/Gwen/Control/Base.cs:line 1941
   at Intersect.Client.Framework.Gwen.Control.Base.RenderRecursive(Base skin, Rectangle clipRect) in /Users/runner/work/Intersect-Engine/Intersect-Engine/Intersect.Client.Framework/Gwen/Control/Base.cs:line 2017
   at Intersect.Client.Framework.Gwen.Control.Base.DoRender(Base skin) in /Users/runner/work/Intersect-Engine/Intersect-Engine/Intersect.Client.Framework/Gwen/Control/Base.cs:line 1941
   at Intersect.Client.Framework.Gwen.Control.Canvas.RenderCanvas() in /Users/runner/work/Intersect-Engine/Intersect-Engine/Intersect.Client.Framework/Gwen/Control/Canvas.cs:line 151
   at Intersect.Client.Interface.Menu.MenuGuiBase.Draw() in /Users/runner/work/Intersect-Engine/Intersect-Engine/Intersect.Client/Interface/Menu/MenuGuiBase.cs:line 69
   at Intersect.Client.Interface.Interface.DrawGui() in /Users/runner/work/Intersect-Engine/Intersect-Engine/Intersect.Client/Interface/Interface.cs:line 201
   at Intersect.Client.Core.Graphics.Render(TimeSpan deltaTime, TimeSpan totalTime) in /Users/runner/work/Intersect-Engine/Intersect-Engine/Intersect.Client/Core/Graphics.cs:line 598
   at Intersect.Client.MonoGame.IntersectGame.Draw(GameTime gameTime) in /Users/runner/work/Intersect-Engine/Intersect-Engine/Intersect.Client/MonoGame/IntersectGame.cs:line 330
   at Microsoft.Xna.Framework.Game.DoDraw(GameTime gameTime)
   at Microsoft.Xna.Framework.Game.Tick()
   at Microsoft.Xna.Framework.SdlGamePlatform.RunLoop()
   at Microsoft.Xna.Framework.Game.Run(GameRunBehavior runBehavior)
   at Microsoft.Xna.Framework.Game.Run()
   at Intersect.Client.MonoGame.IntersectGame.MonoGameRunner.Start(IClientContext context, Action postStartupAction) in /Users/runner/work/Intersect-Engine/Intersect-Engine/Intersect.Client/MonoGame/IntersectGame.cs:line 566
   at Intersect.Client.Core.ClientContext.InternalStart() in /Users/runner/work/Intersect-Engine/Intersect-Engine/Intersect.Client/Core/ClientContext.cs:line 41
   at Intersect.Core.ApplicationContext`2.Start(Boolean lockUntilShutdown) in /Users/runner/work/Intersect-Engine/Intersect-Engine/Intersect (Core)/Core/ApplicationContext`2.cs:line 239

Duplicate Bug Check

Arufonsu commented 8 months ago

Had a similar issue on Windows few days ago when i decided to set up Intersect on a branch new OS installation along within rider, i suddendly realized it was me having some missing asset files, specifically the ones related to the main menu:

MainMenuWindow_online.json

MainMenuWindow_singleplayer.json

--------------------------------------------------------------------------------
2024-03-08 01:38:59.436 [Error] NullReferenceException: Object reference not set to an instance of an object.
    Stack:    at Intersect.Client.Framework.Gwen.Skin.Texturing.Bordered.Equals(Bordered other) in C:\Users\Windows\RiderProjects\ie-aso\Intersect.Client.Framework\Gwen\Skin\Texturing\Bordered.cs:line 171
   at Intersect.Client.Framework.Gwen.Skin.Texturing.Bordered.op_Inequality(Bordered lhs, Bordered rhs) in C:\Users\Windows\RiderProjects\ie-aso\Intersect.Client.Framework\Gwen\Skin\Texturing\Bordered.cs:line 186
   at Intersect.Client.Framework.Gwen.Skin.Intersect2021.DrawWindow(Base control, Int32 topHeight, Boolean inFocus) in C:\Users\Windows\RiderProjects\ie-aso\Intersect.Client.Framework\Gwen\Skin\Intersect2021.cs:line 196
   at Intersect.Client.Framework.Gwen.Control.WindowControl.Render(Base skin) in C:\Users\Windows\RiderProjects\ie-aso\Intersect.Client.Framework\Gwen\Control\WindowControl.cs:line 328
   at Intersect.Client.Interface.Window.Render(Base skin) in C:\Users\Windows\RiderProjects\ie-aso\Intersect.Client\Interface\Window.cs:line 32
   at Intersect.Client.Framework.Gwen.Control.Base.RenderRecursive(Base skin, Rectangle clipRect) in C:\Users\Windows\RiderProjects\ie-aso\Intersect.Client.Framework\Gwen\Control\Base.cs:line 2004
   at Intersect.Client.Framework.Gwen.Control.Base.DoRender(Base skin) in C:\Users\Windows\RiderProjects\ie-aso\Intersect.Client.Framework\Gwen\Control\Base.cs:line 1941
   at Intersect.Client.Framework.Gwen.Control.Base.RenderRecursive(Base skin, Rectangle clipRect) in C:\Users\Windows\RiderProjects\ie-aso\Intersect.Client.Framework\Gwen\Control\Base.cs:line 2017
   at Intersect.Client.Framework.Gwen.Control.Base.DoRender(Base skin) in C:\Users\Windows\RiderProjects\ie-aso\Intersect.Client.Framework\Gwen\Control\Base.cs:line 1941
   at Intersect.Client.Framework.Gwen.Control.Canvas.RenderCanvas() in C:\Users\Windows\RiderProjects\ie-aso\Intersect.Client.Framework\Gwen\Control\Canvas.cs:line 151
   at Intersect.Client.Interface.Menu.MenuGuiBase.Draw() in C:\Users\Windows\RiderProjects\ie-aso\Intersect.Client\Interface\Menu\MenuGuiBase.cs:line 69
   at Intersect.Client.Interface.Interface.DrawGui() in C:\Users\Windows\RiderProjects\ie-aso\Intersect.Client\Interface\Interface.cs:line 201
   at Intersect.Client.Core.Graphics.Render(TimeSpan deltaTime, TimeSpan totalTime) in C:\Users\Windows\RiderProjects\ie-aso\Intersect.Client\Core\Graphics.cs:line 598
   at Intersect.Client.MonoGame.IntersectGame.Draw(GameTime gameTime) in C:\Users\Windows\RiderProjects\ie-aso\Intersect.Client\MonoGame\IntersectGame.cs:line 330
   at Microsoft.Xna.Framework.Game.DoDraw(GameTime gameTime)
   at Microsoft.Xna.Framework.Game.Tick()
   at Microsoft.Xna.Framework.SdlGamePlatform.RunLoop()
   at Microsoft.Xna.Framework.Game.Run(GameRunBehavior runBehavior)
   at Microsoft.Xna.Framework.Game.Run()
   at Intersect.Client.MonoGame.IntersectGame.MonoGameRunner.Start(IClientContext context, Action postStartupAction) in C:\Users\Windows\RiderProjects\ie-aso\Intersect.Client\MonoGame\IntersectGame.cs:line 566
   at Intersect.Client.Core.ClientContext.InternalStart() in C:\Users\Windows\RiderProjects\ie-aso\Intersect.Client\Core\ClientContext.cs:line 41
   at Intersect.Core.ApplicationContext`2.Start(Boolean lockUntilShutdown) in C:\Users\Windows\RiderProjects\ie-aso\Intersect (Core)\Core\ApplicationContext`2.cs:line 239

--------------------------------------------------------------------------------