Programming-Chaos / evolvedTD

Evolutionary tower defense game from the University of Idaho
GNU General Public License v3.0
5 stars 2 forks source link

Why are they so much faster than they used to be? #113

Closed doug-graham closed 9 years ago

doug-graham commented 9 years ago

The base movement speed is 500. I don't know if this is different than it used to be but I've checked their density and it's the same as it's ever been. They're way too fast and I want to know what part of the code I can change to put them back to normal.

doug-graham commented 9 years ago

I think this change might have come about when the brain was added, along with their tendency to turn much faster than they used to. I'm not saying this is bad behavior, it's just bad for them to be able to do this on wave one.

doug-graham commented 9 years ago

Well I just did a search in the code for the "getForce()" method which returns the creature's forward-moving capabilities, and learned that it's defined in the creature class but never ever called. This is bad. This means there's probably some magic number somewhere standing in for the evolved movement speed. Can anyone shed some light on this?

andyleejordan commented 9 years ago

Yes, it came from the sensory systems and brain merge. The brain isn't fully implemented, so their actions end up not working quite right. @thom5468 is working on it I believe.

As for as getForce() being defined and not used... ha! There are many such functions, especially getters. I have no clue how it happens, especially since everything in Processing is public by default. However, getForce() is a case of technical debt that has yet to be repaid from the move to a brain controlled creature.

doug-graham commented 9 years ago

getForce isn't an unneccesary getter as also acts as a genotype to phenotype mapper. I need to know how the creatures are going to be getting their forward force so that I can finish up the environment-specific movement speeds afforded by the appendages.

Programming-Chaos commented 9 years ago

Nope. Now the creature uses calcBehavior() instead of getForce() (look inside the update() function). calcBehvior() runs the brain neural network, which outputs a number of values in the current_actions[] array. This includes the torque: current_actions[0] and the force current_actions[1].

It wouldn’t be unreasonable to scale back the outputs of the brain a bit so it doesn’t immediately generate so much force. Note that the torque value is multiplied by 0.01 to reduce the wild spinning: torque = current_actions[0]*0.01;

But the creature does lose energy (and eventually health and dies) based on how much force and torque it generates, so generating a huge force is not automatically good.

From: tanimoti [mailto:notifications@github.com] Sent: Thursday, March 19, 2015 7:21 PM To: tsoule88/evolvedTD Subject: [BULK] Re: [evolvedTD] Why are they so much faster than they used to be? (#113)

Well I just did a search in the code for the "getForce()" method which returns the creature's forward-moving capabilities, and learned that it's defined in the creature class but never ever called. This is bad. This means there's probably some magic number somewhere standing in for the evolved movement speed. Can anyone shed some light on this?

— Reply to this email directly or view it on GitHubhttps://github.com/tsoule88/evolvedTD/issues/113#issuecomment-83856480.

andyleejordan commented 9 years ago

Ian, did your appendages patch fix this satisfactorily?

andyleejordan commented 9 years ago

@tanimoti I'm closing this as they're no longer super fast.