Archived

This topic is now archived and is closed to further replies.

Please be aware that the content of this thread may be outdated and no longer applicable.

Mr_E_Fox

Bye bye boomerang :D

Recommended Posts

Mr_E_Fox    59

So I was hunting for a Krampus sack again (all the new worlds!) and apparently boomerangs just recently changed. You are now a ninja and cannot be hit by them. And they travel way way away on an epic journey (they'll travel over water now too).

Here's the thing, I did this with 5 or 10 boomerangs just testing that I wasn't crazy (and for fun), and every once and a while they just come back :o

It's hilarious. I'm just imagining these boomerangs circling the world till they cross my path again. The first one that came back I was running to get more gold from the king and suddenly something is flying right for my face. It was raining and the boomerang was wet. It was dry when I threw it.

I appreciate this. I appreciate this a lot.

Share this post


Link to post
Share on other sites

sadly, it's probably just a bug, and will be fixed soon.

but it really is something interesting

Yep, it is probably a bug, but it's hilarious.

What is not funny is i left my don't starve game on without pausing it and died just now...

Share this post


Link to post
Share on other sites
WillPwn4Food    295

Yep, it is probably a bug, but it's hilarious.

What is not funny is i left my don't starve game on without pausing it and died just now...

 

Ouch! That always hurts. How many days?

Share this post


Link to post
Share on other sites
Mr_E_Fox    59

Yeah, I realized after I posted this I probably should have put it under bugs, but till then I will keep 10-20 boomerangs traveling my world. And it will be awesome

Share this post


Link to post
Share on other sites
Snob    1,272

Is this the best bug in Don't Starve? Because it sounds like it.

Share this post


Link to post
Share on other sites
NeoDeusMachina    262

I don't know if it's actually a bug. I used quite a lot of boomerangs lately to hunt beardlings and I noticed that it doesn't automatically come back for you. Instead, it goes back exactly in the direction it was thrown which makes a lot more sense. That means you cannot throw it, move 10feet to the right, and just wait for it to come back by following a weird curved path, like it was some sort of homing boomerang. You have to place yourself properly and time the space bar properly to catch it or it will just fly away really really far (not sure if it will ever stop). When I used the new boomerang (if it's a new boomerang not just a bug), I thought it was more realistic that way and actually harder to use, especially against mobs that want to murder you. On the bright side, I am not sure it can kill us anymore (that would need testing), but I remember it flew right past me when I forgot to hit space bar and I just lost it in the wilderness.

Share this post


Link to post
Share on other sites
Pyromailmann    2,991

I had this happen to me, too but it was when I did another action then I was out of the way to catch my boomerang yet I did the animation for it so the boomerang kept going. I caught up to it, fortunately but I can conclude this as a big bug.

Share this post


Link to post
Share on other sites
Tumalu    546

Not having it home back in to you and hit you doesn't seem too weird of a change... but if it just keeps going on forever, welp XD

Share this post


Link to post
Share on other sites
NeoDeusMachina    262

Not having it home back in to you and hit you doesn't seem too weird of a change... but if it just keeps going on forever, welp XD

 

Oh well a couple of days have passed and one of the boomrangs I had lost came back to hit me in the face. I laughed.

Share this post


Link to post
Share on other sites
Mr_E_Fox    59

Instead, it goes back exactly in the direction it was thrown which makes a lot more sense. 

 

Actually I tested that initally, it will go right back to wherever you are standing when it hits the target. So not really back to where it was thrown. Also I thought it wouldn't track to its target anymore, but it still does and I appreciate that.

I tested these by trapping Chester away from his bone, releasing him and then throwing the boomerang at him. Don't worry, he's fine.

Share this post


Link to post
Share on other sites
NeoDeusMachina    262

Actually I tested that initally, it will go right back to wherever you are standing when it hits the target. So not really back to where it was thrown. Also I thought it wouldn't track to its target anymore, but it still does and I appreciate that.

