Facebook Twitter YouTube Frictional Games | Forum | Privacy Policy | Dev Blog | Dev Wiki | Support | Gametee


Thread Rating:
  • 5 Vote(s) - 4.2 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Amnesia: The Second Dimension [READY FOR LAUNCH]
MrBehemoth Offline
Senior Member

Posts: 408
Threads: 19
Joined: Feb 2014
Reputation: 40
#74
RE: Amnesia: The Second Dimension [Not out of the woods yet...]

So, like the title update says, not out of the woods yet.

Good news is that I can now play-test right through to loading the 5th level (that's 9 map loads, including the recurring scoreboard.map) before the crash happens, which is a massive improvement. The bad news is the same news as the good news. Here are my current thoughts.

Assumption: a timer is actually just a type of callback. If there is a limit on these as discussed, then it would include timers and all other types of callbacks on a single list.

Mine and Amn's tests showed that you could rack up ~65k timers in a simple map before a crash. That doesn't seem to be what's happening here any more.

I did a lot of work re-coding various systems to make use of the timer-less loop, which only uses 1 callback per map, and re-coded a few puzzles and cut-scenes to use it too, but I wasn't able to get rid of them all. At least not easily.

So to keep track of the remaining callbacks, I overloaded the AddTimer(), AddEntityCollideCallback() and PlayPropAnimation() functions so that every time they are called they are counted and logged.

(These are not used at all and are not counted: CheckPoint(), SetEffectVoiceOverCallback(), StartPlayerLookAt(), SetLanternLitCallback(), AddCombineCallback(), AddUseItemCallback(), SetEntityPlayerLookAtCallback(), SetEntityCallbackFunc(), SetEntityConnectionStateChangeCallback(), ConnectEntities(), SetMultiSliderCallback(). I'm not aware of any other function that could add a callback.)

The last play-through logged just 442 callbacks (211 timers, 228 collide callbacks and 3 anim-end callbacks) before the crash occurred on loading level 5. There would also have been 1 OnPlayerInteract callback per map, added in the level editor, making 451. That's less than 1% of the supposed limit.

I also logged all PlayPropAnimation() calls that don't pass in a callback name (asCallback == ""), just in case they contributed to the limit by some quirk. There are 1242 of those. I really doubt these contribute, but even if they did it would still only make 1684 callbacks total.


So, whatever is now causing the crash, it's something new. It's still not related to any specific map. I'm stumped again.

Anyone got any other ideas?

(Mudbill and Amn [edit: sorry, I mean Daemian], if you want an updated test version, just let me know.)

(This post was last modified: 03-04-2015, 11:54 PM by MrBehemoth.)
03-04-2015, 11:50 PM
Find


Messages In This Thread
RE: Amnesia: The Second Dimension - by Romulator - 09-07-2014, 03:01 AM
RE: Amnesia: The Second Dimension - by Mudbill - 09-07-2014, 03:13 AM
RE: Amnesia: The Second Dimension - by MrBehemoth - 09-07-2014, 12:42 PM
RE: Amnesia: The Second Dimension - by Streetboat - 09-07-2014, 05:56 AM
RE: Amnesia: The Second Dimension - by Slanderous - 09-07-2014, 11:36 AM
RE: Amnesia: The Second Dimension - by Rapture - 09-07-2014, 08:29 PM
RE: Amnesia: The Second Dimension - by MrBehemoth - 09-07-2014, 08:47 PM
RE: Amnesia: The Second Dimension - by Neelke - 09-07-2014, 08:42 PM
RE: Amnesia: The Second Dimension - by AGP - 09-07-2014, 09:11 PM
RE: Amnesia: The Second Dimension - by MrBehemoth - 09-08-2014, 06:18 PM
RE: Amnesia: The Second Dimension - by MrBehemoth - 09-27-2014, 01:10 AM
RE: Amnesia: The Second Dimension - by Viper85626 - 09-27-2014, 01:38 AM
RE: Amnesia: The Second Dimension - by MrBehemoth - 11-01-2014, 04:21 PM
RE: Amnesia: The Second Dimension [Not out of the woods yet...] - by MrBehemoth - 03-04-2015, 11:50 PM



Users browsing this thread: 1 Guest(s)