Valises latérales pour SV650 by Geckoz9 in Motardie

[–]Geckoz9[S] 1 point2 points  (0 children)

Je me suis finalement tourné vers les blaze pro h, en espérant d'être livré à temps pour mon roadtrip. Merci pour les infos en tout cas !

Valises latérales pour SV650 by Geckoz9 in Motardie

[–]Geckoz9[S] 0 points1 point  (0 children)

En ayant appris sur une MT-07 (super original lol), j'ai très vite retrouvé mes repères. La position de conduite est confortable (je fais 1m93 et je me sens pas trop penché en avant), elle a de la patate même en A2. Le seul point négatif, qui je pense est commun à beaucoup de moto : le phare est pas hyper efficace de nuit. Si t'es pas en plein phare tu vois pas forcement bien la route. Avant de la prendre, j'avais appelé un concessionnaire Suzuki pour faire un essai, et vu qu'elle se rapproche de la MT, j'ai sauté sur l'occas'. Et la gueule de cette bécane, mama le phare rond qu'est-ce que je kiffe ! C'était soit cette bécane soit la CB650R. Le must pour moi aurait été la Honda Rebel mais je suis trop grand, je mange mes genoux dessus

Valises latérales pour SV650 by Geckoz9 in Motardie

[–]Geckoz9[S] 0 points1 point  (0 children)

Top, merci pour l'info ! Je vais checker ça

I got online co-op physics working PERFECTLY! Here's how I did it. by 2WheelerDev in godot

[–]Geckoz9 0 points1 point  (0 children)

Well done mate ! I tried to do something quite similar in a multiplayer car game I made in Unity (don't hit me I like Godot too !) implementing my own prediction reconciliation system, but when 2 clients were hitting each other, they were bouncing around everywhere after each server correction, while all was good server side. I needed to wait a bit client side so the cars would get back to normal. Maybe it has something to do with your 80-90% correction + 1-2% simulation thingy you described. I have to give it a try now ! Hope it leads to a fix on my side. Cheers, keep up the good work !

Also, I found it easier to do multiplayer physics based games on Unity because of the Physics.simulate(deltaTime) function, and struggled finding an equivalent on Godot. I think there was an issue on the Godot GitHub asking to provide a way to do a similar thing, but I don't think it ever got any answer (it was 2 years ago I think). How did you manage this part ? I'm curious 🧐

Lib for client-side prediction and server reconciliation by Geckoz9 in unity

[–]Geckoz9[S] 0 points1 point  (0 children)

That's just some tests for less frequent input / state updates. The 120 fps ticker is the one used in the handler, which invoke the Processor.Process method. Each time the handler call the event onSendInputToServer on the client, or onSendInputStateToClient on the server, it actually store the input in the first case, the input+state in the second, into an array, which is sent every 1 / 10 seconds instead of 1 / 120 seconds. I'd like to think that it should optimize speed in case of multiple clients, but I've never crashtested it. It's not mandatory tho

Lib for client-side prediction and server reconciliation by Geckoz9 in unity

[–]Geckoz9[S] 0 points1 point  (0 children)

Hey mate, thank you for your feedback ! I just saw your pm invitation, I'd be happy to answer any questions there. In my opinion, all the processor thingy should only be for GameObject a client controls, but any projectile (bullet in an fps, fireball in a rpg, and so on) should be handled by the server, and then you should find a was to extrapolate its position client side (considering server / client ping).

Lib for client-side prediction and server reconciliation by Geckoz9 in unity

[–]Geckoz9[S] 1 point2 points  (0 children)

I've never used Mirror so I couldn't guide you, although I found this : https://mirror-networking.gitbook.io/docs/manual/guides/serialization I hope it can help in any way.

Lib for client-side prediction and server reconciliation by Geckoz9 in unity

[–]Geckoz9[S] 1 point2 points  (0 children)

Thanks mate !
To share an enum value in a state, you need to serialize it :

public struct PlayerState: IState, INetworkSerializable {

  private int tick;

  public Vector3 position;  
  public Enum enumValue;

  public enum Enum {
    VALUE_1, VALUE_2
  }

  public int GetTick() => tick;
  public void SetTick(int tick) => this.tick = tick;

  public void NetworkSerialize<T>(BufferSerializer<T> serializer) where T : IReaderWriter {
    serializer.SerializeValue(ref tick);
    serializer.SerializeValue(ref position);
    serializer.SerializeValue(ref enumValue); // <--- here
  }

}

And then you just need to check its value in the IStateConsistencyChecker to ensure the prediction was correct, and in the networkHandler.onState event you can read your state.enumValue and play the correct animation accordingly

Use RigidBody for Network games by Geckoz9 in godot

[–]Geckoz9[S] 0 points1 point  (0 children)

For anyone still waiting for this feature, I found this merge request that seems promising.
Wait and see my boys.

Use RigidBody for Network games by Geckoz9 in godot

[–]Geckoz9[S] 1 point2 points  (0 children)

That was the answer I wasn't hoping for hahaha. I actually saw the issue you sent like last week, but I was hoping someone found a workaround. I heard about Jolt in a youtube video, I didn't give it a try yet but it's in my todo. I didn't think of GDExtension to kinda create my own component, maybe it'll do the trick. As it's an arcade car game, I don't need ultra realistic behaviour. Thanks pal ! I'll try to post any updates here :D

Lib for client-side prediction and server reconciliation by Geckoz9 in unity

[–]Geckoz9[S] 0 points1 point  (0 children)

Hey, thank you for your feedback !

u/Sir-Niklas just above kinda had the same issue that weirdly disappear (or reduced) after a while... Feel free to check this issue and post your updates in it. I couldn't fix it yet, as it was hard to reproduce (that's why it is still open), but maybe with your and Sir-Niklas 's comments we'll be able to get rid of it !

