Crash when placing biomes

Post Reply
User avatar
Ullissen
Posts: 69
Joined: Tue Mar 22, 2016 12:31 pm

Crash when placing biomes

Post by Ullissen » Fri May 20, 2016 4:49 pm

A few days ago I started playing Reus again, My first quick 30 minute game on a medium world to get back into the swing of things worked fine but to my dismay I ran into the same bug (I believe) that made me quit 2 years ago in the second game.

I'm playing with a large world and I'm mixing and matching biomes; forests with some swamp tiles mixed in, swamps with some forest tiles, several small mountains sometimes with a few desert tiles in between, etc. making a really varied world with many different combinations. As this takes a while to set up, with alot of biome repaving along the way, so I start a village or two on one end of the world and work my way outward placing biomes for the rest of the world while I get those first few villages going.

However, after 8-12 minutes while I'm working on the areas for the future villages 5 and 6 the game keeps crashing. I'll be placing a biome down and the game crashes afterwards, I have one save just before it happens that the Forest Giant is about to place a forest and while his animation plays the forest tiles to not appear and the game crashes immediately afterwards. Its not unique to the Forest Giant though, I had the same thing happen with the Swamp and Ocean Giants.

Here's the most recent error report, I've 10 of them already trying to get past that last bit of biome placement.

Code: Select all

Version: 1.4
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.AddRightSidedPatch(SurfaceContourEdge edge, Vector2 startBottom, Vector2 endBottom)
   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 Reus.Application.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 Reus.Program.ActualMain()
   bij Reus.Program.Main(String[] args)

0x0000 Reus.View.dll->Reus.View.SurfacePatchTriangulator.AddTriangle
0x00f9 Reus.View.dll->Reus.View.PatchTriangulator.AddRightSidedPatch
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
0x001a Reus.exe->Reus.Application.Draw
0x006a Microsoft.Xna.Framework.Game.dll->Microsoft.Xna.Framework.Game.DrawFrame
0x02a9 Microsoft.Xna.Framework.Game.dll->Microsoft.Xna.Framework.Game.Tick
0x0006 Microsoft.Xna.Framework.Game.dll->Microsoft.Xna.Framework.Game.HostIdle
0x0019 Microsoft.Xna.Framework.Game.dll->Microsoft.Xna.Framework.GameHost.OnIdle
0x000b Microsoft.Xna.Framework.Game.dll->Microsoft.Xna.Framework.WindowsGameHost.RunOneFrame
0x001d Microsoft.Xna.Framework.Game.dll->Microsoft.Xna.Framework.WindowsGameHost.ApplicationIdle
0x0000 System.Windows.Forms.dll->System.Windows.Forms.Application+ThreadContext.System.Windows.Forms.UnsafeNativeMethods.IMsoComponent.FDoIdle
0x01dc System.Windows.Forms.dll->System.Windows.Forms.Application+ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop
0x01de System.Windows.Forms.dll->System.Windows.Forms.Application+ThreadContext.RunMessageLoopInner
0x0013 System.Windows.Forms.dll->System.Windows.Forms.Application+ThreadContext.RunMessageLoop
0x0011 System.Windows.Forms.dll->System.Windows.Forms.Application.Run
0x0024 Microsoft.Xna.Framework.Game.dll->Microsoft.Xna.Framework.WindowsGameHost.Run
0x009c Microsoft.Xna.Framework.Game.dll->Microsoft.Xna.Framework.Game.RunGame
0x0006 Reus.exe->Reus.Program.ActualMain
0x0084 Reus.exe->Reus.Program.Main

User avatar
Ullissen
Posts: 69
Joined: Tue Mar 22, 2016 12:31 pm

Re: Crash when placing biomes

Post by Ullissen » Mon May 23, 2016 3:54 pm

Happened again today with my Swamp Challenge world, I needed to place some more mountains to get the benefits from some projects but it crashed as I placed them. The Mountain Giant started raising the ground and the game crashed just before the first mountain patch would appear.

Rutger
Posts: 191
Joined: Mon Dec 15, 2014 9:59 am

Re: Crash when placing biomes

Post by Rutger » Tue May 24, 2016 2:41 pm

Hey, sorry for responding so late!

As you know, we're super busy with the Renowned Explorers expansion at the moment, but we'd like to pick up some Reus bug fixing again after the expansion is done. We've actually had reports of this issue before, but have never been able to properly track it down. Do you maybe have more information on specific situations where this happens? Maybe save games of just before this happens? It's a crash in the terrain rendering, so screenshots (or specific detailed explanations of which biomes were where at what position etc.) would also be extremely helpful.

I'm also assuming you're running the latest Steam version, is that correct?

User avatar
Ullissen
Posts: 69
Joined: Tue Mar 22, 2016 12:31 pm

Re: Crash when placing biomes

Post by Ullissen » Tue May 24, 2016 8:45 pm

I'm well aware that you're all busy with the expansion, I had expected a late response so don't feel bad about it.

Like I said I like to mix and match biomes for more unique worlds and locations, lots of small mountains often with small deserts in between, small patches of forest or swamps in their counterpart, etc. I actually have quite a few saves and while looking for the best ones to sent in I noticed something interesting, it might even be what is causing the problem.

In that Swamp Challenge world that I mentioned in previous post I wanted to place a new small mountain close to a village, it would crash every time I tried to do this. However while testing it out again while sorting through my savefiles I actually made it work, when I placed the mountain further away so the new mountain patches connected to an existing mountain everything was fine. I theorised that there seemed to be a biome limit and the game would crash when crossed, I tested it out in the same world and when I placed a new swamp without connecting it to an existing swamp the game crashed as well.

To fully test it out I made a new large world, made a really big ocean and started placing forests and swamps in a 1 patch chequerboard-like pattern. The game quickly crashed when the number of individual biomes became to high, more than 2/3 of the planet was still uncovered.

Seeing as this is likely caused by some sort of a biome limit, that you guys probably intentionally placed in the game for a good reason, I'm a bit sceptical if you can easily fix it. It starts to sound like this more of a case of "weird things that only I do that breaks the game" to me rather than an actual problem with the game. If it is easily fixable then I would love it ofcourse, but you really don't have to redesign the game's architecture just so I can have all those small mountains and swamp patches in my forests.

I'll still sent in a few safefiles if you want to take a look at them.

Rutger
Posts: 191
Joined: Mon Dec 15, 2014 9:59 am

Re: Crash when placing biomes

Post by Rutger » Wed May 25, 2016 11:49 am

Got them, thanks! I'll keep you posted :)

Post Reply