Jump to content
The Dark Mod Forums
Sign in to follow this  
Fieldmedic

Betrayal by Fieldmedic (2010/08/17) Summer FM Vertical Contest Entry

Betrayal by Fieldmedic (2010/08/17) Summer FM Vertical Contest Entry  

57 members have voted

  1. 1. 1. Gameplay: Enjoyment. Fun duration. Smooth flow, ect. Versus Bugs. Frustration, Boredom, framelag

  2. 2. 2. Appearance: Vertical use, Visual pleasure, lighting, visual style, deduct bad texturing etc.

  3. 3. 3. Story & Text: Story. Text. Briefing. Graphic storytelling



Recommended Posts

Went through the map with killmonsters (spoiled a lot for myself to cure my OCD :laugh: ).

 

The average FPS was around 35-40 with some areas at 60 and the lowest around 14.

 

So neither lights nor leaks are a big issue.

 

So unless you've neglected to cover lots of unreachable areas with monsterclip the Low-Enders are probably out of hope for any more performance.

 

(Well..., if you've customized the AI with scripts you could make a dumb version I guess... )

 

Since it now is playable for me I am happy enough. I am further satisfied that I mostly have my answer about what is possible. I'd say a P4 3.0ghz is at (or a little below) the minimum for this map.


Please visit TDM's IndieDB site and help promote the mod:

 

http://www.indiedb.com/mods/the-dark-mod

 

(Yeah, shameless promotion... but traffic is traffic folks...)

Share this post


Link to post
Share on other sites

Yep.

 

AI is a big performance hit.

 

If you have applied monsterclip to walls and ceilings (and everywhere you can imagine an AI can't go) then that is it for the low-end folks.

 

Now that I think of it... I have heard of AI dormancy tricks with distance triggers...

 

But if you've beefed up the AI with scripts don't make them dumb just for the slow CPU folk...


Please visit TDM's IndieDB site and help promote the mod:

 

http://www.indiedb.com/mods/the-dark-mod

 

(Yeah, shameless promotion... but traffic is traffic folks...)

Share this post


Link to post
Share on other sites

Just again for the lockpicks-position: I have a habit of always leaning forward over everything. This way I found the lockpicks, it was a surprise because I too didn´t saw them.

 

@Mr. Lemony Fresh:

 

There was a light-switch in the mint-room.

 

 

@Fidcal:

When I talked about important tools in the mint-room I actually meant the lockpicks! :(

Oh, and I´m looking forward for your 'makes-keys-and-such-a-little-shiny' -method!! Still can´t see why the team wouldn´t want this... (make it an option and everything is fine)

 

@Fieldmedic:

Ähem, when you´re talking about your 'archery range', where exactly is that place? Screenshot? I can´t remember such a place.

And what hatch? I only remember the ones on the battlements...


-> Crisis of Capitalism

-> 9/11 Truth

->

(hard stuff), more

Share this post


Link to post
Share on other sites

Fieldmedic...

 

 

 

No, it is happening and it's not the priest or the dude below. I have 3 or 4 saves wherein you can experience it. After I've finished...

 

And, BTW, this is an excellent mission so far, above & beyond ( :laugh: )!

 

... I will send you (and maybe greebo if the joke doesn't turn out to be on me) 1 or 2 of those saves.

 

 


"A Rhapsody Of Feigned And Ill-Invented Nonsense" - Thomas Aikenhead, On Theology, ca. 1696

Share this post


Link to post
Share on other sites

Sigh... looks like I need to start over. I never found any lock picks so I was getting very frustrated. Many things I could not open down in the zombie area.

 

Now I'm in the battlements area and have the key for the battlements. I tried gassing the guard with the torch below the battlements, in hopes he had a key for 2 other doors I could not open :(

 

Since I could not open the chests down in the mine with the chest key, I figured they were just decoration.


pranqname.gifLinux pranqster 4.14.44-desktop-1.mga7 #1 SMP Fri May 25 18:06:35 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux

Share this post


Link to post
Share on other sites

Ok, restarted and got the lock picks.

I have basically finished on Expert. All I have left is..... 1 single damn piece of gold to complete the objectives.

Yes I did loot the flatware from the table.

LOL. I hate having to retrace my steps to find loot... oh well, at least when I find it the mission will conclude.

 

This time I thoroughly enjoyed this mission. Awesome!

I really liked:

 

The priest walking into a room and noticing the gold which I had just looted was missing.

 

The high priest hummed a couple of notes both in tune and in sync with the ambient music. Was that just a coincidence?

 

I did run into a couple see-through textures and a door which opened into the end of a table... but other than that everything was solid.

Edited by PranQster

pranqname.gifLinux pranqster 4.14.44-desktop-1.mga7 #1 SMP Fri May 25 18:06:35 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux

Share this post


Link to post
Share on other sites

I'll add this one outside spoilers because it's a bug on my behalf:

 

At the grand finale of the editing I copied a lot of the mine complex and the chest_key got the name chest_key2 but the chest still is used_by chest_key. The actual key and chest is the one in the room with the half collapsed roof and a haunt, in the mines. There is a chest and a lantern there. So that key is not working. But the chest IS pickable. I'll add this to the to-do list for this mission...

Share this post


Link to post
Share on other sites

@Fieldmedic:

Ähem, when you´re talking about your 'archery range', where exactly is that place? Screenshot? I can´t remember such a place.

And what hatch? I only remember the ones on the battlements...

 

 

There is a small archery range on level 2, the one with the priest, the builder guards and the fireplace.

 

There are two hatches; one in two of the towers on the battlements.

 

Share this post


Link to post
Share on other sites

 

ETA:

aidakeeley, on 19 August 2010 - 09:09 AM, said:

 

IGI

 

What´s that again suppose to mean? (besides that it is a game I never played)

 

IGI: I´m Going In... besides that it is that game title:ph34r:

Share this post


Link to post
Share on other sites

Ah, thanks at both of you! :) But what is:ph34r:, ah it´s the :ph34r: (always leave spaces between smiley-codes or codes at all! ;) )

 

@Fieldmedic:

 

Ah, now I remember the range! Sure. And about the hatches: So that means MrLemonyFresh must´ve climbed the whole tower instead of just to the next floor and that´s the reason he got frustrated. Didn´t even thought that would be possible, to climb the whole tower from outside I mean...

Well, LemonyFresh, I suggest playing again and climbing only one story and pray that no AI´s got stuck on walls, then it makes damn lot more fun, I assure you! :)

 


-> Crisis of Capitalism

-> 9/11 Truth

->

(hard stuff), more

Share this post


Link to post
Share on other sites

Ah, thanks at both of you! :) But what is:ph34r:, ah it´s the :ph34r: (always leave spaces between smiley-codes or codes at all! ;) )

 

