Khet 2.0
stufff Jan 15, 2015 @ 9:04pm
[RESOLVED] Constant crashing has gotten worse
Sorry to keep having to make complaining posts, the dev is extremely responsive and nice, but I just can't seem to be able to play this game without it crashing. It's gotten worse than ever now, I can't touch my bottom-right piece at all without the game crashing, and even if I leave that piece alone something else causes a crash pretty quickly.

The achievement thing I could sort of understand how something weird could be happening, but I have no idea what would make touching one particular piece crash the game.

This sounds crazy but as proof I present this video of the game crashing 6 times in 3 minutes, most of the crashes were caused by touching that piece:

https://www.youtube.com/watch?v=mi78ZaC8Vpw&feature=youtu.be&noredirect=1
Last edited by darthdurden; Jan 24, 2015 @ 6:47am
< >
Showing 1-14 of 14 comments
≓Sean Colombo≒  [developer] Jan 16, 2015 @ 6:21am 
It says the video is private. Can you make it public? Might help us debug the issues
Last edited by ≓Sean Colombo≒; Jan 16, 2015 @ 6:21am
≓Sean Colombo≒  [developer] Jan 16, 2015 @ 6:23am 
...and don't feel sorry for making bug reports! If something is going wrong, we def. want to know about it. Thanks for the help! :)
stufff Jan 16, 2015 @ 1:03pm 
Originally posted by sean.colombo:
It says the video is private. Can you make it public? Might help us debug the issues

Sorry, I forgot to click publish. Should be working now:

https://www.youtube.com/watch?v=mi78ZaC8Vpw
≓Sean Colombo≒  [developer] Jan 19, 2015 @ 2:20pm 
Wow, that is so freaking weird. I can't reproduce that problem at all... and when you go and check the version in the video... that's the current, correct Build ID.

It looks like you're running Windows XP... is that right? Maybe I can find an XP machine & do more testing there if that's the case. Do you know if it's 32 bit or 64 bit Windows?
stufff Jan 19, 2015 @ 2:43pm 
Not running Windows XP, just don't like the Windows 7 UI look so I turned off all the bells and whistles and gave it that classic look. I'm running Windows 7 64 bit.
≓Sean Colombo≒  [developer] Jan 19, 2015 @ 4:00pm 
Hmm, both of my main dev machines are 64 bit Win 7 :-/ hmmmm. Wtf. Gonna see if Geoff has any ideas...
stufff Jan 19, 2015 @ 7:13pm 
Could it have anything to do with my video drivers? My graphics card is more than capable of running this game but since it's an older card they stopped pushing driver updates for it.
darthdurden  [developer] Jan 20, 2015 @ 5:18am 
Hmm, that is an odd one for sure. The error looks like it could definitely be video card related based on the error. What card are you currently using?
≓Sean Colombo≒  [developer] Jan 20, 2015 @ 6:10am 
One other thing worth checking: there is a good chance that our error-logging caught a stack-trace when it crashes. Any time right after you get a crash, if you right click on the game in your Steam Library, then go to "Properties" then "Local Files" then "Browse Local Files..." and look for logFile.log... please open that in a text-editor and copy/paste it to us.... that could give us a stack trace which would at least help us know if it really is likely to be the graphics drivers.
Last edited by ≓Sean Colombo≒; Jan 20, 2015 @ 6:10am
stufff Jan 20, 2015 @ 2:32pm 
I'm using an ATI Radeon HD4890 with the most up to date drivers and Catalyst software available for it. Here is my logfile.log:

