Page 1 of 1

Reproducable crash on biome change: IndexOutOfRangeException

Posted: Sun Jan 19, 2014 5:26 pm
by UpperKEES
Hi folks!

I've been enjoying your game a lot; 225 hours played so far and unlocked everything. Good fun and I love the detail of the game! Time for my long awaited Free Play game to set the all time Reus record (125,000 prosperity on the large world is the goal, and yes, this is possible).

So I started this game and I've spent 54 hours on this single game so far (no joke!). However Reus keeps crashing into Windows ("Reus has stopped working") and each time it has the same cause: whenever I try to change the biome of certain patches, an IndexOutOfRangeException occurs ("De index ligt buiten de matrixgrenzen").

This has happened 119 times over the past 10 days now, so I think it's time for a post here. I've tried every single thing to avoid it and work around it, but to no avail. I tried to recreate the entire world by migrating every single resource, but that only results in the bug occurring at another spot. I finally decided to test the same final lay-out on a completely fresh world. Result: crash within 5 minutes of play, so all my work was for nothing.

The good thing however is that it seems a bug that's relatively easy to fix. I have attached the saved game of the fresh world that has nothing on it but some terraforming (not 1 nomad has settled yet). Use 'Raise Forest' at the exact spot where the Forest Giant stands to reproduce the crash.

Kind regards from a fellow dev from Utrecht

PS: I sure hope for an easy fix and I'm of course willing to beta-test it. Please don't tell me that I've wasted 54 hours on this single game and won't be able to set the all time highscore....

Here's the first lines of the errorReport.txt dump (attached this file as well; too long for the post). Let me know if you like the other 118 (similar ones) too. ;-)

Code: Select all

Version: 1.3.1.1
Thread: Main

System.IndexOutOfRangeException: De index ligt buiten de matrixgrenzen.
   bij Reus.View.SurfacePatchTriangulator.AddTriangle(Vector3 a, Vector3 b, Vector3 c)
   bij Reus.View.PatchTriangulator.AddLeftSidedPatch(SurfaceContourEdge edge, Vector2 endBottom, Vector2 startBottom)
Saved game below.

Re: 119th crash: System.IndexOutOfRangeException

Posted: Sun Jan 19, 2014 5:32 pm
by UpperKEES
Seems I can't attach TXT files, so here's the full crash dump:

Code: Select all

Version: 1.3.1.1
Thread: Main

System.IndexOutOfRangeException: De index ligt buiten de matrixgrenzen.
   bij Reus.View.SurfacePatchTriangulator.AddTriangle(Vector3 a, Vector3 b, Vector3 c)
   bij Reus.View.PatchTriangulator.AddLeftSidedPatch(SurfaceContourEdge edge, Vector2 endBottom, Vector2 startBottom)
   bij Reus.View.SurfacePatchTriangulator.GeneratePatchTriangles(IPatchPalette palette, SurfaceContour contour, SurfaceContour connectingContour, Patch patch)
   bij Reus.View.Components.Surface.GenerateInteriorTriangles()
   bij Reus.View.Components.Surface.ValidateTriangleCaches()
   bij Reus.View.Components.CurvedSoilLayer.Render(ISceneCamera2D camera)
   bij SpaceTech.Graphics.RenderManager2D.Draw(Eye eye, Single aspectRatio)
   bij Reus.View.GameScreen.OnRender(RenderContext context)
   bij Reus.View.GameplayScreen.OnRender(RenderContext context)
   bij SpaceTech.UI.Controls.UIControl.Render(RenderContext context)
   bij SpaceTech.UI.Rendering.UIRenderer.RenderUIControl(UIRenderContext context)
   bij SpaceTech.UI.Rendering.UIRenderer.Render(UIControl control, RenderContext controlContext)
   bij SpaceTech.UI.Controls.UIScreen.OnRender(RenderContext context)
   bij SpaceTech.UI.Controls.UIControl.Render(RenderContext context)
   bij SpaceTech.UI.Controls.UIScreen.Draw(GameTime gameTime)
   bij Reus.View.ViewComponent.Draw(GameTime gameTime)
   bij Reus.GameplayComponent.Draw(GameTime gameTime)
   bij Microsoft.Xna.Framework.Game.Draw(GameTime gameTime)
   bij (Object , GameTime )
   bij 冷櫎띂ફ迷ಏ泈.灑尲㰈穪宗䷱↽傛(Object , GameTime 볤샑辋䴠簹連夯촵)
   bij ≬鑜瓜쓄憎쨢㣠㭄.Draw(GameTime gameTime)
   bij Microsoft.Xna.Framework.Game.DrawFrame()
   bij Microsoft.Xna.Framework.Game.Tick()
   bij Microsoft.Xna.Framework.Game.HostIdle(Object sender, EventArgs e)
   bij Microsoft.Xna.Framework.GameHost.OnIdle()
   bij Microsoft.Xna.Framework.WindowsGameHost.RunOneFrame()
   bij Microsoft.Xna.Framework.WindowsGameHost.ApplicationIdle(Object sender, EventArgs e)
   bij System.Windows.Forms.Application.ThreadContext.System.Windows.Forms.UnsafeNativeMethods.IMsoComponent.FDoIdle(Int32 grfidlef)
   bij System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(IntPtr dwComponentID, Int32 reason, Int32 pvLoopData)
   bij System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
   bij System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
   bij System.Windows.Forms.Application.Run(Form mainForm)
   bij Microsoft.Xna.Framework.WindowsGameHost.Run()
   bij Microsoft.Xna.Framework.Game.RunGame(Boolean useBlockingRun)
   bij (Object )