@Fieldmedic:

 

Ah, now I remember the range! Sure. And about the hatches: So that means MrLemonyFresh must´ve climbed the whole tower instead of just to the next floor and that´s the reason he got frustrated. Didn´t even thought that would be possible, to climb the whole tower from outside I mean...

Well, LemonyFresh, I suggest playing again and climbing only one story and pray that no AI´s got stuck on walls, then it makes damn lot more fun, I assure you! :)

 

 

 

Yes, he's been really ambitious with the ropearrows which I thought more players would have been. It's possible to jet up the tower to the battlements and go for an alternate approach. :rolleyes:

 

Share this post


Link to post
Share on other sites

Need help! What have I missed?

 

 

Have been all the way to the top with the priest in the room with the big desk. Have checked off all objections except the one regarding finding the source of the abnormality. How do I finish?

 

 

After wandering around in circleswacko.gif , climbing and falling off to my death (several times at several places) will accept all hints, clues and direct answers.

 

Other than this one little sticking point its a great mission.blink.gif

Share this post


Link to post
Share on other sites

Need help! What have I missed?

 

 

Have been all the way to the top with the priest in the room with the big desk. Have checked off all objections except the one regarding finding the source of the abnormality. How do I finish?

 

 

After wandering around in circleswacko.gif , climbing and falling off to my death (several times at several places) will accept all hints, clues and direct answers.

 

