Future Arena

Future Arena

Moteur : Unreal Engine 4
Platforme : PC

Description :

L'idée pour moi était de faire un maximum de features autour d’un FPS compétitif, mais aussi de voir un peu plus le moteur réseau d’Unreal Engine 4 et ce qui pouvait se faire en backend.

Tirs :

J'ai réalisé un plugin d'armes à feu qui fonctionne en réseau. Pour palier au problème de lag input ressenti par le joueur et dû au système client/serveur, j'ai opté pour dissocier la balle physique du FX, ce qui me permet de réaliser uniquement le visuel sur le client dès la pression de touche. Le serveur, lui, va réaliser la physique de la balle pour détecter les collisions avec l’environnement etc.
Mon plugin permet à un designer de créer des armes uniquement avec des Data asset sur unreal donc sans devoir passer par un dev. Il peut donc éditer son type d'armes en passant par ses modes de tirs disponibles jusqu'au pattern de recul.

Un Data Asset pour exemple :

Backend :

Pour l'identification des joueurs, les données utilisateurs, leurs historique de parties etc..., J'ai créé un serveur ASP.net et une base de données SQL.
Les scores de parties et historiques sont créés et envoyés par le serveur dédié sur lequel les joueurs se sont affrontés. Pour finir j'ai ajouté la possibilité aux joueurs de renseigner les bugs rencontrés directement depuis le jeu.

Matchmaking et serveur dédié :

Pour que mes joueurs puissent se rencontrer, j'ai créé un serveur de matchmaking en TCP. Côté serveur ce n'était pas un problème ni même compliqué. Côté clients j'ai dû faire une stack réseau custom et du multithreading pour l'échange de messages entre ce serveur TCP et le client. Ultra intéressant, mais vraiment pas cohérent, possible de faire bien mieux en backend avec un système de ticket.

Animations :

Utilisation des blends tree et de l'IK pour adapter mes animations d'armes avec les personnages.

Mode de jeu :

Un seul mode de jeu, capture de drapeaux par équipe, avec la possibilité de voler le drapeau de l'équipe adverse et de le ramener sur sa base pour obtenir des points. Mais aussi de récupérer son drapeau sur le cadavre du voleur. Lorsqu'on meurt on réapparait après un certain temps. Durant celui-ci on peut observer la partie avec un mode spectateur.

Autres :

J'ai aussi fait un peu d'UI, travaillé sur un tableau de score et d'historique de partie etc... mais je ne trouve pas pertinent d'en parler ici.