J'ai récemment décidé de commencer à écrire un moteur pour un jeu de cartes. Je ne suis pas un grand joueur de "cartes", mais un ami m'a présenté le jeu (c'est un tour sur le jeu danois), et je suis tombé amoureux.
Je souhaite développer le jeu en 3 segments:
- Le moteur de base, gère les cartes / decks / gamestate, etc.
- Une interface utilisateur (sous la forme d'une application Web mobile / de bureau.)
- Une intelligence artificielle aux stratégies / difficultés diverses, etc.
Ce sont des projets très distincts, dans mon esprit ... et j'ai du mal à voir comment ils s'intégreront tous à long terme. Au début, je ne veux même pas pouvoir "jouer" le jeu en utilisant le moteur. Le moteur sera principalement testé par ses tests unitaires. Le test de lecture ne démarre pas tant qu'un client n'existe pas. Il y a donc ici une relation client-serveur.
Le moteur est une très grande pièce du puzzle. Ce que je voudrais savoir, c'est: comment feriez-vous pour développer "l'API publique" pour ce moteur?
Je pensais que le moteur pourrait être un service Web très basique, qui renvoie son état via des requêtes à une API RESTful, mais je crains que le développement du moteur lui-même en tant qu'application Web puisse conduire à de mauvaises décisions de programmation. (Par exemple, si je choisis un micro-framework MVC, eh bien, cette API n'aurait pas vraiment de vues ... elle renvoie simplement des objets sérialisés via JSON, ou quelque chose dans ce sens. Est-ce mauvais d'utiliser MVC pour un service comme ce? )
Mon autre idée était que le moteur ne serait qu'une application console, et j'écrirais plus tard un pont quelconque pour diriger les données entre celui-ci et l'application Web. (Le pont pourrait vraiment être n'importe quoi. Je veux dire, le serveur Web et le moteur de jeu pourraient tous deux être inactifs sur un serveur IRC et partager leur état sur des canaux.)
Quelle approche adopteriez-vous (développer en tant que service Web, ou développer en tant qu'application autonome et la relier plus tard), et pourquoi?
Merci, Robbie.
EDIT: Donc je suppose que cela appartient au développement de jeux. Pour clarifier, je vais écrire un moteur de jeu de cartes. J'essaie de trouver la meilleure façon d'exposer l'API du moteur afin qu'elle puisse être intégrée à l'avenir avec un client Web et un client AI.
Je n'avais même pas de compte ici, alors salut :)