Jump to content
The Dark Mod Forums

Candle qualms


firoso
 Share

Recommended Posts

I have a minor concern about the state of candles in TDM. Consider this a feature request, not a bug. Currently, toppled candles, and candles held upside down, remain happily lit, and the flame oriented statically with respect to the candle base. What I'd really like to see is toppled candles at rest (over 85 degrees from "upright") or candles held upside down (after playing with a candle at home this point is about 140 degrees from upright) to rapidly fade out over say... 3-5 seconds (simulating a candle being starved of fuel). If the player can right the candle before this time expires it would resume it's previous light level.

 

One very good reason to fix this is currently, toppled candles do wierd things to environment lighting... not really casting light to anything but it's visible on the floor/table/your mom's texture.

 

I realize this isn't a high priority, but it really would be nice, adds a bit to immersion, and does fix some visual wierdnesses.

 

Last, I realize this particular request to be a longshot, but could the flame be "segmented" and arch appropriately if the candle is tilted? I assume this would basically be a ragdoll responding backwards to gravity.

I'm in yur forumz,

Makin' them frobbable.

Link to comment
Share on other sites

Candle particles actually do rotate somewhat when tipped, unless there's a particular flame+candle combo or change made that I haven't seen. The rest would probably fall into the extremely low or no priority category, unless someone does it as an independent mini-project (which does happen).

Link to comment
Share on other sites

I kinda threw it out there hoping someone might pick it up as a weekend pet project, hell if I get time and a lot of energy, I might even do it myself, maybe it will be a good way to re-acquaint myself with the code.

I'm in yur forumz,

Makin' them frobbable.

Link to comment
Share on other sites

I have pondered the same thought myself, though I did not really go into much detail.

I think I would enjoy it, I have become quiet adept at knocking candles over with long range apple throws etc - usually because a water arrow will also knock the candle over if I cant hit something above it to drop water downwards... and my longing to save all the water arrows is quite overpowering!

 

I digress - the gameplay aspect of this is what matters most. I cant see it actually making a massive difference.

 

As said, the changes for this to happen would require most likely a new spawnarg which takes an angle or bool and controls this behaviour, this could then be added to things like candles - but not to things like tourches and other lightsources where it would be unexpected (but could also be applied to mapper made objects) - and as it isnt something that is vital, I think if it were to be donated by a non-team member would be more likely to happen and quicker.

 

tl;dr - try find someone to mock it up, test it and then contribute it :)

Link to comment
Share on other sites

I like the idea but maybe it should be 10-15 seconds of over 140 degrees. The reason is sometimes when messing around with object manipulation the player may end up attempting to light something else with the candle which requires 140 degree manipulation. (unexpected but should be taken into consideration) Having too short of a timer would cause for frustration since it would keep burning out :ph34r:

Link to comment
Share on other sites

I like the idea but maybe it should be 10-15 seconds of over 140 degrees. The reason is sometimes when messing around with object manipulation the player may end up attempting to light something else with the candle which requires 140 degree manipulation. (unexpected but should be taken into consideration) Having too short of a timer would cause for frustration since it would keep burning out :ph34r:

 

Yeah, its implicit that it would need to be for a period of time - I guess if you made that into an arg you could also apply it to things like tourches that go out after a good while :)

Link to comment
Share on other sites

I kinda threw it out there hoping someone might pick it up as a weekend pet project, hell if I get time and a lot of energy, I might even do it myself, maybe it will be a good way to re-acquaint myself with the code.

 

I did intend the candle flames to go out when they collide with something - that provided about impossible (since only the candle holder or candle is colliding in the world). Turning them off when upside down would be - interesting, it might solve a lot of cases (candle lying on floor), too as a side effect.

 

Don't let me stop you tho, if you want to add it yourself. However, I can see a script function running every 1 second just to test every candle might be a performance hog - maybe a C++ function would be faster. In that case it could even be more generic like "call_when_angled_down" "foo_name_of_function" and another spawnarg to define the angle we want. (maybe a cone or vector). That way it would be more versatile.

 

In any event, please add that idea to the tracker, sounds like something for long winter evenings :)

"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

I agree with Tels that the hard part is probably optimizing when the tests are done. The tests themselves aren't that hard, and it could be done with scripting, but you probably don't want them running on every candle in the map, all the time. One might make to make a subclass of idMoveable in the SDK just for candles, that does these tests only when it is "active" (moving), and not when it's at rest.

Link to comment
Share on other sites

I agree with Tels that the hard part is probably optimizing when the tests are done. The tests themselves aren't that hard, and it could be done with scripting, but you probably don't want them running on every candle in the map, all the time. One might make to make a subclass of idMoveable in the SDK just for candles, that does these tests only when it is "active" (moving), and not when it's at rest.

 

