Announcement

Collapse
No announcement yet.

FGear Vehicle Physics (v1.2)

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    Originally posted by lazybitgames View Post

    yes, the primary focus of the next version is multiplayer support.
    Thank you for the response. Is this coming in the following say.. two weeks ? or it is more like a months kind of thing?

    Comment


      Originally posted by Patatoukas View Post

      Thank you for the response. Is this coming in the following say.. two weeks ? or it is more like a months kind of thing?
      can not give a timeline but two weeks is not possible, we are hoping to release next version before june.

      Comment


        w
        Originally posted by lazybitgames View Post

        can not give a timeline but two weeks is not possible, we are hoping to release next version before june.
        Well that is a bit disappointing. Buying a "Network Replicated", expensive, plugin that wont play in the current engine version excludes you from doing a lot of stuff. In example, it is impossible to use Epic's "Automotive Materials" which is exclusively available for 4.24. Also the vague and distant timeline to June leaves me unsure of whether i need to stick to 4.22 having to rewrite every single material for every single mesh. Is there any other solution? Any other workaround?

        Comment


          Originally posted by Patatoukas View Post
          w

          Well that is a bit disappointing. Buying a "Network Replicated", expensive, plugin that wont play in the current engine version excludes you from doing a lot of stuff. In example, it is impossible to use Epic's "Automotive Materials" which is exclusively available for 4.24. Also the vague and distant timeline to June leaves me unsure of whether i need to stick to 4.22 having to rewrite every single material for every single mesh. Is there any other solution? Any other workaround?
          when we first released the network replication feature 4.24 was not released and we did not expect things to get broken with new releases but it seems that these kind of things happen regularly in unreal engine. and our first replication implementation was also not perfect may be it will never be... but that does not mean we wont make improvements over time.

          we are open to refunds, if you think this wont fit your needs.

          Comment


            Originally posted by lazybitgames View Post

            when we first released the network replication feature 4.24 was not released and we did not expect things to get broken with new releases but it seems that these kind of things happen regularly in unreal engine. and our first replication implementation was also not perfect may be it will never be... but that does not mean we wont make improvements over time.

            we are open to refunds, if you think this wont fit your needs.
            the game is not working with Network Replicated on 4.24??!?

            Comment


              Originally posted by Supline View Post

              the game is not working with Network Replicated on 4.24??!?
              this has been discussed before, replication is broken with 4.24, it has bugs with 4.22-23 too, you should wait for the next release.

              Comment


                lazybitgames, "get current spline param" inside fgear autodrive is very useful to determine racer's position, and thats great. Is there anyway to implement same thing to player? I mean I can call the spline from fgearautodrive spline, and I can do many things but I dont know how did you calculate this number(is it actor's distance from spline point?). Thank you.

                edit: Ok I reply myself There is "get closest param" a special node on fgear spline. And it works.
                Last edited by mahlukat; 04-26-2020, 07:38 AM.

                Comment


                  i want to share some details about the replication progress, please share your thoughts.

                  it seems like this is a tough task, we have done a lot of reading and experimentation, basically for a server authoritative, responsive replication you need:
                  -server running the actual physics.
                  -a proper input synchronization with buffering.
                  -for the other players cars, receive transforms from server and interpolate(optionally use a dead reckoning technique).
                  -for your own car, run local physics to predict, when a correction comes from server, snap back or rewind and then replay.

                  it is not that hard in theory but client prediction seems difficult in practice. the problem could be physx, i have read about some attempts with the same techniques with physx and i have not seen a successful one yet(let me know if you have seen any). they are mostly abandoned or they used bullet engine like rocket league. in my experiments physx diverge a lot even with the same location and same forces, other bodies can change the course of simulation even if they are not interacted. in addition unreal engine does not use fixed time steps so it makes things a bit more difficult but fixed time steps does not help with physx as i have tested it on unity too.

                  so we are still working on it but this can take more time and we do not want to delay new versions. our plan is to give users 3 replication modes:

                  1-regular pawn replication : this what you currently get, has problems already. we only sync inputs, unreal does the rest. you will have 3 options for input sync:
                  • send a single unreliable input
                  • send a single reliable input
                  • send a buffer of unreliable inputs, do not clear the buffer until the input is acked back from server. this will use more bandwidth but protects you from bad network conditions.
                  2-client authoritative replication : this will have zero input latency, it will be like a local game for the player and server will send other cars transforms so you can show them smoothly. the three input sync options will be the same for the player. the downside is that this is completely open to hacking and one problem to solve in this technique is the collisions.

                  3-server authoritative replication : this is the actual technique to be implemented. for the next version we will include buffered input synchronization and interpolation but client prediction will not be available.

                  after the next release we will try to find a proper way to do the client prediction and make more bandwidth optimizations and bug fixes.

                  Last edited by lazybitgames; 05-03-2020, 05:44 PM.

                  Comment


                    Hi again lazybitgames , I'm sorry I dont understand so much about networking, so I cant help about networking.

                    May I ask a question? I couldnt find the way load tires in Blueprint... Is it not possible? There is "set tire model" node but you cant select any asset.

                    Comment


                      Originally posted by mahlukat View Post
                      Hi again lazybitgames , I'm sorry I dont understand so much about networking, so I cant help about networking.

                      May I ask a question? I couldnt find the way load tires in Blueprint... Is it not possible? There is "set tire model" node but you cant select any asset.
                      hi, it is supposed to be possible but there is a bug that prevents it.
                      to make it work:

                      1-find this line in FGearWheelOptions.h

                      Code:
                      void setTireModel(UFGearTire* t) { mTireModel = t; }
                      and replace with:

                      Code:
                      void setTireModel(UFGearTire* t);
                      2-add the following function in FGearWheelOptions.cpp

                      Code:
                      void UFGearWheelOptions::setTireModel(UFGearTire* t)
                      {
                          if (t)
                          {
                              mTireModel = t;
                              t->init();
                          }
                      }
                      3-compile and restart editor

                      4-use a BP like the following(it only changes the tire model of front axle):

                      Click image for larger version  Name:	bp.jpg Views:	0 Size:	75.5 KB ID:	1755149
                      Last edited by lazybitgames; 05-04-2020, 03:08 PM.

                      Comment


                        Originally posted by lazybitgames View Post

                        hi, it is supposed to be possible but there is a bug that prevents it.
                        to make it work:

                        1-find this line in FGearWheelOptions.h

                        Code:
                        void setTireModel(UFGearTire* t) { mTireModel = t; }
                        and replace with:

                        Code:
                        void setTireModel(UFGearTire* t);
                        2-add the following function in FGearWheelOptions.cpp

                        Code:
                        void UFGearWheelOptions::setTireModel(UFGearTire* t)
                        {
                        if (t)
                        {
                        mTireModel = t;
                        t->init();
                        }
                        }
                        3-compile and restart editor

                        4-use a BP like the following(it only changes the tire model of front axle):

                        Click image for larger version Name:	bp.jpg Views:	0 Size:	75.5 KB ID:	1755149
                        Thank you it works! Just one more question, I know its very wide-range question. But this is the most common problem of mine, at certain speed, I cant control the car anyomre, its sliding so much, no matter how much asphalt friction is... Steering assist, etc nothing is useful for that. Do you have any recommendation?

                        Comment


                          Originally posted by mahlukat View Post

                          Thank you it works! Just one more question, I know its very wide-range question. But this is the most common problem of mine, at certain speed, I cant control the car anyomre, its sliding so much, no matter how much asphalt friction is... Steering assist, etc nothing is useful for that. Do you have any recommendation?
                          define high speed, is it over 100, 200 or 300 kmh?
                          and define sliding, do you have understeering(the car can not turn) or oversteering(turn too much, spin out) problems?

                          Comment


                            Originally posted by lazybitgames View Post

                            define high speed, is it over 100, 200 or 300 kmh?
                            and define sliding, do you have understeering(the car can not turn) or oversteering(turn too much, spin out) problems?
                            After 150kmh +, I cannot control the car anymore. If I press left or right, car start to spin. And before that its hard to steer because even a tiny pressing of button car become very unstable.

                            Undesteer assist %25,
                            Oversteer %25.
                            ABS & ASR: %100
                            Min over steer angle 20
                            Front Rear Anti Roll power 0
                            Aerodynamics 0.8 and 0.2
                            Using line trace 3 raycount
                            Engine friction Torque 100, idle rpm 1200, limit rpm 6000, engine limiter time 100, inertia 0,25

                            I am also using arcade assist, understeer power is 100 and oversteer recover power is 1000, full recover assist speed 50

                            Comment


                              Originally posted by mahlukat View Post

                              After 150kmh +, I cannot control the car anymore. If I press left or right, car start to spin. And before that its hard to steer because even a tiny pressing of button car become very unstable.

                              Undesteer assist %25,
                              Oversteer %25.
                              ABS & ASR: %100
                              Min over steer angle 20
                              Front Rear Anti Roll power 0
                              Aerodynamics 0.8 and 0.2
                              Using line trace 3 raycount
                              Engine friction Torque 100, idle rpm 1200, limit rpm 6000, engine limiter time 100, inertia 0,25

                              I am also using arcade assist, understeer power is 100 and oversteer recover power is 1000, full recover assist speed 50
                              you are definitely overusing assists, for ex. you are both using regular stability assists that use brakes and arcade assists that apply external forces. it is obvious that you can not control the car with those settings.

                              cancel all assist, drive and detect what the car needs, do not expect to make sharp turns at 200 kmh.
                              try to get a good feeling by adjusting inertia scale, center of mass, tire and suspension settings first, keep it realistic.
                              if it is an rwd car, you can use the torque splitter in arcade assists or just give %5 traction to front wheels, it makes a slight difference.
                              unless you are making a totally arcade game, assists should be like small adjusters.

                              Comment


                                Hey lazybitgames bit of a request - Would it be possible to get a motorcycle sample vehicle with the next version?

                                Also a discord server would be nice

                                Comment

                                Working...
                                X