Sous le
capot.
Mes systèmes.
Mes choix techniques.
Faire cohabiter des actions concurrentes. Valider une intention. Adapter un monde à sa charge. Comment j’aborde ces problèmes.
J’ai développé ces systèmes dans arya_core, mon framework pour Control Studio. Du streaming à l’inventaire, je raconte mes choix techniques, du problème à l’implémentation, avec des schémas à explorer.
7 articles affichés
Adapter la population du monde à la pression du moteur.
J’ai développé un régulateur de population pour Control Studio : il observe les personnages réseau présents côté client, ajuste les multiplicateurs de densité et combine plusieurs seuils et temporisations pour relâcher la protection.
Comment je valide les actions de mon inventaire côté serveur.
Pour déplacer un objet, mon client envoie une intention. J’ai développé plusieurs contrôles côté serveur pour la confronter aux inventaires accessibles, à l’objet réellement présent et à l’état courant des données.
Comment je maîtrise la pression sur mon inventaire.
J’ai donné à mon inventaire des limites explicites : combien de demandes accepter, combien laisser attendre et combien exécuter. Le but est de garder la charge maîtrisable, même lorsqu’un joueur envoie une rafale d’actions.
Comment j’orchestre les opérations concurrentes de mon inventaire.
Dans l’inventaire de Control Studio, plusieurs joueurs peuvent agir sur les mêmes données. J’ai développé un ordonnanceur qui coordonne ces opérations par inventaire, tout en laissant avancer les actions indépendantes.
Comment je répartis le budget du streamer.
Pour l’ObjectStreamer, j’ai développé un budget qui tient compte des autres objets du jeu, une rétention bornée et des traitements répartis sur plusieurs frames. Voici comment ces mécanismes travaillent ensemble.
Comment je synchronise un monde qui change.
En développant la synchronisation de l’ObjectStreamer, j’ai dû traiter un cas précis : les données peuvent changer pendant que le client les charge. J’ai conçu un mécanisme de snapshots, de deltas et de réconciliation pour préserver ces changements.
Comment j’ai conçu l’ObjectStreamer.
J’ai développé l’ObjectStreamer de Control Studio pour gérer les objets du monde sans tout faire porter au client. Voici comment j’ai articulé le découpage spatial, la sélection par proximité et les limites du moteur dans arya_core.