CSBuild comments and suggestions

Discuss Chaos Strikes Back for Windows and Linux, an unofficial port of Chaos Strikes Back to PC by Paul Stevens, as well as CSBuild, an associated dungeon editor.

Moderator: Zyx

Forum rules
Please read the Forum rules and policies before posting. You may Image to help finance the hosting costs of this forum.
User avatar
rain`
Artisan
Posts: 164
Joined: Sat Feb 19, 2005 11:44 pm

CSBuild comments and suggestions

Post by rain` »

I would appreciate it if the new CSBuild comments, suggestions, and discussions from the previous "80+ number of replies" thread be focused to this thread. I apologize for anyone who would rather have it "all in one bundle for reference", but my macintosh computer (laugh it up) nearly locks up upon opening it =]

Anyway a few things I would like to say. I haven't seen the CSBuild editor in awhile due to lack of computer issues but now I have (temporary computer). Nice work Paul Stevens. I was in the process of making an "editor" due to lack of "ease of use" in certain areas of CSBuild. Now i must say, editing dungeons is a pleasure (mostly), except for a few rants (which are actually suggestions).

#1 feature request from me: Include the same "destination editor" that teleporter editing has into the actuator editing. Teleporter's are much less abundant, and in most cases, a lot easier to create then actuators. I could go in depth on why, but I'm sure you know.

#2: "You can only put a [var1] on an empty cell"; var1 being pit, teleporter, wall, false wall, or door. This is a feature you implemented that (to me) is only an annoyance =[. If I place a wall on an door/false wall/pit/teleporter, I would assume that it would be a quick macro to delete the door, then make the tile a wall. Also, in the case of placing a pit/teleporter/door/false wall on a wall, I would assume that you would make the wall a floor, then place the tile (in the latest CSBuild, i must note that you CAN place a pit/teleporter on a wall tile, you cannot place a false wall/door on a wall tile).

#3: Placing stairs: It only allows you to place a stairs IF the level above/below have an open tile. Again, just like above, I would assume that placing a stairs may force the tile above/below to become a stairs tile as well.

#4: All these above requests (or rants), save #1, can be declared as personal preference on how the editor works, so changing them may make another party "unhappy". But I would be more then happy with the option to make these features active, but defaulted off.

Note: My replacement AMD processor's shipment date is next tuesday, so by wednesday I should be back and ready to actually work on my first dungeon (phew).'

-rain`
User avatar
Paul Stevens
CSBwin Guru
Posts: 4322
Joined: Sun Apr 08, 2001 6:00 pm
Location: Madison, Wisconsin, USA

Re: CSBuild comments and suggestions

Post by Paul Stevens »

#1 Yes, of course. I was just waiting for someone to ask.
No sense doing work nobody wants.

#2 #3 #4 I will have to implement an 'options' page.
One thing I did not want to have happen was:

Accidently placing a wall (for example) on a teleporter and
losing all the information that you had carfully put into
that teleporter. So I tried to restrict things to the minimum
number of operations. But Control-Z/Control-Y make
mistakes easier to correct. So it is not such an issue.

#2 is actually a strange sort of thing. An Apple is an Apple
whether it resides in a wall or a floor. But Actuators change
their meaning. So does text. Should I leave the Apple there
when you change? Should I leave the Actuator there?
Should this be one of the options? Perhaps the options
should have a 'safe' mode, an 'expert' mode, and a 'custom'
mode. (I am thinking out loud, so to speak (or write)).

I think that is what I will do. All the options will be listed
and individually selectable; with a 'default', 'safe', and 'expert'
button that will preset all the options appropriately.
User avatar
beowuuf
Archmastiff
Posts: 20686
Joined: Sat Sep 16, 2000 2:00 pm
Location: Basingstoke, UK

Re: CSBuild comments and suggestions

Post by beowuuf »

I think 'safe' and 'expert' is the way to go (you can label them 'sensible' and 'i warned you, idiot' if you like : ) )
You could maybe define what 'safe' mode is in a config file, so it is customisable, while expert just ignores all error cheking (also thinking out loud)
Was unable to (permenantly) kill off ian_scho (Haynuus), Ameena, oh_brother (Westian), money (Falkor), raixel (Petal) and Lord_Bones (Aurek) in the DM D&D game Time's Champions!

CONGRATULATIONS TO THOSE WHO MADE THE GAME WHAT IT WAS - GREAT!
User avatar
Paul Stevens
CSBwin Guru
Posts: 4322
Joined: Sun Apr 08, 2001 6:00 pm
Location: Madison, Wisconsin, USA

Re: CSBuild comments and suggestions

Post by Paul Stevens »

CSBuild Version 0.766 is at:

webpages.charter.net/pstevens1

Changes:

--Primitive 'Editing-Options' page. Can build on it.
--Tab Order on Global and Local info pages improved.
--Select first item by default on 'Edit Cell Contents' pages.
--Actuator edit pages allow for target 'Browsing'
--Automatic 'Edit' following 'Adding' item to cell.
--North/South Stairway properly flagged.
--Fix 'Undo'/'Redo' of insert and remove of stairwells.
--Allow you to place pit on 'wall' cell.
=====================
The last item is one of a hundred or so possibilities:
-Pit on teleporter
-Teleporter on stairwell
-Trick wall on doorway
-etc.

Each of these is a pain. So if you want them you must
share the pain. I will implement one or two with each
release....but you have to ask for them individually.
User avatar
rain`
Artisan
Posts: 164
Joined: Sat Feb 19, 2005 11:44 pm

