Jump to content
The Dark Mod Forums

Sotha's mapping thread


Sotha

Recommended Posts

Hi! I'm working on a new map and am going to describe my mapping progress in this thread.

Everyone is most welcome to view and comment the content here. Even better, constructive feedback and help is also appreciated.

 

Not to spoil anyone's fun, I'll be discreet of the mission specifics. Let's just say that the aim of the mission is to perform a jail break. Except that the player breaks in a jail rather than out of one.

 

Mapping started 29.5.2010.

At present I'm working on basic geometry and it is almost finished.

 

Some screenshots for your enjoyment:

http://img690.images...shot00001gc.png

 

http://img16.imagesh...shot00002hb.png

 

http://img268.images...shot00003xn.png

  • Like 1

Clipper

-The mapper's best friend.

Link to comment
Share on other sites

Running into trouble here, help is appreciated.

 

Situation:

*Need to make a prison with a) guards b ) prisoners

*Guards are in the corridors, prisoners in the cells.

*I need to have it so that the guards attack prisoners only if they are outside their cells.

*I've set prisoners to team 0, they ignore the player and run away from guards.

*As a design decision, I want to have bars on the cell doors in the prison thus resulting in guards seeing the team 0 prisoners in the cells and butchering them in their beds.

 

Question:

Is there a texture which the player sees through and the AI doesen't? Putting this kind of texture in between the cell-door bars would negate my problem: guards do not see the prisoners in the cells and if player sets the prisoners free, the guards will attack.

 

I tried nodrawsolid, but AI sees through that.

 

Thanks in advance for any help!

Clipper

-The mapper's best friend.

Link to comment
Share on other sites

-Changed the cell door texture to that. Does not work. The AI's still see each other.

 

Don't think there is a texture to do this. What I think would work is putting team "0" as friends of the guards. Make team 64 enemy of the guards.

 

Than put a giant trigger brush into the corridor, so any prisoner running into it will trigger it. Attach a script to the trigger (e.g. use a trigger that calls a script function) and add a little script that does:

 

* check if the entity triggering it is team 0

* change it to team 64

 

I am unsure if the first step can be done (the script should get the entity triggering it), but the second one definitely works.

 

If you need help with the scripts, post here.

"The reasonable man adapts himself to the world; the unreasonable one persists in trying to adapt the world to himself. Therefore, all progress depends on the unreasonable man." -- George Bernard Shaw (1856 - 1950)

 

"Remember: If the game lets you do it, it's not cheating." -- Xarax

Link to comment
Share on other sites

Don't think there is a texture to do this. What I think would work is putting team "0" as friends of the guards. Make team 64 enemy of the guards.

 

Than put a giant trigger brush into the corridor, so any prisoner running into it will trigger it. Attach a script to the trigger (e.g. use a trigger that calls a script function) and add a little script that does:

 

* check if the entity triggering it is team 0

* change it to team 64

 

I am unsure if the first step can be done (the script should get the entity triggering it), but the second one definitely works.

 

If you need help with the scripts, post here.

 

Thanks but that sounds too complicated solution, since I'm making several cells with inhabitants.

 

I tried full_clip and other textures, but couldn't get it to work: the guard always sees the inmate.

Clipper

-The mapper's best friend.

Link to comment
Share on other sites

Already done in The Alchemist.

 

Essentially the prisoner starts on Team 5 which is neutral. Guards ignore him in the cell and the prisoner ignores the player.

 

There is a response to change his team. It can go on any entity (not already targetted for something else!) I put it on the bucket in the corner:

 

"classname" "func_static"

"name" "CellThiefTeamChanger"

"model" "models/darkmod/containers/bucket_wood.lwo"

"origin" "317 3042 -320"

"sr_class_1" "R"

"sr_effect_1_1" "effect_set_ai_team"

"sr_effect_1_1_arg1" "CellThug"

"sr_effect_1_1_arg2" "0"

"sr_state_1" "1"

