Le programmeur réseau, ou online programmer, écrit le netcode : réplication de l'état, prédiction côté client, compensation de la latence, protocole au-dessus d'UDP. Selon le poste, il s'occupe aussi des serveurs dédiés, du matchmaking et des services en ligne. Pour bâtir vos questions d'entretien de programmeur réseau de jeu vidéo, séparez ces deux moitiés : la simulation en temps réel d'un côté, l'hébergement et les services de l'autre. Les offres les mélangent souvent sous un seul titre.
Beaucoup de profils ont fait du multijoueur avec la réplication d'Unreal ou Netcode for GameObjects de Unity sans jamais descendre au niveau du paquet. C'est une bonne base. Un poste réseau demande en plus de savoir pourquoi un RPC fiable envoyé à chaque frame bloque la connexion, ce que devient une entrée perdue et comment le serveur juge un tir avec 120 ms de latence. Les profils venus du back-end web connaissent les services, rarement la simulation à tick fixe.
Parlez de conditions réseau dégradées. Demandez ce que la personne a testé avec Clumsy, l'émulation réseau d'Unreal ou un outil équivalent, à quelle latence et avec quel taux de pertes. Le PDF couvre six axes, de la réplication à l'anti-triche, avec un cas sur un mode coopératif.
Moteurs, protocoles et services d'un programmeur online
UDP et protocole maison
La plupart des jeux temps réel envoient leurs données en UDP, avec une couche maison par-dessus : numéros de séquence, accusés de réception, renvoi réservé aux messages qui doivent arriver. TCP bloque tous les messages derrière un paquet perdu, ce qui gêne un jeu d'action. Le programmeur réseau doit savoir ce que sa couche garantit et ce qu'elle ne garantit pas.
Réplication d'Unreal Engine et Iris
Le serveur fait autorité et réplique les propriétés des acteurs vers les clients, avec des RPC Server, Client et NetMulticast. La pertinence, la priorité et la dormance limitent ce qui part sur le réseau. Iris, le nouveau système de réplication, déclaré prêt pour la production dans Unreal Engine 5.8, s'active à côté du système historique, qui reste celui par défaut. Unreal Insights mesure la bande passante par acteur et par propriété.
Netcode for GameObjects et Netcode for Entities
Les deux solutions réseau de Unity. Netcode for GameObjects vise surtout les jeux coopératifs et les petits effectifs ; Netcode for Entities, bâti sur DOTS, intègre la prédiction côté client pour des parties plus chargées. Les CV citent aussi des bibliothèques tierces comme Mirror, FishNet ou Photon Fusion.
Prédiction, réconciliation et interpolation
Le client applique ses propres entrées tout de suite, garde celles que le serveur n'a pas encore confirmées et les rejoue quand l'état officiel arrive. Les autres joueurs sont affichés avec un léger retard, interpolés entre deux états reçus. C'est la base du métier, quel que soit le moteur.
Lag compensation et rollback
Dans un jeu de tir, le serveur remonte le temps pour juger un tir là où la cible se trouvait sur l'écran du tireur. Dans un jeu de combat, le rollback, popularisé par GGPO, prédit les entrées de l'adversaire et recalcule les frames quand la vraie entrée arrive. Il suppose une simulation déterministe et rapide à rejouer.
Serveurs dédiés et orchestration
Les parties tournent sur des serveurs dédiés, dans le cloud ou dans des centres de données en propre. Amazon GameLift Servers, Agones sur Kubernetes ou une solution maison démarrent les instances, les répartissent par région et les arrêtent quand la demande baisse. Le programmeur réseau doit au moins savoir ce que son serveur consomme en CPU et en mémoire par partie.
Services en ligne et matchmaking
Comptes, amis, sessions, matchmaking, classements, sauvegardes en ligne. Les équipes s'appuient sur Epic Online Services, Steamworks, les services des consoles, FlexMatch chez AWS, ou un back-end maison en C#, Go ou Java. Les règles de certification des consoles (les TRC citées dans les offres) imposent des comportements précis en cas de perte de connexion.
Simulation et mesure du réseau
Clumsy sous Windows, l'émulation réseau d'Unreal, tc et netem sous Linux, Wireshark pour lire les paquets. Ces outils ajoutent latence, gigue et pertes pour tester le jeu dans des conditions proches de celles des joueurs. Un candidat confirmé sait quelles valeurs il teste et pourquoi.
Les intitulés varient : programmeur réseau, online programmer, network programmer, programmeur gameplay réseau, ou développeur back-end jeu vidéo quand le poste porte sur les services. Côté jeu, la personne écrit du C++ ou du C# dans le moteur, aux côtés des programmeurs gameplay qu'elle aide à rendre leurs mécaniques compatibles avec le réseau. Côté services, elle travaille avec l'équipe infrastructure sur des API, des bases de données et l'hébergement des serveurs. Sur console, la conformité aux règles de certification réseau fait partie du travail. Avant l'entretien, faites préciser par le manager laquelle des deux moitiés pèse le plus, et pondérez les axes de la grille en conséquence.
Les compétences netcode à contrôler en entretien
- Réplication et autorité du serveur
- Prédiction côté client et réconciliation
- Lag compensation, interpolation et rollback
- Protocoles UDP et bande passante
- Serveurs dédiés, matchmaking et montée en charge
- Sécurité réseau et anti-triche côté serveur
Cinq cas de netcode à soumettre à un programmeur réseau
Chaque question vient avec ce qu'une bonne réponse contient et le signal qui doit vous alerter. Pas besoin d'être technique pour les poser : écoutez si le candidat raconte du vécu.
Question 1 · confirmé
Avec 150 ms de latence, le joueur avance et son personnage revient en arrière par à-coups toutes les secondes. Qu'est-ce qui ne va pas ?
Une bonne réponseLa prédiction du client et la simulation du serveur divergent, et chaque correction ramène le personnage en arrière. Il vérifie que les entrées sont numérotées, que le serveur renvoie le numéro de la dernière entrée traitée et que le client rejoue les entrées non confirmées après avoir appliqué l'état reçu. Puis il cherche la cause de la divergence : pas de temps différent entre client et serveur, calcul qui dépend du framerate, entrées perdues, collision absente côté client.
Signal d'alerteAugmenter la fréquence d'envoi, ou faire confiance à la position envoyée par le client pour supprimer les corrections.
Question 2 · confirmé à senior
Un joueur tire sur une cible qui court, voit l'impact sur son écran, et le serveur refuse le tir. Comment le serveur doit-il juger ?
Une bonne réponsePar compensation de latence. Le serveur garde l'historique des positions des hitbox sur quelques centaines de millisecondes, remonte au moment vu par le tireur (sa latence plus le retard d'interpolation de son client) et teste le tir à cet instant. Il borne ce retour en arrière pour limiter l'avantage des connexions très lentes, et assume l'effet de bord : la cible peut être touchée alors qu'elle est déjà à couvert sur son propre écran.
Signal d'alerteLaisser le client décider seul que le tir a touché, ou tester toujours la position actuelle de la cible, ce qui rend le tir injouable avec de la latence.
Question 3 · confirmé
Un programmeur gameplay envoie un RPC fiable à chaque frame pour transmettre la visée du joueur. En ligne, le jeu se bloque au bout de quelques minutes. Que lui expliquez-vous ?
Une bonne réponseUn message fiable reste en mémoire jusqu'à son accusé de réception et repart en cas de perte. Envoyés à chaque frame, ces messages remplissent la file et bloquent la connexion dès que le réseau perd quelques paquets. Une visée qui change en continu passe par un envoi non fiable, ou par une propriété répliquée dont seule la dernière valeur compte, à fréquence limitée et quantifiée. Le fiable reste pour les événements qui doivent arriver une fois : ouvrir une porte, acheter un objet.
Signal d'alerte« On passe tout en fiable pour être tranquille », ou aucune différence faite entre un état et un événement.
Question 4 · senior
Votre jeu de combat en ligne utilise le rollback. Une partie se désynchronise entre deux joueurs au bout de deux minutes. Comment cherchez-vous ?
Une bonne réponseLe rollback suppose que les deux machines calculent exactement le même résultat à partir des mêmes entrées. Il ajoute une somme de contrôle de l'état à chaque frame confirmée, échangée entre les joueurs, pour dater la première divergence, puis compare les états sauvegardés à cette frame. Causes fréquentes : virgule flottante qui diffère selon le compilateur ou le processeur, ordre d'itération non déterministe, tirage aléatoire non synchronisé, variable oubliée dans la sauvegarde d'état.
Signal d'alerteRenvoyer régulièrement tout l'état pour corriger sans comprendre, ou ne pas savoir ce qu'implique le déterminisme.
Question 5 · confirmé à senior
La bande passante d'un serveur à 64 joueurs dépasse le budget. Par quoi commencez-vous ?
Une bonne réponsePar la mesure : quels acteurs et quelles propriétés consomment, avec Unreal Insights ou les compteurs du protocole. Ensuite la pertinence (ne pas envoyer ce qui est loin ou caché), la priorité et la fréquence selon la distance, la dormance pour les objets immobiles, la compression delta par rapport au dernier état confirmé et la quantification des positions et des rotations.
Signal d'alerteBaisser le tick rate du serveur pour tout le monde sans savoir ce qui consomme.
Recevez la fiche d'entretien complète en PDF
La fiche pour mener l'entretien de bout en bout, prête à imprimer ou à partager avec le manager.
- 30 questions sur 6 axes, avec la bonne réponse, le signal d'alerte et la relance
- Le niveau visé pour chaque question
- Une mise en situation de 20 minutes et ce qu'on attend du candidat
- La grille d'évaluation de 1 à 4, axe par axe
Programmeur réseau de jeu vidéo : ce que demandent les recruteurs
Quelle différence entre un programmeur réseau et un développeur back-end de jeu vidéo ?
Le programmeur réseau travaille dans la simulation du jeu : réplication, prédiction, compensation de latence et protocole, en C++ ou en C# dans le moteur. Le développeur back-end écrit les services autour : comptes, matchmaking, inventaires, classements, souvent en C#, Go ou Java avec des bases de données et du cloud. Certaines offres d'online programmer couvrent les deux. Relisez la fiche de poste avec le manager et choisissez les axes de la grille en fonction.
Le multijoueur sous Unreal suffit-il pour un poste réseau ?
Souvent, s'il est allé plus loin que cocher des propriétés répliquées. Vérifiez qu'il sait expliquer la propriété d'un acteur et le refus d'un RPC, la prédiction d'un mouvement, la dormance et la mesure de la bande passante dans Unreal Insights. S'il ignore ce que devient un paquet perdu ou pourquoi le mouvement saccade avec de la latence, comptez une longue montée en compétence sur le poste.
Un test technique est-il utile pour un programmeur réseau de jeu vidéo ?
Un exercice court pendant l'entretien vaut mieux qu'un projet à rendre. Par exemple, un petit jeu en réseau local fourni : la personne ajoute de la latence et des pertes avec Clumsy, puis explique et corrige ce qui casse. Un schéma de protocole à compléter au tableau fonctionne aussi. Certains studios ajoutent un exercice d'algorithmique sur une plateforme comme CodinGame, qui ne remplace pas une question de netcode.
Quelle place donner au cloud dans l'évaluation ?
Pour un poste centré sur le netcode, il suffit de savoir ce que consomme un serveur dédié et comment il démarre. Pour un poste online qui inclut l'hébergement, ajoutez les conteneurs, Kubernetes ou un service comme Amazon GameLift Servers, la répartition par région et la supervision. Demandez combien de parties tournaient par machine sur le dernier projet, et comment la personne a obtenu ce chiffre.
Pour structurer vos autres entretiens, consultez aussi nos pages sur les questions d'entretien de recrutement, la méthode de l'entretien structuré et la grille d'évaluation d'entretien.