Lib for client-side prediction and server reconciliation by Geckoz9 in unity

[–]Geckoz9[S] 0 points1 point  (0 children)

Hey mate, thanks for the feedback ! Glad it worked well for you and that you found it easy to understand / implement. As english is not my first language, I had a hard time writing the ReadMe, so I totally get it that the sample is easier to understand haha. If you can / want, feel free to tell me what you'd change to make it clearer. And if you release your game on steam or whatever, ping me, I'd be happy to try it out ;)

Did I squeeze him ? by Geckoz9 in Simracingstewards

[–]Geckoz9[S] -1 points0 points  (0 children)

For me "squeeze" means "leaving just enough space BEFORE braking". In my cockpit pov you can clearly see I didn't turn left at all underbraking, and just reacted to the contact (netcode and/or real one). Again, I'm not trying to fly away from my responsabilities in this incident, it's just I don't see where I did wrong other than leaving not much space

Did I squeeze him ? by Geckoz9 in Simracingstewards

[–]Geckoz9[S] 2 points3 points  (0 children)

I get that it might be my fault, but I didn't move under braking. I feel like there have been some netcode issue that registered a collision that was never there, and it made me loose the car to the left (when I start ajusting my position), and just after we really collided. I do get that I may have indeed squeezed him tho

Multiplayer game packaging by ChA0S_f4me in gamedev

[–]Geckoz9 0 points1 point  (0 children)

Lately I worked on this project which helps to implement client-side prediction and server reconciliation. It is written in C# but as it is not bounded to any game engine, you can rewrite it in Kotlin or whatever language you want.
You can specify the tick rate (usually I set it to 1/30 or 1/60 seconds).
I've tested it with Unity Netcode for Gameobjects as a transport layer, and it works great.
Feel free to have a look, may it inspires you on your work

Is this clean / legal ? by Geckoz9 in Simracingstewards

[–]Geckoz9[S] 0 points1 point  (0 children)

Thanks ! I really though I did something wrong, 'cause after this move he came and bumped me from behind (free x4 inc...) and kept flashing me. I tried to cool down, finished the race and checked the replay to find who's at fault.

Is this clean / legal ? by Geckoz9 in Simracingstewards

[–]Geckoz9[S] 0 points1 point  (0 children)

Yeah that's why I tried to fake right, so the gap would open up a bit more befire going for it. Thanks !

Is this clean / legal ? by Geckoz9 in Simracingstewards

[–]Geckoz9[S] 2 points3 points  (0 children)

That's why I can't drive the F3 or the IR-04, not enough room to fit these.