Tai chi [太極拳/Тайцзицюань] (demo-scene)

This is something between a demo scene and a tutorial project. Trying to get a handle on Godot and the use of assets.

Will be supplemented in the process.

Created in cooperation with @xolatgames .

Going to publish on GitHub, itch.io and wherever else I can reach.

Camera movement: mouse buttons and wheel, QWEASD.
Camera rotation: ZXC.
Exit: ESC.

What's currently available:

  1. Courtyard (pool) — “SwimmingPool” (Sweet Home 3D\Blog).
  2. Character and animation — Tomcat's Godot tutorial.
  3. Camera movement code — Godot 4 Debug Camera.
  4. Camera movement restriction.

What is planned:

  1. Replace trees with wind effect models.
  2. Make a change of clothes.
  3. Try to apply water shader.
  4. Miscellaneous.

Programs used:

  1. Godot 4.3 beta 3
  2. Blender 4.1
  3. Blender 2.93 (Retarget BVH)
  4. MakeHuman 1.3.0
  5. Sweet Home 3D 7.4
  6. Krita 5.2.3
  7. GIMP 2.10.38
  8. Inkscape 1.3.2

Assets by MH Team: punkduck.

Recommended Requirements:

  • The computer must be able to turn on

If there are any suggestions and thoughts on collecting donations — I will listen carefully.

itch.io