Re: CSBuild comments and suggestions

Post by rain` »

Regarding floor actuators and wall actuators.

Your individual actuator editors are a bit confusing, i was wondering if you could perhaps clarify them a bit:

And/Or Gates (also called And/Or logic):

What exactly is "Edge detection" and what do each of their values mean? I have yet to test it, but if you can give a quick simple answer, that would be *wink* very nice =].

Action: When another actuator "targets" the and/or gate, what does set/clear do? I'm assuming set raises the "value" of the and/or gate by 1, then performs the action of the and/or gate (if equal do this, else do this), and clear reduces the "value" by 1... Then what does delay do in an and/or gate? Or does Clear reduce the value to 0 instead of "by 1"? Also: what does Toggling do to an actuator like this?



Counters:

What is Delay for a counter? (same as for and/or gates im assuming) My guess would be for when another actuator sets and/or clears it, it waits the DELAY in 1/6ths of a second before doing its own action.... Am i correct?


Swap Objects:

This Actuator is "NOT IMPLEMENTED" =] It sounds to me like a wall actuator, when activated, replaces the selected item used on it with another item of your choice... Any chance of that being implemented? It is used for the firestaff transformation, but I could think of other uses for it...


Push Buttons:

What does "Skill" do as an action?


End game:

Any chance of being implemented?



And finally: bug reports for your latest version (hehe, don't you just Love me!)

1) When editing wall items (north/south/east/west slots), a NEW object can be made, then is immiediately edited. The problem lies where if there is multiple objects in that specific slot, it creates a new item of your specification, then edits the existing item that was already previously selected (Create an and/or actuator, then right away create a push button, after creating the push button, you'll be editing the and/or actuator).

2) Minor unimportant bug, but i feel like a bug hunter by stating this: For refrence, see tile 19,18 in mini.dat CSB dungeon on level 3. In the "Target of" section, it contains actuators of Push buttons which contain ROTATE as the action (since it is rotate, there essentially is no target).

3) If you attempt to create a "Swap Object" actuator, it will tell you "NOT IMPLEMENTED" a few times, but it will also bring up a few "NOT IMPLEMENTED"'s when you move your mouse over that tile. It doesn't cause this when the mouse is over the Swap Object actuator in DM (firestaff transformation wall).

Ok, now to "feature requests/misc questions": If you place a And/or logic on a floor tile that is also a teleporter, and the and/or logic's action is set to rotate, will it rotate the teleporter as well? If so, would you consider making it possible to add multiple teleporters on a single tile, granted what I say is possible (beowuuf would probably know better then me). This might apply also to doors as well, but i cannot test it. This may be offset by the fact that teleporters could very well take all the actions of all actuators targeting that specific cell (I do not know of this to be 100% true). I have had nothing but trouble trying to put targeted actuators on teleporter tiles, but I assumed CSBuild always made the teleporter object first on the list of items in the tile...

Has anyone ever had success with actuators on door/teleporter tiles? I have tried making a teleporter tile contain monster generators, but that was unsucessful. A fire elemental that reflects fireballs is nothing but a dream unfortunately =[

-rain` and his novel...
User avatar
Paul Stevens
CSBwin Guru
Posts: 4322
Joined: Sun Apr 08, 2001 6:00 pm
Location: Madison, Wisconsin, USA

Re: CSBuild comments and suggestions

Post by Paul Stevens »

Glad you asked....

One thing at at time. First, the 'Edge Detection':
The word 'Edge' generally means that something
has changed. In hardware timing diagrams it refers
to the beginning or end of a signal.

I implemented this before the invention of the DSA.
Had DSAs been available this would not have been
necessary. But it is rather nice and clean. I
am glad I did it. There was some leftover space
in the definition of the 'And/Or' gate and I took advantage
of it.