20150116_23:48:46.838 INFO : KhetGameSettings::RestoreDefaults() called.
20150116_23:48:46.848 WARNING: The PersistentKeyValueStore singleton had to be created with a NULL game. This should not need to happen because the main Game should create a PersistentKeyValueStore before anything else calls GetSingleton().
20150116_23:48:46.860 INFO : Setting GameData.GameSettings to: Random|Expert|Classic|1979941958|False|False
20150116_23:48:46.869 INFO : CrossPlatformRandom INITIAL SEED: 1373514167
OpenGL Device: ATI Radeon HD 4800 Series
OpenGL Driver: 3.3.11672 Compatibility Profile Context
OpenGL Vendor: ATI Technologies Inc.
GameBase::Game()
20150116_23:48:47.623 INFO : Game constructor - Creating PersistentKeyValueStore
20150116_23:48:47.624 INFO : Game constructor - Making TGameData()
20150116_23:48:47.624 INFO : Game constructor - about to load settings
20150116_23:48:47.626 WARNING: Could not find optional Settings file "settings.xml". This would be required for an Xbox build.
20150116_23:48:47.626 WARNING: Will fall back to using default settings for now.
20150116_23:48:47.626 INFO : Game constructor - setting up content manager
20150116_23:48:47.626 INFO : Game constructor - creating GraphicsDeviceManager
20150116_23:48:47.626 INFO : Game constructor - Creating main InputHelper
20150116_23:48:47.626 INFO : Game constructor - adding singletons
20150116_23:48:47.627 INFO : Game constructor - Adding ThreadPoolComponent
20150116_23:48:47.629 INFO : Game constructor - done with Game Constructor.
Using EXT_swap_control_tear VSync!
Controller 0, X360 Controller, will use SDL_GameController support.
20150116_23:48:47.673 INFO : Started Game Initialize.
20150116_23:48:47.722 INFO : Initing Render Targets.
20150116_23:48:47.725 INFO : Render Targets successfully inited.
20150116_23:48:47.728 INFO : Attempting to initialize Steam.
SUCCESS: SteamAPI_Init()
20150116_23:48:47.833 INFO : Steam initialized properly.
20150116_23:48:47.836 INFO : Starting setting initial game window size
Using EXT_swap_control_tear VSync!
Using EXT_swap_control_tear VSync!
20150116_23:48:47.838 INFO : Initing Render Targets.
20150116_23:48:47.840 INFO : Render Targets successfully inited.
20150116_23:48:47.840 INFO : Finished setting initial game window size: 1653x930
20150116_23:48:47.840 INFO : Game Initialized Successfully.
20150116_23:48:48.290 INFO : Beginning resize game window
Using EXT_swap_control_tear VSync!
20150116_23:48:48.290 INFO : Initing Render Targets.
20150116_23:48:48.290 INFO : Render Targets successfully inited.
20150116_23:48:48.290 INFO : Finished resize game window: 1653x930
20150116_23:48:48.294 INFO : Starting first update call
20150116_23:48:48.315 INFO : STARTING ALLOCATIONS AT: 1/16/2015 11:48:48 PM
20150116_23:48:48.354 INFO : Finished first update call
20150116_23:48:48.364 INFO : Beginning first draw call
20150116_23:48:48.593 INFO : Finished first draw call
20150116_23:48:48.956 INFO : ALLOCATIONS FINISHED AT: 1/16/2015 11:48:48 PM
20150116_23:48:48.977 INFO : Switching to screen: ScreenIdentifier{'blueline splash screen'}
20150116_23:48:52.011 INFO : Switching to screen: ScreenIdentifier{'innovention splash screen'}
20150116_23:48:55.043 INFO : Switching to screen: ScreenIdentifier{'main menu'}
20150116_23:49:04.856 INFO : KhetGameSettings::RestoreDefaults() called.
20150116_23:49:04.856 INFO : Setting GameData.GameSettings to: Random|Expert|Classic|2010995498|False|False
20150116_23:49:04.880 INFO : Switching to screen: ScreenIdentifier{'game settings screen with ai'}
20150116_23:49:04.883 INFO : KhetGameSettings::RestoreDefaults() called.
20150116_23:49:13.294 FEATURE: == ConfigureByGameSettings() CALLED FROM SettingsMenuScreen! ==
20150116_23:49:13.297 INFO : Setting GameData.GameSettings to: P1_IsRed|Expert|Classic|563857669|False|False
20150116_23:49:13.297 INFO : CrossPlatformRandom SEED SET TO: 563857669
20150116_23:49:13.302 INFO : Loading game from local file "./KhetTestBoards/00_ClassicBoard.txt"
20150116_23:49:13.335 INFO : Switching to screen: ScreenIdentifier{'playing main game'}
20150116_23:49:13.400 DEBUG : AI is KhetPlayerArmyType{'Silver'} (if this is pre-thinking, pretending to be: KhetPlayerArmyType{'Silver'})
20150116_23:49:14.474 INFO : AI decided on move: Move(2,4)->(3,5) which it scored at 4.83
20150116_23:49:14.729 INFO : Firing laser for KhetPlayerArmyType{'Silver'}
20150116_23:49:14.730 DEBUG : Laser path:
LaserJunction_SingleExit{ NextSegment: LaserSegment{StartCoords:BoardCoord2D(9, 7), EndCoords:BoardCoord2D(9, 4), Junction:LaserJunction_SingleExit{ NextSegment: LaserSegment{StartCoords:BoardCoord2D(9, 4), EndCoords:BoardCoord2D(7, 4), Junction:LaserJunction_SingleExit{ NextSegment: LaserSegment{StartCoords:BoardCoord2D(7, 4), EndCoords:BoardCoord2D(7, 3), Junction:LaserJunction_SingleExit{ NextSegment: LaserSegment{StartCoords:BoardCoord2D(7, 3), EndCoords:BoardCoord2D(9, 3), Junction:LaserJunction_SingleExit{ NextSegment: LaserSegment{StartCoords:BoardCoord2D(9, 3), EndCoords:BoardCoord2D(9, 0), Junction:null, Result:LaserResult_OffBoard{lastCoordsOnBoard: BoardCoord2D(9, 0), directionLaserIsHeaded: AboveCenter} } }, Result:null } }, Result:null } }, Result:null } }, Result:null } }
20150116_23:49:14.731 DEBUG : Laser result:
(LaserResult_OffBoard{lastCoordsOnBoard: BoardCoord2D(9, 0), directionLaserIsHeaded: AboveCenter})
20150116_23:49:17.554 INFO : Laser's result has been enacted in KPC.Update() (actual gameplay, not AI).
KEY MISSING FROM SDL2->XNA DICTIONARY: SDL_SCANCODE_VOLUMEDOWN
20150116_23:49:24.892 INFO : KhetPlayerArmyType{'Red'} switching to move the currently hovered piece.
20150116_23:49:26.377 INFO : KhetPlayerArmyType{'Red'} trying to move piece KhetGamePiece{owner=KhetPlayerArmyType{'Red'}, type=Pyramid, orientation=North} to BoardCoord2D(3, 0)
20150116_23:49:26.394 ERROR : Attempted to read or write protected memory. This is often an indication that other memory is corrupt.
20150116_23:49:26.397 ERROR : at OpenTK.Graphics.OpenGL.GL.DrawRangeElements(BeginMode mode, Int32 start, Int32 end, Int32 count, DrawElementsType type, IntPtr indices)
at Microsoft.Xna.Framework.Graphics.GraphicsDevice.DrawIndexedPrimitives(PrimitiveType primitiveType, Int32 baseVertex, Int32 minVertexIndex, Int32 numVertices, Int32 startIndex, Int32 primitiveCount)
at BlueLine.GameCommon.DeferredLightingRenderStrategy.Draw(Visual3D Visual, Effect TexturedEffect, Effect UntexturedEffect)
at BlueLine.GameCommon.DeferredLightingRenderStrategy.DrawLit(IReadOnlyList`1 Visuals, ICamera Camera, BoundingFrustum frustum)
at BlueLine.GameCommon.DeferredLightingRenderStrategy.DrawWithGBuffer(GameTime gameTime, ICamera Camera, IReadOnlyList`1 visuals, RenderTarget2D target, GBuffer GBuffer, BoundingFrustum frustum, Boolean AllowPicks, Color BackgroundColor)
at BlueLine.GameCommon.DeferredLightingRenderStrategy.DrawMirror(GameTime gameTime, SpriteBatch SpriteBatch, ICamera Camera, MirrorDefinition Mirror, IReadOnlyList`1 visuals, Color BackgroundColor)
at BlueLine.GameCommon.ScreenLayer.Draw(GameTime gameTime, RenderTarget2D target, SpriteBatch batch, Color BackgroundColor)
at BlueLine.GameCommon.Screen`3.Draw(GameTime gameTime, SpriteBatch batch, RenderTarget2D ScreenTarget)
at BlueLine.GameCommon.Screens.ScreenTransitioner.Draw(GameTime gameTime, SpriteBatch batch)
at BlueLine.GameCommon.Game`3.Draw(GameTime gameTime)
at Microsoft.Xna.Framework.Game.DoDraw(GameTime gameTime)
at Microsoft.Xna.Framework.Game.Tick()
at Microsoft.Xna.Framework.SDL2_GamePlatform.RunLoop()
at Microsoft.Xna.Framework.Game.Run(GameRunBehavior runBehavior)
at Microsoft.Xna.Framework.Game.Run()
at BlueLine.GameCommon.MotiveUtil.Run[TGameData,TGameSettings,TPlayerData](String[] args, GameController`3 Controller)
≓Sean Colombo≒  [developer] Jan 20, 2015 @ 4:10pm 
That looks like a really nice card in general: http://graphics-cards.electronicsnif.com/l/50/ATI-Radeon-HD-4890

