Announcement: Be excellent to each other.


Caravel Forum : DROD Boards : Bugs : Tar Babies from Explosions (The unintended 3.2 Movement Order change)
New Topic New Poll Post Reply
Poster Message
TFMurphy
Level: Smitemaster
Rank Points: 3118
Registered: 06-11-2007
IP: Logged
icon Tar Babies from Explosions (+3)  
I recently learned that the new bomb code's been causing yet more problems - this time with tar babies. It seems that the movement order of babies has been changed, since exploding tar is now dealt with in a different way.

What Used To Happen
It used to be that explosions happened to squares as soon as the explosion reached that point. The order was basically to expand from each bomb, starting with squares close to the bomb and working outwards. Basic order each square was checked in was NW, N, NE, W, E, SW, S, SE. Each bomb was completely finished with before any new bombs that were hit by the explosion were looked at. This dictates the order tarstuff was removed, and thus where babies were spawned in which order.

What Now Happens
Now the entire explosion is calculated, creating an area of squares that are hit by the explosion. The order in which the bombs explode does not matter. Once the entire area has been worked out, the squares affected are 'exploded' one at a time, starting from the leftmost column and working down, and then moving to the right, one column at a time.

===

This creates a movement order change in generated babies from bomb explosions. And because of this, certain demos will likely be invalid (one example brought up was Smitemastery 101: Mucky Museum: 1N1E).

So, what can be done about this? Here's the two main possibilities:
1) Leave as is. There's a logic in it that's easy to understand, and we're already quite a while out of beta on our latest patch. We may want to patch 2.0 to bring it up to speed for CaravelNet highscores though. But this has the downside of invalidating quite a number of old demos.

2) Revert to the old ordering. This is actually fairly easy to do: currently, the variable 'explosion' in CDbRoom::ExpandExplosion is a CCoordSet. If this is changed to a CCoordStack, then we can replace explosion.has with .IsMember, .insert with .Push, and use a while loop with .PopBottom in CDbRoom::BombExplode and CPhoenix::Explode to treat it like a queue, getting the order as originally intended.

The downside here is that we're catching this a little late. Also, reverting using the current code brings another order change to something else: orbs activated by explosions were long ago shifted to the current ordering unintentionally by the same type of bugfix that caused this tarstuff change. It's a lot harder for orbs to be an position that this order change would be noticable, but it can be done, notably with a pair of orbs where one opens and one closes the same door. I don't think this would impact as many rooms as the tar baby order does (if orb ordering affects any rooms at all), but it's certainly an issue.

===

Anyways, I'm not sure what's the best course of action to take, but there's the situation as I see it. Please feel free to add anything you think may help.
06-03-2008 at 02:50 AM
View Profile Send Private Message to User Show all user's posts This architect's holds Quote Reply
Jacob
Level: Smitemaster
Rank Points: 3746
Registered: 10-01-2004
IP: Logged
icon Re: Tar Babies from Explosions (0)  
As far as you know, does this actually break any rooms?
If not, I'd vote to leave as is.

____________________________
New to DROD? You may want to read this.
My Holds and Levels:
Click here to view the secret text

06-03-2008 at 09:08 AM
View Profile Send Private Message to User Send Email to User Show all user's posts High Scores This architect's holds Quote Reply
Jatopian
Level: Smitemaster
Rank Points: 1842
Registered: 07-31-2005
IP: Logged
icon Re: Tar Babies from Explosions (0)  
After reading carefully to ensure I understand, I vote to leave as is. I'm sure this makes no rooms impossible or worth changing.

____________________________
DROD has some really great music.
Make your pressure plates 3.0 style!
DROD architecture idea generator
06-03-2008 at 09:29 AM
View Profile Send Private Message to User Show all user's posts This architect's holds Quote Reply
Rabscuttle
Level: Smitemaster
Avatar
Rank Points: 2460
Registered: 09-10-2004
IP: Logged
icon Re: Tar Babies from Explosions (0)  
The change from ordering by bomb proximity to ordering by left-to-right, top-to-bottom means that rooms with single bombs could be affected, right? (eg if the blast is directed SW and there are two tar blobs, one next to the bomb and one on the blast edge)