But continues to test after it came to rest for the time being, until the time is over (so you catch the situation where it comes to rest upside down and then remains there for N (> X) seconds.) :)

"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

I had an indirectly related issue that I thought I'd raise here, rather than starting a new post.

 

In a map I was working on, I thought I'd set up a rather nice little display of three candles of different sizes on a plate. It looked great, and was good fun to throw things at (think candle explosion :)), but the light emitted was all wrong. Even with the light radius pulled right back and the value (brightness) turned down, the corner of the room that had these three candles was brighter than the sun.

 

I don't know too much about how light accumulates, but if it's anything like sound (and I suspect it is) then it's a logarithmic progression instead of a linear one. This means that three candles would not be three times brighter than one - it would be less than that. Is there any way that this can be put into TDM? I figure it would only really need to be done with candles, as it's not often that anyone bundles together half a dozen torches.

"We were travelling in the night of first ages, of those ages that are gone, leaving hardly a sign — and no memories" - Joseph Conrad, Heart of Darkness

Link to comment
Share on other sites

The perception of luminance-differences is indeed logarithmic. (The luminance-difference between two lightsources with luminances of 1 and 2 compared to 2 and 4 is perceived the same) But this knowledge about the human visual system does not mean, that the luminances of multiple candles may not be added, since it's done like that in nature as well. It just describes how we see it. I agree though, that it looks a little overbrightened, but this could also be related to bloom. I did not try disabling it on such a scene so far. Maybe it'd help...

Link to comment
Share on other sites

I agree though, that it looks a little overbrightened, but this could also be related to bloom. I did not try disabling it on such a scene so far. Maybe it'd help...

 

Hmm, hadn't thought of that. You might be onto something, as in the camera view of DR the light looks fine, but when you go into TDM it's overly bright. I'll give it a go.

 

I hate bloom. I don't know why I ever bother switching it on.

"We were travelling in the night of first ages, of those ages that are gone, leaving hardly a sign — and no memories" - Joseph Conrad, Heart of Darkness

Link to comment
Share on other sites

Hehe, well I love it. Makes it all look so fable-like, especially after you tune it a little.

 

Also, if you don't believe luminances are additive or if you're interested in this, check out Phong-lighting, especially the diffuse-part... =) Of course it is only a simplified approximate model of the complex behaviors of real light, but it serves the purpose. The wikipedia entry about it is not very good though.

Link to comment
Share on other sites

I had an indirectly related issue that I thought I'd raise here, rather than starting a new post.

 

In a map I was working on, I thought I'd set up a rather nice little display of three candles of different sizes on a plate. It looked great, and was good fun to throw things at (think candle explosion :)), but the light emitted was all wrong. Even with the light radius pulled right back and the value (brightness) turned down, the corner of the room that had these three candles was brighter than the sun.

 

I don't know too much about how light accumulates, but if it's anything like sound (and I suspect it is) then it's a logarithmic progression instead of a linear one. This means that three candles would not be three times brighter than one - it would be less than that. Is there any way that this can be put into TDM? I figure it would only really need to be done with candles, as it's not often that anyone bundles together half a dozen torches.

 

I have the same effect in the candles test map - it is really hard to have more than one candle near each other esp. when the wall texture is bright and reflecting.

"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

I have the same effect in the candles test map - it is really hard to have more than one candle near each other esp. when the wall texture is bright and reflecting.

 

I've turned off bloom and it does make a difference. Not a massive one, but a difference nonetheless. It turns it down from "brighter than the sun" to just "too damn bright" :)

"We were travelling in the night of first ages, of those ages that are gone, leaving hardly a sign — and no memories" - Joseph Conrad, Heart of Darkness

Link to comment
Share on other sites

I can't remember the exact figures, but I'd turned down the brightness (or value) quite a ways already. I've also pulled the light radius quite a way in. The problem is that it candles are moveable objects, and so it's about finding a balance. If I pick up one of the candles, I'd still need it to emit a sensible amount of light.

"We were travelling in the night of first ages, of those ages that are gone, leaving hardly a sign — and no memories" - Joseph Conrad, Heart of Darkness

Link to comment
Share on other sites

I can't remember the exact figures, but I'd turned down the brightness (or value) quite a ways already. I've also pulled the light radius quite a way in. The problem is that it candles are moveable objects, and so it's about finding a balance. If I pick up one of the candles, I'd still need it to emit a sensible amount of light.

 

Yeah, it can be tricky, I understand.

Link to comment
Share on other sites

  • 1 month later...

Ok i've been screwing with these candles for an hour now and i'm starting to get aggravated. I've been attempting to make some very dimly lit candles with a dark orangey flavor, right? not happening. I am using what I assume to be standard method of candle creation, being, you make a candle, you create a light, and sit the lights vertex on the wick, bind it to the candle. great, except....

 

this creates 2 freakin lights instead of one!

 