Other than this one little sticking point its a great mission.blink.gif

 

 

There is a book underneath the key in Greiz's office on level 2. Try that. Since you've got the key to the central tower you've must been in that office.

 

Share this post


Link to post
Share on other sites

The poor performance of this mission can (mostly, I think :) be traced back to the use of detail brushes, but forgetting to turn them into func_statics :)

 

Here is a screenshot done with "r_showTris" "1", I did put a red dot into each triangle on this wall section around the door (the "bad section") and a green dot into tris on the next wall section (the "good" section):

 

post-144-128247386847_thumb.jpg

 

As you can see, for instance the door frame should be a func_static. It is worldspawn, however, and thus divides the wall into smaller and smaller triangles. And all these are used by D3 for collision detection.

 

 

Ideally, this section should be only 6 triangles (because you have an L-shaped door hole in it).

 

So if you have 6 tris per wall, it will check against 6 tris for collision, and render the same amount pixels with 6 actions. However, in your case, you have like 26 for this wall section, so D3 needs to do a lot more work on the CPU to achieve the same effect.

 

The same goes for crates that stand on the floor, beams on the wall etc. They all unnec. divide the wall into further and further triangles.

 

I think updating this mission might be worthwhile for the FPS boost, because you could do it easly in a few hours without changing anything.


"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

Share this post


Link to post
Share on other sites

It has a great start. It makes me feel I'm little poor kid w/o my equipment. But when I get my tools, I'm the god of that territory :laugh: As I said it has great start, but later on fps drops dramatically. Sadly, it becomes boring and annoying. I couldn't resist too much, and don't know how it ends. Still this is your first map and my vote is good, exc, exc. Maybe if I'll upgrade my pc, then I'll give another shot. Thanks ^_^

Edited by SiyahParsomen

Share this post


Link to post
Share on other sites

Okay, but I guess that the released version is the one that counts in the contest itself?

 

I shall release a new version of the level (Betrayal, the good edition B)) at a later stage...

 

But now when I got the attention of a "triangle-calculation-graphics-guy". Please answer these questions :)

 

1. When I add ANYTHING decorative to a wall, may it be trims down the floor, against the wall, beams, supporting beams, custom paintings, a brush-made hanger, ANYTHING consisting of brushes on a wall - Shall it be converted to func_static and have caulc to ALL unvisible surfaces? Caulk on the backside and on all surfaces "inside" the construction.

 

2. Shall I convert "intricate" stuff like railings, beams, staircases and such into func_statics (and caulk as above)?

 

3. Is func_statics allways better than brushwork? As an extreme example: Would it be beneficial to make a whole mission with just caulced brushes with thin slices of func_statics as "wallpaper" on the "inside" where the player is (ie NOT in the void). So the player sees ONLY func statics, and the caulk just for sealing.

 

4. Is it beneficial to cluster lots of func_statics into one? Say, if I have a row of supporting beams down an alley, shall I convert the whole bunch into one func_static or shall it be separated?

 

I'm into my "main" mission now (which I left when starting on Betrayal) and I want to do it right this time :)

Edited by Fieldmedic

Share this post


Link to post
Share on other sites

Okay, but I guess that the released version is the one that counts in the contest itself?

 

I shall release a new version of the level (Betrayal, the good edition B)) at a later stage...

 

But now when I got the attention of a "triangle-calculation-graphics-guy". Please answer these questions :)

 

Sure :)

 

