Sorry to disturb again, maybe it was my mistake but i couldnt understand the relationship between current drift and total drfit, since we are not adding current drift to total drift at the end? This way we have 2 independent drift value, increasing independently.
yes you are right, i was using the two for different purposes, current drift shows the distance traveled while drifting, total drift is a score value depending on angle and speed. you can change it anyway you like.
Hello! I bought the plugin a couple of days ago. I was surprised pleasantly from the quality! Just 2 quick questions:
I am using FMOD for sounds. The Effects system that lets you handle skid sound per surface is really cool but it is really limiting in terms of the sounds you can actually use because the modulation is already built in. When I am using my samples there they sound like a puppy growling.How can i get the amount of wheel spin? I tried getting the longt. slip bu it hives me really wierd values, especially on high speeds.
2)When I am trying to get the wheel variables in blueprints I am getting a warning :
âWheel0 is not BlueprintVisible blah blahâ yet it returns values. Is that gonna be a problem in a built game? And if that is the case how else can I access wheel variables?
Thank you
1-the effect system is a demonstration, you are recommended to build your own.
try the same values used in effects component like below:
//longitudinal slip
float lngSlip = FMath::Abs(wheel->getSlipRatio()) * FMath::Min(1.0f, FMath::Abs(wheel->getLongitudinalSlip()));
//lateral slip
float latSlip = FMath::Abs(wheel->getSlipAngle()) * FMath::Min(1.0f, FMath::Abs(wheel->getLateralSlip()));
//
//then trigger over a threshold value
//
2-there are getters for nearly everything, you can observe the sample BPs or lookup the source code. for ex. to get front-left wheel you need call sth like Vehicle.getAxle(0).getLeftWheel()
yes, that is the same as the c++ code.
check these variables against some threshold value and if the wheels have contact with the ground (Wheel.hasContact) then you can trigger sound and/or particle effects.
Hello,
I tried multiplayer in 4.24 and it is unplayable. My whole game is built on 4.24, moving it to 4.22 should only work only for some of the assets and the rest has to be rewritten. Are there plans to get rid of that jittery heartbeat soon?
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.
@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.
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.