The following warnings occurred:
Warning [2] Undefined array key "lockoutexpiry" - Line: 94 - File: global.php PHP 8.2.26 (Linux)
File Line Function
/global.php 94 errorHandler->error
/printthread.php 16 require_once
Warning [2] Undefined array key "lockoutexpiry" - Line: 550 - File: global.php PHP 8.2.26 (Linux)
File Line Function
/global.php 550 errorHandler->error
/printthread.php 16 require_once
Warning [2] Undefined array key "avatartype" - Line: 811 - File: global.php PHP 8.2.26 (Linux)
File Line Function
/global.php 811 errorHandler->error
/printthread.php 16 require_once
Warning [2] Undefined array key "avatartype" - Line: 811 - File: global.php PHP 8.2.26 (Linux)
File Line Function
/global.php 811 errorHandler->error
/printthread.php 16 require_once
Warning [2] Undefined variable $awaitingusers - Line: 25 - File: global.php(872) : eval()'d code PHP 8.2.26 (Linux)
File Line Function
/global.php(872) : eval()'d code 25 errorHandler->error
/global.php 872 eval
/printthread.php 16 require_once
Warning [2] Undefined array key "style" - Line: 937 - File: global.php PHP 8.2.26 (Linux)
File Line Function
/global.php 937 errorHandler->error
/printthread.php 16 require_once
Warning [2] Undefined property: MyLanguage::$lang_select_default - Line: 5196 - File: inc/functions.php PHP 8.2.26 (Linux)
File Line Function
/inc/functions.php 5196 errorHandler->error
/global.php 937 build_theme_select
/printthread.php 16 require_once
Warning [2] Undefined array key "additionalgroups" - Line: 7360 - File: inc/functions.php PHP 8.2.26 (Linux)
File Line Function
/inc/functions.php 7360 errorHandler->error
/inc/functions.php 5216 is_member
/global.php 937 build_theme_select
/printthread.php 16 require_once
Warning [2] Undefined array key "additionalgroups" - Line: 7360 - File: inc/functions.php PHP 8.2.26 (Linux)
File Line Function
/inc/functions.php 7360 errorHandler->error
/inc/functions.php 5216 is_member
/global.php 937 build_theme_select
/printthread.php 16 require_once
Warning [2] Undefined array key "additionalgroups" - Line: 7360 - File: inc/functions.php PHP 8.2.26 (Linux)
File Line Function
/inc/functions.php 7360 errorHandler->error
/inc/functions.php 5216 is_member
/inc/functions.php 5233 build_theme_select
/global.php 937 build_theme_select
/printthread.php 16 require_once
Warning [2] Undefined array key "additionalgroups" - Line: 7360 - File: inc/functions.php PHP 8.2.26 (Linux)
File Line Function
/inc/functions.php 7360 errorHandler->error
/inc/functions.php 5216 is_member
/global.php 937 build_theme_select
/printthread.php 16 require_once
Warning [2] Undefined array key "additionalgroups" - Line: 7360 - File: inc/functions.php PHP 8.2.26 (Linux)
File Line Function
/inc/functions.php 7360 errorHandler->error
/inc/functions.php 5216 is_member
/global.php 937 build_theme_select
/printthread.php 16 require_once
Warning [2] Undefined array key "showimages" - Line: 160 - File: printthread.php PHP 8.2.26 (Linux)
File Line Function
/printthread.php 160 errorHandler->error
Warning [2] Undefined array key "showvideos" - Line: 165 - File: printthread.php PHP 8.2.26 (Linux)
File Line Function
/printthread.php 165 errorHandler->error
Warning [2] Undefined array key "showimages" - Line: 160 - File: printthread.php PHP 8.2.26 (Linux)
File Line Function
/printthread.php 160 errorHandler->error
Warning [2] Undefined array key "showvideos" - Line: 165 - File: printthread.php PHP 8.2.26 (Linux)
File Line Function
/printthread.php 165 errorHandler->error
Warning [2] Undefined array key "showimages" - Line: 160 - File: printthread.php PHP 8.2.26 (Linux)
File Line Function
/printthread.php 160 errorHandler->error
Warning [2] Undefined array key "showvideos" - Line: 165 - File: printthread.php PHP 8.2.26 (Linux)
File Line Function
/printthread.php 165 errorHandler->error
Warning [2] Undefined array key "showimages" - Line: 160 - File: printthread.php PHP 8.2.26 (Linux)
File Line Function
/printthread.php 160 errorHandler->error
Warning [2] Undefined array key "showvideos" - Line: 165 - File: printthread.php PHP 8.2.26 (Linux)
File Line Function
/printthread.php 165 errorHandler->error



Questions about the game's logic - Printable Version

