26-04-2012, 07:22 PM
(26-04-2012, 05:04 PM)niahoo a écrit : Quand tu prends une quête tu l'indiques dans la base de données, etc… sur ce point y a pas trop de changement, si ce n'est que la base de données peut servir simplement de backup alors que tu gardes ces infos en RAM pour les persos connectés.
Tu utilises quoi comme base de données ? Mnesia ? Tu as des articles sur la question ? Tu écris les données en base au fur et à mesure ou bien une fois de temps en temps (en récupération d'erreur, notamment) ?
(26-04-2012, 05:04 PM)niahoo a écrit : Bon ben déjà j'utilise le framework OTP, j'intègre tous mes processus dans un arbre de supervision, ce qui permet de récupérer mes morceaux en cas de crash.
Je t'avoue que je n'ai pas encore abordé OTP et les outils qu'il fournit.
(26-04-2012, 05:04 PM)niahoo a écrit : Un processus par joueur pour garder son State depuis le serveur ça me paraît pas mal. Ça te permet de créer un objet (au sens primaire) pour encapsuler ce State et gérer les interactions du joueur avec l'extérieur.
Le plus chiant étant d'éviter les deadlock quand tu vas demander à ton process de discuter avec d'autres process.
Quels deadlocks ? Erlang n'est pas supposé éviter ça ?
(26-04-2012, 05:04 PM)niahoo a écrit : Je te conseilles de regarder les records (et si tu surmontes la syntaxe tu es bon pour erlang), car taper des tuples c'est un peu chiant.
Ouais j'ai vu ça. Mais du coup je me demande quand utiliser de simples records, des record Mnesia, ou des dictionnaires, voir même d'autres trucs qui existent.
(26-04-2012, 05:04 PM)niahoo a écrit : Tu ne stockes pas le PID du player à la places de son id car si son process crash, quand le superviseur le relancera il aura changé de pid. Il te faut donc un système qui relie les id aux pid et qui soit tenu à jour
Qu'est-ce que tu suggères pour s'occuper de ça ?