Announcement: Why not try our official idea generator for inspiration when making puzzles?


Caravel Forum : DROD Boards : Architecture : The Neather's Lair (KDD L25 Revisited: A scripting experiment)
New Topic New Poll Post Reply
Poster Message
TFMurphy
Level: Smitemaster
Rank Points: 3118
Registered: 06-11-2007
IP: Logged

File: The Neathers Lair.hold (93.9 KB)
Downloaded 119 times.
License: Public Domain
icon The Neather's Lair (+6)  
This is simply an attempt to implement the 25th Floor of King Dugan's Dungeon without using the internally-coded Neather mob, and instead relying entirely on scripting. We've come a long way since JtRH's scripting, so I thought it interesting to see how close I could make it to the original. Everything that controls the Neather in this hold is done using TCB scripting rather than any of the internal Neather code. The sounds for the Neather were imported from those in Architect's Edition, so I believe they're fairly used in this context.

There are, of course, a few problems. I'll discuss them here. The hold is Anyone Edit so you can see the scripting I've done. I've tried to follow the source code as I could, so most things should work as they did in Architect's Edition.

So what doesn't work? Well, there are three main problems in total.


#1. Neather Movement
A Neather is a Roach, essentially. The major difference is that instead of having the player's current location as his goal, he'll instead a set location somewhere in the room as his current goal. Sometimes this is an orb, and he'll move to strike it, but in all other respects, he moves like a roach.

So problem #1, is that TCB does not allow for Roach Movement. If you get close enough to block the Neather with your sword, then there will be a difference in how the Neather moves, since in TCB, all I can use is Flexible Movement (which means he can sidestep your sword) or Direct Movement (which means he can't slide down straight corridors to reach goals). I even had to add an extra goal in 1N2W since Flexible Movement meant he went horizontally at one point when he should have gone vertically (and thus got stuck).

Will this ever be fixed? Well, DROD RPG added two more movement styles to scripted characters, finally allowing Roach Movement to be replicated, so if that is ever ported back to TCB, then our scripted Neather here will be able to benefit.


#2. Required Target
The Neather is a monster, and as such is a required target in any room he starts in. Furthermore, he is invulnerable in all rooms except the one room where he *should* be killed. And even in that one room, you can't kill him normally: simply stabbing him brings up a Question Box that asks if you really want to kill him.

There's no way to replicate all this in current scripting. The Neather can't be both a Required Target *and* Invulnerable. And the Neather also can't be the only Required Target in the room: otherwise, the room is considered conquered as soon as you enter.

The latter part of this problem -- an NPC can't be the sole monster in a room -- was rectified somewhat for later holds with the introduction of the Conquer Token in TCB, but that obviously won't work here. It would be nice if it were possible to flag NPCs as having certain traits *inherently* before their script is even run, just as they begin with a Character Role and Visibility states.

The first part of the problem -- Required Target and Invulnerable being mutually exclusive -- is more important though, and covered in this feature request. Of course, even were that to be implemented, our Neather clone would still need the capability to detect when the player stabs him. There's no "Wait for someone to stab me" command, but DROD RPG's more advanced way of querying relative positioning would make it easy to check whether the player was next to and facing the Neather (which is the basic requirement in AE for the player to stab him, after all).


#3. Movement Order
The Neather is a monster. And he is actually coded to be as fast as Slayers, which means he moves before *all* Architect Edition enemies.

That's not possible with character scripting, since characters move after *everything*. And this *really* affects some of the rooms in this scripted hold rather nastily. It's most apparent in 1W, where the roach moves before the Neather... and thus the Neather's trap never really works. It's also apparent in 2S where the amount of spawned roaches and amount of monster checking that the Neather does means that it really does get out of sync from an AE playthrough.

This could eventually be addressed by a particular DROD RPG feature request, which if implemented in TCB would enable the scripted Neather's 'speed' to be set to any value, allowing the scripted Neather to duplicate the internal Neather's speed. With this, monster movement order would be preserved.


Other than these problems, I think I've done my best in preserving all of the little interesting quirks the Neather has. One of my favourites is in 1S2W: if you close the SW door after the Neather has gone past it but before he disappears, he'll try to return to open it again, even though he's already safe from you and could just exit. Another 1S2W quirk I had to code around is that because monsters move before characters, I had to add in an extra check that made sure that the Neather fled once the Tar Mother was properly destroyed. Without that check, it was possible to fool the Neather into thinking that the Tar Mother was still alive by allowing a baby to move into a tar mother's space immediately after stabbing the last eye (you couldn't stab the tar and *create* a baby there, mind, since tar breakup only happens after monster movement, so the Neather would see that both squares are bereft of monsters). I'll note that the KDD2.0 Neather can be fooled in this manner since that Neather is scripted.

In any case, if this sort of thing interests you, then please feel free to experiment with the hold.
10-29-2010 at 02:20 AM
View Profile Send Private Message to User Show all user's posts This architect's holds Quote Reply
New Topic New Poll Post Reply
Caravel Forum : DROD Boards : Architecture : The Neather's Lair (KDD L25 Revisited: A scripting experiment)
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.