Thrive icon indicating copy to clipboard operation
Thrive copied to clipboard

Add mucilage (slime)

Open Oliveriver opened this issue 2 years ago • 0 comments

Brief Description of What This PR Does

WIP

Adds mucilage to the game, a new agent that a cell can secrete to jet away from predators and slow them down.

TODO

  • Make agents panel display correctly
  • Eject based on the orientation of slime jets
  • Add icons and models
  • Add sound
  • Add translations
  • Add tooltip
  • Integrate into Auto-Evo
  • Balancing

Related Issues

N/A

Progress Checklist

Note: before starting this checklist the PR should be marked as non-draft.

  • [ ] PR author has checked that this PR works as intended and doesn't break existing features: https://wiki.revolutionarygamesstudio.com/wiki/Testing_Checklist (this is important as to not waste the time of Thrive team members reviewing this PR)
  • [ ] Initial code review passed (this and further items should not be checked by the PR author)
  • [ ] Functionality is confirmed working by another person (see above checklist link)
  • [ ] Final code review is passed and code conforms to the styleguide.

Before merging all CI jobs should finish on this PR without errors, if there are automatically detected style issues they should be fixed by the PR author. Merging must follow our styleguide.

Oliveriver avatar Jul 23 '22 20:07 Oliveriver

I've converted this into ready to review since the existing parts are about there. There are still a few holes though, listed above, so help with those from knowledgeable people would be appreciated.

Oliveriver avatar Aug 15 '22 20:08 Oliveriver

how hard would it be to have the stuff disappear entirely over time representing its breakdown? because otherwise the map is just going to be full of this stuff.

yowshi avatar Aug 15 '22 21:08 yowshi

Just playested with it for 10 minutes. My thoughts:

  • Functionally speaking, great work! It functions exactly as I would've imagined.
  • I felt like mucilage ran out too quickly. My first instinct was that it should expel at half the current rate, so that you can spread out its usage. For example, as a Eukaryote, I think I could only "jet" for 0.5-1 seconds before it would run out, even when fully filled up.
  • Not an issue with this feature, but because of the game's current performance issues, the fast bursts of speed look very jittery (they highlight the low framerate).
  • I really like that the trails of mucilage can be used to track cells. Adds an extra element of strategy to which way to swim.
  • If there is anybody on the graphics team able to implement the "clear gel emitter" that Nunz described, I think that would be much preferrable over green clouds. I feel like there are already enough clouds and colours on the screen already and we shouldn't be adding another.

nickthenick avatar Aug 16 '22 00:08 nickthenick

Just playested with it for 10 minutes. My thoughts:

  • Functionally speaking, great work! It functions exactly as I would've imagined.
  • I felt like mucilage ran out too quickly. My first instinct was that it should expel at half the current rate, so that you can spread out its usage. For example, as a Eukaryote, I think I could only "jet" for 0.5-1 seconds before it would run out, even when fully filled up.
  • Not an issue with this feature, but because of the game's current performance issues, the fast bursts of speed look very jittery (they highlight the low framerate).
  • I really like that the trails of mucilage can be used to track cells. Adds an extra element of strategy to which way to swim.
  • If there is anybody on the graphics team able to implement the "clear gel emitter" that Nunz described, I think that would be much preferrable over green clouds. I feel like there are already enough clouds and colours on the screen already and we shouldn't be adding another.

honestly i only noticed a speed boost when i was a small prokaryote. i didn't notice one when i hit eukaryote.

i personally loved the colour, the thing i noticed is that yes it does build up on screen over an area until you die or switch patches.

yowshi avatar Aug 16 '22 00:08 yowshi

I played only a short bit currently but it's very, very fun, and it livens up the whole experience. Gameplay wise, we benefit a lot from essentially having the Thrive equivalent of those cellular jet things in Spore. It's a nice change of pace.

One thing I noticed is a bit of bugginess where my cell occasionally maintains its when ejecting mucilage constantly even if I am not holding down the button. In fact, this would last until I next tapped the R button, allowing me at one point to zip across the map for about 10 seconds straight without expending slime. This might indicate more bugginess overall so I won't make any substantial comments on balancing for speed, but propulsion felt decent upon first impression. I'd like to see if anyone else noticed these issues and then move on to balancing for gameplay.

Deus-Codes avatar Aug 16 '22 02:08 Deus-Codes

how hard would it be to have the stuff disappear entirely over time representing its breakdown? because otherwise the map is just going to be full of this stuff.

I was hoping to leave the question of what to do with environmental mucilage until a later PR, but it seems it’s too big a problem to ignore. I have a few ideas:

  • Cells which produce mucilage collect it back from the environment when swimming through it.
  • Mucilage clouds disappear over time.
  • Mucilage clouds decay into glucose over time (though obviously a smaller amount than it took to make).

Other suggestions are welcome. I’d advise against cells collecting mucilage and converting it to glucose internally, since that’s going to introduce many headaches with the process system.

Oliveriver avatar Aug 16 '22 05:08 Oliveriver

