Announcement: Be excellent to each other.


Caravel Forum : DROD RPG Boards : RPG Architecture : DAA Architectural Handbook (A(nother) guide to creating RPG holds)
Page 1 of 2
2
New Topic New Poll Post Reply
Poster Message
12th Archivist
Level: Smitemaster
Avatar
Rank Points: 789
Registered: 12-07-2008
IP: Logged
icon DAA Architectural Handbook (+4)  
Related topics:
Kieran's RPG architecture tips

There are probably more than one already-created guides to creating RPG holds well, but this should solidify them.

Let's go over some simple rules for creating a good RPG dungeon:

1) Give the player a lot of choices
2) It is not supposed to be a puzzle, it is supposed to be a strategy game where you look at different possibilities and choose which one seems best
3) Interlocking Puzzles - One of the new things about the RPG is that when a game element has been affected, if you leave that room and come back to it, the element will still be affected. This makes for better choice-making tools
4) Give the player more choices and occasionally the really difficult one
5) Give the player optimized choices where only people who have optimized the hold well can make the decisions more definitively
6) Using interlocking puzzles that span entire levels is often good as the player can start off simply and see where their choices end themselves up, which brings us to our final rule:
7) As our mastermind Chaco said:
Chaco wrote:
The trick seems to be giving the player a lot of choices and rewarding him for good choices, not punishing him for bad ones.
He was actually pretty correct at this statement, as forcing the player to start and restart is a very tedious process, and often leads to angry players.

Since we have covered the basic rules, let's start on more advanced topics.

Stronger Creatures:
So you've created your first level, have it fully tested, it works, and you finally want to create your second level. Your second level should include most of the enemies you found in the first level, but replacing a small amount of them with the tougher creatures. The trick to making another good level is not adding stronger creatures to the level, but rather removing the weaker ones.

Other counting methods:
You've got HP, ATK, and DEF all as ways of counting game-important things, but you want to add another counter to the table. Greckles are the currency in the game and have been used in the official hold (second part) to pay the Alter, a powerful machine that gives you HP, ATK, and DEF boosts at the cost of greckles. Often times, the Alter method is good for using money, but there are other methods of using greckles in [this] thread.

But we haven't discussed the REP counter. In the official hold, REP isn't important and can be ignored. However, there are multiple user-made holds springing up that use the REP counter to level up or for scoring purposes. Either way, you're making that memory-burning, number-counting hunk of useless power-wasting junk for its more intended purpose if you decide to use it.

Keys, they are your friend:
Keys play an important role in the game. Their intended purpose is to open doors. Various keys open various doors, though there are some doors that can't be opened with any key, no matter what color. These are red and black doors, or Trapdoor Gates and Tarstuff Gates, respectively. Although all doors can be opened with an orb/pressure plate, these can be opened only with orbs/pressure plates or by triggering their elemental counterparts (trapdoors and tarstuff). One way to open a red door is to drop all the trapdoors in the room, but there are other ways. Same for Tarstuff Gates, but to open them, you must destroy all stable tarstuff (mud, tar, and gel) in the room. Mud/Tar/Gel babies are understood as UNstable tarstuff, so they don't count in opening Tarstuff Gates.

Just for the record, Skeleton Keys can open four doors, not just three. They can open Yellow Doors, Green Doors, Blue Doors, and Greckle Gates (although using them on Greckle Gates is extremely unadvised).

Scripting
With the powerful DROD scripting engine we know today, you can do a whole bunch of stuff with it. Most notably, creating custom monsters with it (monsters that do not show up on the page to the left). These monsters can have their variables adjusted to almost anything! This is important not only for creating new monsters, but also creating other player roles. Player roles that start out with stats other than the usual 500, 10, 10.

With the scripting engine, it is also possible to create custom weapons, shields, and accessory items. These require more scripting than custom monsters, but in the long run, they can do wonders for your hold.

It is also possible to create entities without stats, who are simply used for moving around, ctuscenes, speech, and affecting player/monster stats.

The End
That's what I have to say. I might have missed something from that list, but it should be complete enough to post.

____________________________
It was going well until it exploded.
~Scott Manley

Check out the DROD Wikia project here!

[Last edited by mrimer at 09-21-2016 11:07 PM]
01-04-2009 at 04:55 AM
View Profile Send Private Message to User Show all user's posts This architect's holds Quote Reply
Fang
Level: Master Delver
Avatar
Rank Points: 175
Registered: 07-25-2008
IP: Logged
icon Re: DAA Architectural Handbook (0)  
Looks good, but regarding the REP stat, I've found a way to use it while thinking about classic RPGs which use level ups as a way to boost your character. In Einar, I've put in a very basic experience = REP system where the REP is used to gain levels. Additionally, that would give the Membership Card a true purpose; if by using it you gain faster levels, then that means bigger stats.

Edit: I've read too fast, you seem to have acknowledged it already. Ah well, I've delved deeper in the subject of REP then. :P

____________________________
"Imagination is more important than knowledge." -Albert Einstein

[Last edited by Fang at 01-04-2009 05:15 AM]
01-04-2009 at 05:14 AM
View Profile Send Private Message to User Show all user's posts Quote Reply
skell
Level: Legendary Smitemaster
Avatar
Rank Points: 3734
Registered: 12-28-2004
IP: Logged
icon Re: DAA Architectural Handbook (+1)  
Overall nice.
There are but 2 things though, which... Exist :P.
The first one is - it covers the basic basics, but still, a person like me who get completely and overly Confuzzled when thinking of playing RPG holds or TotS, can't even dream of making such puzzles (though I have this crazy idea of writing a level generator based on Environment Tree but that's quite different story). So what people like I miss most is:
A Guide for Showing and Explaining the True, Proper, One and Only Right Way of Thinking in TotS Styled Games
But once again this is different story as it is for architects.

The other thing is that it seems a bit too laconic. Extending it with more links to more examples and putting more solutions as they are discovered would be a good start in my opinion.

But still, big thumbs up! :thumbsup

____________________________
My website | Facebook | Twitter
01-04-2009 at 05:32 AM
View Profile Send Private Message to User Send Email to User Visit Homepage Show all user's posts High Scores This architect's holds Quote Reply
Nuntar
Level: Smitemaster
Avatar
Rank Points: 4590
Registered: 02-20-2007
IP: Logged
icon Re: DAA Architectural Handbook (0)  
12th Archivist wrote:
Your second level should include most of the enemies you found in the first level, but replacing a small amount of them with the tougher creatures.
That does rather depend on two things. One is the length of the first level; longer levels will need to contain more gradation within the level, and a second level may well contain none of the monsters seen at the beginning of the first. The other is subtler and depends on the storyline of the hold and what kind of area the level is meant to represent. A good example is my hold Nobard's Hold; there are separate parts of the castle where you find goblins, tar babies and Soulless even though the three are approximately the same difficulty. It just wouldn't fit the storyline to have a goblin in the tar area, for example.

Anyway, I think this guide deserves to be written in much more depth, and I'm going to try to do that :)

____________________________
50th Skywatcher
01-04-2009 at 09:40 AM
View Profile Send Private Message to User Show all user's posts High Scores This architect's holds Quote Reply
Nuntar
Level: Smitemaster
Avatar
Rank Points: 4590
Registered: 02-20-2007
IP: Logged
icon Re: DAA Architectural Handbook (0)  
1. Give the player many choices.

How to do this? Well, there are three methods that are absolutely ubiqitous; nearly every hold will contain all of them, and very often.

(1) An area or power-up can be reached in two (or more) ways; for example, either by killing a monster or by opening a yellow door. You have to decide whether it's more worthwhile to keep the HP or the key. And you're not limited to just one obstacle on each route; the choice might be between killing a fairly easy monster plus using a green key, or killing a tougher one plus using a yellow.

(2) Two or more power-ups are placed so that you have to choose between them. A common way is to put both on pressure plates, each closing a door that blocks the other. Nobard's Hold shows several ways to do the same thing with orbs or bridges instead; see Second Floor: 6S2E, Third Floor: 1N6E and Second Floor: 1N5W for examples. The choice should always be between two things of roughly equal value, otherwise there is no choice. It may help to remember the scoring system: 1 per 40 HP, 5 per ATK, 3 per DEF, 10 per yellow key, 20 per green key, 30 per blue or skeleton key. Of course, ATK and DEF are worth points both in themselves and for the HP they save you.

(Tendry's Tale does not contain choices of this type very much -- but then, it does have the Machines, so the player is continually forced to choose between HP, ATK and DEF.)

(3) A power-up is behind a monster, a door, or some combination, and you have to decide whether to take it now or later. Another common device is to have a merchant offering something for sale; you might have to decide whether buying his goods now leaves you enough money to keep going, or there might be several merchants and you cannot afford to buy from all of them immediately.

2. Use of monsters

Ever wondered why there are no Roach Queens in Nobard's Hold? Because they have a special property that makes them different from other monsters -- they lay roach eggs when another monster in the room is killed. When I began the hold I wasn't confident enough in my ability to use them well, so I decided not to use them at all. And of course, soon after I began I reached the stage where there was no point using them.

I'll divide this section into three subheadings:

2a. Thinking about monsters' combat stats

Let's start with a fairly straightforward fact. A monster can be killed in one shot if the player's ATK equals or exceeds the monster's HP plus its DEF, or if the player's DEF equals or exceeds the monster's ATK. Monsters that can be killed in one shot are not choices (unless killing them blocks something off -- see the section on Roach Queens below). One-shot monsters can still be used, namely as a reward for optimisation -- if you expect most players won't be able to one-shot them by that point but you don't mind if the better players are able to optimise enough.

The more subtle aspect of monsters' stats is the way they affect the player's decision whether to prioritise ATK or DEF. In this, remember that the damage you do to monsters is your ATK minus their DEF; their damage to you is the same but vice versa.

Monsters with high ATK and low HP reward the player for choosing ATK. The prime example is the Swordsman: regardless of your DEF, his 680 ATK will hurt you badly unless you can one-shot him, which only takes 150 ATK.

Monsters with high DEF and low HP also reward the player for choosing ATK. The prime example is the Rock Golem: regardless of your DEF, unless you have at least 69 ATK you cannot even hurt him, and it only takes 88 ATK for a one-shot kill.

Monsters with high HP generally reward the player for choosing either ATK or DEF. Nobard's Hold has a Rattlesnake that you can reach very near the beginning of the game; if you go straight for him after getting the sword, his expected damage will be well over 200,000. That's because with 21 ATK and 10 DEF it takes 1200 hits to kill him, letting him get in 1199 hits of 170 HP each. Of course you're not meant to even think about killing him until much later. If you come back with 100 ATK and unchanged DEF, his expected damage will be a mere 1870 -- eleven hits of 170 HP each. If instead you get 100 DEF and unchanged ATK, his expected damage will be 95,920. Even if you prioritise DEF while not ignoring ATK completely, let's say 30 ATK and 90 DEF, his expected damage is still 17,910. But at DEF 180 his damage is nothing, whereas at ATK 180 it's still 1020.

If you're bewildered by all those figures, the moral is that if an enemy has a huge expected damage, prioritising ATK will take heavy bites out of it immediately but will then make progress more and more slowly, and may never get it down to a manageable level -- depending on what you consider manageable. Prioritising DEF will make little difference for a long while, but as your DEF nears the enemy's ATK, you will suddenly see the damage plummet. Which one is better for a particular high-HP monster depends on the exact value of his stats, but if he has low ATK or extremely high HP then that suggests that DEF is the way to go.

2b. Thinking about monsters' special characteristics

Roach Queens. Queens lay eggs when another monster in the room is killed. These eggs have zero attack, so they cannot hurt you; they just block your passage unless your ATK is at least 24. Early in the game, roach queens can be used to give the player a slightly different type of choice: you must kill either a roach queen or an easier monster to reach a power-up or get through a passage, but if you kill the easier monster, the queen will lay an egg and block a power-up or passage you might have wanted to get as well. This doesn't work when the player has ATK 24 -- which is pretty early if he has or soon gets a sword -- but the same can be achieved in late-game levels with pressure plates. (The queen will now be easier than all other monsters, but to reach the queen without killing anything you might have to, for instance, walk through a Mad Eye's gaze. If you choose a route that involves killing something before reaching the queen, she will lay an egg on a pressure plate and block off something the player wants.) Roach Queen rooms are done very well throughout Fetch the Pie.

