After several weeks of struggling with making a dynamic flowing water shader, I have finally finished and uploaded a super early proof of concept of the unique tower defense game I am creating for mobile. I (lead programmer) did most of the work shown, with towers and "debris" completed by another programmer.
You can check out the earliest version as well as the latest version. This is using Godot 3.5.2.

If I stay in charge, this will be a water treatment themed tower defense with "flow-physics". If a collaborator takes over, at the very least that this will be a water themed tower defense game with flowing water. If I don't get hit by a car, I will design too a lazy river sim.

This novel approach to the tower defense genre brings the following exciting possibilities:

  • Clogs of debris spawning more fearsome foes
  • Towers that drop acid or oil into the water
  • Towers that affect the flow of water
  • Towers that drop allies into the water to clear debris
  • Debris allowed to stay stationary might turn into nasty poop land tiles which can't
    be built on and block water
  • Mazing, quality of maze foundations (dirt/concrete/steel) to build towers upon
  • The option to trap floating debris with land tiles

This is a profit share project that is open to collaboration. To simplify my system a great deal: a git commit grants share.

    Pretty basic, but you got something out there. Nice!

    Those enzyme sprayers need more potent enzymes 😃

    7 days later

    I'm working enough for my wrists to hurt bad. Here is a comparison illustrating the visual differences after a week:

    Click to reveal Click to hide


    And HERE's version 0.51 to try out.

    If player immediately builds a narrow zigzag strait it easy for shishkebabs to get completely stuck in there, even if the flow through the strait is fast. The level is basically beaten there.

      Yesterday I spent the whole day getting Wombo to create flora for me. I integrated it into a system that mirrors the terrain system visible here.

      xyz Yes! I am counting the player doing exactly that. Of course I have not yet implemented negative consequences for clogs because I have been waiting for you to advise me on how to best implement a 2D grime and muck shader. I guess just noise right? And a passing in information on where grime exists through the image as you illustrated previously.

      Looking neat with the flora elements.

      As for muck etc, yeah, I'd use a sliding noise texture ramped with some "muck density" value packed into the flow texture.

        Today I sat down and gleefully implemented my first set of punishments for the intuitive "just clog everything" strategy. Excited for your feedback and curious how long you xyz are able to hold on before the flow takes over =D. See the grime here!

        • xyz replied to this.

          Erich_L Oh, I see. I see the grand idea now 🙂
          It's becoming fun to play.
          It took me a few tries to stabilize it:

          What's next? Indestructible land tiles? Or deep water tiles? 🙂

            xyz Haha I’m so glad you gave it a try and persevered! I also started having fun especially with the muck and submarining, and I haven’t even made any of my own towers yet so that’s probably next, you can tell now there’s a lot of potential directions.
            I ended up making a shader I really liked for the muck but it won’t be visible until *drum roll the pool can get drained.

            • xyz replied to this.

              Erich_L Keep going. It may end up a really great game.

              19 days later

              I'm not smart enough to code a real time fluid simulation. Too bad I did it anyway watch out 4 pp.

              Have you uploaded the fluid version to itch? Has to be seen to be believed 😃

                xyz A version with fluid is here:
                https://stactory.itch.io/drain-defense-061
                I figured I'd spend the morning throwing together a chlorine pump in case you got tired of how gross it looks. It's just a visual element atm.
                Edit: Also I had to get my fluid stuff off of a thread which html5 doesn't support.

                  Erich_L Visually it's good but any plan to give some coffee to sleepy guys (Joe B. ?) in towers ?

                  The evil thing we're suppose to destroy sink but still continue to flow to the syphon and it looks like they are harder to get rid of.

                  I think that is the last version of the game you’ll see where it’s still a tower defense. Over the last month it has become very evident that I and everyone else involved is more interested in making a novel simulation than a tower defense. That’s too bad because the fluids do seem to add a lot to a typical tower defense game.

                  Fluids look nice.
                  Coffee to the tower guys but also explain them to zero in on a single floater until it is destroyed.

                  14 days later

                  I remember back in the day I thought "I'd better stick to 3D cause 2D won't have confusing enough math". Yeah, wish past me had any idea how much of a challenge it is to stack donuts on a cone all in 2D.

                  3 months later

                  ![

                  I briefly thought it wise to switch the entire game concept to a Lazy River water park simulation- the work load there caught me off guard and led to me getting burned out and a month later I had stopped working on the project. I have a lot of silly fun ideas for a lazy river sim (shocking the bad kids who pee in the pool ect..) but I have been wising up and returning to finishing this water treatment plant themed tower defense game.

                  In this new upload for version 0.73 here, the game is somewhat in a sandbox like state. I have the fluid system working just about as good as it needs to get and I am happy with the idea that if clean water is exiting the plant you get bonus money- a goal perhaps for later plays when you've mastered the fecal challenges.

                  I was told one bigger downsides to tower defenses is that you lose by getting behind on kills. I hope to solve this issue by paying the player for all debris that enters the map instead of debris that the player destroys. I will still maintain limiting factors such as time limits, lives, or both for the necessary stress, but I am also allowing the player to just close off the sewage drain if they feel swamped.