An 'And/Or' gate consists of four bits that can be set
or cleared individually. The bits are numbered from
zero starting at the least significant bit. (3-2-1-0).
Bit 2 by itself results in a value of 4, for example.
The gate sends an output message depending on
whether the resulting value is/is-not equal to the
target value.
-------------------------------
Example:
The value is zero and the target value is 2 and the
action is 'Set if Equal' and 'Edge Detection' is 'None'.

A message arrives that sets bit 1. That makes the value
equal to 2. So a 'Set' message is sent.

A message arrives that clears bit 3. The value is
unchanged and still equals 2 so a 'Set' message is sent.

-------------------------------
Notice that in the Example that a message was sent when
the 'Clear bit 3' arrived though the value did not change.
This is not always convenient behavior.

The 'Edge Detection' allows you to further specify what must
take place before an output message is sent. There are
four layers to the gate:

1)The message layer. The messages arrive at this layer
and you can specify that no output message will be sent
except upon arrivial at the message layer of a 'Set message'
or a 'Clear message'. If you specified 'Clear' in the example
then no output message would have been generated when
that first 'set' message arrived. An output message would
then only be sent if a 'Clear' message arrived and the resulting
value was 2. For exmple a 'Set 2', 'Set 0', 'Clear 0' sequence
would cause an output message.

2)The input layer. These are the four bits that define the
state of the gate and are the 'inputs' to the 'And/Or' function.
You can specify that an output message can only be generated
if a)The input changes - a bit was set or cleared, or
b) A bit was set, or c) a bit was cleared. In other words the
input changed either by setting a bit that was clear or by
clearing a bit that was set. Specifying 'Bit Cleared' in the
example would have prevented the second output message because
bit 3 was *Already* clear before the message arrived and
therefore the message did not clear the bit.

3)The output layer. This is the result of the comparison
between the current value and the 'target value'. It is a
boolean ('Equal' or 'Not Equal'). You can specify that the
output message should be sent only if the 'output' changes.
Again, in the example, this would have caused the second
message to NOT send an output message; because the output
was 'True' before and after the input message arrived...it
did not change.

Furthermore!!! There was one value left over after I provided
those options so I used it to provide the option 'Input but
not Output'. This means that an output message should be
sent only if the 'Input' changes (one of the four bits changes)
but it does NOT cause the resulting 'Output' (equal or
not equal) to change.

4)The 'Action' layer.
Be sure you understand that these additional restrictions
can only 'prevent' an output message. After passing any
restrictions in the first three layers, the 'Action' layer
determines what kind (if any) message is actually sent out,
based on the 'Equal' or 'Not-Equal' status of the gate.
User avatar
Paul Stevens
CSBwin Guru
Posts: 4322
Joined: Sun Apr 08, 2001 6:00 pm
Location: Madison, Wisconsin, USA

Re: CSBuild comments and suggestions

Post by Paul Stevens »

Next question: What do 'Set' and 'Clear' and 'Toggle' do
to an 'And/Or' gate? What is 'Delay'

First of all you have the wrong notion about what an
'And/Or' gate is. It consists of four bits that can be set
or cleared independently along with a 'Target Value' that
determines when the gate is 'Closed'.

The four bits are combined to make an integer where
each bit has a value and the values are added together.
Bit 0 has value 1 (when set)
Bit 1 has value 2 (when set)
bit 2 has value 4 (when set)
bit 3 has value 8 (when set)
if there were more, then bit n would have value 2**n.

So if bit 0 and bit 3 are set and bits 1 and bit 2 are
clear then the total value is 1 + 8 = 9.

All of this is called the 'Binary Number System' or 'Base
Two Number Representation'.

For the 'Value' to equal the 'Target Value'.....

Bit 0 of Value must equal Bit 0 of Target.
AND
Bit 1 of Value must equal Bit 1 of Target.
AND
Bit 2 of Value must equal Bit 2 of Target.
AND
Bit 3 of Value must equal Bit 3 of Target.

Those 'AND' words are the reason this is called
an 'And' gate. The gate closes when bit0 and
bit1 and bit2 and bit3 are equal.

Of course you can apply the rule:

(a & b) -> !(!(a & b)) -> !(!a | !b)

to turn it into an OR gate. Hence the name
'And/Or' gate. (And it can also be a NAND-gate
or a NOR-gate but who needs a name that long?)

When a message is sent to an 'And/Or' gate the
messages specifies two things:
1) Which bit to act upon (0, 1, 2, or 3)
2) What to do to that bit(set, clear, toggle)

Set means to set the bit. If already set then unchanged.
Clear means to clear. If already clear then unchanged.
Toggle means to change the state of the bit. If it
was set then clear it. If it was clear then set it.

As for delay......The entire runtime engine is pretty
much operated by messages. Each message has a 'delay'
time built into it. Like an alarm clock...when the
message is created the time is set for it to act.
So the And/Or gate creates a message instantly. But
the message has a delay timer (or fuse) that is set
to go off at some future time. The message is put
into a queue and it waits there until its time arrives.

