11.26.2009

Quelques news

Comme dit précédemment, beaucoup de boulot en cette fin d'année et le projet (même s'il avance) n'évolue pas aussi vite que je l'aurai voulu. Les scripts sont toujours en cours de développement en mode 'stand-alone' (toujours pas trouvé le temps d'inclure définitivement l'install du LUA dans dotNet, même si 2 ou 3 clics devraient suffire ^^). Après si j'en croit la doc LUA il faudra enregistrer manuellement (aka importer) toutes les fonctions créées dans C#.NET ^^ La dessus j'espère avoir mal lu la doc et si quelqu'un connait un moyen d'importer en automatique tous les scripts LUA dans dotNet je suis preneur.

Niveau 'jouabilité', je pensais avoir trouvé le paquet permettant de se déplacer sur une map, mais tout ce que fait le perso pour le moment c'est bouger les bras une micro-seconde et rester sur place. Le paquet envoyé par le serveur contient bien sur ce que j'ai identifié comme étant des coordonnées X,Y,Z, l'ID du personnage utilisé, un compteur qui s'incrémente à chaque 'demande de déplacement client' (surement pour éviter un 'replay' de paquet coté client (bots, tentative de triche ou autre) ) mais contient en plus d'autres valeurs que je n'ai pu identifier pour le moment.
Une fois que j'aurai identifié le reste du paquet se sera déjà un peu plus fun de pouvoir se déplacer dans StGE ;)

11.17.2009

LUA Scripts

Les scripts LUA sont en cours d'écriture pour un total de 1000+ fichiers .lua et quasiment 10* plus de fonctions.
Ceux sont eux qui gèrent l'essentiel du gameplay comme les statistiques des personnages, les quêtes, les missions, les NPCs, les monstres, les events, les combats, les fonctions d'upgrade et d'enchant etc etc. Tout ce qui rentre dans l'aspect gameplay du jeu est intégré et développé en LUA.

11.13.2009

LUA

Après réflexion, il a été décide d'intégrer l'ensemble des fonctions du jeu en langage LUA. LUA est un langage de scripts fort apprécié dans le domaine du jeu video, il est utilisé entre autre dans le jeu World of Warcraft et FarCry.
Une librairie existe pour intégrer complètement LUA à .NET et est disponible ici.

11.12.2009

Classes

- Un grand travail de création des classes C# est en cours, avec l'équivalent (simplifié) d'une classe par "objet" du jeu.
Par exemple, une classe "commander" représentant une famille, une classe "commanderquest" pour les quêtes associées, une classe "pc" représentant chaque membre de la famille, etc etc.
Certaines d'entre elles avaient déjà été créées pour le loginserver ("account", "commmander", "pc" etc etc) d'autres plus spécifiques au gameserver restent à créer mais ne sont pas essentielles pour le moment.

- Utilisation d'un XMLserializer pour charger toutes les données de type "item", "job", etc etc

11.05.2009

GameServer : Les paquets

Les paquets envoyés par le GameServer lors d'une demande de connexion client sont toujours en cours d'analyse. Pour le moment 37 paquets (Server-> Client) différents ont été recensés et analysés, dont seulement une dizaine sont aujourd'hui totalement connus.
Le plus gros de l'analyse reste encore à faire pour pouvoir entrer totalement sur le GameServer et commencer le travail sur le jeu lui-même..

11.03.2009

Character Stances

- Nouvelle structure de paquet (GS) concernant les infos du(des) personnage(s) sélectionnés à envoyer au client.
D'une manière générale, le premier paquet envoyé contient des informations telles que : Nom, Class, Level, XP, NextXP, Alliance, Equipment,HP, SP, Stats, suivi d'une boucle sur la liste de stances (StanceID, StanceLv, StanceXP, StancePoints) et d'une deuxième boucle sur la liste des skills (SkillID, SkillLv, PointsNeededForUpgrade).

11.02.2009

Account Creation

Nouvelle fonctionnalité permettant la création de comptes automatique si l'option "AutoCreateAccount" est définie en tant que "true" dans le App.Config.


Channel List

Possibilité de sélectionner les derniers persos joués ainsi que son emplacement (map).
Ajout du code permettant au client de spécifier le nombre de channels.
Ajout d'un fichier de configuration App.Config permettant comme som nom l'indique une configuration du serveur plus aisée :

A l'avenir toutes les config iront dans ce fichier afin de permettre une plus grande flexibilité.

Character Creation

Ajout du code pour la création de personnages prenant en compte les "characters cards" que le compte possède, + personnages réservés aux GMs si le compte est un compte GM.

10.30.2009

La Base de données

- Initialisation d'une BDD MySQL.
- Instanciation de la classe database.

10.29.2009

Quelques précisions.

Le LoginServer ainsi que le GameServer sont écrits entièrement en C#.NET "from scratch". Ce choix n'est pas forcément le plus judicieux pour ce type d'application, mais j'ai envie de voir jusqu'où cet environnement de développement me permettra d'aller. Si de réels problèmes se font sentir, il y aura toujours la possibilité de porter l'ensemble du développement en C++ plus tard.

L'ensemble du systeme d'encryption-decryption utilise une classe Blowfish créée pour l'occasion afin d'être utilisable avec l'environnement .NET.

Tous les paquets envoyés-reçus s'affichent sur la console en mode debug, ceci sera utile plus tard afin de décrypter les nouveaux paquets et créer les nouvelles classes.

10.27.2009

StGE : Login Server








A première vue le serveur StGE se décomposera en un minimum de 2 serveurs : 1 serveur d'authentification (loginserver), et 1 ou plusieurs serveurs de jeu (gameserver).
Le LoginServer est en fait déjà bientôt pleinement fonctionnel (ne lui manque plus que les connexions à la base de données) après 3 jours de développement. C'est en effet le serveur le plus "basique" des deux, le gameserver gérant quant à lui l'ensemble des données du jeu, au contraire du loginserver qui ne sert qu'à recevoir l'authentification client, et à lui renvoyer les données des générales des "families" : Informations sur les personnages créés, Family Level, name etc etc

Quelques screenshots ci-dessous pour illustrer mes propos :

10.23.2009

Le projet StGE - Au début.

Quand je regarde en arrière, je me rend compte que les MMORPGs m'ont toujours fasciné, avec des débuts sur "T4C - The Fourth Coming" (DialSoft), puis "Dark Age of Camelot". S'ensuivirent plusieurs déceptions avec toutes les générations de Free-MMO dont aucun n'a jamais réussi à me satisfaire pleinement.
Passé l'épisode "World of Warcraft", j'ai finalement terminé ma course avec "Lineage 2" (NCSoft).
Et c'est avec ce jeu que tout commence.
En 2004 je tombe par hasard sur le projet L2J, un émulateur de serveur Lineage 2 Java, projet dont je rejoindrai l'équipe de développement quelques mois plus tard en mai 2005 (C2 - C3 phase) pour une durée de 2 ans. Je vous invite d'ailleurs à aller voir leur travail assez impressionnant sur le sujet.
C'est en travaillant sur ce projet que m'est venue une nouvelle passion nettement plus jouissive que de jouer, celle de savoir "mais comment que ça marche tout ça ?"
Fort de l'expérience L2J (dont je remercie tous les membres), je me suis consacré il y a quelques temps à un autre Free-MMORPG : Granado Espada, et c'est là qu'est né le projet d'un émulateur qui sera (pour le moment) baptisé : StGE.