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.
Hi @mahlukat,
Also you can increase a variable during drifting. I used a method like this:
FVector v = mVehicle->GetVelocity();
FRotator r = mVehicle->GetActorRotation();
float latVelocity = r.UnrotateVector(v).Y;
bool bDrifting = (FMath::Abs(latVelocity) > MIN_SPEED_FOR_DRIFT) && (mVehicle->getTransmission()->getCurGear() > 0);
You can try this demo if you have android device : TireBurner-Android-Shipping-armv7-es2.apk - Google Drive
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
hi, thanks for the purchase.
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()
Thank you very much for your prompt response.
Since I do not have any experience in C++ is this what you mean ?
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.
Than
Thank you very much works like a charm!
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?
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?
can not give a timeline but two weeks is not possible, we are hoping to release next version before june.
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.
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.
@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.
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
void setTireModel(UFGearTire* t) { mTireModel = t; }
and replace with:
void setTireModel(UFGearTire* t);
2-add the following function in FGearWheelOptions.cpp
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):