25-07-2019, 08:10 PM
(Modification du message : 03-08-2019, 05:45 PM par Sephi-Chan.)
Bonjour !
Je relance un projet qui me trotte dans la tête depuis des années, que j'ai maintes fois tenté et maintes fois échoué.
Illustration d'une Seelies par Harparine.
Seelies est un jeu de stratégie proche d'un jeu de plateau dans lequel plusieurs équipes s'affrontent jusqu'à ce qu'il n'en reste plus qu'une. Une partie peut donc durer plusieurs semaines.
Le plateau de jeu forme un graphe : les nœuds sont des territoires et les arêtes des routes entre ceux-ci. Les polygones formés par les arêtes du graphes sont des zones. Chaque zone dispose de plusieurs gisements de ressources que seuls les territoires adjacents peuvent exploiter (et donc concourir à épuiser). Les ressources végétales se renouvellent en permanence alors que seuls des événements aléatoires permettent de renouveler les ressources minérales.
Les territoires peuvent être aménagés et les unités équipées, mais aucun des deux n'appartiennent à une équipe : elles sont temporairement sous le contrôle de l'équipe qui possède le territoire. Les bâtiments peuvent faciliter la défense du territoire, augmenter sa capacité de stockage ou améliorer la production des unités.
Pour exploiter les ressources, les déplacer et pour combattre, les joueurs commandent des unités, qu'ils peuvent réaffecter à l'envie selon leurs forces et leurs faiblesses à la tâche (efficacité à collecter tel ou tel type de ressources, rapidité à transporter, grande capacité de transport, efficacité au combat, etc.). Ces unités apparaissent dans les zones : pour les recruter, les joueurs peuvent les appâter avec de la nourriture : l'unité rejoint alors le territoire le plus offrant.
Les combats sont automatisés : les unités agissent par ordre de rapidité, les joueurs peuvent seulement indiquer pour chaque unité quelles cibles elle doit attaquer en priorité.
On gagne par la conquête militaire, mais le commerce et la diplomatie peuvent être mis à profit : on peut échanger des ressources, capturer les convois adverses ou au contraire laisser passer ceux d'équipes alliées (en taxant éventuellement les ressources transportées), etc. Les interactions sont notifiées aux joueurs des équipes concernées pour leur permettre d'intervenir, et des règles peuvent être programmées pour réagir en cas d'absence.
Côté ambiance, l'action se déroule dans un univers végétal fantastique. Les joueurs y incarnent des Seelies : des créatures magiques de la forêt. Les unités contrôlées sont des insectes.
Sur le plan technique, le serveur est codé en Elixir et utilise une architecture CQRS/ES. Je pratique le développement piloté par test, donc je m'assure que tous les mécanismes fonctionnent en isolation. L'application prend ensuite la forme d'un daemon, qu'on peut
piloter par un REPL ; sans aucun lien avec un serveur Web. Le code est disponible sur GitHub.
Pour le client, je ne sais pas encore. Probablement dans le navigateur (car la gestion du réseau en Lua/LÖVE m'a un peu gonflée). Peut-être quelque chose en mode texte initialement, juste pour voir le système "vivre".
Je relance un projet qui me trotte dans la tête depuis des années, que j'ai maintes fois tenté et maintes fois échoué.
Illustration d'une Seelies par Harparine.
Seelies est un jeu de stratégie proche d'un jeu de plateau dans lequel plusieurs équipes s'affrontent jusqu'à ce qu'il n'en reste plus qu'une. Une partie peut donc durer plusieurs semaines.
Le plateau de jeu forme un graphe : les nœuds sont des territoires et les arêtes des routes entre ceux-ci. Les polygones formés par les arêtes du graphes sont des zones. Chaque zone dispose de plusieurs gisements de ressources que seuls les territoires adjacents peuvent exploiter (et donc concourir à épuiser). Les ressources végétales se renouvellent en permanence alors que seuls des événements aléatoires permettent de renouveler les ressources minérales.
Les territoires peuvent être aménagés et les unités équipées, mais aucun des deux n'appartiennent à une équipe : elles sont temporairement sous le contrôle de l'équipe qui possède le territoire. Les bâtiments peuvent faciliter la défense du territoire, augmenter sa capacité de stockage ou améliorer la production des unités.
Pour exploiter les ressources, les déplacer et pour combattre, les joueurs commandent des unités, qu'ils peuvent réaffecter à l'envie selon leurs forces et leurs faiblesses à la tâche (efficacité à collecter tel ou tel type de ressources, rapidité à transporter, grande capacité de transport, efficacité au combat, etc.). Ces unités apparaissent dans les zones : pour les recruter, les joueurs peuvent les appâter avec de la nourriture : l'unité rejoint alors le territoire le plus offrant.
Les combats sont automatisés : les unités agissent par ordre de rapidité, les joueurs peuvent seulement indiquer pour chaque unité quelles cibles elle doit attaquer en priorité.
On gagne par la conquête militaire, mais le commerce et la diplomatie peuvent être mis à profit : on peut échanger des ressources, capturer les convois adverses ou au contraire laisser passer ceux d'équipes alliées (en taxant éventuellement les ressources transportées), etc. Les interactions sont notifiées aux joueurs des équipes concernées pour leur permettre d'intervenir, et des règles peuvent être programmées pour réagir en cas d'absence.
Côté ambiance, l'action se déroule dans un univers végétal fantastique. Les joueurs y incarnent des Seelies : des créatures magiques de la forêt. Les unités contrôlées sont des insectes.
Sur le plan technique, le serveur est codé en Elixir et utilise une architecture CQRS/ES. Je pratique le développement piloté par test, donc je m'assure que tous les mécanismes fonctionnent en isolation. L'application prend ensuite la forme d'un daemon, qu'on peut
piloter par un REPL ; sans aucun lien avec un serveur Web. Le code est disponible sur GitHub.
Pour le client, je ne sais pas encore. Probablement dans le navigateur (car la gestion du réseau en Lua/LÖVE m'a un peu gonflée). Peut-être quelque chose en mode texte initialement, juste pour voir le système "vivre".