"sr_type_1" "STIM_TRIGGER"

 

 

The above changes his team to 0 (sr_effect_1_1_arg2) which is the player's team. So the prisoner still ignores the player but now guards will attack him if they detect him.

 

The above response entity is targetted from the cell door so when it opens his team changes.

Link to comment
Share on other sites

Already done in The Alchemist.

 

Essentially the prisoner starts on Team 5 which is neutral. Guards ignore him in the cell and the prisoner ignores the player.

 

There is a response to change his team. It can go on any entity (not already targetted for something else!) I put it on the bucket in the corner:

 

"classname" "func_static"

"name" "CellThiefTeamChanger"

"model" "models/darkmod/containers/bucket_wood. lwo"

"origin" "317 3042 -320"

"sr_class_1" "R"

"sr_effect_1_1" "effect_set_ai_team"

"sr_effect_1_1_arg1" "CellThug"

"sr_effect_1_1_arg2" "0"

"sr_state_1" "1"

"sr_type_1" "STIM_TRIGGER"

 

 

The above changes his team to 0 (sr_effect_1_1_arg2) which is the player's team. So the prisoner still ignores the player but now guards will attack him if they detect him.

 

The above response entity is targetted from the cell door so when it opens his team changes.

 

Sounds like just the thing I need, but I could not get it to work. I thought that I mistyped something and then tried by copying your original setting from the alchemist map. It doesen't work.

 

Summary of my experiment:

*unlocked door with target CellThiefTeamChanger

*func_static with name CellThiefTeamChanger

*I have put the text above in the func_static

*A team 5 AI with the name CellThug

*A team 2 AI guard.

*The AI's are standing facing closely in a well lit room