There. I am about 1/4 finished with your questions.
User avatar
Paul Stevens
CSBwin Guru
Posts: 4322
Joined: Sun Apr 08, 2001 6:00 pm
Location: Madison, Wisconsin, USA

Re: CSBuild comments and suggestions

Post by Paul Stevens »

Counters......

You are correct that the 'Delay' for a 'Counter' serves the
same purpose as 'Delay' for an 'And/Or gate'.

You will probably be better off thinking that the delay
is a part of the message the 'Counter' sends rather than
being a part of the 'Counter' itself. Because otherwise the
'Counter' might be doing two things at once if the delay
for a previous action has not yet expired when a new
message arrives for the 'Counter'.

A 'Counter' can have any value between 0 and 511, inclusive.
If the counters 'Value' is zero then it cannot be
incremented or decremented and it is pretty much
disabled. Sort of a 'once-only' kind of thing. It can
never more send any messages.

A 'Set' message increments the counter if the initial
value is not 511.

A 'Clear' message decrements the counter.

A 'Toggle' message leaves the counter as it was. This
is not the same as 'Increment' followed by 'Decrement'.
(Homework question...Why?)

After performing the set/clear/toggle operation the counter
sends a message depending on whether or not the result
is zero (as defined by the 'Action' section.
User avatar
Paul Stevens
CSBwin Guru
Posts: 4322
Joined: Sun Apr 08, 2001 6:00 pm
Location: Madison, Wisconsin, USA

Re: CSBuild comments and suggestions

Post by Paul Stevens »

Swap Objects......

I don't know what this does. I will study it. Then
implement it. I have added it to my list.
===================================================
Skill.....

This allows you to specify a skill number and it
results in that skill getting an increase.
The editor dialog appears to be incomplete.
I have added it to my list.

===================================================
End Game.....

Implementation added to my list.
===================================================
Incorrect item edited when adding new wall item.

I tried hard to get this right!
Added to my list
===================================================
Target of......

Lists actuators without targets.
Added to my list.
===================================================
Swap Object causes 'Not Implemented' at strange times.

Added to my list (I just used my last 3x5 card.)
===================================================
User avatar
Paul Stevens
CSBwin Guru
Posts: 4322
Joined: Sun Apr 08, 2001 6:00 pm
Location: Madison, Wisconsin, USA

Re: CSBuild comments and suggestions

Post by Paul Stevens »

Note:

You mention putting an 'And/Or' gate on a floor tile.

I have just taken a hard look at the runtime code.
In general, when a message targets a non-WALL tile the
position specified in the message is set to zero. So
putting an 'And/Or' on a floor tile is not too useful. Any
message sent to it can only affect bit zero.

Now this funny business is accomplished at the time
the message is created so it may not apply to every
possible message source. I will try to look at each case
and I will put a warning in the 'Check|Actuators' to
warn you if a message aimed at a non-WALL tile has
a position other than zero specified.

I have no idea why this was done. Does it explain any
of your troubles?
User avatar
rain`
Artisan
Posts: 164
Joined: Sat Feb 19, 2005 11:44 pm

Re: CSBuild comments and suggestions

Post by rain` »

Wow, that was... enclypedic? (hehe)

Anyway, a few more clarifcations are needed, but i understand most of what you stated (And/Or gates make sense to me now, and will prove useful in dungeon-craft)

When using set/clear targeting an and/or actuator, you say it sets/clears a single specified bit. How do you specify the bit you want to set/clear? In pressure pads, there is a "value" associated with it, but in push buttons, there is not... After looking at various CSB and/or gates, I'm assuming you must use 2 "push button" actuators in a row, the first one's action targets the 1st bit, the second one's action targets the 2nd bit, etc. Is this correct?

I'm now looking at the corbum room of CSB, specifically tile 1,34,28. When you push a button, a clear gets sent to an and/or actuator at 1,21,29. When that receives a clear, it sends a one-time only clear to 1,34,28. By my assumption in the last paragraph, this would clear bit 1 of 1,34,28, thus making the actual value 4... which causes nothing to happen (provided i understand and/or gates correctly).

Now about the above paragraph, I believe it would be safe to say that IF the and/or actuators were "this and this *OR* this or this", it might make the actuators i talked about before work correctly. Since starting values is 4, (bit 3 being set) and it receives a single clear, then it would still be 4, but bit 1 would be cleared, thus making the target value's bit 1 equal to the target's bit 1, ignoring bit 3 all together?

Everything is making alot more sense to me right now, I appreciate you taking the time to answer these questions, hopefully everyone here utilizes (is that a word? sp?) this information, because I can think of all sorts of new puzzles that are possible with this engine now. =]