One thing I noticed is a bit of bugginess where my cell occasionally maintains its when ejecting mucilage constantly even if I am not holding down the button. In fact, this would last until I next tapped the R button, allowing me at one point to zip across the map for about 10 seconds straight without expending slime.

I haven’t experienced this bug myself. How reliably can you reproduce it?

Oliveriver avatar Aug 16 '22 05:08 Oliveriver

how hard would it be to have the stuff disappear entirely over time representing its breakdown? because otherwise the map is just going to be full of this stuff.

I was hoping to leave the question of what to do with environmental mucilage until a later PR, but it seems it’s too big a problem to ignore. I have a few ideas:

  • Cells which produce mucilage collect it back from the environment when swimming through it.
  • Mucilage clouds disappear over time.
  • Mucilage clouds decay into glucose over time (though obviously a smaller amount than it took to make).

Other suggestions are welcome. I’d advise against cells collecting mucilage and converting it to glucose internally, since that’s going to introduce many headaches with the process system.

that third one is kind of cool, has interesting possibilities for play with the new day/night cycle too.

yowshi avatar Aug 16 '22 05:08 yowshi

I've now added a decay rate for mucilage clouds. Seems about balanced to me. I'm therefore in favour of keeping it like this and leaving other options until later.

Oliveriver avatar Aug 16 '22 12:08 Oliveriver

I don't know if this is just me but I think the latest change made the jetting action feel less "explosive", instead it's like more gradual increase in acceleration? Unless this is intended, I feel this might make the jet less effective considering you could only do it in small quick bursts most of the time.

athariqk avatar Aug 18 '22 05:08 athariqk

I don't know if this is just me but I think the latest change made the jetting action feel less "explosive", instead it's like more gradual increase in acceleration? Unless this is intended, I feel this might make the jet less effective considering you could only do it in small quick bursts most of the time.

If you're referring to the bug fix I made most recently, that's definitely needed. The explosiveness you're referring to might well be that bug in action. It's possible to work around this by adjusting the constant though.

Oliveriver avatar Aug 18 '22 14:08 Oliveriver

Very fun feature, and very well executed. I was weary of the mucilage existing as it's own compound but I've warmed up to it! The mucilage slows targets a good amount, not too much or too little. The boosting effect is very fun with just enough boost to escape immediate danger but not too much as to become a bottle rocket. I enjoyed playing as a little single-celled squid creature.

I did not notice any bugs or errors, so I say this is good to go on the gameplay side of things, fantastic work Oliver!

buckly90 avatar Aug 24 '22 16:08 buckly90

Is this now starting to be feature complete so that programming side reviews should happen?

hhyyrylainen avatar Aug 25 '22 07:08 hhyyrylainen

Is this now starting to be feature complete so that programming side reviews should happen?

Yes, apart from the TODOs mentioned in the PR description, but I think those are entirely separate code-wise.

Oliveriver avatar Aug 25 '22 08:08 Oliveriver

I've addressed most of the TODOs that were left. Adding animations to the model and a placeholder sound effect required a bit of a rewrite for the slime secreting logic, so some review comments might be outdated now. I'll get to the comments and a few extra bug fixes tomorrow.

Oliveriver avatar Aug 29 '22 23:08 Oliveriver

Nice work on this, really excited to see it merged.

One quick thing though, did you have a chance to check out the tooltip when hovering over the button? It says "Secrete slime" instead of "Secrete mucilage".

nickthenick avatar Aug 29 '22 23:08 nickthenick

Nice work on this, really excited to see it merged.

One quick thing though, did you have a chance to check out the tooltip when hovering over the button? It says "Secrete slime" instead of "Secrete mucilage".

I’m aware. As I said, I’ll address the review comments tomorrow.

Oliveriver avatar Aug 29 '22 23:08 Oliveriver

Due to the substantial review changes to how movement is calculated, this probably needs more testing now. I think this approach is more robust. One definite change: before, jetting when stationary wouldn't cause you to move, but now it does. That actually makes more sense to me from a physics perspective.

Oliveriver avatar Aug 30 '22 11:08 Oliveriver

Works great! This is truely a versatile part that will make gameplay much more interesting.

The boosting is not the most effective for moving, but it can effectively close the gap between predator and prey if they are otherwise able to outrun you. The mucilage itself is excellent for escaping your own predators, and can even be used to ensnare more prickly prey.

A great feature, excellent work!

buckly90 avatar Sep 01 '22 16:09 buckly90

What about the save compatibility thing?

84634E1A607A avatar Sep 02 '22 04:09 84634E1A607A

What about the save compatibility thing?

Haven't managed to fix that yet. I'll have another go tonight but might need help if I can't get it done then.

Oliveriver avatar Sep 02 '22 10:09 Oliveriver

Right, fixed the save and load issue properly this time.

I have noticed I still have an annoying workaround in place for the animation not looping, and the model's animation is generally a bit broken. For instance, it doesn't jiggle. I swear it did at some point, so I probably changed something to break that.

A more reliable fix all around would be to ask for a redone model, so I'll do that in Discord now. That just leaves updated icons and an updated sound effect, and this should be done.

Oliveriver avatar Sep 02 '22 22:09 Oliveriver