*Moving the door does not cause violence. :(

 

Is there a typo somewhere?

Clipper

-The mapper's best friend.

Link to comment
Share on other sites

Is there a typo somewhere?

 

Nope, it actually works. The AI's seem to be rather sluggish to notice each other for some reason. If the guard bumps into the team changed AI fighting ensues.

Clipper

-The mapper's best friend.

Link to comment
Share on other sites

I got the basic geometry finished last night and I've also planned the plot in full detail. Next thing is decorative details, objectives and entities. Details are easy, but entity work is something I'm not experienced with yet. I'll put some screenies once I get more areas ready.

 

I also have a few questions:

*Is there a tutorial somewhere how to make those beautiful animated briefings I've seen on other FM's?

I only found this, not much animation instructions there:

http://modetwo.net/d...?title=Briefing

 

*All the FM's I've played so far simply end with a mission completed message and some statistics. Is there a possibility to make an epilogue or a debriefing in the same sense as the animated briefing?

 

Thanks for answering. More questions to come once I get to play with entities..

Clipper

-The mapper's best friend.

Link to comment
Share on other sites

There's no tutorial I know of but I can describe this briefly and you can post here if any problems:

 

Open up say Alchemist's pk4 and extract guis/mainmenu_briefing.gui. It needs to be in the guis folder and included with your FM. If you are using an SVN install, then don't install it over the original! Or at least backup the original official one.

 

Also extract guis/assets/briefing1.tga to 5 as a guide.

 

The above should now work with your FM so you only need to change it.

 

The images just replace with your own screenshots. Recommended is to set rotoscope 1 first to give cartoon drawing like images and turn off light gem and fps.

 

The gui is the main thing to understand. Open it in a plain text editor:

 

Note that guis are broken up into sections beginning { and ending }

 

Scroll down to windowDef BriefingText1 and in that section your will see text "xxxxxx" where xxx is the first block of text to display. Scrolling down you see all the different blocks of text. Change them to what you want to say.

 

Changing the timings: The actual display section starts at...

 

windowDef BriefingAnimation

 

A few lines below that is...

 

// Show Text 1

onTime 500

 

This is where the first text block is made visible timed at 500 milliseconds from the start.

 

Just below that the first picture is made visible...

 

// Show Picture 1

onTime 1000

 

(I'll come back to the pictures)

 

Finally you get...

 

// Hide Text 1

onTime 17000

 

Which is where the first block of text is made invisible. Then there'll be one to hide the picture. So the whole sequence is making a pre-defined block of texture or picture visible or invisible at set times from the start.

 

So what do the picture sections actually do?

 

transition "BriefingMovingPicture1::matcolor" "1 1 1 0" "1 1 1 .4" "4000";

The first 1 1 1 0 means change the picture from full RGB colour (1 1 1) and zero opacity (invisible) to 1 1 1 .4 full RGB colour and 40% opacity. This blends it into the background. You can set that to what opacity you prefer. This whole transition takes 4000 milliseconds, ie 4 seconds from its set start time.

 

transition "BriefingMovingPicture1::rect" "0 -200 300 300" "430 500 20 20" "27000";

This puts the picture in a rectangle at 0 -200 top left corner of size 300 x 300 then changes it gradually to 20 x 20 and moves it to 430 500. It takes 27000 milliseconds to do this.

 

transition "BriefingMovingPicture1::rotate" "5" "-60" "33000";

This rotates the image over 33000 milliseconds. Set it to "0" "0" "0" if you don't want rotation.

 

set "BriefingMovingPicture1::visible" "1";

This just makes it visible.

 

Note that you can overlap so one picture can be moving and fading in while another is still there.

 

That should give you a start.

Link to comment
Share on other sites

Thanks a lot! This is going to be very useful once I get to the point where briefing is built..

 

I've been progressing quite a lot recently:

All the AI's are there, details are almost completed, but now I've encountered a shop-problem.

 

In the old thief games there was a possibility to buy information in the beginning. A purchaseable scroll, which you get in the inventory in the start, if you spend money on it. I've now been studying the tdm_shopitems.def, but all the purchaseable items there are in item classnames.

 

So I can buy "itemClassname" "atdm:playertools_flashbomb", but I cannot buy a specific named readable with specific xdata contents.

 

Is there a way to do this? I'd really like to give the player tough choice between good starting gear and a map of the building...

Clipper

-The mapper's best friend.

Link to comment
Share on other sites

I'm making great progress here!

 

Basic mission geometry is fully ready.

AI's are placed and customized.

Readables are done.

Most objectives are done.

 

At present I'm simply adding final details and touches as I get inspiration for objects and models which should be there.

 

The briefing and background story is written and I'm trying to get a nice animated briefing done. So far the stuff I produce looks terrible, so I suppose I need to make simple text briefing. That is just fine for me. But let's see if I get better in animation, it would provide so much more atmosphere...

 

These are probably the last images I'll show before I start begging for betatesters..

 

Oh, and the screenies:

http://img191.images...s/i/sotha1.png/

http://img190.images...s/i/sotha2.png/

http://img341.images...s/i/sotha3.png/

 

EDIT:

And I suppose I can disclose now the mission name. It is "The Beleaguered Fence"

Clipper

-The mapper's best friend.

Link to comment
Share on other sites

Hey I've a small question. How do I make a ragdoll suspicious to the guards?

 

To clarify:

it is not a ragdoll spawned by killing or KO:ing an AI, but an ordinary atdm:env_ragdoll_commoner.

 

What I want to achieve is to make the guards react to this ragdoll as if it was a KO/killed AI ragdoll.

 

 

EDIT:

another question is: how do I make a response that after a readable is closed (player stops reading it) the book triggers something else, such as a atdm:target_setobjective_visibility

Clipper

-The mapper's best friend.

Link to comment
Share on other sites

another question is: how do I make a response that after a readable is closed (player stops reading it) the book triggers something else, such as a atdm:target_setobjective_visibility

 

 

1. Create the readable. Let's call it myBook.

2. Create a target_setobjective_visibility entity. Let's call it myBookRead. Add the key/value pair obj_id1/N, where N is the objective number you're adding after the note is read.

3. Add a new objective. Give it a Description of "Read My Book".

4. Edit "Read My Book". Set the proper levels. Check Mandatory and Irreversible. Uncheck Visible.

5. Add a Type and select it to edit it. Change the Type to "Readable is closed". Check the Irreversible flag. In the Readable section, select "Name of single entity" from the pulldown menu. Enter "myBook" in the field.

6. Up above this section, in the text field "Completion Target", enter "myBookRead", the name of your target_setobjective_visibility entity.

 

That's it. When the player drops the readable, it will satisfy this new invisible objective, which will cause the creation of a new visible objective.

 

Any questions, just ask.

Link to comment
Share on other sites

@grayman:

Worked like a charm! Many thanks!

 

@Komag:

I tried to stim-kill an AI for a ragdoll to use, but it seems that the spawned ragdoll is not identified by my objectives. Maybe the new ragdoll is not with the same name?

Clipper

-The mapper's best friend.

Link to comment
Share on other sites

Finished. Mapping ended on 19.6.2010. I played the map through myself just now and everything seems to be working just nicely.

 

I could, of course, sit on this map and make minor adjustments here and there forever but I want to keep things moving. Therefore, I'm now officially in beta-phase.

 

Any volunteers beta-testing the map? I'd like to have 2 testers, preferrably from experienced mappers.

Also, as people probably have noticed, I'm not a native english speaker, so I would love to hear fix suggestions if you see some particularly odd language in the briefing or the readables.

 

I've now ended the mapping and once the betatesters give me feedback, I'll make the final adjustments and publish the mission for everyone's enjoyment.

 

Volunteers, please step forth!

Clipper

-The mapper's best friend.

Link to comment
Share on other sites

Not an experienced mapper... not an inexperienced mapper... hardly even made more than 2 rooms...

 

But I'll beta-test and check the language too, if you want.

 

I really appreciate your interest, but I happened to check your user information on this board. It looks like you have a negative reputation for some reason. Since betatesting is sort of a position of trust, I will have to wait for other interested people. I'm deeply sorry.

 

Therefore I am still waiting for betatesters. Surely there are individuals interested in such an endeavor on this board?

Clipper

-The mapper's best friend.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Recent Status Updates

    • The Black Arrow

      Hey @nbohr1morehow come the zombies in The Dark Mod don't have a "resurrection" mechanic to it, similar to how Thief has it?
      They're quite a weak creature as of right now, it's merely a walking corpse that slashes you, making attacking them to kill them an actual strategy.
      Would be better if they had some cool mechanism to it that truly makes them a danger, such as the resurrection idea itself.
      · 2 replies
    • Ansome

      Query: when was the last time a zombie in a video game was unnerving or scary to you? I'm chipping away at my anniversary submission and I've been trying to gather opinions on the subject. I'm perfectly capable of lighting them well, changing their sfx, and creating effective ambience, but I'm worried that zombies at their core are just too overdone to be an effective payoff to the tension I'm creating.
      · 4 replies
    • nbohr1more

      The Lieutenant 3 is out! Congrats Frost_Salamander! ( raising awareness )
      · 2 replies
    • OrbWeaver

      Has anyone had any luck with textures from Polyhaven? Their OpenEXR normal maps seem too washed out and give incorrect shading in the engine.
      · 5 replies
    • datiswous

      I tried to upscale the TDM logo video. First try:

      briefing_video.mp4 You can test it ingame by making a copy of the core tdm_gui.mtr and place it in your-tdm-root/materials/ , then edit line 249 of that file into the location where you placed the new briefing.mp4 file.
      What I did was I extracted all the image files, then used Upscayl to upscale the images using General photo (Real-Esrgan) upscale setting and then turn it back into a video.
      I might have to crop it a bit, the logo looks smaller on screen (or maybe it's actually better this way?). My video editor turned it into a 16:9 video, which I think overal looks better than 1:1 video of original.
      · 1 reply
×
×
  • Create New...