+- (https://rain-games.com/forum)
+-- Forum: Teslagrad (https://rain-games.com/forum/forumdisplay.php?fid=1)
+--- Forum: General Discussion (https://rain-games.com/forum/forumdisplay.php?fid=2)
+--- Thread: Questions about the game's logic (/showthread.php?tid=945)



Questions about the game's logic - MetalFox Dioxymore - 02-27-2016

As I said in the presentation topic, I'm a speedrunner dedicated to glitch hunting =). And, because 20 minutes to finish the game is still too much, I'm still searching some ways to break it ! So I have a lot of questions about how does the game is made, its logic, its algorithms... We sent a french spy to your office last month, but it was not enough =p !

Of course, if the devs doesn't want to answer some, I understand xD. It's basically "explain me how the beat the crap of your baby"...

So, here we go !

I - Rooms loading management

Correct me if I'm wrong, but the game seems to load every rooms that is connected to the actual room, right ? I tested this : if I avoid checkpoints while going to a far room and die there, the game softlocks, because the room of the last checkpoint isn't loaded anymore.

BUT some rooms seems to not load until you activate a certain trigger : the scroll's altar, for exemple. When your are in the bottom of the tower, this room seems to be loaded only if you beat Orb... Is that right ? We tried Out of Bounds, Extended Blink Hitbox, but it seems impossible to reach that room before defeating Orb...

Alternate question : are there other rooms that aren't loaded until your reach some trigger ? And, if yes, what are their triggers ? I think that the "100% ending" is another room like this... I though for a moment that the tower portion at the left of the Oleg's fight room isn't loaded before you beat Oleg, but I'm not sure anymore (maybe the checkpoint is just too far to be reached with Extended Blink Hitbox)...

II - Invisible glitch ?

There is a glitch that is provoked by making a new game from a save in the village, and makes us invisible to enemies, a bit explained here :
https://www.youtube.com/watch?v=Xks4M5T4k4I
Why does the enemies doesn't "sees" us in that configuration ? Does the game considers us elsewhere the whole time ? Is there a "presence hitbox" that does not load properly ?

III - That mysterious fast-climbing

http://www.twitch.tv/eldesteaglegames/v/48412616
THIS is the video that may show the next major trick... It is quite old (version 1.2) and we don't understand it at all. The game considers the teslakid as "on the ground" all the time, making the animations glitchy and the vine climb super fast. We have spent countless hours to reproduce it, in vain. We don't even know if it has been patched of not... Do you have an idea of what is happening ? How to reproduce it ?

IV - Given character vs Loaded character

The game sometimes reacts differently with the given character (the one that spawns at the very beginning, during the cinematic) and a loaded character (loaded game or after a death). The best exemple is the trials skip, that must be done with precise jumps with the given character (https://www.youtube.com/watch?v=AIHbdUeJN6E), and just by standing on with a loaded character (a strat we use in actual routes, since we skip the intro by quitting and reloading the save). What are the differences between the given character and the loaded one ?

I have a lot of questions still, but 4 are enough for the moment =) !
Thanks for any answer ! I hope I've been clear enough ^^ !

~ MetalFox Dioxymore


RE: Questions about the game's logic - fredrik - 02-28-2016

Hi MetalFox Dioxymore,

I will try to clear some things up, but I don't know if I can answer every question.

Quote:Correct me if I'm wrong, but the game seems to load every rooms that is connected to the actual room, right ? I tested this : if I avoid checkpoints while going to a far room and die there, the game softlocks, because the room of the last checkpoint isn't loaded anymore.

Correct.

Quote:BUT some rooms seems to not load until you activate a certain trigger : the scroll's altar, for exemple. When your are in the bottom of the tower, this room seems to be loaded only if you beat Orb... Is that right ? We tried Out of Bounds, Extended Blink Hitbox, but it seems impossible to reach that room before defeating Orb...

The doors in the tower actually initiates loading of one or two rooms before opening. The case for the scroll room at the bottom is very much like with the doors, but the trigger is inactive before the orb boss is defeated.

Quote:Alternate question : are there other rooms that aren't loaded until your reach some trigger ? And, if yes, what are their triggers ? I think that the "100% ending" is another room like this... I though for a moment that the tower portion at the left of the Oleg's fight room isn't loaded before you beat Oleg, but I'm not sure anymore (maybe the checkpoint is just too far to be reached with Extended Blink Hitbox)...

It goes for all rooms. They are all loaded because of triggers, except when you load from the main menu. In most cases, it's the same trigger that activates the scene when you enter it. Other than that, I think you've covered the rest.


Quote:II - Invisible glitch ?

There is a glitch that is provoked by making a new game from a save in the village, and makes us invisible to enemies, a bit explained here :
https://www.youtube.com/watch?v=Xks4M5T4k4I
Why does the enemies doesn't "sees" us in that configuration ? Does the game considers us elsewhere the whole time ? Is there a "presence hitbox" that does not load properly ?

Probably a bug in the code that validates wether a player has entered a "navigation area". Only the player, the grues and the soldiers are involved in that code.

Quote:III - That mysterious fast-climbing

http://www.twitch.tv/eldesteaglegames/v/48412616
THIS is the video that may show the next major trick... It is quite old (version 1.2) and we don't understand it at all. The game considers the teslakid as "on the ground" all the time, making the animations glitchy and the vine climb super fast. We have spent countless hours to reproduce it, in vain. We don't even know if it has been patched of not... Do you have an idea of what is happening ? How to reproduce it ?

I'm just guessing now, but... the character has a list of objects that he is in contact with in all directions. It could be that the entry for some object was either not removed at the right time, or it was entered twice when it entered. This might have been fixed during a patch... I haven't searched through the logs for it. Such a bug could have been simultaneously creating other problems, and in that case we might have fixed it for other reasons.

Quote:IV - Given character vs Loaded character

The game sometimes reacts differently with the given character (the one that spawns at the very beginning, during the cinematic) and a loaded character (loaded game or after a death). The best exemple is the trials skip, that must be done with precise jumps with the given character (https://www.youtube.com/watch?v=AIHbdUeJN6E), and just by standing on with a loaded character (a strat we use in actual routes, since we skip the intro by quitting and reloading the save). What are the differences between the given character and the loaded one ?

That really shouldn't be the case. I'm guessing again... but you could be confusing another bug into this hypothesis?


RE: Questions about the game's logic - MetalFox Dioxymore - 02-28-2016

Hi Fredrik !

Wow, thank you for your answer ! That's awesome, and very instructive !

Quote:I'm just guessing now, but... the character has a list of objects that he is in contact with in all directions.

That's VERY interesting and explains a LOT of other stuffs =p ! That's why, if you are on a spider that dies/despawns without moving, your character "hovers". This also explains the "telepathy button" (http://www.twitch.tv/misterjack112/v/15071520) and also a glitch where the game thinks your are still on a slug when you quit it without moving (https://www.youtube.com/watch?v=FqhYumb3Awg) ! That slug glitch, however, is cryptic... The glitch cancels when you move in the opposite direction of the slug, but you keep it if you move in the same direction... When does this list is updated ?

Quote:That really shouldn't be the case. I'm guessing again... but you could be confusing another bug into this hypothesis?

I don't know... I made a quick video (in which the game's audio was a bit strange xD) to show it : https://youtu.be/ZjD1TXqdMzc
I start from the beginning to show that I do nothing really special, but you can jump to 4:10 (trials room). With the "given" character, you can't do the skip by simply staying on the platform (I try a bit, to show that it is not possible), you have to make precise jumps. Then, I reload the save and now, trials skip on staying on the platform is very easy. You can reaload anywhere (not only in that specific room) and the result will be the same, that why I though about that "given character vs loaded character" thing...

~MetalFox Dioxymore


RE: Questions about the game's logic - fredrik - 02-28-2016

Quote:That's VERY interesting and explains a LOT of other stuffs =p ! That's why, if you are on a spider that dies/despawns without moving, your character "hovers". This also explains the "telepathy button" (http://www.twitch.tv/misterjack112/v/15071520) and also a glitch where the game thinks your are still on a slug when you quit it without moving (https://www.youtube.com/watch?v=FqhYumb3Awg) ! That slug glitch, however, is cryptic... The glitch cancels when you move in the opposite direction of the slug, but you keep it if you move in the same direction... When does this list is updated ?

It should be updated at something 10hz, but we rely on PhysX to do the right thing in the background as well. I don't know on which side this bug happens.

Quote:I don't know... I made a quick video (in which the game's audio was a bit strange xD) to show it : https://youtu.be/ZjD1TXqdMzc
I start from the beginning to show that I do nothing really special, but you can jump to 4:10 (trials room). With the "given" character, you can't do the skip by simply staying on the platform (I try a bit, to show that it is not possible), you have to make precise jumps. Then, I reload the save and now, trials skip on staying on the platform is very easy. You can reaload anywhere (not only in that specific room) and the result will be the same, that why I though about that "given character vs loaded character" thing...

My own hypothesis would be that if you start from somewhere far from that site... PhysX will end up calculating with numbers that are further away from 0, which could give lower precision. It's already a glitchy situation... so maybe the accuracy plays an important role right there.

Of course I could be entirely wrong... and we're even abusing the physics engine a bit in order to prevent the bridge from rotating