-rain`
User avatar
Paul Stevens
CSBwin Guru
Posts: 4322
Joined: Sun Apr 08, 2001 6:00 pm
Location: Madison, Wisconsin, USA

Re: CSBuild comments and suggestions

Post by Paul Stevens »

I am a bit behind and will not attempt to answer all
your latest questions right now. But this may be a
particularly important misconception on your part:

All actuators have a provision for specifying the bit
number. Sometimes it says 'North', 'East', 'South',
or 'West' instead of 0, 1, 2, or 3. When targeting
a 'Counter' the target must be in a particular position
in order to receive the message. When targeting an
'And/Or' its position is ignored and the information is
used to select the bit number instead of the target's
position.
User avatar
beowuuf
Archmastiff
Posts: 20686
Joined: Sat Sep 16, 2000 2:00 pm
Location: Basingstoke, UK

Re: CSBuild comments and suggestions

Post by beowuuf »

Something to note (not applicable to the one you were looking at in CSB) - there are different 'flavours' of the actuators, sixteen in total, where a bit needs an open or close to set/unset

So one for all need close to set
One for all but bit 0 need close to set
One for all but bit 1 need close to set
Etc


These can be used to create clever effects, as you can target a tile and know you are only setting certain objects on that tile
The bets place to see this in action is DM, level 11 (12), where there is a sereis of actuators controlling the rotating pits
Was unable to (permenantly) kill off ian_scho (Haynuus), Ameena, oh_brother (Westian), money (Falkor), raixel (Petal) and Lord_Bones (Aurek) in the DM D&D game Time's Champions!

CONGRATULATIONS TO THOSE WHO MADE THE GAME WHAT IT WAS - GREAT!
User avatar
Gambit37
Should eat more pies
Posts: 13769
Joined: Wed May 31, 2000 1:57 pm
Location: Location, Location
Contact:

Re: CSBuild comments and suggestions

Post by Gambit37 »

...and this thread is all the proof one needs of why CSBuild sadly won't be the editor of choice for those of us with artists minds!
User avatar
Paul Stevens
CSBwin Guru
Posts: 4322
Joined: Sun Apr 08, 2001 6:00 pm
Location: Madison, Wisconsin, USA

Re: CSBuild comments and suggestions

Post by Paul Stevens »

You do yourself an injustice, Mr. Gambit. You are perfectly
able of understanding these things and you might find
them quite useful when you try to accomplish something
a little out of the ordinary. Once upon a time you probably
had difficuly spelling your own name.....but that did not stop
you from learning. On the other hand, you may wish not
to learn these things. That I could believe; but I refuse to
believe that being an artist makes you incapable.

It is hardly 'sad' that CSBuild will not be your primary choice.
You will choose what fits your model of the game and makes
life easy for you. It is 'happy' that you have a VERY wide
choice. The three available editors could hardly be more
disparate.

PAul

P.S. CSBuild did not invent these tools and devices. They
come with any DM/CSB editor because that is the way the
game works. If you want 18 generations of worms then
you will want to use a 'Counter'. If mummies need to step on
four pressure-pads to open a door then you will want to use
an 'And/Or' gate. Etc. That's just how it is and what allowed
DM to be such a great game. If you study games such as FRUA
(Forgotten Realms Unlimited Adventures) you will see that
the DM mechanics are **MUCH MORE** powerful in a
smaller package. The individual devices have been designed
in such a way that they can be combined into machines that
nobody had originally anticipated. Very clever - those folks
at FTL. But just like building a piano.....you have to understand
the materials and tools before you can create a beautiful
instrument. And you need to know when it sounds nice, too!
User avatar
Paul Stevens
CSBwin Guru
Posts: 4322
Joined: Sun Apr 08, 2001 6:00 pm
Location: Madison, Wisconsin, USA

Re: CSBuild comments and suggestions

Post by Paul Stevens »

You asked about how the 'Rotate' works so I went to
the code this afternoon and drew a flowchart. You will
find it at :

http://bahamas.globat.com/~dianneandpaul.net/

(The rotten URL is because our private domain is
not yet registered. I'm getting anxious.)

Then work your way down to the csbwin documentation
where you will find a QueueSwitchAction.gif

Generally, the funtion QueueSwitchAction is called to
create a message. If the 'LocalAction' bit is set then
(usually) it remembers this so as to do a rotate later.
It dare not do the rotate immediately because that
would mess up the list it is currently reading!!!!

You are probably not an expert at reading such flowcharts
but feel free to ask. This kind of documentation is critical
when things get complicated. There is no way to explain
some things using only words. I have a lot of it.
User avatar
Paul Stevens
CSBwin Guru
Posts: 4322
Joined: Sun Apr 08, 2001 6:00 pm
Location: Madison, Wisconsin, USA

Re: CSBuild comments and suggestions

Post by Paul Stevens »

Rain` says:

because I can think of all sorts of new puzzles that are possible with this engine now. =]

=====================================
I have been trying to break this to you gently....You are
asking the wrong question. Not "Is it possible?"
but rather "How can I best do it?". The first question
has been answered, rather generally, in the affirmative.
User avatar
Gambit37
Should eat more pies
Posts: 13769
Joined: Wed May 31, 2000 1:57 pm
Location: Location, Location
Contact:

Re: CSBuild comments and suggestions

Post by Gambit37 »

Paul, I am very interested in your response. It is true, that if I were to sit down and study the AND/OR logic or any other aspect of CSBuild, I would probably understand it eventually. I am certainly not incapable of learning these things. However, as you point out, I don't want to have to do that simply to make a dungeon, and at the moment CSBuild does require more understanding of such things than I feel should be necessary.

Do I have to understand how oil paints are made or brushes constructed to paint a picture? No. Do I have to understand how a car engine works to drive? No. Do I have to understand how a telephone works to phone a friend? No. Ok, so perhaps I'm pushing the analogy a bit far here, but I'm sure you see where I'm coming from.

I do realise that CSBuild clearly exposes the DM engine mechanics, and that it does so in a logical way. I'm merely suggesting that it might be more usable to those of us who don't think in AND/OR gates to have options that are more easily understandable. I appreciate that doing so would probably be a lot of work, but I don't understand why you can't present an interface with simply labelled buttons and options that say things like "Open this door after x activations" or "Deactivate this teleporter after use"... OK, so perhaps such an interface would end up with hundreds of options, and so I can understand why you display the options the way you do. But it's simply confusing to those of us who just want to build dungeons! :)

Am I the only one who thinks like this? What do other people think?
User avatar
Paul Stevens
CSBwin Guru
Posts: 4322
Joined: Sun Apr 08, 2001 6:00 pm
Location: Madison, Wisconsin, USA

Re: CSBuild comments and suggestions

Post by Paul Stevens »

Gambit:
I think I hear what you are saying. What you want is a
dungeon 'compiler' (a high-level language) and what CSBuild
supplies is am 'assembler' (a low-level language). A compiler
is very much more difficult to specify and design; and somewhat
more difficult to implement.

But I am listening. If there are reasonable things that could be
done along these lines then it might be fun to try.

It seems clear to me that only a fraction of the DM and CSB
games could be built in this way. And you might have to fall
back on the 'assembler' model to get some of the more
difficult things done. So I have a couple of questions:

What percentage of the DM/CSB games do you think could be
built using your model of an editor?

Take a concrete example. The four mummies must occupy the
four cells to open a door. How would you have the editor
present this to you? The problem in my mind is how I can make
some editor capability that would address this particular
puzzle and yet be useful somewhere else. And what if you
wanted to change it so that it required only three mummies?
And what if you wanted to change it so that it required a blue
gem in any cell and at least two mummies in any of the other
three cells? And what if you wanted to change it to close
a pit instead? We could have six buttons in the editor dialog:
1) Open door if four mummies in four cells.
2) Open door if three mummies in four cells.
3) Open door if one blue gem and two mummies in four cells.
4) Open pit if four mummies in four cells.
5) Open pit if three mummies in four cells.
6) Open pit if one blue gem and two mummies in four cells.
But of course that is being silly. I would like to hear how you
might go about this. Perhaps this is one of those puzzles you
would not expect to be able to build.

As you may have noticed, it is I who am confused. Nevertheless
willing to try. Perhaps there could be a 'High-Level Editing' option
that would apply to some of the objects like doors, pits,
teleporters, pressurepads, and switches.
User avatar
Gambit37
Should eat more pies
Posts: 13769
Joined: Wed May 31, 2000 1:57 pm
Location: Location, Location
Contact:

Re: CSBuild comments and suggestions

Post by Gambit37 »

Paul, I will have a think about this over the next couple of days. I've not tried your latest version of CSBuild, so I will take a look at that and start thinking about ways that I'd wish the information to be presented.

I understand more clearly now about how you've designed CSBuild, and I see the problems associated with the scenarious you described above. You are indeed a "true" programmer. I am not knocking CSBuild for what it can do; it's clearly very powerful; I just need to see how I can make suggestions on how to improve the way it does it! This will probably reley on me drawing pictures, so if it comes down to that, that's what I'll do!

Will be back here in a couple of days.
User avatar
Paul Stevens
CSBwin Guru
Posts: 4322
Joined: Sun Apr 08, 2001 6:00 pm
Location: Madison, Wisconsin, USA

Re: CSBuild comments and suggestions

Post by Paul Stevens »