The error:
20150116_23:49:26.394 ERROR : Attempted to read or write protected memory. This is often an indication that other memory is corrupt.
20150116_23:49:26.397 ERROR : at OpenTK.Graphics.OpenGL.GL.DrawRangeElements(BeginMode mode, Int32 start, Int32 end, Int32 count, DrawElementsType type, IntPtr indices)

Really is unfortunate though because it's in OpenGL :( we'll poke at it though & see if there's something we can do to make it NOT hit that. Alternatively, we have another task to upgrade our whole graphics library from Monogame-SDL2 to the latest version of FNA (which we think is more stable & will have less of these cases where random cards will just go crashy with it). Upgrading to full FNA will take some time though. If we dropped everything it would still be about a week.

We'll let you know if we find any workarounds...
≓Sean Colombo≒  [developer] Jan 23, 2015 @ 8:24am 
So, eventually we may upgrade our graphics library to FNA (a slightly newer and slightly more stable version of what we're using now), which could remove some of these edge cases. That's pretty complicated, so it'll likely be a while before we get to that. That may or may not fix this issue.

In the meantime, the only other thing we could think of to try to get it working for you was for you to Pause the game (hit Escape) then go into "Settings" then turn off "Mirror Rendering", "Normal Mapping" and "Antialiasing". Since these all use slightly more advanced tricks in OpenGL, this will degrade the appearance of the game a bit, but will reduce the likelihood that the game will be doing something in OpenGL that causes your graphics driver to crash. The game will remember your settings, so you won't have to do this every game... just once.

Let me know how it goes! ^_^
stufff Jan 23, 2015 @ 12:41pm 
Turning off normal mapping seems to have stopped the constant crashing. I eliminated the options one by one and I was able to play for a few minutes without crashing with normal mapping off but mirror rendering and AA still on. Will try playing a couple full games later tonight but I could see the results of turning off normal mapping right away.
≓Sean Colombo≒  [developer] Jan 23, 2015 @ 12:59pm 
YAY! I'm so glad there seems to be a workaround *whew* Keep us posted if anything goes wrong!
< >
Showing 1-14 of 14 comments
Per page: 1530 50