brnFrss 👨‍💻
banner
brnfrss.bsky.social
brnFrss 👨‍💻
@brnfrss.bsky.social
iOS dev by day👨‍💻 Indie GameDev by night 🎮🦸‍♂️ Currently working on a multiplayer platform mobile game 🟩
Another piece of good news??

Once the tutorial is up and running, I'll be able to offer a beta 🥳🥳🥳

#MobileApp #iOS #Android #Tuto #Onboarding #Game #IndieGame #GameDev
May 24, 2025 at 11:26 AM
Having been in development for so long, everything seems so logical to me that I sometimes have trouble putting myself in the shoes of someone who's new to everything.
May 24, 2025 at 11:26 AM
The upside?

I had to add a visual indicator so as not to lose the player during a game and to be able to explain how a game mechanic works much more easily.
May 24, 2025 at 11:26 AM
It's almost been two weeks since I've been working on nothing else. I've been testing, having others test, and then starting again.

And what's more?
All the tutorial code is practically disposable because it's single-use.
May 24, 2025 at 11:26 AM
And all of this

- Without it being too long
- Being as clear as possible
- Without it feeling like an onboarding (which everyone skips without reading 🫥)
- Making sure the game mechanics are mastered before moving on
May 24, 2025 at 11:26 AM
During the tutorial, you have to succeed in:

- Interesting the player
- Teaching them the game mechanics
- Establishing the world in which the game takes place
- Making sure that even people who skip the dialogues without reading them can understand everything
May 24, 2025 at 11:26 AM
Mais pour un jeu fluide et jouable, c’est largement suffisant. 💪
#DevLog #GameDev #Multiplayer #NodeJS #GameMaker #Latency #Interpolation #ClientPrediction #Networking #SoloDev
April 30, 2025 at 8:40 AM
Mais grâce à ça, je suis toujours au plus proche de la réalité.
Et honnêtement ?

Je ne suis pas sûr de pouvoir faire beaucoup mieux, surtout en solo. 🤓
April 30, 2025 at 8:40 AM
Le joueur se déplace de façon fluide, et on rattrape doucement la vérité, sans à-coups.
(Vous suivez toujours ?)

Et je répète ça à chaque mise à jour, à chaque mouvement.

Donc non, je n’ai jamais la vraie position exacte du joueur distant.
April 30, 2025 at 8:40 AM
Au lieu de le téléporter à la bonne position, puis de le déplacer vers le haut, je calcule plutôt une trajectoire lissée entre sa position actuelle erronée et sa destination correcte.

Résultat :
April 30, 2025 at 8:40 AM
Un joueur, sur mon client, est à un point (x, y)

Le serveur me dit qu’en réalité, il est à un autre point (x2, y2) et qu’il doit se déplacer disons de 50 pixels vers le haut.
April 30, 2025 at 8:40 AM
Et là… j’ai redécouvert un concept oublié depuis longtemps

✨ L’interpolation linéaire. ✨

Si je vulgarise un peu :
April 30, 2025 at 8:40 AM
Mais :

1- Ça surcharge le serveur très rapidement
2- Et surtout, les déplacements deviennent saccadés — avec des joueurs qui se “téléportent” pour retrouver leur vraie position

Bref, ça ne me convenait pas.
April 30, 2025 at 8:40 AM
Bien sûr, je pourrais simplement renvoyer régulièrement les positions x/y au serveur et les redistribuer à tous les autres joueurs.
April 30, 2025 at 8:40 AM
Au lieu de chercher la solution magique qui résoudrait tout en une fois, j’ai préféré traiter point par point.

Le premier problème auquel je me suis attaqué à résoudre :

“Comment afficher la position des autres joueurs de la manière la plus juste possible ?”
April 30, 2025 at 8:40 AM
•Pour le rendu visuel
•Pour la gestion des collisions
•Pour les interactions avec les ennemis
•Pour les items à ramasser

Etc etc etc
April 30, 2025 at 8:40 AM
Le joueur qui se déplace sur mon écran ne sera pas exactement au même endroit sur le téléphone d’un autre joueur à cause de la latence.
Et ça, c’est problématique à plein de niveaux :
April 30, 2025 at 8:40 AM