1. When I add ANYTHING decorative to a wall, may it be trims down the floor, against the wall, beams, supporting beams, custom paintings, a brush-made hanger, ANYTHING consisting of brushes on a wall - Shall it be converted to func_static and have caulc to ALL unvisible surfaces? Caulk on the backside and on all surfaces "inside" the construction.

 

Yes, that is usually a good idea. However, if you *huge* walls (say the entire side of a warehouse or a huge cave), breaking them up into smaller sections (like 20x20 m) is a good idea. The reason is that each tri is rendered once per light, so if on a 100m wall two torches on opposite ends are located, the wall is rendered twice. If you break it with a beam in the middle into two sections, each section is rendered only once. Two lights with two passes isn't that bad, but imagine what happens if you have 10 light sources on the same wall :)

 

Basically it is trying to strife a balance between number-of-tris to process, and number-of-times pixel is shaded.

 

2. Shall I convert "intricate" stuff like railings, beams, staircases and such into func_statics (and caulk as above)?

 

Usually, yes. Esp. for beams, staircases etc it brings sometimes huge improvements.

 

3. Is func_statics allways better than brushwork? As an extreme example: Would it be beneficial to make a whole mission with just caulced brushes with thin slices of func_statics as "wallpaper" on the "inside" where the player is (ie NOT in the void). So the player sees ONLY func statics, and the caulk just for sealing.

 

I don't think you have to go that far. Because the collision detection would be with the func_statics and that might not be as fast as with the real worldspawn wall.

 

4. Is it beneficial to cluster lots of func_statics into one? Say, if I have a row of supporting beams down an alley, shall I convert the whole bunch into one func_static or shall it be separated?

 

Definitely bunch them together - one func_static issues one drawcall per surface, multiple func_statics issue one drawcall per func_static per surface, which can add quickly up.

 

However, do not create monster entities, esp. if they cover either a large area (like 100x100 meter) or even cross into a different PVS (aka cross a portal). With such huge entities, the entire entity will be rendered, even if only one tiny bit of it is in view (or even if it is just in the next room).

 

Hope this helps!


"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

Share this post


Link to post
Share on other sites

Ah, nice, Tels! :)

 

But this I don't get completely. I guess I'm tired or something :D

 

Yes, that is usually a good idea. However, if you *huge* walls (say the entire side of a warehouse or a huge cave), breaking them up into smaller sections (like 20x20 m) is a good idea. The reason is that each tri is rendered once per light, so if on a 100m wall two torches on opposite ends are located, the wall is rendered twice. If you break it with a beam in the middle into two sections, each section is rendered only once. Two lights with two passes isn't that bad, but imagine what happens if you have 10 light sources on the same wall :)

Basically it is trying to strife a balance between number-of-tris to process, and number-of-times pixel is shaded.

 

I guess the engine would need to render the light ten times either way? So there is a difference between render one huge wall ten times (once per light), than ten small sections once each? (I imagine them all being in the field of view at the same time...)

Or is it rendering the whole wall, even if I only see a small portion of it?

 

I guess the rendering gets more and more intricate per "rendering session"? Like it's exponential (x^2 and so on). With one light there is no problem, then two, it's okay, but as the rending process for that huge wall gets more and more time/engine consuming per each addition light, if you add an eleventh, your computer will spit you in the face? :laugh:

 

 

And also

 

5. Should patches be converted into func_static?

Edited by Fieldmedic

Share this post


Link to post
Share on other sites

Ah, nice, Tels! :)

 

But this I don't get completely. I guess I'm tired or something :D

 

I guess the engine would need to render the light ten times either way? So there is a difference between render one huge wall ten times (once per light), than ten small sections once each? (I imagine them all being in the field of view at the same time...)

Or is it rendering the whole wall, even if I only see a small portion of it?

 

I guess the rendering gets more and more intricate per "rendering session"? Like it's exponential (x^2 and so on). With one light there is no problem, then two, it's okay, but as the rending process for that huge wall gets more and more time/engine consuming per each addition light, if you add an eleventh, your computer will spit you in the face? :laugh:

 