Believe me....I did not interpret your concerns as 'knocking'.
It is my way and others can have their way. I like my
cauliflower raw. You may like it cooked. No hard feelings
about that.

Diagrams are great tools. Draw away! I'm anxious to see
what you come up with. I implemented a 'general logic' capability
for the Dungeon Craft project. It is built on a diagram that the
user can manipulate. Everyone said it was 'too complicated', too.

I don't guarantee that I will implement anything. It would
probably take less time for me to simply accept 'word descriptions'
of the puzzles you want built and build them for you! A
human compiler. And a good deal for me because I lack the
imagination to dream these things up.
User avatar
ChristopheF
Encyclopedist
Posts: 1596
Joined: Sun Oct 24, 1999 2:36 pm
Location: France
Contact:

Re: CSBuild comments and suggestions

Post by ChristopheF »

I don't think CSBuild is more complex than the other editors...
Most people seem to prefer DMute, but it is only 'easier' because it is more limited. If you want to do special things, you have to do them with hexadecimal: not easier at all!

I think if you stick to simple design (putting walls, pits, doors) and use only very simple puzzles), you don't need to understand each and every option in the program. After quickly reading this thread, I have not yet fully understood these and/or gates. I know I can understand them if I take the time. In DMute, you would probably not use such actuators because there is no UI for them. Just ignore them in CSBuild if you don't know what they mean. This will not limit your creativity compared to DMute, on the contrary.

On the other way, I agree that it may be good for 'beginners' in dungeon design to have some "macro commands" to design classic traps and puzzles. The 'right' way to do this is to include a macro language in the program itself and let users create their own macros that would run as wizards for example.
For the mummy puzzle, we could run a wizard asking 'simple' questions:
Step 1) how many creatures? -> 4
Step 2) which type of creature? -> mummy
Step 3) Where do you want the first mummy to be for the trigger to occur? (click browse and select the tile graphically)
repeat step 3) for each creature
Step 4) What will this puzzle trigger? -> fixed list of opening/closing a pit, a door or a teleporter, ...
Then the wizard puts pre-configured objects in the dungeon. Power users can edit them and change options. Other will just keep them intact.

Of course, each macro would perform only a very limited design, but power users could make their own macros and make them available for all others.

But it would be a real hard work for Paul to implement such a feature as it may require lots of changes to the whole program. It was just an idea :)
User avatar
rain`
Artisan
Posts: 164
Joined: Sat Feb 19, 2005 11:44 pm

Re: CSBuild comments and suggestions

Post by rain` »

I think CSBuild's current item editors (item as in any actuators, doors, etc) are more then sufficient for what we need. It may be a bit confusing for people who do not program and/or people who have not "studied" CSB/DM dungeons like others have... But DM/CSB is a very confusing game! I still have yet to find a game with a dungeon as complex, yet simple, as CSB. CSB is a game you can beat in 2 years... or 18 minutes and 46 seconds... To me, that kind of game is amazing, and the actual work on the CSB dungeon.dat file itself proves to be the same (amazing that is).

I think what we need is, documentation, in simple, ledgible form (html files are perfect) for the detailed processes of CSBuild. I'm not going to pick a name out of a basket and say they should start documenting CSBuild, because I know that Paul Stevens would make HORRIBLE documentation (i mean seriously man, you can succeed in confusing me, and im a programmer that understands the logic behind these items! =] hehe).