I don't think it will turn rooms from possible to impossible (if it does, my bets are that it's in one of Larry's holds))

But it may break a lot of demos, depending on how likely it is for a bomb to cause a change in order.

I'm probably on the side of letting it be. I'm caught up on my scores, so if someone wants to get the spider to reverify all of my demos, that should give an indication of how much of a problem it will cause demo-wise (and turn up any rooms that do end up broken by the change (after I redo the ones that were just demo-broken :) ))



[Last edited by Rabscuttle at 06-03-2008 10:14 AM]
06-03-2008 at 10:13 AM
View Profile Send Private Message to User Show all user's posts High Scores This architect's holds Quote Reply
mrimer
Level: Legendary Smitemaster
Avatar
Rank Points: 5058
Registered: 02-04-2003
IP: Logged
icon Re: Tar Babies from Explosions (0)  
I'd also prefer to leave this as-is. Having all ordering rules be easy-to-understand, especially since that's how this one is atm, is a plus in my book. Yes, it will change some room solutions, and on the off chance some 2.0 room is actually broken, I'd rather we tweak the room at that point to work in 3.2 and update 2.0 with the current 3.2 bomb explosion or tar expansion ordering logic, as you suggest. However, I'd also expect nothing is actually fundamentally broken by this. I'm also okay with isolated rooms possibly needing game demos redone -- the rationality here is that, at this point, since we now have new demos and old demos, some of them would need redoing either way, so why not just make the old ones current rather than have players revert new demos back to the old way.

____________________________
Gandalf? Yes... That's what they used to call me.
Gandalf the Grey. That was my name.
I am Gandalf the White.
And I come back to you now at the turn of the tide.

[Last edited by mrimer at 06-03-2008 04:36 PM]
06-03-2008 at 04:35 PM
View Profile Send Private Message to User Send Email to User Show all user's posts High Scores This architect's holds Quote Reply
CuriousShyRabbit
Level: Smitemaster
Rank Points: 3170
Registered: 10-14-2006
IP: Logged
icon Re: Tar Babies from Explosions (+2)  
mrimer wrote:
Yes, it will change some room solutions, and on the off chance some 2.0 room is actually broken, I'd rather we tweak the room at that point to work in 3.2 and update 2.0 with the current 3.2 bomb explosion or tar expansion ordering logic.
Even if no room is broken, I think 2.0 needs to be patched, if 3.2 stays as is. Right now, it is possible to create victory demos in 2.0 that are invalidated by the 3.2-using spider.

The example of Smitemastery 101 : Mucky Museum : 1N1E that TFMurphy mentioned is what we were talking about in chat yesterday. Tahnan imported his old demo into 3.2 and watched Beethro die on turn 37. I imported that same demo into 2.0.16 and watched Beethro conquer the room. I think they should somehow be made consistent.
06-03-2008 at 10:40 PM
View Profile Send Private Message to User Show all user's posts Quote Reply
mrimer
Level: Legendary Smitemaster
Avatar
Rank Points: 5058
Registered: 02-04-2003
IP: Logged
icon Re: Tar Babies from Explosions (+1)  
CuriousShyRabbit wrote:
mrimer wrote:
Yes, it will change some room solutions, and on the off chance some 2.0 room is actually broken, I'd rather we tweak the room at that point to work in 3.2 and update 2.0 with the current 3.2 bomb explosion or tar expansion ordering logic.
Even if no room is broken, I think 2.0 needs to be patched, if 3.2 stays as is. Right now, it is possible to create victory demos in 2.0 that are invalidated by the 3.2-using spider.

The example of Smitemastery 101 : Mucky Museum : 1N1E that TFMurphy mentioned is what we were talking about in chat yesterday. Tahnan imported his old demo into 3.2 and watched Beethro die on turn 37. I imported that same demo into 2.0.16 and watched Beethro conquer the room. I think they should somehow be made consistent.
Agreed. People are playing JtRH in 3.2 and everything is still solvable there (right?), so this change should be safe. I've back-ported the 3.2 bomb explosion behavior to be in the upcoming 2.0.17 patch.

