Jump to content


Photo

Using the TDM/DR documentation/wiki

long post wiki darkradiant case study level design not a rant

24 replies to this topic

#1 teh_saccade

teh_saccade

    Advanced Member

  • Member
  • PipPipPip
  • 682 posts

Posted 26 February 2018 - 12:43 PM

http://forums.thedar...stions/page-323

// the discussion is sliding way out of newbie questions, so figured it'd be good to make a new thread regarding this.

This first stuff is not really related - a preamble.

Spoiler


Modular design with assets and perhaps explanation to help learn, allowing increase in creativity and mission diversity or achieving vision.
or
Here, catch.
or
Go figure it out.

First is more work, but helps people a lot.
Second is less work, simply provide a solution.
Third is no work, ship without a rudder.

In short, it'd be really nice to get more hands on deck with updating the wiki.

As and when required/prompted by newbie questions, so it's easier for people to find and understand the answers to the questions they need to ask and take the time to go figure it out:
http://wiki.thedarkm...l:RecentChanges

No-one's born a brain surgeon, but everyone can pick someone's brains.
People CAN learn to be a brain surgeon, if they have access to the edu-material on how to become one, know where to search and find - and can understand it.

----

I've included a case study, using the current documentation, trying to discard as much pre-existing knowledge of DR and rely solely on the wiki and forum for answers - not asking any questions.

A simple challenge for the player:

Entering a corridor, the door slams shut behind.
 A series of scythes swing across the path to safety, as an ornate door slowly opens to reveal a zombie shambler.

There is no way back - the player is under pressure to run from the zombie (potentially lethal damage if caught), while timing their sprints along the corridor between the scythe traps (potentially lethal damage, increasing in speed/damage given).

Ultimately, to escape, they must leap across a dangerously deep pit (potentially lethal fall damage - fake, safe drop into water, where there is some hidden loot and escape via ladder).

The player is placed into peril and must react - if they fail the traps or get caught by zombie, damage or death. If they fail the jump - believe might die, but actually safe and can grab hidden reward. Succeed the jump - zombie is held up by scythes (and clip), so has time to notice ladder and perhaps explore the pit if they're uber-cool and pass the challenge 100%.

The only danger is "inside" the trap. Once past - there's uncertain safety. Except I've revealed it now, so it's not uncertain, heh.

example.jpg

So - Here's a route I might take to go about achieving this, knowing nothing about DR and relying purely on existing documentation.

Hopefully it will remind the veterans just how much there is to figure out in order to something basic such as this, and greens just how difficult it can be to realise a simple gameplay concept.

Big challenge for new mapper:


Spoiler

 

So this leads to the case study of how I would have to go about figuring something out, using the available documentation to me on Dark Radiant and in the forum, and just how frustrating and warren-like it can be to use, in its current state..:

Spoiler


This makes it very difficult to simply walk into Mordor and figure out what is not working and why.

Spoiler


But... that's an example of the run-around behind being able to figure out how to do something only one simple thing from a simple scenario, without having to nag about it and hope someone tosses a ball that contains the solution without an explanation.

If it was painful to read - that's good. Because it was painful having to go through the whole process to find out, "that'll have to do, 'cos can't figure how to do it 'cos there's some missing reading available atm for tdm".

Also having to type it all... ouch.

 


  • jaxa likes this

#2 stumpy

stumpy

    Advanced Member

  • Member
  • PipPipPip
  • 1870 posts

Posted 26 February 2018 - 10:03 PM

its just a place for anyone to ask questions or something they can't get their head around. If another newbie comes and asks simple questions then they are likely to get an answer, they shouldn't be told to go and search for it, they might be given a link to a place in the wiki where it can be explained better than just a few lines in the forum.

 

As for the combination lock all it needs is a bunch of models of different number/letter/symbol wheels with option to easily change graphics on wheels, bunch of models of different sliding bolts.

 

and a script to control it all.