Anyway, what i'm talking about is documentation, tutorials, anything that can help one learn the concepts of the more complex actuators (like counters, and/or gates, using the rotate action, etc). I'd be willing to start on some of this, if of course enough people are actually interested (I have yet to see a dungeon made by CSBuild, except for Paul Steven's himself). Like Paul says: If the time spent on the project exceeds the time saved by another, it's not worth doing.

-rain`
User avatar
Paul Stevens
CSBwin Guru
Posts: 4322
Joined: Sun Apr 08, 2001 6:00 pm
Location: Madison, Wisconsin, USA

Re: CSBuild comments and suggestions

Post by Paul Stevens »

Nobody but me is ever going to create a Macro that
runs as a Wizard. Even if I made it possible. Writing
Macros would add so much to the complexity that the
current cries of anguish would be totally drowned out.

A person could probably do this:

1-The 'Power User' would create a puzzle.
2-Identify the needed parts. Add comment to each.
3-Export the parts. Give it a name.

4-Beginner could import the parts.
5-Each part would print the comment and ask for location.

Example: FourMonsterPresentPuzzle:

Preliminary Comments:
"This puzzle requires four monsters to be present on
four pressure plates simultaneously in order to close
a pit. After installing it you can edit the parts to change
the pit into a door, trick wall, or teleporter. You can edit the four
pressure plates to accept objects other than monsters.
You should prepare an open cell for the pit and for each
monster detector and a wall cell to contain the monster counter."

Are you ready? (Y) <If 'No' then we abort the import>
Here is the pit. Where shall we put it? Browse.
Here is the first monster detector. Where shall we put it?
Here is the second monster detector. Where shall we put it?
Here is the third monster detector. Where shall we put it?
Here is the monster counter. Where shall we put it?

And nothing actually happens until the entire sequence
is completed so that if errors occur (you try to do some
inter-level messages, for example) then we don't leave
ugly pieces around.

Then the user can change one monster detector to a blue-gem
detector, etc.

My bet is that such a facility would be so little used that
it would be better for me to actually build the puzzles rather
than implement a way to let the beginner do them.
I might be wrong.
User avatar
Paul Stevens
CSBwin Guru
Posts: 4322
Joined: Sun Apr 08, 2001 6:00 pm
Location: Madison, Wisconsin, USA

Re: CSBuild comments and suggestions

Post by Paul Stevens »

rain` says:

Paul Stevens would make HORRIBLE documentation (i mean seriously man, you can succeed in confusing me,

======

Ah! Thank you. What higher praise for a programmer? ;-)

======
Seriously, some of this effect may be a bit purposeful. These
topics are (sadly, I fear) graduate-level subjects. Nobody can
walk into the course cold and expect to learn the material
without a fight. The initial confusion serves a good purpose:
I discover who wants to know. They are not the ones who
are confused (because EVERYONE is confused); they are the
ones who ask questions.
User avatar
rain`
Artisan
Posts: 164
Joined: Sat Feb 19, 2005 11:44 pm

Re: CSBuild comments and suggestions

Post by rain` »

Hey, its time for a comment:

Thank you for making the actuator limit of what once was 1024 to what now is... 60000? =] I'm working on a dungeon thats probably 1/20th of the way done, and already i have 250+ actuators!

Damn, i can't imagine what FTL dungeon makers went through making CSB...
User avatar
PicturesInTheDark
Arch Master
Posts: 1154
Joined: Mon Aug 26, 2002 4:47 pm
Location: Vienna, Austria

Re: CSBuild comments and suggestions

Post by PicturesInTheDark »

I'm the one out of the basket. But give me some time since I have a life as well and I'll try to describe Paul's answers to CSBuild in a way understandable for me (and hopefully others).

There is only a very rudimentary draft so far, Paul can give you more details if you ask him. But I'm on the move.

Regards, PitD
User avatar
Gambit37
Should eat more pies
Posts: 13769
Joined: Wed May 31, 2000 1:57 pm
Location: Location, Location
Contact:

Re: CSBuild comments and suggestions

Post by Gambit37 »

Those last few posts helped me clarify something in my head which perhaps I hadn't made clear before. Christophe mentioned the word complex. If that was in reply to my posts, I want to make it clear that CSBuild isn't necessarily more complex; it's simply more confusing because of the language used to present the options to the user. It's a programmers language, and it's unfirendly to those of us who don't speak it.
User avatar
Paul Stevens
CSBwin Guru
Posts: 4322
Joined: Sun Apr 08, 2001 6:00 pm
Location: Madison, Wisconsin, USA

Re: CSBuild comments and suggestions

Post by Paul Stevens »

Instead of 'AND-gate' we could say a:
'WidgetThatDoesSomethingWhenAllOfOneOrMoreThingsAreTrue'.

a 'NAND-gate:
'WidgetThatDoesSomethingUnlessAllOfOneOrMoreThingsAreTrue'

An 'Or-gate' is:
'WidgetThatDoesSomethingWhenAnyOfOneOrMoreThingsIsTrue'

A 'NOR-gate'
'WidgetThatDoesSomethingUnlessAnyOfOneOrMoreThingsAreTrue'

A 'NOT-gate'
'WidgetThatDoesSomethingUnlessSomethingIsTrue'

A 'Counter'
'WidgetThatDoesSomethingWhenACertainNumberOfThingsHaveHappened'

Sorry! ;-)

PAul
User avatar
Paul Stevens
CSBwin Guru
Posts: 4322
Joined: Sun Apr 08, 2001 6:00 pm
Location: Madison, Wisconsin, USA

Re: CSBuild comments and suggestions

Post by Paul Stevens »

All of this talk about 'And/Or' gates and 'Counters' sent
me to test it again. I found it really did not work
right and the code was too complicated. So I pretty much
rewrote those two dialogs. I probably broke more things
than I fixed.

Version 0.767 is at:
webpages.charter.net/pstevens1

--New And/Or and Counter Dialogs. Allow 'Rotate' and 'Skill'
--Correct wall item now is automatically edited after insert
Post Reply

Return to “Chaos Strikes Back for Windows & Linux (CSBWin) / CSBuild”