____________________________
Gandalf? Yes... That's what they used to call me.
Gandalf the Grey. That was my name.
I am Gandalf the White.
And I come back to you now at the turn of the tide.

[Last edited by mrimer at 04-19-2009 10:29 PM]
04-19-2009 at 10:28 PM
View Profile Send Private Message to User Send Email to User Show all user's posts High Scores This architect's holds Quote Reply
CuriousShyRabbit
Level: Smitemaster
Rank Points: 3170
Registered: 10-14-2006
IP: Logged
icon Re: Tar Babies from Explosions (0)  
I don't think we know for a fact that everything is solvable in 3.2. There is a huge number of rooms in the database now, and it's possible a room no one has played in a while has a problem. Although I've played a lot of rooms, the majority of my player data is either lost or still in a huge 2.0 file (when there's a choice, I prefer to play in the 2.0 engine due to its far superior stablity on my computer). The way I find out about problems is mostly by reading H&S, by reading the Holds board, and by hanging out in the 3.2 in-game chat. Then I go post in my topic about holds that need updating on the HA board. Overall, I'm happy to help out when I can, but I don't think this is a good way for Caravel to find out if all rooms published on their site work in their current game engine.

Rabscuttle made a very helpful suggestion a few posts up. I don't think we need to use Rabscuttle's demos in particular, but it's still a good idea. It would be great if some kind of test spider, using the latest beta patch, would run through lets say 3 random demos for each published room. It could then generate a list of rooms where all 3 tested demos were invalid. Hopefully that list would be a couple hundred rooms rather than several thousand rooms. I'd be happy to go through the list by hand and identify which, if any, rooms were truly broken. Ideally, Caravel would use such a test spider just before any patch to the game engine becomes official. :)

And yes, I know that after all this, we still wouldn't know if everything was solvable in the latest game engine, as there might be problems traversing unscorable rooms, or changes in scripting. But still, a test spider would be a great start...
04-20-2009 at 02:15 AM
View Profile Send Private Message to User Show all user's posts Quote Reply
mrimer
Level: Legendary Smitemaster
Avatar
Rank Points: 5058
Registered: 02-04-2003
IP: Logged
icon Re: Tar Babies from Explosions (0)  
CuriousShyRabbit wrote:
I don't think we know for a fact that everything is solvable in 3.2.
No, what I mean is that I've heard people say they've played through JtRH in 3.2 and mastered the hold. This would indicate that all the rooms in JtRH are solvable in 3.2, hence we can back-port the 3.2 bomb behavior to 2.0 and JtRH will not be broken.

I agree Caravel ideally would verify all demos with every patch.

____________________________
Gandalf? Yes... That's what they used to call me.
Gandalf the Grey. That was my name.
I am Gandalf the White.
And I come back to you now at the turn of the tide.

[Last edited by mrimer at 04-20-2009 02:21 AM]
04-20-2009 at 02:21 AM
View Profile Send Private Message to User Send Email to User Show all user's posts High Scores This architect's holds Quote Reply
CuriousShyRabbit
Level: Smitemaster
Rank Points: 3170
Registered: 10-14-2006
IP: Logged
icon Re: Tar Babies from Explosions (0)  
Ah, I understand now. Yes, I've heard that too.
04-20-2009 at 02:32 AM
View Profile Send Private Message to User Show all user's posts Quote Reply
New Topic New Poll Post Reply
Caravel Forum : DROD Boards : Bugs : Tar Babies from Explosions (The unintended 3.2 Movement Order change)
Surf To:


Forum Rules:
Can I post a new topic? No
Can I reply? No
Can I read? Yes
HTML Enabled? No
UBBC Enabled? Yes
Words Filter Enable? No

Contact Us | CaravelGames.com

Powered by: tForum tForumHacks Edition b0.98.8
Originally created by Toan Huynh (Copyright © 2000)
Enhanced by the tForumHacks team and the Caravel team.