like the combination lock in thief 2, where the locks combination was kept in a variable and all a modder had to do was change the value of the variable.



#3 teh_saccade

teh_saccade

    Advanced Member

  • Member
  • PipPipPip
  • 682 posts

Posted 27 February 2018 - 02:49 AM

You kinda hit the point right there, Stumpy - from the miles of letters in that post (medal for reading it, btw) - there are a lot places in the wiki that are in desperate need of some updating.

----

A system that is used at a place I volunteer, to ensure accuracy and validity of information/data entered into archive/documentation:

One person submits the information (author).
It is then checked by two people, who comment/discuss on the information (triage).
Editor then determines final, based upon their competency, taking triage under advisement (updated/published).

While it's not exactly de rigour for an author to also be editor or triage, due to bias, such things do happen.
However, this is a subjective field in psychopharmacology and not a precise topic such as one particular computer game's wiki.

I trust a wiki article written by someone like Grayman: http://wiki.thedarkm...Security_Camera <--- it's very complete. I know kung fu.
But idk about something more "free" such as this: http://wiki.thedarkm...Response_Editor <--- that is a few lines on a more complicated thing.

First is thorough and helpful, well documented for a single module - I understand how to use it and will anticipate it in design (eg, remove my own versions of a security camera, because this is 10,000x better. Maybe change the model...).
Second is nothing useful, poorly documented, to understand how to do many more things with your own lego bricks (eg, understand how to use the stim/response editor to cause damage to stuff cos the examples don't work).

If I knew how to say "damage to the security camera using stim/response, triggers this script that removes it from the gameworld and replaces it with a broken camera model and turns off the camera, with a chance of setting an alarm state, etc..." - perhaps I could destroy it with a fire arrow as well as turn it off or KO the guard watching or sneak under it or whatever...

----

I can't update what I don't fully understand myself, in order to help others understand by giving them a link to the wiki where it can be explained more than in the forum.
 



#4 Destined

Destined

    Advanced Member

  • Member
  • PipPipPip
  • 1608 posts

Posted 27 February 2018 - 07:28 AM

I believe you have the same problem here that most have: Even if you are willing to update a Wiki page, you lack the required background knowledge. I have worked with the S/R system a bit and thus I understand what the author of the Wiki tries to convey, but in order to correct the page, I am not confident, that what I write is actually true.

On the other hand, people who have the background knowledge to write these articles are mostly involved in other projects and I believe that it is a lot more worthwhile for people here that they focus their limited time on these projects rather than updating Wiki articles. I will see that I can find some time and try to improve the article mentioned by you. Even though I am not 100% sure, if everything I write is right, it hopefully still improves the article.


  • Judith likes this

#5 Judith

Judith

    Advanced Member

  • Member
  • PipPipPip
  • 1729 posts

Posted 27 February 2018 - 07:52 AM

Even if you don't have time to edit the wiki, making files with notes during your projects is always a good idea. I have quite a lot of those now, mostly on stuff like modeling workflow, materials, sounds, and performance tricks. You can always post them later. Having someone (preferably English native) review articles before posting them on wiki would be nice, but who would have time for that?


Edited by Judith, 27 February 2018 - 08:03 AM.


#6 teh_saccade

teh_saccade

    Advanced Member

  • Member
  • PipPipPip
  • 682 posts

Posted 27 February 2018 - 10:43 AM

I can be your test subject for the S/R page, Destined.
Need to learn faster to keep up with things and figure easier solutions in TDM level design, rather than bitch about things changing faster - testing wiki pages would be a good method to accomplish this.

I'll have time to help update documentation after a shadowbreak. Appears that an upcoming unity project has fallen to pieces before it's past concept. The rest is my own stuff, ad hoc.
Maybe after a camping trek round the SWCP for a month or so to get the legs and lungs working again after sitting down so long, drinking cold tea and eating cigarettes.

Need direction, or at least a method to figure (or a way people can flag) which pages need a check/redirect to update.

In my 20's, as a break from MCSE/CCNA, some reason decided to qualify under Chapterhouse in proof-reading and copy-editing and was a member of the SfEP - have worked on games engine and database software documentation before.

Might have a bit of ring-rust, but pretty sure checking wiki articles/tuts isn't much different from BVT.
Here's a reference.
 



#7 Destined

Destined

    Advanced Member

  • Member
  • PipPipPip
  • 1608 posts

Posted 01 March 2018 - 02:56 AM

I started to rewrite the article on the S/R Editor. For this I tried to play around with it a bit, so I understand all the args available. However, I was not able to even create a simple damage Stim (even though I used the setup described in the S/R key/values article). I am sure, I have done this before, but somehow it does not work right now. I used a chair as the source of damage (I just picked a random model) and gave it a damage stim that is active, with a radius of 100, a magnitude of 30 and a Falloff Exponent 1. This should kill the player as soon as he nears the chair, but nothing happens. Can anyone tell me, what I am doing wrong? It is difficult to write the article, if I cannot set up a S/R pair myself...

I also tried a simple Response: Frob -> remove _SELF, which also did not work. I will try to create a new map and see if this is just a problem of my system...



#8 teh_saccade

teh_saccade

    Advanced Member

  • Member
  • PipPipPip
  • 682 posts

Posted 01 March 2018 - 04:05 AM

Yeah, I don't get why it's not working either... // I've even changed the numbers of the args it places, in case they were incorrectly ordered, like "srclass 9000" etc...

Have you tried another damage def? I've tried suicide for insta-death but that doesn't work using the instructed stim/response set-up either. Not tried fire or anything.


Edited by teh_saccade, 01 March 2018 - 04:08 AM.


#9 Obsttorte

Obsttorte

    Scripting guru, Mapper

  • Active Developer
  • PipPipPipPipPip
  • 5713 posts

Posted 01 March 2018 - 04:44 AM

Different spawnclasses respond differently to different stims, or they do not at all. What entity did you try to use the frob->remove SELF thingy on?

 

BTW: There are trigger entities available for damaging the player. And damage always requires a damage definition.


FM's: Builder Roads, Old Habits, Old Habits Rebuild
WIP's: Several. Although after playing Thief 4 I really wanna make a city mission.
Mapping and Scripting: Apples and Peaches
Sculptris Models and Tutorials: Obsttortes Models
My wiki articles: Obstipedia
Let's Map TDM YouTube playlist: ObstlerTube
Texture Blending in DR: DR ASE Blend Exporter

End of shameless self promotion.

#10 Destined

Destined

    Advanced Member

  • Member
  • PipPipPip
  • 1608 posts

Posted 01 March 2018 - 07:46 AM

For the remove self I used some chair (so a func_static). I will have a look again this evening (tomorrow morning the latest). I am quite sure that I have done this with this setup. I will just try it in a new test map. Shouldn't the response to a stim be the one I define, regardles of the spawnclass? Apart from pre-defined responses, I mean. If these are present, is natural that they show some sort of response.

 

I thought the damage stim should also work an the player, as the player has a damage response by default (will confirm this again, as soon as possible). The setup I used is as it is described on the "Stim/Response Keys/Values" page. If it does not work, I will also correct the description there.



#11 Destined

Destined

    Advanced Member

  • Member
  • PipPipPip
  • 1608 posts

Posted 01 March 2018 - 02:48 PM

Ok, I am at a loss, why it did not work in the first map. I have tried the same setup again in a fresh map and now the damage stim as well as the remove response work. The only discernible difference is, that in the first map I have had a custom stim type defined (that was not used anyway).

 

The damage response on the player is defined as a damage 10 on self by default (it is the damage_low damage type), so for a damage stim, there is always a response from the player. But I noticed that the "use boundaries" tick box had no effect, when I tried it on a nodraw brush converted to a func_static. I had to actually hit the origin of the block (which I only noticed by chance). I will try that again later.

 

On a side note: When I tried to remove the custom stim type in the first map, DR crashed (I tried three times before giving up).



#12 Destined

Destined

    Advanced Member

  • Member
  • PipPipPip
  • 1608 posts

Posted 01 March 2018 - 04:34 PM

So, this would be the article I have written for the Stim/Response Editor:

Spoiler

All text in squared brackets is editorial and refers to stuff I need to change, when putting it up on the Wiki.

I would completly remove the current article as I have no clue what it should accomplish. If I understand correctly it calls for a trigger, when an AI is frobbed? Instead I would add a couple of more examples.

As always constructive critisism and corrections are very welcome.

 

EDIT: I added the examples in more detail.


Edited by Destined, 02 March 2018 - 02:32 AM.

  • teh_saccade likes this

#13 Judith

Judith

    Advanced Member

  • Member
  • PipPipPip
  • 1729 posts

Posted 02 March 2018 - 09:58 AM

Speaking about things that are in dire need of updating, I think new mappers would appreciate a revised or new version Beginner's Guide to Scripting, as Fidcal never finished it: http://wiki.thedarkm...de_to_Scripting

 

The same goes for particles, particle editor and making custom particles: http://wiki.thedarkm...egory:Particles


  • teh_saccade likes this

#14 stumpy

stumpy

    Advanced Member

  • Member
  • PipPipPip
  • 1870 posts

Posted 02 March 2018 - 10:38 AM

for the chair just surround chair with invisible brush changed to func_static and put s/r on that func_static, else if you increase the bounding dims you cant get near chair.

 

there's a predefined entity in dark radiants entity list that does the same function, there is a chance that the code clear up done by some people may have altered the way s/r works. eg the like radiation damage only works now inside a invisible entity.

 

the s/r system isn't part of the original doom 3 code its roughly based off the s/r system in thief and thief 2, dromed, it doesn't work the same way though.


Edited by stumpy, 02 March 2018 - 10:44 AM.

  • teh_saccade likes this

#15 Destined

Destined

    Advanced Member

  • Member
  • PipPipPip
  • 1608 posts

Posted 02 March 2018 - 12:06 PM

Speaking about things that are in dire need of updating, I think new mappers would appreciate a revised or new version Beginner's Guide to Scripting, as Fidcal never finished it: http://wiki.thedarkm...de_to_Scripting

 

The same goes for particles, particle editor and making custom particles: http://wiki.thedarkm...egory:Particles

I agree. However, I am not firm enough in either of these topics to dare to update these articles :(

 

for the chair just surround chair with invisible brush changed to func_static and put s/r on that func_static, else if you increase the bounding dims you cant get near chair.

 

there's a predefined entity in dark radiants entity list that does the same function, there is a chance that the code clear up done by some people may have altered the way s/r works. eg the like radiation damage only works now inside a invisible entity.

 

the s/r system isn't part of the original doom 3 code its roughly based off the s/r system in thief and thief 2, dromed, it doesn't work the same way though.

On the second map everything worked as supposed. I used a bench model there and even changed it to the chair for testing purposes. The error mus have been something else. As long as "use bounds" is not ticked, it works on any entity.

 

I have read that the code is based on Dromed. I have never worked with that, but I think the system is quite intuitive. A Stim type triggers a Response if the latter is defined for the respective type. That is the most basic "if" function, if you will.



#16 teh_saccade

teh_saccade

    Advanced Member

  • Member
  • PipPipPip
  • 682 posts

Posted 02 March 2018 - 01:32 PM

Thanks for the pointers, Judith.

Destined - nice one with the list and explanation - I will look at it over the weekend (snowed in, anyway...)
Does this mean that you and Stumpy have figured out the damage stim thing?

I used the same method - a func_static that was surrounding the brushwork, yet it refused to work. If it's because the damage only works with invisible entities, then that might explain a lot about why it was failing.

Also... the damage entities in the list (eg, 25, 50, 75) etc... I was under the impression that these were depreciated doom3 assets and didn't work.

Wonder what the problem is with "use bounds", but - if the damage is ramped by proximity to the nodraw/invisble func_static, then perhaps it's not required... or fighting with some other arg and that's the issue?

Thanks for the assist - the intro and list look comprehensive (also clarifying about the trigger stim needing an actual trigger to trigger... :/ ) and the examples are very useful by elaborating on specific details in context.
If you don't mind, I'll remove the didactic language and rejig some grammar so the examples are simplified without losing your instruction.

There might be a lot of pages needed to expand on some of the S/R terms...


  • Judith likes this

#17 Destined

Destined

    Advanced Member

  • Member
  • PipPipPip
  • 1608 posts

Posted 02 March 2018 - 01:39 PM

For me the damage Stim worked just by putting it on an entity. I will have a look at the "use bounds" box on Sunday. Also, wanted to add an example that uses a couple more stims and responses. Something like the furnace mentioned in some of the examples with two parts: Reacting to a water stim to extinguish and reacting to a fire stim. Something like that...

 

As I said, constructive criticism is very werlcome. Just post your corrected version here and I will put it on the Wiki Sunday afternoon. It looks like I have some time then.

The Stim/Response Key/Values explains the Stim args quite well. I am not sure, which pages else you mean.


Edited by Destined, 02 March 2018 - 01:42 PM.


#18 teh_saccade

teh_saccade

    Advanced Member

  • Member
  • PipPipPip
  • 682 posts

Posted 02 March 2018 - 01:43 PM

Wonder what I was doing wrong - I'll follow your instructions and see if it works for me too. Cheers mate, I'll make sure to look at it before Sunday.
I mean like linking the words to the relevant articles. Shooter, Trigger, AI, Teleport, etc...



#19 stumpy

stumpy

    Advanced Member

  • Member
  • PipPipPip
  • 1870 posts

Posted 02 March 2018 - 11:31 PM

sorry, must have been mistaken about the chair, don't currently have access to darkradiant, to check it.



#20 teh_saccade

teh_saccade

    Advanced Member

  • Member
  • PipPipPip
  • 682 posts

Posted 03 March 2018 - 02:44 PM

Destined - would it be possible to have a spoilered copy of text content of your .map file so I can take a look at how you got the damage thing working in DR?

Also, the entity classes at the end of the list, such as "damage_triggerhurt_25" do not work - they remove the brush from TDM.
// and for some reason stop me from being able to copy the map from my DR maps folders to darkmod/maps while both are open - have to close TDM in order to copy due to win permission error.

However, the list of those "damage" classes provides a short list of the damage defs available to use, without having to dig into the TDM/damage.def file to find all the types of damage:

Spoiler


Without being able to get the damage S/R working - I can't test using something such as "atdm:damage_moveable/moverCrush" on the player, which would be a simple way of making a mover cause damage based upon its velocity/instadeath on getting crushed under an elevator)

The spoilered list (the content of damage.def) would be a useful page to create and link from the S/R page for available "damage defs".
But, until it's possible to get the S/R damage working - there's no way to test them all to see if they all work as described.

Do you even exploding barrel and gib in TDM, m8?
Have a feeling only those prefixed by "atdm:" will work, but want to try them out anyway...

// wondering if a trigger multiple can be placed over the thing to cause damage and it trigger the "damage_moveable" or "damage_triggerhurt_n"
// for some reason - after setting entity class as one of the "damage" entities - on creating a new brush, it's impossible to create an entity from ANY worldspawn brush at all, even after restart... oh dear... what have I done here..?

// For some reason - choosing to create one of these damage entities has activated a bunch of filters, so it appears that no draw and clip entities or worldspawn brushes are being deleted when I deselect them...


Edited by teh_saccade, 03 March 2018 - 03:59 PM.


#21 teh_saccade

teh_saccade

    Advanced Member

  • Member
  • PipPipPip
  • 682 posts

Posted 03 March 2018 - 11:22 PM

It's still Saturday in Samoa for at least another 5 hours...

I'll add/fix formatting and stuff later, unless you want to make some headers and sections and breaks and stuff - I think I've forgotten the wikicode for most of it, but have added stuff like header sizes and bold and hopefully nesting (can't remember bullet points for the list or numbered list for instructions - will have to check once it's up and can see the page not as forum post)

Is there a glossary of common dromed/TDM/DR terms on the wiki?
eg, [entity], [arg] (which also could do with standardising... key, arg, spawnarg, value, etc... tend to be interchangable in some instances throughout some wiki pages), [frob], etc...

It might be useful. "Frob" isn't a word I've ever heard outside of thief, really  - it's shorthand for "frobnicate": To manipulate or adjust, to tweak. One frequently frobs bits or other 2-state devices. eg, please frob the switch, thanks.

(and I've never used the word "frobnicate", in my life).

Nice article, Destined - clear and concise.

Think that expanding the wiki glossary would be good in order to help navigation from keywords to relevant articles / further reading.
Would also serve as a good hub to work out from in updating pages.


Spoiler



#22 Destined

Destined

    Advanced Member

  • Member
  • PipPipPip
  • 1608 posts

Posted 04 March 2018 - 08:57 AM

Thanks for checking the article and formatting! I would have done the format after the content stands, but this is even better ;-)

 

I have only tested the damage Stim on func_statics. I am not sure if they work on movers. Anyway, here is the map file, where I tested my stims. has three setups: on the left I tried to get "use bounds" to work, but it still alsways uses the distance to the origin. When I set the radius to 10, I could walk into the block and even had to jump to receive the Stim. The middle is a simple damage Stim. It is noteworthy that even with a mignitude of 1 it is recommended to set a Time interval, as the Stim is fired every frame(?) killing the player instantly (this is what happens in teh setup to the left). When you get near enough to the chair to frob it, you can remove it before it kills you. The damage Stim also disappears as a consequence. To the right is a setup with a shooter. Currently it is set to only shoot once. When you remove the second effect of the response, the shooter will onyl shoot as long as the player is near the trigger.

I hope this helps you out. BTW: I use TDM v2.05 and DR v2.5.0 If the setup helps you finding out, what went wrong in your case, please tell, so we can add this as notes to the Wiki.

 

Attached Files


Edited by Destined, 04 March 2018 - 08:57 AM.


#23 Destined

Destined

    Advanced Member

  • Member
  • PipPipPip
  • 1608 posts

Posted 04 March 2018 - 11:03 AM

I have updated the Wiki article. In case the old one is still required, I saved it on my HD. I have not included all references (especially not the non-existing ones). Of course, everyone is welcome to have a look and report any errors.


  • teh_saccade likes this

#24 teh_saccade

teh_saccade

    Advanced Member

  • Member
  • PipPipPip
  • 682 posts

Posted 05 March 2018 - 09:53 AM

It ought to have its state saved in the wiki history anyway, Destined.
http://wiki.thedarkm...&action=history

Looks awesome - nice job, man. (+11,474)

// also thanks for the example map - however, I've bugged out my DR so that I can no longer create entities in the "normal" ways, which is annoying...

I got rid of the extra = typo and fixed the nesting (got it backwards...), substituting the unnecessary ---- for triple line breaks, so that it now shows more organised in page content index and in article flow (also for search):
 

Contents


Edited by teh_saccade, 05 March 2018 - 09:56 AM.

  • Destined likes this

#25 Destined

Destined

    Advanced Member

  • Member
  • PipPipPip
  • 1608 posts

Posted 07 March 2018 - 01:55 AM

Just added and entry for Frob to the glossary and also tried to clear the difference between spawnarg and arg in the Spawnarg entry (spawnarg: key value pair set at creation of the entity; arg: key value pair after creation)


  • teh_saccade likes this



Reply to this topic



  



Also tagged with one or more of these keywords: long post, wiki, darkradiant, case study, level design, not a rant

0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users