Announcement: Be excellent to each other.


Caravel Forum : DROD Boards : Bugs : Monster order
New Topic New Poll Post Reply
Poster Message
Mister
Level: Master Delver
Rank Points: 104
Registered: 02-27-2003
IP: Logged
icon Monster order (0)  
I don't know where to post this, but since this is the only "beta-only" forum...


All monsters move with a certain order, that's why swarms of roaches sometimes move as a single unit and sometimes they do not.
Correct me if I'm wrong, but in Dugan's, all monsters are ordered from left-right, top-down in the beginning of all rooms.

In the Builder, the monster you place first, moves first, and some architects are using this to make some puzzles (as in Ricky's Dungeon L1 1N2E).

The problem is that there is no visual clue about the order. Also, (this may be a bug) placing many monsters at once adds them in left-right, top-down order; it doesn't matter if you dragged the monsters from left to right or right to left.

07-27-2003 at 11:49 AM
View Profile Send Private Message to User Show all user's posts Quote Reply
ErikH2000
Level: Legendary Smitemaster
Avatar
Rank Points: 2794
Registered: 02-04-2003
IP: Logged
icon Re: Monster order (0)  
Mister wrote:
All monsters move with a certain order, that's why swarms of roaches sometimes move as a single unit and sometimes they do not.
Correct me if I'm wrong, but in Dugan's, all monsters are ordered from left-right, top-down in the beginning of all rooms.

In the Builder, the monster you place first, moves first, and some architects are using this to make some puzzles (as in Ricky's Dungeon L1 1N2E).

The problem is that there is no visual clue about the order. Also, (this may be a bug) placing many monsters at once adds them in left-right, top-down order; it doesn't matter if you dragged the monsters from left to right or right to left.
The movement order isn't meant to be something that can be specified by the editor. It is a byproduct of the algorithm used for moving monsters which is probably the best one for our purposes. But I don't think puzzles where the player has to figure out movement order are in the DROD spirit, where the player is supposed to easily be able to predict what monsters will do.

-Erik

____________________________
The Godkiller - Chapter 1 available now on Steam. It's a DROD-like puzzle adventure game.
dev journals | twitch stream | youtube archive (NSFW)
07-27-2003 at 06:43 PM
View Profile Send Email to User Show all user's posts This architect's holds Quote Reply
Mister
Level: Master Delver
Rank Points: 104
Registered: 02-27-2003
IP: Logged
icon Re: Re: Monster order (0)  
ErikH2000 wrote:
The movement order isn't meant to be something that can be specified by the editor. It is a byproduct of the algorithm used for moving monsters which is probably the best one for our purposes. But I don't think puzzles where the player has to figure out movement order are in the DROD spirit, where the player is supposed to easily be able to predict what monsters will do.
This needs to be addressed ASAP. If you leave it as is, and in a future release fix it so monsters are created at room start in top-left down-right order, it may break some holds. Not because the author intended the monsters to be in certain order, but some rooms requiring precise movement may become unsolvable if monster order changes.
I'm guessing the monsters are stored in a linked list... it should be easy just to create another list with the monsters ordered upon room save (and maybe before testing, too).

07-28-2003 at 09:03 PM
View Profile Send Private Message to User Show all user's posts Quote Reply
Schik
Level: Legendary Smitemaster
Avatar
Rank Points: 5419
Registered: 02-04-2003
IP: Logged
icon Re: Monster order (0)  
I don't really like having some monsters having movement priority over others base on arbitrary things like initial position or initial placement order.

I'd suggest something like the code below for the monster movement loop. This would give everybody a chance to move, and would get rid of those odd gaps in big masses of moving monsters. However, it would change a lot of behavior, and then all levels would have to be played again, etc...

While ListOne size keeps decreasing
   Iterate through monster ListOne
      If monster can move, move
      Else move monster to ListTwo
   ListOne = ListTwo





____________________________
The greatness of a nation and its moral progress can be judged by the way it treats its animals.
--Mahatma Gandhi
07-28-2003 at 09:13 PM
View Profile Send Private Message to User Send Email to User Show all user's posts High Scores Quote Reply
Mister
Level: Master Delver
Rank Points: 104
Registered: 02-27-2003
IP: Logged
icon Re: Monster order (0)  
That's a really big change, making very difficult to know which order the monsters will move after a while, mainly in rooms with brains.

Still, monster order on room start must be determined.

[Edited by Mister on 07-28-2003 at 09:21 PM]
07-28-2003 at 09:20 PM
View Profile Send Private Message to User Show all user's posts Quote Reply
ErikH2000
Level: Legendary Smitemaster
Avatar
Rank Points: 2794
Registered: 02-04-2003
IP: Logged
icon Re: Re: Monster order (0)  
Mister wrote:
That's a really big change, making very difficult to know which order the monsters will move after a while, mainly in rooms with brains.
I agree, Schik's solution is a very big change, although it makes the most sense to me for gameplay. I'm afraid it would also slow down monster movement so that checkpoint and saved game restores would more often have a noticeable delay. In some rooms with many monsters, there is already an ugly pause during restore.

Plus, we are guaranteed to break some rooms in Dugan's Dungeon with Schik's solution. This second problem also applies to your solution of sequencing monsters by their placement.

The monster sequence is currently preserved across save/restore/import/export. There's no reason the sequence information should be lost in the future except by accident, so I don't see any large problems caused by keeping the sequencing as it is now.

-Erik

____________________________
The Godkiller - Chapter 1 available now on Steam. It's a DROD-like puzzle adventure game.
dev journals | twitch stream | youtube archive (NSFW)
07-28-2003 at 10:08 PM
View Profile Send Email to User Show all user's posts This architect's holds Quote Reply
mrimer
Level: Legendary Smitemaster
Avatar
Rank Points: 5140
Registered: 02-04-2003
IP: Logged
icon Re: Monster order (0)  
At least, when saving a room in the editor we could order the monsters by room location (rather than placement order), starting in the upper left, so we'd at least have that part consistent. But I'd vote for Schik's idea ultimately!

____________________________
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.
07-28-2003 at 10:10 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
Schik
Level: Legendary Smitemaster
Avatar
Rank Points: 5419
Registered: 02-04-2003
IP: Logged
icon Re: Monster order (0)  
Even if my suggestion were taken, there is still dependence on some ordering - if two monsters are trying to get into the same place, ONE of them has to win. This is a non-issue if they're the same type, but if one's a goblin and one's a roach, it has to depend on something. It used to be position-based, now it's placement-order-in-the-editor based. Neither of these is particularly great, but.... what would be better?

____________________________
The greatness of a nation and its moral progress can be judged by the way it treats its animals.
--Mahatma Gandhi
07-28-2003 at 10:17 PM
View Profile Send Private Message to User Send Email to User Show all user's posts High Scores Quote Reply
Mister
Level: Master Delver
Rank Points: 104
Registered: 02-27-2003
IP: Logged
icon Re: Re: Re: Monster order (0)  
ErikH2000 wrote:
Schik's solution is a very big change, although it makes the most sense to me for gameplay.
I agree, although it may make the game much harder in rooms with many queens, as horde movement will be much improved. I'm thinking about L7,1S and L21,1N1W.

ErikH2000 wrote:
I'm afraid it would also slow down monster movement so that checkpoint and saved game restores would more often have a noticeable delay. In some rooms with many monsters, there is already an ugly pause during restore.
This is more perceptible in brain rooms, mainly in L25,2S (that's because it always take me a long time to beat that room).
A simple solution is to save an "actual state" along with the "movements-so-far" info, but this may introduce other problems.

About that, how does the brain algorithm work? I saw the code, but didn't understand it at first glance (and have lots of my own projects to worry about).
My guess: it assings a "distance to Beethro" to each tile a monster can move to, but is this recalculated for each monster or remembered until end-of-turn?

ErikH2000 wrote:
Plus, we are guaranteed to break some rooms in Dugan's Dungeon with Schik's solution.
What about the 'Neather? Thanks to him, door states can change during monster's turn. This, coupled with brains, can make things even more complicated.

ErikH2000 wrote:
This second problem also applies to your solution of sequencing monsters by their placement.
Why? I thought that was how all rooms in Dugan's were made. Are there some room in Dugan's with monsters in a non-standard sequence?

ErikH2000 wrote:
The monster sequence is currently preserved across save/restore/import/export.
Yes, I knew that. My suggestion was to resequence the monsters only when saving a room (while building it). Now that I think of it, it would be even easier to do it only at room start.

07-28-2003 at 10:33 PM
View Profile Send Private Message to User Show all user's posts Quote Reply
Mister
Level: Master Delver
Rank Points: 104
Registered: 02-27-2003
IP: Logged
icon Re: Re: Monster order (0)  
In reply to Schik's post:


Simple, say we have a MonstersList with the monsters in "standard order" at room start. Then, to move them:

MonstersToMove = MonstersList
MonstersList = ()
While MonstersToMove
    Monster = MonstersToMove.pop()
    If Monster can move, move and MonstersList.push(Monster)
    Else MonstersToMove.push(Monster)


all lists are supposed to be FIFO. Also, a check must be added to finish the loop if no monster in MonstersToMove can move.

In short, position-based at room start, and whatever (still deterministic) after that.


[Edited by Mister on 07-28-2003 at 10:44 PM]

[Edited by Mister on 07-28-2003 at 10:56 PM GMT: ack, added code tags]
07-28-2003 at 10:42 PM
View Profile Send Private Message to User Show all user's posts Quote Reply
Oneiromancer
Level: Legendary Smitemaster
Avatar
Rank Points: 2936
Registered: 03-29-2003
IP: Logged
icon Re: Re: Re: Re: Monster order (0)  
Mister wrote:
What about the 'Neather? Thanks to him, door states can change during monster's turn. This, coupled with brains, can make things even more complicated.

I am pretty sure that the 'Neather moves in his own "phase", between Beethro and the rest of the monsters, kind of like mimics.

Game on,

____________________________
"He who is certain he knows the ending of things when he is only beginning them is either extremely wise or extremely foolish; no matter which is true, he is certainly an unhappy man, for he has put a knife in the heart of wonder." -- Tad Williams
07-28-2003 at 10:43 PM
View Profile Send Private Message to User Send Email to User Show all user's posts This architect's holds Quote Reply
Schik
Level: Legendary Smitemaster
Avatar
Rank Points: 5419
Registered: 02-04-2003
IP: Logged
icon Re: Re: Re: Monster order (0)  
Mister wrote:
MonstersToMove = MonstersList
MonstersList = ()
While MonstersToMove
Monster = MonstersToMove.pop()
If Monster can move, move and MonstersList.push(Monster)
Else MonstersToMove.push(Monster)
Yeah, that's pretty much what I said earlier. The only part I don't like is ordering who gets to go first based on where they started in the room. What happens to roaches/tar babies created by Roach Queens/Tar Mothers? When do they get to go? In the order they're created? I assume that's how it is right now... So now I need to keep track of which roaches were there from the beginning and which were created later, in case either or both are competing against another monster for position later in the room.

Part of me thinks "Hey, it should be changed to work how it's worked in the past... if it ain't broke don't fix it." Another part thinks "It *IS* broke. But I'm not sure how to fix it." Another part thinks "I could really go for a sandwich right now."



____________________________
The greatness of a nation and its moral progress can be judged by the way it treats its animals.
--Mahatma Gandhi
07-28-2003 at 10:52 PM
View Profile Send Private Message to User Send Email to User Show all user's posts High Scores Quote Reply
Mister
Level: Master Delver
Rank Points: 104
Registered: 02-27-2003
IP: Logged
icon Re: Monster order (0)  
If a monster spawns monsters, just add those to MonsterList.

Order doesn't matter as long as it's coherent.
07-28-2003 at 10:58 PM
View Profile Send Private Message to User Show all user's posts Quote Reply
ErikH2000
Level: Legendary Smitemaster
Avatar
Rank Points: 2794
Registered: 02-04-2003
IP: Logged
icon Re: Re: Re: Re: Monster order (0)  
Mister wrote:
ErikH2000 wrote:
I'm afraid it would also slow down monster movement so that checkpoint and saved game restores would more often have a noticeable delay. In some rooms with many monsters, there is already an ugly pause during restore.
This is more perceptible in brain rooms, mainly in L25,2S (that's because it always take me a long time to beat that room).
A simple solution is to save an "actual state" along with the "movements-so-far" info, but this may introduce other problems.
We are too close to our release to add a change like this. It's clear how to write such a thing, but the new code would invalidate a lot of our testing work and set our release date back maybe a month.

But you know, I'm going to go try your monster reordering thing right now, and see if it is as disruptive to Dugan's Dungeon as I thought.

-Erik


____________________________
The Godkiller - Chapter 1 available now on Steam. It's a DROD-like puzzle adventure game.
dev journals | twitch stream | youtube archive (NSFW)
07-29-2003 at 12:18 AM
View Profile Send Email to User Show all user's posts This architect's holds Quote Reply
ErikH2000
Level: Legendary Smitemaster
Avatar
Rank Points: 2794
Registered: 02-04-2003
IP: Logged
icon Re: Monster order (0)  
I temporarily added Mister's change for sequencing monsters by their room placement. Unfortunately it breaks about half the demos for Dugan's Dungeon. Some rooms, like those found on level nine, would probably become insolvable or too easily solvable.

So I plan to leave the current sequence behavior as it is now.

-Erik

____________________________
The Godkiller - Chapter 1 available now on Steam. It's a DROD-like puzzle adventure game.
dev journals | twitch stream | youtube archive (NSFW)
07-29-2003 at 01:13 AM
View Profile Send Email to User Show all user's posts This architect's holds Quote Reply
ErikH2000
Level: Legendary Smitemaster
Avatar
Rank Points: 2794
Registered: 02-04-2003
IP: Logged
icon Re: Re: Re: Re: Re: Monster order (0)  
ErikH2000 wrote:
We are too close to our release to add a change like this. It's clear how to write such a thing, but the new code would invalidate a lot of our testing work and set our release date back maybe a month.
Sorry, Mister--I am overarguing. I didn't need to bring up the point about Schik's suggestion causing delays, because it would also be too large a change to include in this release. I should have just left it at that.

You are right that the restore delay can be avoided by storing "key frames" in the saved games, making Schik's movement rules more acceptable. Something like this would be considered for inclusion in a future release.

Also, rereading your first post, I see one assumption I should have corrected: Monsters in Dugan's Dungeon are not all stored top/down, left/right. If they were, then your enforced sequencing idea would have worked without breaking rooms in Dugan's Dungeon.

-Erik

[Edited by ErikH2000 on 07-29-2003 at 01:31 AM]

____________________________
The Godkiller - Chapter 1 available now on Steam. It's a DROD-like puzzle adventure game.
dev journals | twitch stream | youtube archive (NSFW)
07-29-2003 at 01:27 AM
View Profile Send Email to User Show all user's posts This architect's holds Quote Reply
New Topic New Poll Post Reply
Caravel Forum : DROD Boards : Bugs : Monster order
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.