Patreon

    Nice, I'll give it a go when I free up some time.

    As for collecting donations, I like Buy me a Coffee a lot. I use it for a couple of projects... You can easily set up 1-time payment donations and also memberships for recurring donations. And people don't need an account to make a small donation. It uses Stripe as the payment solution.

      MikeCL It uses Stripe as the payment solution.

      Must be nice to live in a free world, huh? Only people don't seem to appreciate it enough. World payment systems do not work in our country. The way out is to accumulate funds “abroad” and evacuate to a more peaceful and decent country (I have even considered one). And getting access to this money from a new place. This is offered by Patreon and itch.io (the latter seems to have started doing this recently, but not before). Patreon is not very satisfying, for some reasons, but it has better support — they always respond quickly. I don't get any response from itch.io, which is very frustrating. Is it possible to open an account without being present, remotely, like a company, an organization? Patreon's support suggests opening an account with someone you know, without being too complex. But as I understand it, in this case there will be tax problems for the one who opens such an account. And I have no such acquaintances in the free world who can be asked to open an account for me.

      Jesusemora I have 8 gb and 3 are used by the integrated gpu. This sounds insane to me.

      I suppose I might need server functions.

      Jesusemora I have 8 gb and 3 are used by the integrated gpu.

      It's the kind of message that makes me frustrated. Especially from someone who is obviously quite highly qualified. I thought that work should bring enough income to buy professional tools for it. I have a 5 year old development computer! If I bought something like that, it might justifiably cause emotion. Looks like we're all doing the wrong thing here, folks. Apparently, game development is more of a hobby that requires investment than it is an income that brings it in.

      Two buddies:
      – I've got a new game released!
      – How much did you sell?
      – Not much: an apartment, a car.

        time will come, just keep swimming

        Tomcat It's the kind of message that makes me frustrated. Especially from someone who is obviously quite highly qualified. I thought that work should bring enough income to buy professional tools for it.

        8gb is not that bad, the computers that are sold in stores here come with 4-8gb and everyone I know have similar specs.
        I can model whatever I need in blender (compared with how it was before) and open many windows at the same time. All that memory would be wasted since I'm not hitting a ceiling.

        Tomcat I have a 5 year old development computer! If I bought something like that, it might justifiably cause emotion.

        I don't understand what you are trying to say here.
        The reasoning behind my comment is that, you are developing a tech demo and the requirements sound way too high (If those are requirements).
        If we look at a game like baldur's gate 3, which came out very recently, it asks for 8gb and recommends 16gb. starfield also asks for 16bg, and it's a AAA game by bethesda. skull and bones, the AAAA game also asks for 8gb.

        sure, for sculpting the fingerprints on a character you would want 256bg of RAM, but that's for making AAA quality assets, and that is actually a trap, because those games are made by teams of thousands of people, which ultimately limits the scope of your game.
        look at senua's sacrifice, you control a single character, fight some dudes and explore a very small world, it didn't get praise for its graphics, everyone instead talks about its themes of mental health issues.

        we indie devs have to try and reduce our scope, you either make a very detailed small game, or a medium sized stylized game.
        I'm sure this is a very nice looking demo, I don't and can't know what would be using hundreds of gb of RAM, but I'm not going to risk trying to run it.

        Tomcat Looks like we're all doing the wrong thing here, folks. Apparently, game development is more of a hobby that requires investment than it is an income that brings it in.

        well you are the one with 256gb of RAM. Think of it this way: If your game can only run in your computer, that limits the number of potential buyers of said game.
        I work with limitations, that doesn't make me worse at dev, It makes me better, because I have to find creative solutions to problems instead of brute-forcing them, that's how I learned so much.
        Look at history: silent hill added the atmospheric mist in order to hide the world being generated. the mechanics in diablo were built around the isometric view. the invisible wall in battlefield was added to stop players from going out of the map and it was kept because it forces them to stay were the action is.

        Tomcat Two buddies:
        – I've got a new game released!
        – How much did you sell?
        – Not much: an apartment, a car.

        Dev for me is a hobbie, yes, I am a welder. I hope one day I finish a game and release it and its successful, but you can't just jump head first into something without a plan if things go bad, and you can't guarantee that your first game is going to be an instant success, that is just not realistic. From what I heard, a good game can be on store for years and get picked up suddenly, or remain a "hidden gem" forever, or instead go to the bottom of worst of steam. or just be mid and never stand out.
        Some things are just out of our control, we need to be able to adapt quickly to the changes.

          Jesusemora The reasoning behind my comment is that, you are developing a tech demo and the requirements sound way too high (If those are requirements).

          Clearly! It's a misunderstanding. As usual, though.

          These are not requirements for running the demo. Those specifications come after “Programs used”. It's just a matter of good manners that we have adopted here, and that I was taught — it is recommended to specify what hardware the game is developed on. The information is only for reference for other developers. I could not even imagine that it would be taken as “Recommended Requirements”.

          I work with limitations, that doesn't make me worse at dev, It makes me better, because I have to find creative solutions to problems instead of brute-forcing them, that's how I learned so much.

          I was also taught that a game should be developed on hardware classed higher than the target platform. Optimization is the very last stage of development. My goal is a large number of characters and open space and I don't want development to be slowed down by technical limitations.

          My limitations are yet to come.

          well you are the one with 256gb of RAM. Think of it this way: If your game can only run in your computer, that limits the number of potential buyers of said game.

          I have an old comp (15 years old, by the way, it has 12 GB RAM) to test performance and it is the “target platform”.

          but I'm not going to risk trying to run it.

          Nope, your computer will not burn up from this demo — it was run on a laptop with integrated graphics and nothing terrible happened.

          But so far this is the very first stage and there is nothing remarkable here. I hope to add to it soon.

          Then I'll remove the specs so as not to mislead people.

          Corrected: removed specification and added requirements.

            Tomcat These are not requirements for running the demo. Those specifications come after “Programs used”. It's just a matter of good manners that we have adopted here, and that I was taught — it is recommended to specify what hardware the game is developed on.

            it would be a good idea to get the actual requirements for the game.
            you can check roughly how much memory and video memory is used by the game. testing CPU and GPU performance would be more difficult though.
            Godot recommends 4 gb of RAM for developing games, but since it supports mobile, I imagine that the final game's memory usage can much lower and depends on the number of assets.
            the lower end of requirements is much more important than the "recommended setting".

            Tomcat I was also taught that a game should be developed on hardware classed higher than the target platform.

            yes, but how much higher?
            this sounds like something that would be said of unity and its ridiculously heavy editor, or unreal and its stupidly heavy editor. godot is kinda special, it even has a phone version.
            If I'm making pacman, I shouldn't need a NASA supercomputer to develop it. of course this isn't pacman, it is a high quality project, but must also have its limits. otherwise we fall into the trap of telling people "just get a better pc", and most can't or wont do that.

            Tomcat Optimization is the very last stage of development.

            if you are a good programmer, you can tell before hand when something is going to cause problems. this isn't so much optimization as it is software engineering. designing the systems and how they interact with each other.
            optimizations can be made on algorithms and individual parts of a program, but if the whole thing is done wrong, you have to realize early or will end up having to rewrite a lot of code. and sometimes having to remake assets.
            Maybe I'm just old school, back in the day we had to calculate how much memory we were going to use before writing the code, while we don't have to worry about arrays overflowing anymore, this is still a concern with texture sizes.

            Tomcat My goal is a large number of characters and open space and I don't want development to be slowed down by technical limitations.

            My limitations are yet to come.

            fair enough.

            Tomcat I have an old comp (15 years old, by the way, it has 12 GB RAM) to test performance and it is the “target platform”.

            that's good to hear.

            Tomcat Nope, your computer will not burn up from this demo — it was run on a laptop with integrated graphics and nothing terrible happened.

            I might give it a try.

            Tomcat removed specification and added requirements.

            lol

              Jesusemora it would be a good idea to get the actual requirements for the game.

              The target platform is Core-i7-950/12Gb/GTX780 ( yeah, I want the game to be able to run on Win 7).

              you can check roughly how much memory and video memory is used by the game. testing CPU and GPU performance would be more difficult though.

              Sims style games have their own specifics — it's very hard to determine what exactly the requirements they will have (especially in memory — this is also the reason for buying such a volume). The thing is that the requirements for such games change during the game. This behavior does not occur with other games. For example, The Sims 3. The beginning of the game — always easy. But over time, the game starts to slow down, depending on the coolness — some earlier, others later — but all of them. The reason is this. This game is a living world. That is, the city lives, the inhabitants acquire acquaintances and memories, develop skills. A player can visit any corner of the world and life will go on there. He can take control of any character and he will have his own work and friends.

              Special “save cleaners” (modders) were released, after their application my saves reached more than 700 Mb (each!). What other game can have a single save up to 1Gb?

              EA could not solve this problem (developers have not solved a lot of problems so far). And in Sims 4 just limited the available area, which oblechgili load, but lost a lot in the effect.

              I do not make not a single game, and the project — within which I intend to release games that will realize only part of the future features.

              you either make a very detailed small game, or a medium sized stylized game.

              One of the ideas is to release two branches: one with simple graphics and more characters, the other with improved graphics and a smaller world.

              yes, but how much higher?

              The wording was “a class above.” If the game is for weak machines, it should be developed on a medium configuration. If it is for medium machines, it should be developed on a high configuration. But the power of the machine is the speed of development.

              Does it make sense to limit yourself?

              kuligs2 thats a dick move. dont conform to what bullies are bullying you into.

              I try to listen to the arguments.

              But idk, im kinda curious how to determine the min req. for the game you develop in godot.

              I guess the profiler can tell you what approximate level of performance might be comfortable. But I will run it on an old machine and see how it looks there.

              All them gigs of vram yet you're using monotonously repeating textures without any visual variation like it's freaking 1996.

                Jesusemora I have 8 gb and 3 are used by the integrated gpu. This sounds insane to me.

                @Tomcat is just listing their own workstation stats for clarity so you know what system the scene was composed on.

                Tomcat Apparently, game development is more of a hobby that requires investment than it is an income that brings it in.

                It certainly can be. Especially if you go solo/indie.

                xyz All them gigs of vram yet you're using monotonously repeating textures without any visual variation like it's freaking 1996.

                It is indeed a bit 'boring' but even if they made it more variable it would involve more shader throughput than gpu memory, realistically. But certainly be more demanding of both.

                xyz All them gigs of vram yet you're using monotonously repeating textures without any visual variation like it's freaking 1996.

                it does look like a 2003 VR game that they play in doctor house or the x-files. it's the flat high quality assets.

                but this is an early version and he could add some PBR textures later, or better models.

                I haven't tried the demo, but here are some hints:
                if your target platform can handle it, add SSS (subsurface scattering) to the model (for organic materials), it look so much better with it.
                the makehuman hair is low quality, try to replace it with one of your own. one with different strands and a normal map.
                makehuman assets waste a lot of geometry and have very tiny parts, removing them in blender is a good idea, or baking the textures into a lower poly model. this however will add more work.

                combining dithering with upscaling is an alternative to alpha transparency.

                use bigger, higher quality textures. textures that cover a bigger area instead of a single tiny repeating texture. you can find free CC0 PBR materials in ambientCG. polyhaven also has some good ones but are smaller.

                add an HDR sky, or any sky at all. it will improve the ambient lighting.

                reduce sky contribution and add some form of GI, like voxelGI or enabling hdfgi.

                add volumetric fog, even if faint. it will add atmosphere to the scene.

                set a physical camera, this will give you a dynamic form of DOF.

                use linear or ACES color.

                look for the physical values of the materials and set the roughness to something other than 1, or use PBR materials.

                enable SSAO.

                  Updated version.

                  Added:

                  1. Trees with wind effect.Create trees with wind effect. 🌴
                  2. Full screen on/off: Tab F11
                  3. Camera acceleration: Shift

                  Godot 4.3 RC 1

                  tai-chi_0002.exe 296 МБ

                  CRC32: A1DCE175
                  MD5: B09DC5DD8808761917880563BCDFF087
                  SHA-1: 99A8F9FB54029968E4A9446F543AD84D9155ABA5

                  tai-chi_0002.x86_64 279 МБ

                  CRC32: 740133CB
                  MD5: 36E62E2345391527DEDA244ACDA51662
                  SHA-1: AFB7F4A42EBA7D3A744714D9AF41233EC4E08FD2

                  Jesusemora I haven't tried the demo, but here are some hints:

                  Some of these things I'm going to do, some I've put off for later, but some of it sounds interesting. I'll consider the suggestions. Thanks for the advice! 🍻

                  While people like to flaunt all sorts of advanced rendering features, it's often forgotten how much in terms of look and mood you can do with the basics, only by applying some fundamental visual design principles. It's certainly great to have all your PBRs, GIs, SSSs, volumetrics, etc, but imho for a good looking outdoor scene it's sufficient to control only the following 5 essentials, regardless of geometry fidelity. Those are also relatively inexpensive to render on modern hardware:

                  • classic lambertian illumination with directional+ambient light.
                  • cast shadows
                  • ambient occlusion
                  • depth fog
                  • post process color remap

                  Here's a quick demo of an ad hoc scene patched directly in Godot from built in primitives, tuning the things mentioned above vs default scene settings: