Skip to content
Eternal War One in NodeJS (server) / React (client) / Socket.IO (interface)
TypeScript CSS JavaScript HTML
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.storybook
.vscode
docs
mapmaking
scripts
src
test
tsdoc-theme/partials
.editorconfig
.env.sample
.gitattributes
.gitignore
LICENSE
README.md
_config.yml
package.json
tsconfig.json
tslint.json
webpack.config.js
yarn.lock

README.md

E.W.O. : Next

E.W.O était un projet francophone de jeu multijoueur online en PHP. Le sujet du jeu est la bataille entre les anges, les démons et les humains, dans un futur alternatif.

EWO Next est le nom de code d'une reprise à zéro du projet (redéfinition du gameplay et des technologies)

Lien vers la documentation

Badges

On aime les badges

Quality Gate Status Maintainability Rating Bugs Code Smells Coverage Dependency Status

Installation

1: Installez les packages

npm install

ou

yarn install

2: Générez l'application React frontend

npm run client

3: Lancez le serveur de dev

npm run watch

Vous pouvez maintenant vous rendre sur http://localhost:3000 pour accéder à l'application.

Vous devrez créer un compte utilisateur et des personnages (création en cours d'implémentation)

Architecture

Coté Backend, il y a:

  • Un serveur de jeu, utilisant Redux + ImmutableJS
  • Un service de résolution de commande (Reçoit une commande, la dispatch dans une queue mono-thread ou multi-thread)
  • Un serveur ExpressJS qui va servir les pages annexes au jeu
  • Un serveur Socket.IO qui sert à faire communiquer le jeu entre le Client et le Serveur de jeu

Coté Frontend, il y a:

  • Une application React + Redux + React-Router dédié au jeu
  • l'utilisation des interfaces et ressources du serveur de jeu (pas besoin de réecrire les routines)
  • Une UI managé par Storybook

Développement

Le développement est découpé en 4 phases:

  • pre-alpha (phase actuelle)
  • alpha
  • beta
  • release

la phase pre-alpha corresponds à une version non-fonctionnelle du jeu, il manque encore des éléments majeurs. Il n'y a pas de version de test, chaque développeur s'occupant de son code et ses données. Il n'y a pas de CI intégré pour le moment au développement.

la phase alpha indique qu'un nombre minimal de fonctionnalité existe, mais qu'il est possible de commencer des phases de test. La structure et les règles de jeu peuvent encore changer. Un serveur de test avec des stress-test pourra être mis en place.

la phase beta indique que la totalité des règles ont été figé en vue de la release, et que l'ajout des fonctionnalité manquantes est en train d'être fait. Le branching du dépos de source est mis en place (il n'y a plus de commit en master mais uniquement dans des branches dédiés avec pull-request, la pull-request doit compiler sans erreur, les tests unitaires doivent passer et couvrir 80% du code au moins). Un serveur de test sera mis en place avec des données persistantes. Si une fonctionnalité mise en place pose de gros problèmes de gameplay, le développement pourra repasser en alpha. Si possible, ce passage en alpha devra garder les données de jeu beta afin de ne pas relancer depuis 0 l'évolution des personnages.

la phase pre-release indique que toutes les fonctionnalités sont en place. Il s'agit donc des tests utilisateurs. Les seuls modifications de code pendant cette phase sont les correction de code.

la phase release indique que le code est prêt à être déployé en version 1.0. A partir de cette phase, une nouvelle branche beta sera ouverte pour commencer le travail sur la prochaine version.

You can’t perform that action at this time.