I read in an earlier post in this thread about candles being brighter than the sun. I think i found out why.

 

Observe as i move the vertex of my player-created light off to the middle of nowhere and give it some crazy radius for illustrative purposes.

th_badcandle.jpg

 

wonderful. now watch what happens as i light the wick of the candle on a torch.

th_badcandle2.jpg

 

2 flames for the price of 1! sweet! except, its terrible. I'm going to go ahead and assume that this is the source of peoples complaints about overbright candles. A player places his player created light on the candle wick, and at mission start, it lights up the candleflame inherent to the candle itself (which initially is extinguished), resulting in 2 candle flames, 1 of which i can't even seem to edit for my own purposes.

 

So like, if i want to just have 1 flame, and color it myself and edit its radius.... what do i do? if i just use candle itself, that light doesn't even show up in DR and i can't drag and drop the radius. And will that cause issues with flickering or anything else?

Link to comment
Share on other sites

If you're using candle entities, they come with flames already attached (although you can't see them in DR). If you want to create your own candle lights, you can either build your own entity using a candle model, or you can use the entities but pass spawnargs to the light to change it's radius, colour, etc. The second option is probably easier, but I don't actually remember how to do it atm. Someone will no doubt chime in, or you could try searching on the wiki for lights, candles, etc, and see if you can find it.

Link to comment
Share on other sites

I would use a light to play around with numbers, however when placing candles its much easier to use a candle entity.

A candle entity will spawn its own attached and moving flame when the map starts, less work and cleaner to map with.

 

To adjust the properties of the flame that spawns, you need to select the candle entity and then adjust it with properties like :

set _color on light 0.78 0.45 0.13

 

It might be "set _color on flame" for candles, but try light first. You can adjust other things by using the same approach "set x on y", in this case y is usually just called light or flame, but for something like a fan it could be something else. I think changing a candle colour would be a good thing to add to the A-Z, as well as a light that changes skin when being turned off (tho that can wait for 1.01... and yes this is wishful thinking ;))

Edited by Serpentine
Link to comment
Share on other sites

I would use a light to play around with numbers, however when placing candles its much easier to use a candle entity.

A candle entity will spawn its own attached and moving flame when the map starts, less work and cleaner to map with.

 

To adjust the properties of the flame that spawns, you need to select the candle entity and then adjust it with properties like :

set _color on light 0.78 0.45 0.13

 

It might be "set _color on flame" for candles, but try light first. You can adjust other things by using the same approach "set x on y", in this case y is usually just called light or flame, but for something like a fan it could be something else. I think changing a candle colour would be a good thing to add to the A-Z, as well as a light that changes skin when being turned off (tho that can wait for 1.01... and yes this is wishful thinking ;))

 

It is "flame" on candles, chandeliers, fires and fireplaces etc. It should be "light" on electric streetlights etc. unless I goofed up somewhere.

"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

I would use a light to play around with numbers, however when placing candles its much easier to use a candle entity.

A candle entity will spawn its own attached and moving flame when the map starts, less work and cleaner to map with.

 

To adjust the properties of the flame that spawns, you need to select the candle entity and then adjust it with properties like :

set _color on light 0.78 0.45 0.13

 

It might be "set _color on flame" for candles, but try light first. You can adjust other things by using the same approach "set x on y", in this case y is usually just called light or flame, but for something like a fan it could be something else. I think changing a candle colour would be a good thing to add to the A-Z, as well as a light that changes skin when being turned off (tho that can wait for 1.01... and yes this is wishful thinking ;))

 

alright you're going to have to forgive my noobness, but i don't even know how to edit spawnargs of an entity that is created at runtime. I mean, i dont even know what name will be assigned to the damn entity. I know nothing of the DR script or console window, or if i need to edit a .def file for this or what. I have been searching through the wiki for this but found nothing (that i could understand). i know i must enter

set _color on light 0.78 0.45 0.13

(or something similar) in somewhere, but where?

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.

 Share

  • Recent Status Updates

    • nbohr1more

      Anyone have any luck with light.setShader( string ) ? It seems to make whichever light you apply it to full-bright on the initial invoke?
      · 0 replies
    • thebigh

      I'm starting to think we need another mapping contest.
      · 4 replies
    • kano

      Don't you hate it when there's a quality discussion on a forum somewhere online about something, but then two disagreeing users derail and transform it into a back-and-forth poo slinging competition at one another?
      · 8 replies
    • Diego

      Oh look the status updates are back! 
      · 2 replies
    • JackFarmer

      After watching the first three and a half episodes of "The Sandman" last night, I realize once again that overly imaginative narratives are not for me. Also, the main actor looks like he has a toothache.
      Which makes me wonder, is there a Dark Mod mission with a medieval dentist?
      · 4 replies
×
×
  • Create New...