I tested these by trapping Chester away from his bone, releasing him and then throwing the boomerang at him. Don't worry, he's fine.

 

Chester is a tough fellow, he can take it =)

I don't know if it's a bug, but I seriously wish it isn't ! It really makes me laugh each time I get a boomerang in the face a couple of days later when I don't expect it (or just catch it, but this is much less funny).

Share this post


Link to post
Share on other sites
Mr_E_Fox    59

I have to try this out.

1000 boomerangs, vs bearger.

I never actually thought of this, but you could technically have a full inventory of boomerangs and just throw all of them without bothering to catch. Like a machine gun of sticks. Sounds hard to execute though.

Share this post


Link to post
Share on other sites

I never actually thought of this, but you could technically have a full inventory of boomerangs and just throw all of them without bothering to catch. Like a machine gun of sticks. Sounds hard to execute though.

I just did it, it was hilarious.

All the boomerangs went flying everywhere, never to be seen again. (I actually did see one a few days later)

Share this post


Link to post
Share on other sites
madsci64    16

I don't know if it's actually a bug. I used quite a lot of boomerangs lately to hunt beardlings and I noticed that it doesn't automatically come back for you. Instead, it goes back exactly in the direction it was thrown which makes a lot more sense. That means you cannot throw it, move 10feet to the right, and just wait for it to come back by following a weird curved path, like it was some sort of homing boomerang. You have to place yourself properly and time the space bar properly to catch it or it will just fly away really really far (not sure if it will ever stop). When I used the new boomerang (if it's a new boomerang not just a bug), I thought it was more realistic that way and actually harder to use, especially against mobs that want to murder you. On the bright side, I am not sure it can kill us anymore (that would need testing), but I remember it flew right past me when I forgot to hit space bar and I just lost it in the wilderness.

 

Agreed. I though at first it was a bug, but now I see it makes for better game play.

 

For me, most of ROG has been about not playing sloppily anymore. I don't leave stuff lying around at my base (because of moles, fires/taxing the ice flingers) I have to plan food preparation better, more redundancy is needed generally, and so forth.

 

Back to boomerangs; they could make it so if you are in line to catch it, you either catch it or it hits you. I would rather take a little hit than throw away 9/10ths of a weapon, especially right when I need the thing. It also is more logical, although that should be a lower consideration IMHO.

Share this post


Link to post
Share on other sites
scize    50

Actually I tested that initally, it will go right back to wherever you are standing when it hits the target. So not really back to where it was thrown. Also I thought it wouldn't track to its target anymore, but it still does and I appreciate that.

I tested these by trapping Chester away from his bone, releasing him and then throwing the boomerang at him. Don't worry, he's fine.

don't ever do that again

Share this post


Link to post
Share on other sites
Clwnbaby    938

I have this bug too and unlike the others I find it very annoying as I tend to lose my boomerangs. It is especially annoying when I lose a boomerang and then make another one only to lose it immediately. Also for me its not an issue of it not coming back, but more often its that the boomerang misses the target and keeps going. I thought it was a wetness issue but it has occurred when Im not wet at all so buggy it is.

Share this post


Link to post
Share on other sites
SethR    1,229

We made a change to how entities get updated, which meant that the boomerang was getting into a bad state when it hit its target. We've got a fix locally that will come out with the next update.

Share this post


Link to post
Share on other sites
simplex    2,608

We made a change to how entities get updated [...]

Could you elaborate (or at least point to the relevant parts of scheduler.lua/entityscript.lua)?

Share this post


Link to post
Share on other sites
SethR    1,229

Could you elaborate (or at least point to the relevant parts of scheduler.lua/entityscript.lua)?

 