Evil Eyes, Mad Eyes. These enemies have two interesting properties. One, they strike you if you cross the square in front of them. This can be used to create choices between accepting HP loss or using up keys or money, or choices between accepting HP loss to reach a power-up or leaving it for later. Two, you get one extra hit if you strike from behind (including diagonally behind), thus reducing by a third the ATK you need to kill them without taking a hit. Use this to create choices between attacking from the front or spending keys or money to reach them from behind.

Tarstuff and tarstuff mothers. If a mother is present in a tarstuff blob, you have to fight the mother every time you cut a square. The simplest way to use this is just to make a boss fight harder (e.g. Nobard's Hold, Third Floor, 2S8E). Another idea is to make the player choose between killing the mother soon or fighting the entire blob before killing her. The latter costs more HP (unless it costs zero, of course) but gains more greckles. Yet another idea is to use tarstuff switch tokens to give the player a choice between the less rewarding easier fight or the more rewarding harder one. This can be done with tarstuff babies as well, of course.

Goblins. There are two interesting choices unique to goblins. One is the fact that they attack you if you step in front of them (since they turn to face you, this means on any adjacent square) with your back to them or facing at right angles. This can be used similarly to the Evil / Mad Eye's attack. It can also be used to create puzzles where you have to navigate a field of goblins taking the fewest hits, or have to decide whether it's worth opening a door to reduce the number of hits. (See Nobard's Hold, Fourth Floor, 1N1E.)

The other thing about goblins is that they are weak to the Goblin-Biter: specifically, it doubles your ATK when fighting goblins. So you can have a puzzle where the GB is hard but worthwhile to reach. That's stating the obvious, but there's little else to say about it.

Sworded enemies. Now things get interesting. You take a hit if you step on their sword; this can again be used in the same way as the Mad / Evil Eye's attack, to give you choices involving a loss of HP versus some other loss or gain. More sadistically, you might have to guess whether to kill a sworded enemy now or later. (If your ATK is between 85 and 103, a Soulless gets in three hits on you, so if there's a key beyond his sword, it's better to take two hits from walking across the sword. But is there anything else beyond it that might make you want to cross it four times? If so, kill him now and take three hits instead.)

Of course, sworded enemies can be positioned so you can't get past them by walking through their sword. They can also be positioned so you have to step on their sword to hit them -- usually if they are in a one-tile-wide corridor. In this case, the enemy always gets first hit. You can use this to make enemies that can never be reduced to zero damage by ATK alone. You can also, of course, put a door so the player could avoid losing the privilege of first hit and has to decide whether it's worth the sacrifice of a key.

Mimics. Fix a Mimic in place with a force arrow to use it as an enemy you must fight to get past. Because the player can (nearly) always leave the room, rotate and return, the one thing you can't do is force the player to step on the sword. Except by the clumsy expedient of putting orbs on both sides that close a door the player needs open.

I've seen two main uses for Mimics that are not fixed in place. One is to create mimic puzzles in classic DROD style; Tendry's Tale does this quite a bit, and there's a really nasty one in Fetch the Pie. The other is areas where the mimic fights enemies for you, as in Break out of Jail!, Cell Block B, 1S2W.

Waterskippers and seep. Both enemies attack you if you step in an adjacent square. I think you know by now what kind of puzzles and choices this can be used for. :)

Wubbas. The unique enemy with zero attack. The only thing they do is block you until you reach 321 ATK (or use a handbomb), and give a ridiculous number of greckles thereafter. Use this to make parts of your hold only reachable after other parts have been completed. For a monster that forces you to reach a certain level of DEF, see the section on custom monsters below.

Snakes. The most interesting thing about snakes, from a choice point of view, is that striking their head kills them outright, while striking their tail shortens them one square. Use this to give the player a choice between taking more damage but getting more reward, or a choice between doing things the hard way or the easy way but make the easy way cost a key. With admirable economy, Break out of Jail!, Cell Block B, 2S1W exemplifies both types of choice.

Slayers. The only default monster that always gets first hit. Also the only sworded monster that turns to face you. Combine this with bombs for all sorts of fun -- this is done very well in the last level of Rising from Beneath.

Aumtlich. The Rooted Empire's number one tourist attraction. The beam halves your health, which at its simplest level is another way of giving you a choice between losing HP or giving up something else. However, the player can often leave potions untaken so as to reach the Aumtlich with very little health and take very little damage. The most important exception is if after crossing the beam but before reaching the power-up you came for, you have to kill a monster. In this case, you need to start with at least double the HP required to survive the monster normally -- or four times if you must cross the Aumtlich's beam twice, and so on. Nobard's Hold, Second Floor, 1S8W provides an example where the enemy to be killed is the Aumtlich itself. In such cases it may well be worth leaving such rooms until you can one-shot the enemy. The same room also illustrates another type of choice: mirrors will block an Aumtlich's beam, but you might have to open doors to reach them. Another puzzle or choice involves providing ways to kill an Aumtlich before you have to cross the beam; this is done in Break out of Jail!, Cell Block A, 3N2W. Note that if you step directly in front of an Aumtlich with your sword pointed towards it so that you strike it immediately, its beam will not harm you.

Brains. I left these till last even though they are the weakest enemy, because they make all other enemies stronger and can therefore be used at any stage of a hold. Brains double the ATK of all enemies in the room (including themselves and each other); this severely increases enemies' expected damage unless your ATK is enough to one-shot them. This can, of course, be a way to reward optimisation. Otherwise, the main decision involving brains is whether to kill them immediately or later; to make this a choice, either have a door blocking the brain, or make killing it close a door guarding a power-up. (This is done lots, and done well, in Fetch the Pie.) Another thing you can do is have a more powerful enemy blocking the brain, as in Nobard's Hold, Third Floor, 7S1E. Then it might seem like just a matter of arithmetic whether it's worth killing the brain first or later, but it might not be obvious which other enemies in the room you will want to kill.

2c. Custom monsters

Why would you want to create custom monsters? I can think of four reasons.

(1) To provide finer gradations in difficulty, or extend the difficulty scale in either direction. Or, regardless of difficulty, to provide monsters with your own choice of stats -- see the above section on how this affects the player's choices.

(2) To provide an upgrade to monsters of a certain type, when the default "next step up" is a monster of a completely different type. For instance, Nobard's Hold, Fourth Floor is themed around goblins, for reasons to do with the hold's storyline. When I needed a tougher enemy for one section, rather than use something like a Mimic that would not have fitted the theme of the area, I created a more powerful goblin-type enemy. This is also useful when (as I did) you want to create further enemies having the interesting behaviours shown by particular enemies, such as goblins' propensity to attack when you step past them.

(3) To explore behaviours that none of the standard monsters use, or to combine behaviours in new ways. Behaviours that no standard monster uses include:

Face away from target. Could be used on a sworded enemy to create bomb puzzles.
No enemy defense. The most obvious use is to create a monster that cannot be one-shotted with DEF alone, the converse to an "Attack first" monster. Also affects the player's calculations if a brain is present; affects decisions about taking a shield; can be combined with "Attack when adjacent" (or in front, or when back turned) to give a square that reduces HP by a fixed amount.
Move to player. Well, it's a command rather than a behaviour, but it certainly affects how a monster behaves! This one may not seem to fit RPG-style puzzles very well, as a move-to-player monster will not stay in place guarding a treasure. However, if it's behind a door, and taking the treasure opens the pressure plate that releases it.... Monsters with this behaviour also give the opportunity to create tactical puzzles that are more like regular DROD.

I won't go into all the possible combinations of behaviours, but I think it's clear that there are many interesting options.

(4) Just to call monsters different names that fit better with the style, atmosphere and storyline of your hold. Cludo's dungeon does this a lot.

So, how to go about creating custom monsters? Fortunately it's not very difficult.

First, place a character -- doesn't matter where, you're going to delete him. In the script editor window, click "Characters". Name your character (although this isn't obvious, you can change names later by double-clicking them on the list). Assign the character a graphic -- which standard monster it will look like. It's best to use one that has similar behaviour. Click "Edit default script" and enter the following commands:

Set var. Use this to set _MyHP, _MyATK, _MyDEF, _MyGR and _MyREP to the desired values. (Don't set _HP and the other variables without "My"! This will alter the player's HP and stats!)
Also set _MyColor to give the character an appearance distinct from the standard monster. This variable takes the form of a six-digit number; the first two digits affect the red in the character's graphic, from 0 (replaced by black) to 50 (unchanged) to 99 (completely red). The other two digit-pairs similarly affect green and blue. Results are not always what they might be -- if a graphic starts off with no red, then increasing the red will have no effect. But there's still a lot you can do, and it goes a long way towards giving your custom monsters some character of their own.
Behaviour. Assign the desired behaviours. Some of the behaviours are only appropriate for custom equipment, so ignore these.
Move to player. Set this if you want the monster to move.

And that's it. Click "OK" a few times, and now, whenever you want to place your custom monster in a room, place a character, and your custom monster will appear on the list of options. Remember to check "Visible"!

Other topics to follow later :)

____________________________
50th Skywatcher
01-04-2009 at 11:50 AM
View Profile Send Private Message to User Show all user's posts High Scores This architect's holds Quote Reply
TFMurphy
Level: Smitemaster
Rank Points: 3118
Registered: 06-11-2007
IP: Logged
icon Re: DAA Architectural Handbook (+6)  
It's also worth noting how Tower of the Sorcerer used its enemies and stat progressions. You can divide the enemies into five main Tiers, with each Tier having three groups: Low, Mid and High.

Tier 1 (Low): Roach, Wraithwing
Tier 1 (Mid): Evil Eye, Roach Queen
Tier 1 (High): Spider, Mud Mother

Tier 2 (Low): Mud Baby, Antlion, Neather
Tier 2 (Mid): Mad Eye, Gray Man
Tier 2 (High): Goblin (when weak), Rock Golem

Tier 3 (Low): Goblin, Tar Baby, Soulless, Goblin King (when weak)
Tier 3 (Mid): Mimic, Tar Mother
Tier 3 (High): Goblin King, Swordsman, Rattlesnake, Red Guard

Tier 4 (Low): Gel Baby, Fegundo
Tier 4 (Mid): Waterskipper, Seep
Tier 4 (High): Aumtlich, Adder (when weak), Serpent (when weak), Pirate, Rock Giant

Tier 5: Wubba, Gel Mother, Adder, Slayer, Serpent

You'll note I haven't ranked the Brain, for much the same reasons that Nuntar mentioned.

Now, before I explain why the enemies are ranked like this, let me go over TotS's stat progression. There were four main areas of the game - Floors 21 to 30 didn't really count as a proper area - each with the following properties:
* A Sword Upgrade equal to 10 Power Gems of that area
* A Shield Upgrade equal to 10 Shield Gems of that area
* 7 Power Gems
* 7 Shield Gems
* 3 Power Gems and 3 Shield Gems as a reward for killing the boss

(There's a small exception in the 3rd Area, which had only 5 Power Gems and 6 Shield Gems, as well as an optional cache that had to be opened up containing 1 Power and 1 Shield Gem in one section and 3 Power and 3 Shield Gems in another, but it doesn't change the stats overmuch)

You began the game with 10 ATK/10 DEF. As such, you were basically expected to reach the following stat goals:
1st Area: 10/10 to 30/30
2nd Area: 30/30 to 70/70
3rd Area: 70/70 to 150/150
4th Area: 150/150 to 250/250

Each Tier maps to a single area. The Low group in a Tier are enemies you're meant to fight when you first reach the area. The Mid group in a Tier are those that become affordable once you've gotten around half the upgrades available in that area. The High group in a Tier are those that are only affordable once you've almost completely exhausted the area. There are some exceptions that straddle multiple Tiers, of course, like Goblins and Swordsmen, but in general, they fit well.

So within each area, you had a progression of enemies that you could slowly take on, as well as a defined series of upgrades based in that area. Of course, the above doesn't include stat upgrades from Altars... but if you take the time to look over the enemies, you'll find they're still well-balanced for the standard progression, with just a few tweaked exceptions (like Rock Golems). The monsters in TotS were made for the game, not the other way around.

Now, what does that mean for architects? Well, you don't have to follow this progression. Look at Part 1 of Tendry's Tale, where Shield Gems were not offered at all. Instead, your only source of DEF were additional Shields, which were offered early in each Tier, and in compensation, you got more Power Gems, especially in the later levels. Also, if the player has access to enough potions, they can take on enemies well above their Tier -- ATK/DEF progression is not the only method of creating a hold. (But you'll need to make sure they have enough ATK to even *harm* an enemy)

Also remember that the enemies in TotS were built for TotS. So don't feel bad about having to use a Custom Monster to tweak it for your own design. But *do* be consistent in your use of them, and do make it clear that they're a Custom Monster and don't look identical to something the player may expect just from looking at it.

Anyways, I'll end this section with a note on Swords/Shields. Like enemies, they're linked to particular Tiers as well. These are as follows:

Tier 1: Wooden Blade, Wooden Shield, Briar Hacker, Lucky Blade
Tier 2: Short Sword, Bronze Shield, Goblin-Biter
Tier 3: Long Sword, Steel Shield
Tier 4: Hook, Knight Shield, Wyrm Smiter
Tier 5: Really Big Sword, Oremite Shield

Note that the RBS and Oremite Shield were meant for *after* Tier 4. You do not have to use them. They do, of course, have features in DROD RPG that are very useful: the RBS can block Aumtlich beams and the Oremite Shield works on oremites. But you should be careful when you allow them to be used, because unlike TotS, a weapon in DROD RPG counts as if you'd picked up *all* the previous weapons as well. That is, picking up the Knight Shield gives you the same DEF bonus as if you'd picked up the first four shields in TotS, whether you'd found them or not.

===

Oh, and by the way. It is very worthwhile playing a *lot* of holds and improving your playing techniques - if you're a good player, then you'll be able to think how people will approach your work in more ways. You should also go to the DROD RPG - Basic Optimizing and download the Excel spreadsheet provided by Rabscuttle and Nuntar so that you can investigate how damage changes based on a player's stats.

Of important note are the ATK goals - there are several milestones in ATK and DEF that are very important to keep track of. A few key ones would be as follows:
20 DEF: Unbrained Roaches no longer hurt
38 ATK: Wraithwings are killed in 1 hit; Evil Eyes and Antlions are killed in two
48 DEF: Unbrained Mud Mothers no longer hurt -- beware of Greckle farms
60 DEF: Unbrained Mud Babies no longer hurt
68 ATK: Evil Eyes and Antlions are killed in 1 hit (Spiders are also killed in 1 hit at 67 ATK); Mud Babies are killed in two
150 ATK: Swordsmen are killed in 1 hit
180 DEF: Unbrained Rattlesnakes and Tar Mothers no longer hurt
330 ATK: Waterskippers, Seep and Aumtlich are *ALL* killed in 1 hit

A player will see these goals as important, and this will affect their decisions and the balance of your hold. So it's important that you keep track of these as well.

===

Finally, a note on Greckle Gates. If you're going to use multiple Greckle Gates, keep in mind the Rules of 2 and 4: if Greckle Gates block a path a player only wants to traverse once, they will simply open the first Greckle Gate and then lock it and doorwalk over the rest. If Greckle Gates block a path a player wishes to traverse twice (there and back), then they will open the first Greckle Gate and then lock it to go one way, and then open the last Greckle Gate and then lock it to return.

So if you don't want players to avoid paying the full toll you expect, you should seperate each group of 4 Greckle Gates (if the player has to return) or 2 Greckle Gates (if the player does not have to return) from each other, so that the player can't doorwalk over them all. It's generally nicer to leave Greckle Gates in groups of 2 if it's not clear to the player whether he'll have to return or not, but it's up to you how you use them. Just remember not to underestimate your players with regards to how they may try to sidestep such obstacles.

[Last edited by TFMurphy at 01-04-2009 02:18 PM]
01-04-2009 at 02:05 PM
View Profile Send Private Message to User Show all user's posts This architect's holds Quote Reply
Nuntar
Level: Smitemaster
Avatar
Rank Points: 4590
Registered: 02-20-2007
IP: Logged
icon Re: DAA Architectural Handbook (0)  
Oh, I just realised I forgot to add the section I promised on custom Wubbas.

A Wubba has 10 HP, zero ATK and 320 DEF. It can only be killed when you have over 320 ATK, and then it can be killed in one shot. To make a monster require a different level of ATK, simply change its DEF to one less than the ATK you want to require. (The HP stat is actually irrelevant -- it could be any positive number and the monster will behave the same.)

To make a monster require a particular level of DEF instead, give it a very large number of HP, zero DEF, and ATK equal to the DEF you want to require the player to have. This, however, can be killed without the required DEF, if the player's HP multiplied by their ATK can exceed the monster's HP. Hence, to make it absolutely impossible to kill this way, the monster's HP must be set high enough that this is never possible.

Finally, how about a monster that requires a particular level of HP? This requires setting the "Attack first" and "Ignore enemy defense" behaviours. Then set its HP to 1, its DEF to zero, and its ATK to the amount of HP you want it to require. Unlike the other "gates", this will reduce the player's HP by the set amount, so he can only pass one of these gates unless he gets more HP for the second one. Remove the "Ignore enemy defense" behaviour if you want it to be possible to get past with HP or DEF. Remove the "Attack first" behaviour and give it an appropriate number of HP if you want it to be possible to get past with HP or ATK. (The appropriate number is equal to the ATK you want it to require for a one-shot kill. If the monster has zero DEF, the ATK required to kill it in two hits, thus letting it get one hit on the player, is always half this.)

===

Also on the subject of custom monsters, it's worth noting that which monster you choose as the "template" affects a few things, even if you give the monster custom tiles.

Monsters with a Brain template share the Brain's attack-doubling property.

Monsters with a Wraithwing or Fegundo template can fly over pit or water. Monsters with a Waterskipper template can move over water. Monsters with a Seep template can move through walls (and currently over floor as well, though this has been pointed out as a bug and may be fixed in the future.)

Monsters with a sworded monster template will have a sword by default. This can be turned off or changed to a different type of sword by setting the variable _MySword. (Values are 0 = no sword, 1 = Wooden Blade, 2 = Short Sword, 3 = Goblin-Biter, 4 = Long Sword, 5 = Hook, 6 = Really Big Sword, 7 = Lucky Blade, 8 = Wyrm Smiter, 9 = Briar Hacker, -1 = revert to default sword.) Changing the sword does not affect the monster's ATK. Swordless monsters can be given a sword by the same method, but these will not work (again unless this bug / design flaw is fixed in the future). Monsters with a Briar Hacker cannot actually cut briars unless you give them the behaviour "Briar cutter"; this also only works if the monster has a sworded monster template.

===

There are, however, ways to make the standard monsters harder or easier without resorting to custom monsters. To make a monster harder, put one or more brains in the room that cannot be killed before killing the monster. Note that this only increases the monster's attacking strength, and does not change the ATK threshold necessary to kill it in one shot.

To make a standard monster easier, place a speed potion or invisibility potion or both, and use an accessory slot to ensure that it cannot be taken out of the room. Nobard's Hold, Second Floor, 5W shows one way to do this; the bridge with its connecting trapdoor at one end touching diagonally is a useful way to make a one-way system without force arrows. More than one of each potion will not "stack". The difference between the two is that a speed potion gives the player twice as many hits, thus roughly halving the expected damage; an invisibility potion doubles the player's effective ATK, which reduces the damage by a variable amount but nearly always to less than half. (Think about it. If a monster has 100 DEF and the player has 200 ATK, each hit takes off 100 HP. Taking an invisibility potion doubles the player's effective ATK to 400, so the damage done by each hit is increased to 300 HP. The number of hits the monster gets will be reduced to roughly a third.)

The other difference between the two potions is that the invisibility potion allows you to walk right through a monster to reach a power-up or passage. However, this can be avoided by placing the monster on a pressure plate that must be triggered; then you do still have to kill it.

Also note the presence of a second accessory slot in the room. This is so the player can put down their current accessory to pick up the potion without it being destroyed when the trapdoor falls.

____________________________
50th Skywatcher

[Last edited by Nuntar at 01-04-2009 06:02 PM]
01-04-2009 at 04:16 PM
View Profile Send Private Message to User Show all user's posts High Scores This architect's holds Quote Reply
Kwakstur
Level: Smiter
Avatar
Rank Points: 385
Registered: 05-05-2006
IP: Logged
icon Re: DAA Architectural Handbook (0)  
Hey, this is really informative! I'm making copy pasta and putting this all in a NotePad doc for future reference.

tyvm kind sirs

____________________________
Also known as ExpHP everywhere else.
01-04-2009 at 07:15 PM
View Profile Send Private Message to User Send Email to User Visit Homepage Show all user's posts Quote Reply
Nuntar
Level: Smitemaster
Avatar
Rank Points: 4590
Registered: 02-20-2007
IP: Logged
icon Re: DAA Architectural Handbook (0)  
3. Scripting for Beginners

Unlike previous DROD games, a basic knowledge of scripting is absolutely essential for making a working DROD:RPG hold. Why? Because without scripting, you cannot make score checkpoints, which are necessary for a hold to have. So, while I explain how to do those, I may as well cover other really simple (but powerful) ways to use scripting.

Scripting seems to fall into four main categories, though these by no means cover all the possibilities it offers:

(1) Character scripts. Individual NPCs can have a script that allows them to do things like speak to the player, offer keys for sale, walk around the room, hit orbs and even kill other characters.
(2) Default scripts. These create a "type" of character that you can place lots of and they will all behave the same. Useful for custom monsters (already covered) and custom equipment, but this category does also have other uses. An example is the Sand Tar Technician in my December contest entry. This is the script that makes cutting the Sand Tar work, which I wanted to behave the same in every room it appears in.
(3) Room scripts. All scripts have to be placed in characters, but scripts affecting a room can be placed in invisible and immobile characters. (To make things tidy and to help the editor-browser know what's going on, in Nobard's Hold I always place these in the top-left corner.) These can change the music, autosave, make actions happen when you step on a certain square -- and much more.
(4) Global scripts. A global script affects the entire hold. I can't really tell you much about these as I haven't used them.

So, let's move on to a few examples of what scripts can do. I'll try to cover all the things that I think every hold author ought to know, but once you've understood these, there's no reason you can't move on to create scripts for yourself.

3a. Setup characters

A setup character is a room script occuring in the first room of a hold (or level). Its function is to define the player's status at the start of the hold. Some commands you are likely to want to use in a setup character's script:

Set var. The variables _HP, _ATK and _DEF determine the player's starting stats. You can also give the player non-zero starting GR, REP or keys if you wish. The variables _MySword and _MyShield allow you to start a hold already having a sword or a shield. Note that _ATK and _DEF set the player's base stats, i.e. before the bonuses conferred by a sword or shield are added. To make the player start with a short sword (+30) and 10 ATK, set _ATK to -20. (Why would you want to do this? One reason is that if no wooden sword is available in a hold, oremites will force you to not carry a weapon at all, which can make for interesting choices and avoids having to build an inventory. See Fetch the Pie for an example of this being done well.)

Player role. Make the player appear as an entity other than Stalwart. Choose whatever you please; unlike monsters, player roles that are normally swordless can pick up a sword and use it. Other properties of the player role do affect what the player can do; being a Seep will let you move through walls, etc.

Set music. If you use a setup character (as opposed to reacting to a particular event) to set a music track, it will keep playing until another script changes it. Use this to set a music track for the entire level different from the default; but you will have to remember to change it in the appropriate places.

Cut scene. You may want your hold to begin with a cut scene, but that's a topic all to itself and deserves a more detailed post later.

3b. Simple reactions to events

To make something happen in response to an event, use a room script with a "Wait" command. For example, this script makes a monster appear if the player picks up a sword:

  Wait for entity Player 8,8,8,8
  Generate entity Fegundo,8,6,South
  Speech "I have come for your soul, stalwart.",Normal,Fegundo,0,.

(Note: all scripts in this topic will be ctrl-B friendly.)

This script should be regarded as a template; it can be varied to make anything happen in response to any event, whatever's appropriate for your hold.

3c. Score checkpoints

Really a sub-category of the above. You can make a room script that activates a score checkpoint in response to a particular event using (surprise) the "Score checkpoint" command. A very common example is when the event in question is the defeat of a particular monster or boss. To do this, use a script similar to this one:

  Wait while entity is Monster 8,8,8,8
  Score Checkpoint Fegundo defeated!

(Note: if the monster is a custom monster or character, "Wait while entity is NPC" must be used.)

3d. Autosaves

These can be a response to an event (e.g. picking up an equipment item) and are also commonly used when entering a new level. To do the latter, just put a room script in the level's entrance room, and it will be triggered when you enter this room for the first time.

Nobard's Hold has levels divided into distinct sections, each with their own autosave. Because a section might have more than one entry point, at each entry point I use a script like this:

  If ... 
        Wait for entity Player 8,8,8,8
     Autosave Central Wing, Fourth Floor
  If End 
  End 

This checks, only on the first turn, whether the player is at a particular entrance to the room, and does an autosave if so. If the player has already entered the section in another room and then comes into this room via another entrance, nothing happens.

3e. Setting music

Most commonly, you want a particular music track to play throughout a level or section. To achieve this, use the following room script:

  Imperative 14
  Set Music 8,0

This must be placed in every room the level or section can be entered at from a room outside. (Imperative 14 is "Restart script on entrance", if entering it manually.) And you must place a script setting the music to something different -- or back to default -- in every room outside the level or section that can be reached from a room inside.

Naturally, you can also change the music in response to events such as killing a boss. The method is the same as that for making anything else happen in response to an event.

This topic includes a few opinions on the various music tracks in the game. It seems to be pretty much agreed that "Slayer" gets annoying fast if set as the music for more than one room. Chaco points out that "Roach party" has a similar problem with having a short loop, but I find that music less annoying and don't mind it as the music for a short level, like the first level of Nobard's Hold. (I won't use it again in the hold.)

3f. Setting multipliers

The various multiplier variables give you more control over the game than the multiplier box in the level editor. You can set separate multipliers for monsters' HP, ATK, DEF, GR and REP; you can set separate multipliers for potions, ATK gems, DEF gems, and greckle gates. You can make the multiplier change in response to an event, such as killing a boss; you can script a custom monster that doubles enemy DEF until killed.

If you want a level or section to have a different multiplier value from the rest of the hold, you must do as I described above for setting the music: set the multiplier value in every entrance room of the level or section, and set it back to normal in every exit room.

The variable _ItemMult is the only one that changes the multiplier value displayed on the user interface. This can be used to create quite an interesting hold design: rather than setting the multiplier manually for each level, you could have it increase each time a boss is killed. Then it would be profitable to leave as many gems and potions as you could untaken and come back for them when the multiplier was higher.

Note that the multiplier values are percentages, so to double the multiplier, set _ItemMult (or whichever multiplier variable) to 200. This will double the multiplier of every level until it is set back to 100, so if the player enters a x5 level, it will appear (and act) as x10, and so on. Values that are not exact multiples of 100 can be used. If you set _ItemMult to 150 on a x1 level, the multiplier will appear as x1 in the user interface, but potions will give 150% of their usual HP. (Gems will not be affected, because 150% of 1 is 1.5, which gets rounded down. Greckle gates will cost 15 HP.)

The multiplier values that affect monsters can be used as another way to change monsters' stats without using custom monsters. This is the only way to give snakes, tarstuff mothers and Rock Giants custom stats, and the only way to affect tarstuff babies that come from cutting tarstuff.

Both this and altering the individual item multiplier variables should be treated with caution. The player normally expects all monsters to have their default stats, and for a large potion on a x1 level to give 200 HP. If these expectations are violated in a more or less consistent way throughout a hold, you're probably okay if you have a good reason for doing so. If, however, you leave these variables alone for the most part but have one large potion in one room that gives ten times its normal HP, the player will most likely be a bit miffed when they discover this, as they will have based all their optimisation decisions on assuming that it has its normal value.

3g. Scripting merchants

This requires a much more complex script, so I'll just give an example and leave it at that. Note that you must check, before selling the player anything, whether he really has the money; otherwise the game will give the player whatever he's buying anyway, allowing him to go into negative greckles. Also, it's a courtesy, if the merchant refuses to sell because the player does not have enough money at that time, to tell him what is for sale and how much money he needs.

Label Loop
  Wait for player to touch me 
  If ... 
        Wait until var "_GR" < 100
     Speech "I will sell you a green key if you have 100 greckles.",Normal,Self,0,.
     Wait 0
     Go to Loop
  Else 
     If ... 
           Question Will you buy a green key for 100 greckles?
        Set var "_GR" - 100
        Set var "_GreenKeys" + 1
        Speech "Thank you for doing business with me!",Normal,Self,0,.
     Else 
        Speech "Come back if you change your mind!",Normal,Self,0,.
        Wait 0
        Go to Loop
     If End 
  If End


____________________________
50th Skywatcher
01-04-2009 at 07:16 PM
View Profile Send Private Message to User Show all user's posts High Scores This architect's holds Quote Reply
skell
Level: Legendary Smitemaster
Avatar
Rank Points: 3734
Registered: 12-28-2004
IP: Logged
icon Re: DAA Architectural Handbook (+3)  
Global scripts are scripts which, after being run once, "follow" you for the whole HOLD. Wherever and however you go, they will be there. Excluding their first run when they are made global, these scripts run AFTER any other local characters/scripts.

Will read more now, just wanted to point this one out.

EDIT: here seems to be a small mistake in the last code:
There should be "_GR > 99" not "_GR <100" I believe.
Don't ask :P.

EDIT: I have made an explanation of the code

Label Loop

Label marks the place in code to which you can return using Go to label
  Wait for player to touch me

Holds the code execution until the player bumps into the character (if visible) or stand on its tile (if invisible)
  If ... 

If marks a place of code after which the
Condition
is placed. If the condition resolves True the code is executed normally. IF, however, the condition is False, the code inside If clause will be skipped, jumping to its respective If End or, if has, Else.
Wait until var "_GR" < 100

This is the Condition of the If. If you have LESS than 100 greckles the code will run normall (ie. you don't have enough cash to buy it). If you have 100 or more greckles, it will skip to the Else clause (ie. you have enough greckles to buy it)
     Speech "I will sell you a green key if you have 100 greckles.",Normal,Self,0,.

This is the speech. The text inside will be spoken by the current character.
     Wait 0

In DROD the same line of code can never be executed TWICE in ONE turn or else the script ends permanently. That's why everytime you want to iterate over the "Loop" you have to use this command, to end script execution for this turn.
     Go to Loop

It jumpts to the Label Loop
  Else 
     If ... 
           Question Will you buy a green key for 100 greckles?

This script executes when you have enough money to by the key. It asks the player the question with possible answers Yes and No. If player selects Yes, the Condition resolves True otherwise False
        Set var "_GR" - 100

It decreases the current amount of Greckles by 100.
        Set var "_GreenKeys" + 1

It increases your amount of keys by one.
        Speech "Thank you for doing business with me!",Normal,Self,0,.
     Else
        Speech "Come back if you change your mind!",Normal,Self,0,.
        Wait 0
        Go to Loop
     If End 
  If End

The rest of the code self explainable.

Feel free to integrate it into your post and make changes (if you want to).

____________________________
My website | Facebook | Twitter

[Last edited by skell at 07-20-2009 11:58 AM : bumbs...]
01-05-2009 at 04:19 PM
View Profile Send Private Message to User Send Email to User Visit Homepage Show all user's posts High Scores This architect's holds Quote Reply
Fang
Level: Master Delver
Avatar
Rank Points: 175
Registered: 07-25-2008
IP: Logged
icon Re: DAA Architectural Handbook (+2)  
For the global script, it is usually used to give a character (usually named Inventory) a script for the CMD button that allows you to access an inventory. The script to make an inventory is as follow:

Let's say our custom npc is named Inventory.
Make a variable named "Inv".
Create a level named Inventory and describe the entrance as "InvEnt"

  Each Use "1"
  Go to "2"
Label "1"
  If...
      Wait until var Inv = 0
    Set var Inv = 1
    Go to level entrance (Skip entrance screen) "Inventory: The Entrance: InvEnt"
  Else
    Set var Inv = 0
    Go to level entrance (Skip entrance screen) (Return to prior location)
  If End 
Label "2"


There are probably more scripts that can be used to make an inventory but that one is the simplest, at least from what I've seen so far. Once a custom NPC has all of that written on it, put the npc in the room where you want the player to begin using the inventory feature, select "Inventory" as the npc but don't check the Visible box. All that's left to do now is make the Inventory itself, so go in the level "Inventory", put a few Weapon, Armor and Accessory slots, and finally, you have your inventory.

Of course, there are other uses for the Global scripts, don't be afraid to test but remember, the script will work during all the hold as soon as the player enters the room with the script npc in it, visible or not.

Edit: I take no credit for the inventory script, I forgot who first published it on these very forums, credit that guy. I know Tendry's Tale used a similar script for the inventory in part 2.

____________________________
"Imagination is more important than knowledge." -Albert Einstein

[Last edited by Fang at 09-16-2009 03:10 AM]
01-05-2009 at 06:02 PM
View Profile Send Private Message to User Show all user's posts Quote Reply
Kwakstur
Level: Smiter
Avatar
Rank Points: 385
Registered: 05-05-2006
IP: Logged
icon Re: DAA Architectural Handbook (+2)  
Hmmm, I should think of a section to add here. Maybe I should start looking for a topic that hasn't been explained in depth yet...

All equipment, even Command, can be carried between rooms without Make script global Imperative.

*cough cough hack fakes a seizure*

Well, while we're on the topic of what makes Global scripts useful, here's a few ideas. No, I'm not counting this as my contribution to this topic, because I want to explain features rather than give examples.

This resets a variable upon room entry (useful if you want a variable to represent whether or not a certain NPC type exists in the room):
Click here to view the secret text
This caps your stats (or another variable). Mainly for annoying Blondbeard.
Click here to view the secret text
Here's something that finds your location the previous turn (this script must always run last, so good thing it's global)
Click here to view the secret text


____________________________
Also known as ExpHP everywhere else.

[Last edited by Kwakstur at 01-05-2009 11:46 PM]
01-05-2009 at 11:24 PM
View Profile Send Private Message to User Send Email to User Visit Homepage Show all user's posts Quote Reply
Dex Stewart
Level: Smiter
Rank Points: 355
Registered: 01-19-2007
IP: Logged
icon Re: DAA Architectural Handbook (0)  
Thank you all you great people for this wonderful and very informative thread :). I propose that an admin make it sticky.
01-06-2009 at 12:56 AM
View Profile Send Private Message to User Show all user's posts This architect's holds Quote Reply
12th Archivist
Level: Smitemaster
Avatar
Rank Points: 789
Registered: 12-07-2008
IP: Logged
icon Re: DAA Architectural Handbook (+1)  
Keep in mind that while the Command key was intended to be an inventory, the programmers also wanted the key to be allowed to do things other than inventory. For example, the Cmd can give you health every time you use it at the cost of greckles or something like that. The script would be rather simple, just do this:

Click here to view the secret text



Alternatively, it can activate the secret spell power ability that maims all in its path, but that's up to you. Actually, it is pretty much all up to you. The game programmers intended that you use your imagination to script the Command ability to do anything. It is purely your choice.

(Okay, that sounded way to much like a video game intro, but I'm happy with it)

____________________________
It was going well until it exploded.
~Scott Manley

Check out the DROD Wikia project here!
01-06-2009 at 04:25 AM
View Profile Send Private Message to User Show all user's posts This architect's holds Quote Reply
Chaco
Level: Smitemaster
Rank Points: 3624
Registered: 10-06-2005
IP: Logged
icon Re: DAA Architectural Handbook (+1)  
Actually, by starting in a loop with a Question and some Answer choices, the CMD key can do all of those things, provided they're implemented correctly :)

____________________________
Quick links to my stuff (in case you forgot where it was):
Click here to view the secret text

01-06-2009 at 11:32 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
Nuntar
Level: Smitemaster
Avatar
Rank Points: 4590
Registered: 02-20-2007
IP: Logged
icon Re: DAA Architectural Handbook (0)  
Time to revisit this thread and cover more topics!

4. Use of game elements

What's that? You already know what all the game elements do? That's good, but there's still a lot to say about how to use them well to create DROD RPG puzzles.

4a. Doors and keys

Simple use of doors: give the player lots of choices between opening a door or killing a monster early on, and then put power-ups behind doors to reward them for still having keys later. Now, a yellow key is worth 10 points (the same as 400 HP or 2 ATK, and similar to 3 DEF); a green key is worth 20 (800 HP, 4 ATK, 7 DEF). So a lot depends on whether what's behind the door is worth less or more than retaining the key.

If more, then of course the player will open the door; this is how you reward players for getting this far with spare keys. If less, then the player will only open the door if they need the HP or power-up to survive the level; this is how you reward players for better optimisation, so they can afford to not open the door. (Remember, of course, that ATK and DEF increase your score both directly and indirectly, by making you lose less HP. So a +3 DEF (9 points) is almost certainly worth more in the long run than keeping a yellow key. Even a +1 DEF may be worth more than keeping a yellow key if it's near the beginning of a long hold. To be precise, it's worth it if it saves you (10 - 3) x 40 = 280 HP in total.)

Also, if you have merchants in your hold, use the scoring system to decide how much it's appropriate for them to charge. If a +4 ATK gem costs 500 greckles, a green key (which is also worth 20 points) could cost 500, or it could cost fewer if reaching the merchant is meant to be a reward in itself, or it could cost more if you think a lesser optimiser might be desperate for a green key at this point, and you want to reward the player for not needing to buy one.

So, don't put manifestly silly things like one small potion behind a green door -- the player will immediately know not to bother opening it. In general, the reward for opening a green door should be slightly more than twice the reward for opening a yellow -- more because green keys are rarer, and in a well-designed hold the player will always have to think twice before using a green key, not just whether the reward is worth it, but also whether there might be a better use for it elsewhere and not enough green keys to do both.

Blue keys are something else entirely. You can use them simply as a three-times-the-value-of-a-yellow key. But because blues are the highest key, many holds (Tendry's Tale, Nobard's Hold, RPG Hold Anonymous....) use them as end-of-level keys; you have to find the blue key to progress to the next level. Although, one thing you can do is include extra blue keys so that if the player is clever enough to reach them, they are rewarded by not having to lose a lot of HP to reach the intended "main" blue key of the next level. This can also be done with skeleton keys or pickaxes.

Be aware of doorwalking. (In case anyone is reading this who doesn't know the concept: stand on an open door and press numpad 0 to close it under you. This uses up a key of the appropriate colour, or greckles for a greckle gate. When standing on a closed door you can move across other closed doors.) One point is simply the "Rule of Four" TFMurphy mentioned above, for knowing when to separate multiple doors so the player has to open all of them. However, deliberately making it possible for the player to doorwalk can also be a way of creating choices. To do this, place an open door in front of a closed one. To get past, the player can either open the closed door, or stand on the open door and close it. If they need to get back again, put a second open door beyond the closed door. This is a simple and space-efficient way to offer the player a choice between using a green key or two yellows, or a choice between a yellow and greckles (though in the latter case using greckles is nearly always better, so find some way to make the choice less obvious). It also works well when the middle door is red or black and something more complicated needs to be done to open it. (For an example, see RPG Hold Anonymous, Level 3, 1S3E.)

I don't have much to say about red and black doors, although I'll have more to say when I get on to trapdoors and tarstuff further down. Both can also be opened with a portable orb, or bypassed with a pickaxe, or jumped over with wall walking and opened from the other side, which is a good way to create a reward for finding these items (usually a secret room that can't be reached any other way). And they're good choices for when you want a door that can be opened with an orb but not a key. (Use this when you want the player to have to kill a monster, cross an aumtlich beam or whatever in order to open a door. There are also plenty of ideas for puzzles using pressure plates and mirrors or moving monsters.)

4b. Abuse of doors

This is really covered by Chaco's Rule, mentioned in the very first post of the topic, but it pays to go into detail. There are two ways I've seen that doors can easily be abused. One is to have a door that must be opened to proceed with the hold at all, but there is a tempting place to use the key earlier, and the player will have to restore and play a lot of the hold again when they discover they needed to save it for a particular place. Don't do this. Especially, don't put blue doors that must be opened to proceed at the beginning of a new level; put them at the end of the old one. (The same goes for green doors if the player can be expected to be running low on them in your hold.)

The other "mustn't" is putting several doors around the edges of a room leading to rooms the player (either certainly or probably) won't have visited yet. Then the player has to try each one in turn, see where it leads and whether it was worth using a key to get there, restore.... Instead, put the doors early on in the new rooms so the player can at least see what's there before deciding whether to open them. (You can, of course, do something like having a green door in a corridor leading to a new room if it's obvious that the player is meant to deduce "I need a green key to proceed... must go back and see what is the most efficient way of getting one.")

4c. Trapdoors

First things first. Trapdoors do not return when the player re-enters a room. That means that, in general, putting them on a corridor leading to another room is likely to be a bad idea (for the same reason as above but even worse -- the player won't know whether it's possible to come back by another route; if not, they won't know what they need to do before crossing to be ready to face the other side; if it is, they won't know what they need to have in terms of keys and HP to make the return journey).

However, it has to be said that I liked the use of trapdoors in Techant's The Drain (in the December contest). That is, I think, because the hold felt like it was more about exploring than optimisation; the trapdoors represented the risks you had to take, and you had the comfort of knowing that it wouldn't be the case that you needed to optimise properly and then cross.

It is possible to use scripting to make trapdoors come back, but this should be treated with caution. It violates the player's expectations, and especially if it occurs in some places in a hold but not others, the player won't want to have to save in every room, test and restore to find out which trapdoors it applies to. Of course, scripting or scrolls can be used to give this information.

Another use of trapdoors is in connection with red doors. Typically, you have to fight a group of monsters who are all on trapdoors to get the red door to open, though there are also more subtle ways of making trapdoors hard to reach. Now, forcing the player to fight all the monsters in a room is discouraged, because it takes away choices rather than adding to them. It does have a place, though -- when you want a special reward, often a blue key or the next weapon or shield, to be only reachable after killing several tough monsters. (See, for example, Nobard's Hold, Third Floor, 2N.)

Then you have the use of trapdoors in corridors entirely contained within one room. A good use of this is if you have several power-ups, each behind a monster, and the player has to choose when to cross the trapdoor, bearing in mind he can only do it once. (In other words, does he need that HP so badly that it's worth forfeiting ever being able to get that ATK gem, or should he come back when he's ready to get both?) Of course, the holes left by trapdoors can be crossed with a grappling hook, and this is one way to reward the player for finding one. Or include a disarm token so the player can avoid dropping the trapdoor, and then the player has to decide whether it's worth whatever it costs to reach the token.

Finally, a word about DROD-style trapdoor puzzles. (Thanks to Blondbeard for this one.) I have a series of trapdoor puzzles in one part of Nobard's Hold, and Blondbeard suggested (and I carried this out) that I put in a script allowing the player to skip the puzzles if he had solved them in a previous playthrough. (You can't enforce this; you have to rely on the player's honesty.) The point is that in DROD RPG, unlike regular DROD, you may have to restore to earlier saves to re-optimise, and you don't want to make the player do the same trapdoor puzzles several times. (Remember Level 15?)

4d. Bridges

I can't think of very much to say about bridges... can anyone help me out?

One thing is that if you have a trapdoor on both ends, but one is connected by a diagonal, you have a neat one-way system. You have to cross starting at the diagonal trapdoor, because if you start at the other end, the bridge drops and you go with it.

Monsters on bridges can be fought or dropped. Use this if you want the player to decide whether it's worth losing HP to earn a few extra greckles.

Power-ups on bridges... now it gets more interesting. At the moment keys aren't destroyed, but this has been posted as a bug and will hopefully be fixed. You can have two power-ups, placed so that you can only reach one before stepping on the trapdoor that drops the bridge, as in Nobard's Hold, Second Floor, 1N5W. Or you can combine bridges with a red door as in Fetch the Pie, Second Level, 4N2W.

4e. Force arrows and rotators

If you've read the above, you'll already know how not to use force arrows. (In passages leading to another room, unless it's easy to get back, as in Rule 3 of Tendry's Tale.) Use them within a room for all sorts of fine-tuning as to which possibilities are opened up by killing which monsters... you don't need me to spell out the details. Rotators are a nice way to make certain passages open only once you do a certain thing. For instance, in Nobard's Hold, Fourth Floor, 5S1W, you can't take the passage north until you turn the arrows, and you can't do that until you kill the Goblin King. More subtly, turning arrows can allow you to bypass a door, a monster or a square that loses HP, and a rotator can avoid this, so you have to decide whether it's worth it in view of what the rotator costs to reach. In Nobard's Hold, Fourth Floor, 1S2W, the rotator token makes the square where you can avoid the Hobgoblin's attack accessible.

4f. Bombs and fuses

One point is that you can set the damage done by bombs to a percentage other than 100% by setting the variable _Explosion. Setting this to a negative number makes bombs deduct a fixed amount of HP rather than a percentage. Non-100% bombs can be used like monsters, hot tiles and aumtlich -- to allow the player to choose to sacrifice HP to reach a power-up.

More interestingly, bombs placed to kill monsters can be used if you want the player to choose between a fight or sacrificing a key to reach the bomb. It's a little different from placing a door that bypasses the monster, because if you blow a monster up you can't come back when you can one-shot it and get the greckles. For the larger monsters, this can be a serious matter....

And bombs placed to destroy power-ups give the player a choice between the more rewarding harder route and the less rewarding easier route. Again, this is different from other ways of achieving the same thing, because if you bomb a power-up you can't ever go back and get it. See Tendry's Tale: No-man's Land for a few examples.

3g. Briars

Briars expand whenever a monster is killed in the same room. See Nobard's Hold, First Floor, 1W for the most obvious type of choice this can be used for. If you're desperate to get the HP now, you can take it, but the briar will expand one square, meaning you can't ever reach the Elixir (because you have to kill another monster to get to it). This puzzle can be invalidated if the hold contains a briar hacker, but on the other hand, that can be a way to reward the player for reaching it.

Briars also make a good combination with Evil / Mad Eyes, Goblins and other enemies that take HP without combat. You can walk through the attacks to reach the power-ups, or you can kill the enemies and see the power-ups disappear. (This works best with enemies that the player can already kill in one shot. To up the ante without taking away their one-shottedness, put in a brain or two...) And, talking of brains, that's something else that goes well with briars. Kill the brain first or kill the monster the hard way? If there's a briar two squares away from a power-up, it can make a difference....

____________________________
50th Skywatcher
01-22-2009 at 01:23 AM
View Profile Send Private Message to User Show all user's posts High Scores This architect's holds Quote Reply
Nuntar
Level: Smitemaster
Avatar
Rank Points: 4590
Registered: 02-20-2007
IP: Logged
icon Re: DAA Architectural Handbook (+6)  
5. Advanced scripting topics

5a. Loops

Loops are essential if you want a reaction to happen, not just once, but every time a certain event takes place. I'm going to use some scripts from The Cerulean Room as examples.

In one level, you open a trapdoor to reveal a pit, and walking into the pit takes you to the level "Under the Trapdoor". Here's how I did that:

Label 1
  Wait for event Player teeters on pit edge
  Go to level entrance 20,0
  Go to 1

The "Label 1" marks the start of the loop; "Go to 1" makes the script return to the start of the loop. This means that whenever the player walks into the pit, no matter how many times they do it, the script will take them to "Under the Trapdoor" and return to its start, ready to act again.

Here's a slightly more complex script from the same hold that illustrates two further loopy features:

Label 1
  Wait for event Player bumps obstacle
  If ... 
        Wait for entity Player 13,5,13,5
     If ... 
           Wait for player to face North
        If ... 
              Question Look under the sofa cushion?
           Speech "You find nothing.",Normal,Custom,6,3,0,.
           End 
        If End 
     If End 
  If End 
  Wait 0
  Go to 1

The first feature is the use of "If". This scripts waits for the player to bump an obstacle, and if they are in a particular square and facing north, they get asked a question. Otherwise, everything inside the "If" is skipped, and the script goes to the end of the loop, which tells it to go back to the beginning. The "End" command inside the "If" tells the script to end once all three conditions are met -- the player bumps an obstacle when in the designated square, facing north, and answers yes to the question.

The other notable feature is "Wait 0" in the penultimate line. You'd think "Wait 0" is tantamount to "Do nothing", but in fact what it does is halt execution for this turn and continue immediately next turn. This stops the script trying to run the loop twice consecutively. I didn't need a "Wait 0" in the first example of a loop, because it used "Wait" instead of "If", and its "Wait" condition could not be met twice successively -- since if it was met once, the player would be taken to another level, and when they came back to this one they would be at the designated level entrance.

But it isn't always correct to use "Wait 0". Here's another script to illustrate:

Label 1
  Wait for entity Player 1,5,1,5
  If ... 
        Question Take down curtain rod?
     Equipment 0,3,20001
     End 
  If End 
  Wait while entity is Player 1,5,1,5
  Go to 1

This waits for the player to move into a certain square, and asks them if they want to take the curtain rod. If they do, the script gives it to them (the Curtain Rod is a custom accessory and has the character ID 20001 in this hold) and ends; if not, the script loops so that the player still has the option of taking the Curtain Rod later. Note that instead of "Wait 0", I used "Wait while entity is Player" with the same coordinates as the earlier "Wait for entity Player". This ensures that the player has to leave the designated square and return to it before the question will be repeated.

5b. Scripting custom equipment

A good subject to move to next, since this is heavily dependent on understanding loops.

I'll take some very simple examples first. Here is the script for the Curtain Rod in The Cerulean Room:



That's right, it's blank. The Curtain Rod doesn't need a script because (1) you acquire it from another character, not by picking it up, and (2) its functionality is provided by another script checking the variable _Accessory to see whether you're holding the Curtain Rod before allowing you to act. In spite of having a completely blank script, once acquired it can be placed on an accessory slot and picked up again just like any other accessory.

And here's the script for the Orb-Basher, a custom weapon in The Cerulean Room:

  Set var "_MyATK" = 0
  Behavior 10

(Note: all custom equipment scripts should be placed in the default script of the character.)

Not very much more complex. All this does is give the weapon an ATK (an ATK of zero is a gimmick, but it's easy to replace by another number) and set Behaviour 10, which is Metal (disabled on oremites). Again this is because you acquire Orb-Basher by having a script use the command "Equipment Swap Weapon Orb-Basher" rather than by picking it up.

So let's script a custom weapon that you can pick up:

  Set var "_MyATK" = 10
  Behavior 10
  Wait for player to touch me 
  Disappear 
  Set var "_X" = _MyX
  Set var "_Y" = _MyY
  Equipment 0,1,20004

This begins by setting the weapon's ATK and behaviour, as before. The next four lines, since you can't move onto a visible NPC, simulate the move by making the NPC disappear and the player move artificially. Finally, "Equipment Swap Weapon" is called, making the player hold the weapon and drop whatever he is currently carrying.

When the weapon is held, its script runs as a global script, allowing you to script more complex weapons by using a loop. Here's an example:

  Each attack 1
  Set var "_MyATK" = 10
  Behavior 10
  Wait for player to touch me 
  Disappear 
  Set var "_X" = _MyX
  Set var "_Y" = _MyY
  Equipment 0,1,20004
  Go to 2
Label 1
  Set var "_HP" + 1
Label 2

The command "Each attack 1" makes the script jump to the label "1" every time the player attacks an enemy, while "Go to 2" jumps over the commands after the "1" label so that they don't activate until you attack. In this particular case the weapon adds 1 to the player's HP for every attack, but this line can be replaced by whatever you want. For instance, the custom sword in Washed Ashore sets your ATK to the enemy's DEF.

Custom shields are more or less the same, except you give them a DEF value rather than ATK, and are more likely to want to use "Each defend" to produce an action each time the player is attacked by an enemy. And for custom accessories, the corresponding command is "Each use", meaning each time the player clicks on the accessory in the user interface, or the keyboard equivalent (TAB by default). For accessories, the commands in between the two labels may include "Equipment Destroy Accessory" if you want the accessory to be one-use only.

5c. Graphics for custom equipment

This isn't connected to scripting but it's helpful to have all you need to make custom equipment in the same place.

To make a custom shield or accessory, you just need to make one 44x44 tile with magenta (FF00FF) as the background colour.

For custom swords, you need a 396x44 graphic, consisting of a line of nine 44x44 tiles representing the sword in all possible orientations, in this order: N NE E SE S SW W NW Neutral. The Neutral orientation is what you see when the sword is laid down on a weapon slot; for best results use the NE graphic but centred in the tile rather than touching the SW corner. Unfortunately, if the sword is placed on the floor of a room rather than given to the player by a script, I don't think you can make it use the Neutral graphic.... but if it's important to you (and it would be to me) you can have a second character, called the same name as the weapon, that has the same graphic as the weapon's Neutral orientation and gives the player the weapon when stepped on.

5d. Cut scenes

I shied away from using cut scenes for a long time, but they're actually much less difficult than they might seem.

Let's start with a basic example: say you have a prologue, like the one in my December contest entry The Sand Tar Clause, where some speech happens and then the player is automatically taken to the next level. This is how to do that:

  Cut scene 1000
  Speech Player, "'Twas brillig, and the slithy toves"
  Speech Self, "Did gyre and gimble in the wabe"
  Speech Player, "All mimsy were the borogoves"
  Speech Self, "And the mome raths outgrabe."
  Wait 10
  Go to level entrance [whatever]

The number 1000 means that each turn lasts 1000 milliseconds (or one second), so here the player will be taken to the next level after exactly ten seconds. Naturally, you must change this number to however long it takes the speech to appear and disappear; just use F5 until you get it right.

If you want the cut scene to end rather than going to a level entrance, use "Cut scene 0" to end it.

If you want the character to move about, you will probably need to change both numbers, unless you want them to move at one square per second (which is very slow). Remember that the lower the number, the faster characters move and things happen.

Cut scenes can also be used to make things happen a bit at a time, like opening the curtains in The Cerulean Room, or closing a door behind you to trap you before a boss fight, as happens in several holds. To do this, use a "Build" command or a series of "Build" commands representing everything you want to happen in one turn, then "Wait 1", and so on. Again, vary the number in the "Cut scene" command to alter the speed.

If you have several characters moving in a cut scene, you only need the command "Cut scene" in one of them; but if the cut scene is triggered, for instance by the player stepping on a square, then all of their scripts must include "Wait for entity Player" before they move, and you will get the desired result.

To make the player move in a cut scene, have an invisible character with the same appearance as the player role your hold uses, and do this:

  Cut scene 400
  Player role None
  Appear at 8,9
  Move to 8,6,0,0

Here, (8,9) are the player's coordinates. If you don't know the player's coordinates (because the cut scene is triggered by an event that can happen at different locations, such as the player killing a monster) then do this:

  Set var "_MyScriptX" = _X
  Set var "_MyScriptY" = _Y
  Appear at 0,0
  Set var "_MyScriptX" = -9999
  Set var "_MyScriptY" = -9999

The variables "_MyScriptX" and "_MyScriptY" set the parameters of the "Appear at" command; -9999 is a special value meaning "no parameter override is in use" so that other commands are not affected.

Naturally, if using "Player role None" to make the player move in a cut scene, you must reset the player role when the cut scene finishes!

____________________________
50th Skywatcher
02-15-2009 at 01:01 PM
View Profile Send Private Message to User Show all user's posts High Scores This architect's holds Quote Reply
Neather2
Level: Smiter
Avatar
Rank Points: 406
Registered: 07-18-2006
IP: Logged
icon Re: DAA Architectural Handbook (0)  
Can someone please give me the scripts for make an inventory that can be opened with pressing a keyboard botton?

Thanks

____________________________
Nothing to say. I just play the game. And you, sir, should play it too.

Conspiracy, my new hold, has just been released.
03-09-2009 at 05:50 PM
View Profile Send Private Message to User Send Email to User Show all user's posts This architect's holds Quote Reply
mxvladi
Level: Smitemaster
Rank Points: 2505
Registered: 02-11-2008
IP: Logged
icon Re: DAA Architectural Handbook (+1)  
Neather2 wrote:
Can someone please give me the scripts for make an inventory that can be opened with pressing a keyboard botton?

Thanks

I hate to be rude, but...

can you read through this topic before asking something?

here's Fang's post with inventory script

and also, tis topic isn't the best place to ask for different scripts...

[Last edited by mxvladi at 03-09-2009 07:23 PM : grammar :selftwak]
03-09-2009 at 06:08 PM
View Profile Send Private Message to User Show all user's posts High Scores This architect's holds Quote Reply
Neather2
Level: Smiter
Avatar
Rank Points: 406
Registered: 07-18-2006
IP: Logged
icon Re: DAA Architectural Handbook (0)  
Fang wrote:
For the global script, it is usually used to give a character (usually named Inventory) a script for the CMD button that allows you to access an inventory. The script to make an inventory is as follow:

Let's say our custom npc is named Inventory.
Make a variable named "Inv".
Create a level named Inventory and describe the entrance as "InvEnt"

Imperative Make script global
Equipment Swap Command Inventory
Label "2"
  Each Use "1"
  Go to "2"
Label "1"
  If...
      Wait until var Inv = 0
    Set var Inv = 1
    Go to level entrance (Skip entrance screen) "Inventory: The Entrance: InvEnt"
    Go to "2"
  Else
    Set var Inv = 0
    Go to level entrance (Skip entrance screen) (Return to prior location)
    Go to "2"


There are probably more scripts that can be used to make an inventory but that one is the simplest, at least from what I've seen so far. Once a custom NPC has all of that written on it, put the npc in the room where you want the player to begin using the inventory feature, select "Inventory" as the npc but don't check the Visible box. All that's left to do now is make the Inventory itself, so go in the level "Inventory", put a few Weapon, Armor and Accessory slots, and finally, you have your inventory.

Of course, there are other uses for the Global scripts, don't be afraid to test but remember, the script will work during all the hold as soon as the player enters the room with the script npc in it, visible or not.

Edit: I take no credit for the inventory script, I forgot who first published it on these very forums, credit that guy. I know Tendry's Tale used a similar script for the inventory in part 2.

Nice script. There is a way to copy and paste a scripts in a NPC? I don't find some commands so i think that i need to copy it. THANKS.

____________________________
Nothing to say. I just play the game. And you, sir, should play it too.

Conspiracy, my new hold, has just been released.
03-10-2009 at 05:47 AM
View Profile Send Private Message to User Send Email to User Show all user's posts This architect's holds Quote Reply
mxvladi
Level: Smitemaster
Rank Points: 2505
Registered: 02-11-2008
IP: Logged
icon Re: DAA Architectural Handbook (+2)  
Neather2 wrote:
There is a way to copy and paste a scripts in a NPC? I don't find some commands so i think that i need to copy it. THANKS.

As I told before, this topic is not for asking questions. You should make a new topic to ask quesions about scripting, I think.

But I'll answer you anyway. :)

use ctrl-c to copy script and ctrl-shift-b to paste it into NPC.

[Last edited by mxvladi at 03-10-2009 12:53 PM]
03-10-2009 at 09:30 AM
View Profile Send Private Message to User Show all user's posts High Scores This architect's holds Quote Reply
Samuel
Level: Delver
Avatar
Rank Points: 69
Registered: 07-08-2007
IP: Logged
icon Re: DAA Architectural Handbook (0)  
Mine can be found here.

____________________________
I believe in everything until it's
disproved. So I believe in fairies,
the myths, dragons. It all exists,
even if it's in your mind. Who's to
say that dreams and nightmares
aren't as real as the here and now?
John Lennon
07-08-2009 at 07:50 AM
View Profile Send Private Message to User Send Email to User Show all user's posts This architect's holds Quote Reply
techant
Level: Smitemaster
Avatar
Rank Points: 854
Registered: 06-08-2004
IP: Logged
icon Re: DAA Architectural Handbook (0)  
Fang wrote:
For the global script, it is usually used to give a character (usually named Inventory) a script for the CMD button that allows you to access an inventory. The script to make an inventory is as follow:

Let's say our custom npc is named Inventory.
Make a variable named "Inv".
Create a level named Inventory and describe the entrance as "InvEnt"

Imperative Make script global
Equipment Swap Command Inventory
Label "2"
  Each Use "1"
  Go to "2"
Label "1"
  If...
      Wait until var Inv = 0
    Set var Inv = 1
    Go to level entrance (Skip entrance screen) "Inventory: The Entrance: InvEnt"
    Go to "2"
  Else
    Set var Inv = 0
    Go to level entrance (Skip entrance screen) (Return to prior location)
    Go to "2"


There are probably more scripts that can be used to make an inventory but that one is the simplest, at least from what I've seen so far. Once a custom NPC has all of that written on it, put the npc in the room where you want the player to begin using the inventory feature, select "Inventory" as the npc but don't check the Visible box. All that's left to do now is make the Inventory itself, so go in the level "Inventory", put a few Weapon, Armor and Accessory slots, and finally, you have your inventory.

Of course, there are other uses for the Global scripts, don't be afraid to test but remember, the script will work during all the hold as soon as the player enters the room with the script npc in it, visible or not.

Edit: I take no credit for the inventory script, I forgot who first published it on these very forums, credit that guy. I know Tendry's Tale used a similar script for the inventory in part 2.

I tried to copy this script into my npc as instructed but I only pasted some of the label text most everything was missing. When I tried to do it manually I could not find some of the commands such as "Imperative Make script global" and "Set var Inv = 1"

Either a correction needs to be made or better instructions on how to do this, please.


____________________________
DROD RPG Released!! You must try it out it is Great!!
Click here to view the secret text


[Last edited by techant at 07-20-2009 10:53 AM]
07-20-2009 at 10:52 AM
View Profile Send Private Message to User Send Email to User Show all user's posts Quote Reply
Nuntar
Level: Smitemaster
Avatar
Rank Points: 4590
Registered: 02-20-2007
IP: Logged
icon Re: DAA Architectural Handbook (0)  
Global scripts are only available in the default script of a character. In the first scripting window, click "Characters", enter the name "Inventory", click "Add character", then click "Edit default script".

As Fang said, you need to create the variable "Inv" before you can use it in a script. To do this, select "Set var" from the list of commands. There is a box in which you can enter the name of a custom variable, and then click "Add".

____________________________
50th Skywatcher
07-20-2009 at 10:58 AM
View Profile Send Private Message to User Show all user's posts High Scores This architect's holds Quote Reply
techant
Level: Smitemaster
Avatar
Rank Points: 854
Registered: 06-08-2004
IP: Logged
icon Re: DAA Architectural Handbook (0)  
Thanks that was the extra info I needed. :thumbsup

____________________________
DROD RPG Released!! You must try it out it is Great!!
Click here to view the secret text

07-20-2009 at 11:43 AM
View Profile Send Private Message to User Send Email to User Show all user's posts Quote Reply
Nuntar
Level: Smitemaster
Avatar
Rank Points: 4590
Registered: 02-20-2007
IP: Logged
icon Re: DAA Architectural Handbook (+2)  
Erika Hoagland's blog (which, incidentally, I highly recommend to anyone interested in writing, running or playing in RPGs, or any combination of the above) today contained a mention of the Three Clue Rule. I thought I'd mention this here, as part of this seems highly relevant to DROD:RPG architecture ;)

____________________________
50th Skywatcher
08-12-2009 at 05:33 PM
View Profile Send Private Message to User Show all user's posts High Scores This architect's holds Quote Reply
NiroZ
Level: Smitemaster
Rank Points: 1302
Registered: 02-12-2006
IP: Logged
icon Re: DAA Architectural Handbook (0)  
heh, no wonder the D&D I played sucked. There was ever only one way to do things, and we had to try and try again until it worked. And then we didn't get the treasure because I threatened the spirit.
08-12-2009 at 06:00 PM
View Profile Send Private Message to User Send Email to User Show all user's posts This architect's holds Quote Reply
TFMurphy
Level: Smitemaster
Rank Points: 3118
Registered: 06-11-2007
IP: Logged
icon Re: DAA Architectural Handbook (+8)  
Accessory Abuse
Keys and Swords and Monsters are all very well, but eventually, you're going to want to add something extra. So you add, say, maybe a Pickaxe or a Grappling Hook to your hold as a prize, hoping to spice things up.

And that works very well until some time later, someone finds a way to use them to break your scripts, score points and cutscenes. The severity of the exploit differs, and sometimes you may be fine with the results. But other times, it can really break the flow of your hold, and demand that anyone who wants to try and optimize the hold use the same exploit.

So. Let's look at the default Accessories in the game, and see how people may use them to break your hold, and how you might defend against this.

======

Low Risk Accessories
Lucky Greckle/VIP Card
These are the safest accessories, since all they do is double your Greckle and REP gain respectively. This can cheapen the use of Greckle Gates, or be a requirement to earn enough to buy something truly worthwhile. But it's very difficult for a player to really break your hold using either of these. Do remember, though, that unless you script a use for REP (or for the card itself), then the VIP Card is useless.


Flippers
Whilst holding this, the player can walk across water as if it were floor. So long as you remember this, then it isn't difficult for you to plan around its usage. Remember that you can always use Obstacles or Force Arrows if you want certain water to be impassable. The risk does increase if the player has access to a Pickaxe though, and it increases even more if you give a player an Inventory: people can enter their inventory, change to another Accessory, and then return to the previous room and will be able to stand on the Water square they just left. This can allow them to walk over water to find a weak wall to Pickaxe or Wall Walk through.


Speed Potion
If the player uses this in a room, then until they leave the room, they can act twice for every one turn the enemies have. This means that their damage is doubled against enemies (if they did 50 dmg per hit before, they'd instead do 100 dmg now). This can make certain monsters easier to handle. Also, enemies like Slayers, Goblins and Seep will only attack them as they pass once every two turns, and there's also timing tricks that can be done with fuses and pressure plates. However, the biggest exploit available is that the Speed Potion also halves the damage from beams, hot tiles and explosions. That means that the player can stab a bomb and not die from the explosion. This might not be such a problem if you don't use bombs very often, but do be aware of this ability.

NOTE: The Attack Adjacent/Attack in Front only activating once every two turns when the player is hasted only applies to the default set of monsters. Custom characters always move and attack every turn, no matter if the player is hasted or not.

======

Medium Risk Accessories
Invisibility Potion
After drinking this, the player becomes invisible. This lasts until they leave the room or they kill an enemy. Whilst invisible, Goblins, Seep, Waterskippers and Slayers will not attack whilst the player walks by, and the player can walk *through* enemies, so long as their sword does not touch the enemy. On top of this, their ATK is doubled, which means they may be able to harm enemies they couldn't before.

The Invisibility Potion has the power to trivialise bosses and even evade them entirely if you're not careful. It can also be used to kill Wubbas far more easily than usual. You can at least force an enemy to be killed if they hold down a pressure plate, but remember that the player will still have the 2x ATK power to bring to bear. And also note that the Invisibility Potion can allow the player to walk through serpent bodies, allowing them to either reach the tail for more greckles (assuming they're strong enough to fight the serpent that way) or get to rewards they couldn't possibly have until much later.


Hand Bomb
This single use accessory causes an explosion in every tile surrounding the player. Under default circumstances, this will kill *any* enemy that is hit by it. There's some caveats to this, of course. The Hand Bomb can only kill a serpent if it hits the serpent's head, and you can only use the Hand Bomb to kill something if you stand next to them. As you can imagine, this means that even if you use one to kill a Slayer, you're still going to get hit once before you activate it (unless you're invisible). Also, the player will not earn Greckles or REP for killing in this manner, which can sometimes be a drawback later depending on how the hold is set up.

If you want to guard against the Hand Bomb, then remember that the explosion cannot hurt enemies on raised doors or against the direction of Force Arrows. Also, if you have set the _Explosion variable to something other than 100, then the Hand Bomb may not completely kill the enemy. And finally, you can also use other ways to dissuade the player from using a Hand Bomb on a particular enemy - for instance, if using it there would cause a nearby Bomb to explode and kill them as well.


Portable Orb
When used, this Orb opens the door in front of the player. All doors can be opened by this: Yellow, Green, Blue and Greckles most certainly, but even more importantly, it can open Red and Black Doors. The only constraint to its use is that it cannot Lock a door. If you use a Portable Orb in your hold, then keep the dangers well in mind -- very few doors will be safe unless you organise a place where the player *must* use the Portable Orb to continue. But if use of the Orb is optional, don't be surprised if the player finds an exploit with it.

======

High Risk Accessories
Grappling Hook
This allows the player to jump over a single pit or water tile in the direction they're facing, and is completely reusable. You must be very careful how you use these obstacles once the player has the Grappling Hook. There are ways to limit the player's movement though: if they have a sword and no opportunity to disarm their weapon, then you can force the player to attack an enemy or stab a bomb after a jump. And if you keep the movement options of a Grappling Hook in your head, you can design obstacles that block a potential Grappling Hook exploit.

A Grappling Hook can only grapple to flat ground on the other side of the pit, and will respect Force Arrows and Orthosquares in its movement across the pit/water. Monsters and normal obstalces on the other side of the gap will also block the way, but items will not. But do note this: it is possible to grapple to a *closed* door if the player is standing on a closed door, providing a pit or water tile is inbetween the two doors. This has the potential for abuse if you're not careful with how you design your levels.


Pickaxe
Using this item allows the player to turn a single Wall tile into Floor. A simple use of this might be to destroy a Broken Wall that's only accessible from Oremites. However, the uses are wide-ranging, and even worse, the Pickaxe can be combined well with other travelling accessories to do what those accessories alone couldn't. Correctly used, the player may be able to avoid triggering certain Score Checkpoints until later, or avoid certain scripts from firing altogether.


Warp Token
Using this single use accessory teleports the player to the opposite side of the room they're in. For example, if they were at (2,1), the Warp Token would take them to (13,14). The Warp Token ignores Force Arrows and Orthosquares, and can teleport to any flat unobstructed ground -- items don't count as obstacles, and neither do staircases. That's right, if the staircase is in the right place, they can warp straight to it. And like the Grappling Hook, if you're standing on a Closed Door, you're permitted to warp to a Closed Door (if that is where warping where you stand would take you).

Furthermore, if the player uses a Pickaxe, they can expand the possible squares they can warp from, so even if you protect a room from Warp Token abuse, it might still get exploited by the combination of two Accessories rather than one. Fortunately, the Warp Token is only single use and thus has limitations in what it can be used to avoid or get at. But be aware that the player may be able to avoid triggering certain Score Checkpoints or scripts until it's more advantageous for them. Be careful with how you use this Accessory.


Wall Walking
Finally, Wall Walking allows the player to jump past the square in front of them, much like the Grappling Hook. It's a single use accessory, but it can jump past *any* square except Pit and Water. The target square must be unobstructed flat ground (again, items don't count as obstructions), but use of Wall Walking will completely ignore Force Arrows and Orthosquares, unlike the Grappling Hook. However, while Wall Walking can jump past monsters, the player must be facing them. So it is only possible to do this and not kill the monster if the player is disarmed or neither player nor monster can harm the other.

Also, like both the Grappling Hook and Warp Token, you can Wall Walk onto a closed door if you start your walk from a closed door yourself.

Due to the relative lack of restrictions in what it can jump past, it can be used to evade scripted squares and completely mess up the flow of your hold if you're not careful. And again, it can be combined with the Pickaxe to reach even further areas. Larger areas of doors and walls can help restrict this, as can the use of pits and water, but be aware that the more combinations of Accessories that are available in your hold, the more options the player has to sidestep your architectural obstacles. This is, of course, fine in many cases -- a reward for the clever player. But don't let them *break* your entire hold with it.

======

So, if you're going to use Accessories in your hold, it's important that you keep track of exactly what tools you're giving the player. If you give a Wall Walking and Pickaxe to the player, and it's possible for the player to have access to both at the same time, then you have to then take into account of all places they could reach if they used the Pickaxe and then used Wall Walking from the new floor tile. If they have a Grappling Hook, then watch your placement of pits and water carefully, and watch for Door 'Jumping'.

The more combinations of Accessories the player has, the worse things get. If they can cart them all around in an Inventory, then the risk gets even higher, since then they can even take things like Hand Bombs and Flippers with them when they Wall Walk or use a Warp Token.

However, it's perfectly alright for you to *design* puzzles around these accessories. Make the player think, reward them for clever use of their tools. But if they can skip some all-important plot scene with it, or go finish the whole game and earn all the bonuses before coming back and triggering that Score Checkpoint they skipped at the very beginning of the game... well, you'll just have to design around that.


[Last edited by TFMurphy at 08-23-2009 11:17 PM]
08-23-2009 at 12:51 PM
View Profile Send Private Message to User Show all user's posts This architect's holds Quote Reply
12th Archivist
Level: Smitemaster
Avatar
Rank Points: 789
Registered: 12-07-2008
IP: Logged
icon Re: DAA Architectural Handbook (0)  
I just wanted to add a bit of graphic information because I forget it a lot and thought it would be more productive to put it online where other people can use it than to just type it up in my personal word document.

Avatars are 130 by 164 pixels, width and height, respectively.

The standard tile size is 44 by 44 pixels. Objects spanning multiple tiles should be a multiple of 44 (88, 132, 176, etc.).

The standard invisible background is pink, or 255, 0, 255 in RGB. In GIMP 2, the color is (H: 300, S: 100, V: 100, R: 255, G: 0, B: 255).

____________________________
It was going well until it exploded.
~Scott Manley

Check out the DROD Wikia project here!
05-31-2010 at 06:42 PM
View Profile Send Private Message to User Show all user's posts This architect's holds Quote Reply
12th Archivist
Level: Smitemaster
Avatar
Rank Points: 789
Registered: 12-07-2008
IP: Logged
icon Re: DAA Architectural Handbook (+1)  
Currently, _ATK and _DEF reference the player's base ATK and DEF only, without regard to stats from equipment. If an architect wishes to do anything with the player's effective ATK or DEF (the combined base and equipment bonus), they can do so by adding _ATK to _WeaponATK or _DEF to _ArmorDEF.

____________________________
It was going well until it exploded.
~Scott Manley

Check out the DROD Wikia project here!
06-03-2011 at 07:30 AM
View Profile Send Private Message to User Show all user's posts This architect's holds Quote Reply
Page 1 of 2
2
New Topic New Poll Post Reply
Caravel Forum : DROD RPG Boards : RPG Architecture : DAA Architectural Handbook (A(nother) guide to creating RPG holds)
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.