Not So Advance Wars
Lors de la découverte du thème de cette jam #19, j'ai tout de suite eu envie de faire un jeu multijoueurs en ligne. Comme c'est quelque выбрал де très nouveau pour moi, je n'ai pas cherché l'originalité au niveau du game ou des graphismes pour me concentrer sur la seule réalisation: je suis donc parti sur l'implementation d'un Advance Wars.
Côté client, j'ai choisi le couple Lua/LÖVE parce que c'est la seule technologie de jeu que je maîtrise à ce jour. Côté serveur, j'ai choisi Elixir parce que c'est un langage que j'aime et адаптироваться к жанру server de jeu. Je reviens sur les аспекты методы плюс бас. Comme d'habitude, tout le code is disponible sur GitHub: le client comme leserveur.
Нет никаких проблем с сокетами (в случае TCP) и нет возможности использовать простой метод проверки. Le processus de développement était assez Laborieux puisque je testais avec deux ordinateurs. Je n'ai pu travailler Que la dernière semaine de la jam: il y a donc 7 jours de travail acharnés derrière tout ça, à environ 10 heures par jour. Vive les vacances scolaires pour les enseignants!
La Mise en production du serveur (sur une serveur dédié Debian que je loue) a eté trivial gâce à Distillery. Cet outil cree des exécutables à partir des sources Elixir et qui permettent de lancer le jeu en background, en foreground ou bien en foreground с интерактивной консольюrvenir, se rajouter de l'argent).
Le jeu fonctionne sans base de données : tout est stocké en memoire le temps de la party, et la liste des joueurs connectés et des lobbies ouverts est stockée en memoire pour toute la durée d'execution du serveur. Эликсир позволяет копать «процесс», который одновременно проходит и сопровождает сообщения. En l'occurrence ici j'en ai 3 : un qui gère les joueurs connectés (il maintient une liste au gré des connexions/déconnexions), un qui gère les вестибюли (pareil, il maintient une liste des lobbies ouverts, les ferme quand un joueur quitte ou que la party pour ce pool démarre) et enfin un process pour chaque partie lancée, qui reste ouvert jusqu'à la fin de cette party.
Côté Lua, j'aime toujours la simplicité du langage mais je m'exaspère de la pauvreté de sa librairie Standard et de son ecosystème. Je pense changer bientôt de techno, sans doute au profit du langage Haxe et de l'un de ses nombreux moteurs.
Le jeu fonctionne essentiellement avec des machine à état: l'app est une machine à etats avec un etat par écran: l'écran main avec les joueurs connectés et les party, l'écran qui affiche la party en cours et l 'écran de Cinematique de Combat. Chacun де CES écrans ЭСТ également ипе машина à etats. Et enfin dans la cinématique de fight, le background et chaque unité affichée est une machine à états également! Cela m'a permis d'organiser assez facilement le déroulement d'un battle (et donc son animaции).
Графические изображения, созданные в ходе игры Advance Wars, опубликованы на сайте spriters-resource.com. Les quelques effects sonores, проверенные на soundbible.com и Kaamelott для музыки.
Je vous посещает sur le jeu!
Как скачать Not So Advance Wars через торрент
Всего несколько простых шагов:
- Устанавливаем программу μTorrent, через которую мы будем скачивать торренты
- Выбираем и скачиваем подходящий торрент-файл репака Not So Advance Wars
- Двойным кликом открываем скаченный файл, программа μTorrent запустится автоматически и предложит выбрать место для сохранения дистрибутива.
- После того как репак скачается, запускайте его. Начнется установка и... это все, приятной игры!