[Chinese characters left out]

0x0000 Reus.View.dll->Reus.View.SurfacePatchTriangulator.AddTriangle
0x01b6 Reus.View.dll->Reus.View.PatchTriangulator.AddLeftSidedPatch
0x00e6 Reus.View.dll->Reus.View.SurfacePatchTriangulator.GeneratePatchTriangles
0x0061 Reus.View.dll->Reus.View.Components.Surface.GenerateInteriorTriangles
0x0014 Reus.View.dll->Reus.View.Components.Surface.ValidateTriangleCaches
0x0006 Reus.View.dll->Reus.View.Components.CurvedSoilLayer.Render
0x0286 SpaceTech2D.dll->SpaceTech.Graphics.RenderManager2D.Draw
0x00ca Reus.View.dll->Reus.View.GameScreen.OnRender
0x0088 Reus.View.dll->Reus.View.GameplayScreen.OnRender
0x003d SpaceTech.UI.dll->SpaceTech.UI.Controls.UIControl.Render
0x0033 SpaceTech.UI.dll->SpaceTech.UI.Rendering.UIRenderer.RenderUIControl
0x017b SpaceTech.UI.dll->SpaceTech.UI.Rendering.UIRenderer.Render
0x0000 SpaceTech.UI.dll->SpaceTech.UI.Controls.UIScreen.OnRender
0x003d SpaceTech.UI.dll->SpaceTech.UI.Controls.UIControl.Render
0x007d SpaceTech.UI.dll->SpaceTech.UI.Controls.UIScreen.Draw
0x001b Reus.View.dll->Reus.View.ViewComponent.Draw
0x0025 Reus.exe->Reus.GameplayComponent.Draw
0x004d Microsoft.Xna.Framework.Game.dll->Microsoft.Xna.Framework.Game.Draw

Re: 119th crash: System.IndexOutOfRangeException

Posted: Mon Jan 20, 2014 4:27 pm
by UpperKEES
Additional info:

I forgot to mention that I bought the game on Steam 1 month ago and I use Windows Vista 32-bit, fully updated.

I play in 1920x1080 resolution and the crash happens in both FullScreen and Windowed mode (which is to be expected with an IndexOutOfRange exception).

I also believe this bug may be related to other recent biome changing bugs, like the infinite mountain, so I hope loading my saved game (see first post) into the debugger will help you out.

Re: Reproducable crash on biome change: IndexOutOfRangeExcep

Posted: Mon Jan 20, 2014 5:49 pm
by Touriste
Thanks a lot for this full report !
I'll make sure to forward it :)

Re: Reproducable crash on biome change: IndexOutOfRangeExcep

Posted: Tue Jan 21, 2014 8:29 am
by UpperKEES
Thanks for forwarding Touriste!

By the way, the issue is not restricted to the Forest Giant; I have the same crash with the other 3.

Re: Reproducable crash on biome change: IndexOutOfRangeExcep

Posted: Tue Jan 21, 2014 11:22 am
by Yuri
Hey there UpperKEES,

Thanks for playing Reus so much! That's an immensely long run you have there.
We currently have a beta-branch running (via Steam) which lets you play the latest (yet to be stabilized) version of Reus. We would like to know if this issue also persist on this newer version. Would it be possible for you to get into the beta and try if this fixes the problem?

You can get into the beta by right clicking Reus in your Steam-library -> Properties -> Beta's -> Switching to "beta - Protected Beta". You won't need a code!

Please let us know if this made a difference!

Best regards,
Yuri

Re: Reproducable crash on biome change: IndexOutOfRangeExcep

Posted: Tue Jan 21, 2014 5:29 pm
by UpperKEES
Hi Yuri,

Thanks for your reply! I'll subscribe to the beta right now and test it.

Re: Reproducable crash on biome change: IndexOutOfRangeExcep

Posted: Tue Jan 21, 2014 5:42 pm
by UpperKEES
Exactly the same issue unfortunately. Only difference is that the error log now appears on screen before crashing into Windows.

Loading my saved game (see first post) into the debugger should make it clear which index is out of range.

In addition: this version does not show a mouse cursor when starting the game in FullScreen mode (but does show highlighted buttons at the mouse position). When I disable FullScreen mode in the Options, the mouse cursor re-appears, but the game stays FullScreen.

Please let me know if you like more info; always willing to help you out. :-)

Re: Reproducable crash on biome change: IndexOutOfRangeExcep

Posted: Wed Jan 22, 2014 10:35 am
by Yuri
Hey UpperKEES,

Thanks for testing it in the beta-version.
We are currently waiting on the Mono version to be finished by the people that ported Reus. After it is done we will look into this bug and do our best to fix it for you!
We're sorry for the issues you're having!

Best regards,
Yuri

Re: Reproducable crash on biome change: IndexOutOfRangeExcep

Posted: Wed Jan 22, 2014 7:44 pm
by UpperKEES
Oh, does this mean all development/bug fixing is ceased until the Linux/Mac versions are fully operational?

Too bad, as that may take a while.... I guess I have to give up on this then. :-(