Hm, no it is linear, each tris is shaded *once* *per* *light*. (The lights are not rendered per se)

 

That means if you have a square wall (with two tris = two triangles) and 10 lights on the same wall, you get 10 times 2 triangles shaded. It doesn't matter whether the light hits the wall at the far end or in the middle, even if only *one* pixel of the triangle is hit by the light, the entire tris gets rendered *again*.

 

So say you split the wall into 2 parts, then you have 4 triangles. If half them (the left/right half) is hit by 5 lights each, you get:

 

* 5 lights * 2 triangles * 2 = 20 rendered triangles, too. But each triangle is only half the size, so you get essentially only half the pixels shaded.

* However, the collision code now needs to check against 4 triangles, instead of 2.

 

Or in other words, in the first case each pixel is shaded 20 times, in the second case each pixel is shaded 10 times.

 

Whether the first or the second scenario is faster depends, usually the latter is faster due to shading everything half the time is much faster than the time wasted on a few mor collision checks.

 

However, this runs contrary to the thing I said above (combine triangles by not splitting them). The reason is that in that case you 26 triangles instead of 6, but each of these triangles is hit by the same number of lights, anyway. So you do not save anything in shading, but you waste (a lot) of time in collision detection etc.

 

So basically combine triangles whenever possible (by not splitting the world up), but only up to a certain point (or where the huge tris you create is hit by one or zero lights only, then the size does not matter).

 

Cases where to combine:

 

* small (5x5m) wall/floor (add trim as func_static)

 

Cases where not to combine:

 

* huge floor/wall areas hit by multiple lights where the lights are far from each other

 

* shading 2 triangles vs 4 puts a bit more pressure on the CPU (as doom does a lot work


"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

Share this post


Link to post
Share on other sites

5. Should patches be converted into func_static?

 

Good question. I'd say yes, for the same reasons to convert brushes. Depends on how many patches you have, and where, of course.

 

You can use the "com_showPrimitives" command on the console to see what the renderer does. Les draw calls and less tris and less shadow tris are good. (Esp. the shadow tris!)


"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

Share this post


Link to post
Share on other sites

Okay...

 

I have a grate floor consisting of many thin bars built from bruses. I have grouped these together and made them into a func_static, but there is still a huge amount of tris on some bars. As each beam lays 90 degrees over the "supporting beams" they create their own tris I guess and it's perfectly normal. But it doesn't seem so performance saving...

post-3600-12824886869_thumb.jpg

Edited by Fieldmedic

Share this post


Link to post
Share on other sites

 

There is a book underneath the key in Greiz's office on level 2. Try that. Since you've got the key to the central tower you've must been in that office.

 

 

Many many thanks. Don't know how I missed it but would never have thought to go back and look there. Mission completed with all the loot.biggrin.gif

 

This was a huge map and I loved all the different levels. Some areas did seem a little bright but your shadows were just right enough that I could get around with no problem.

 

 

and thanks for making that chest down in the mines by the rail car easy to pick wasn't sure how I was going to get that one when my key didn't open it.

 

Share this post


Link to post
Share on other sites

I have a grate floor consisting of many thin bars built from bruses. I have grouped these together and made them into a func_static, but there is still a huge amount of tris on some bars. As each beam lays 90 degrees over the "supporting beams" they create their own tris I guess and it's perfectly normal. But it doesn't seem so performance saving...

I would break that grate into two func_statics, one bound to the other. Just take that one troublesome brush, turn it into a second func_static, and "bind" it to the rest of the grate.

 

A func_static made of several brushes will still scissor into tris like that. Seperate it into different func_statics, and they won't scissor.


yay seuss crease touss dome in ouss nose tair

Share this post


Link to post
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.

Sign in to follow this  

×
×
  • Create New...