Sure thing! In update.lua, there is some code in the Update function to guarantee that when an entity is told to start updating, it gets added to the list of entities to update after iterating over the list (UpdatingEnts) in order to guarantee that the list doesn't change while its being iterated over in a given game loop. We previously didn't have the same safeguard in place for when an entity stops updating, which lead to some crashes with the new Flingomatic behavior (i.e. its faster shooting, which can create a situation where a component is being told to start and stop updating very quickly and repeatedly). So, we added the same handling for StopUpdatingEnts (line 117 in update.lua). There are also some changes in entityscropt.lua in the StopUpdatingComponent function (line 198), but the changes I mentioned in update.lua are the more impactful bits.

 

The change did introduce a few bugs that can happen when an entity is told to stop and start in the same tick, as the boomerang was.

Share this post


Link to post
Share on other sites
simplex    2,608

Sure thing! In update.lua, there is some code in the Update function to guarantee that when an entity is told to start updating, it gets added to the list of entities to update after iterating over the list (UpdatingEnts) in order to guarantee that the list doesn't change while its being iterated over in a given game loop. We previously didn't have the same safeguard in place for when an entity stops updating, which lead to some crashes with the new Flingomatic behavior (i.e. its faster shooting, which can create a situation where a component is being told to start and stop updating very quickly and repeatedly). So, we added the same handling for StopUpdatingEnts (line 117 in update.lua). There are also some changes in entityscropt.lua in the StopUpdatingComponent function (line 198), but the changes I mentioned in update.lua are the more impactful bits.

 

The change did introduce a few bugs that can happen when an entity is told to stop and start in the same tick, as the boomerang was.

Thanks for the info, I appreciate it. Could these bugs not be handled by making EntityScript:StartUpdatingComponent remove the entity from StopUpdatingEnts (if it's there at all), as follows?

function EntityScript:StartUpdatingComponent(cmp)    if not self.updatecomponents then        self.updatecomponents = {}        NewUpdatingEnts[self.GUID] = self        StopUpdatingEnts[self.GUID] = nil        num_updating_ents = num_updating_ents + 1    end            local cmpname = nil    for k,v in pairs(self.components) do        if v == cmp then            cmpname = k            break        end    end    self.updatecomponents[cmp] = cmpname or "component"end
This of course relies on the Update function at updater.lua iterating over NewUpdatingEnts before StopUpdatingEnts. To remove this dependency on iteration order, a similar thing could be done at EntityScript:StopUpdatingComponent

function EntityScript:StopUpdatingComponent(cmp)       if self.updatecomponents then           self.updatecomponents[cmp] = nil                local num = 0        for k,v in pairs(self.updatecomponents) do            num = num + 1            break        end                if num == 0 then            StopUpdatingEnts[self.GUID] = self            NewUpdatingEnts[self.GUID] = nil            self.updatecomponents = nil            num_updating_ents = num_updating_ents - 1        end    endend
Unless I'm missing something, this should ensure the last of EntityScript:StartUpdatingComponent and EntityScript:StopUpdatingComponent called on the same tick is what sticks.

Share this post


Link to post
Share on other sites
SethR    1,229

At a glance, that looks like it would also work. I haven't thought super deeply about this (hello Wednesday-release, how are you doing?) but one possible issue that might come up from an implementation like this is that it favors whatever the last call was (start or stop, in this case). When an entity is told to do multiple things in a single tick, the game loop on the highest level (i.e. updater.lua) is totally agnostic as to what the correct behavior is, so it would end up being started or stopped based on order of execution, which might not line up with our intent. Generally, we prefer things to stop (better for performance and easier to spot when it's gone wrong). If that means manually telling an entity to wait a tick before doing something (i.e. start again), that's better than crashing or having things in states that we don't think they're in.

Share this post


Link to post
Share on other sites
Ridley    609

@SethR

 

Is there any chance that this can be a actual feature? It was so funny when I threw a boomerang and was surprised it didn't come back. xD

 

Like missing with it has a small chance of it disappearing for a few days?

Share this post


Link to post
Share on other sites