Fred-el-Jolo/crazy-wars — pull request #1 by gcanu (2013-08-16 09:13:44+00:00)
Title: Model definition

J'ai un peu bossé cette nuit et la nuit dernière ! Voici les modifs que j'ai faite :
- intégration de requireJS
- modification des objets modèles et du serveur avec requireJS
- modification des obj. modèles pour en faire des obj. instantiables
- ajout d'un routeur (router.js) pour pouvoir déporter les actions (voir dossier /routes) commandées par les requêtes (plus facile à organiser !)
- pour exemple, j'ai mis un exemple d'"actions" (map.get.js) qui permet de déclencher du code pour la requête http://:/map

Quelques commentaires :
- l'utilisation de requireJS avec Node est très pratique. L'utilisation de l'inversion de contrôle et de l'injection de dépendances permet un code beaucoup plus structuré et facile à organiser...
- le ".get" dans le nom de fichier des "actions" (je ne sais pas si ce nom est parlant !) correspondant aux actions est là pour l'instant pour faire joli. Il n'y a pas encore de prise en charge des méthodes.
- Je pense qu'il vaudrait mieux découper encore en sous-dossiers le dossier "routes" afin d'éviter de le pourrir avec trop de fichiers, cela permettrait aussi de classer les actions en fonction de critères à déterminer...

Parcours le code et dis-moi si cela te convient, ou s'il y a des choses à revoir. Je suis totalement open pour un débat sur la structuration de l'appli !!!

Dernière chose : les choses ont pas mal avancé, le code que j'ai fait est fonctionnel. Il reste donc à développer :
- la partie client pour tracer le champ de bataille (hexagones + terrain), représenter les unités et faire l'UI
- déterminer les règles du jeu !!! Cela aura sans doute des conséquences sur les attributs des objets et leurs méthodes (je ne les ai volontairement pas développées pour cette raison).
- les actions côté serveur pour mapper les requêtes pour communiquer avec le client.
- l'arbitrage côté serveur pour vérifier les ordres de chaque joueurs. A ce propos, nous avons 2 possibilités : soit vérifier en live chaque ordre (plus simple à faire mais grand nombre de requêtes, risque de surexploitation du serveur, et de lag nuisant à la fluidité du jeu), soit vérifier tous les ordres en une seule fois (plus complexe à faire, mais une seule soumission des ordres du client)

A+