12.26.2010

Last call

Last call : Team is being set up, bring on your MSN addresses below if still interested.


Blog will be discontinued after new website has been set up.

Cheers to all followers.

12.23.2010

L'équipe de DEV est en cours de création.

Quelques nouvelles en fin d'année même si je sais que vous désespérez.
Comme annoncé, une équipe de dev est en cours d'être rassemblée afin que le projet avance. Je n'ai pas eu le temps de m'y mettre comme je le souhaitais, alors cette équipe reste le dernier espoir :D
J'ai déjà quelques bonnes candidatures sous la main, mais si vous êtes PLUS que motivés ( vu l'ampleur de la tâche) vous pouvez laisser un message ci dessous. J'ai bien sur receptionné les candidatures des commentaires précédents ;)
Il me faut un peu plus de précision cependant sur vos motivations et vos compétences à savoir :
- Qui sait gérer un wiki et aurait le temps de le faire ?
- Quelqu'un a t'il deja eu a gérer un CVS/SVN ?
- Qui sait gérer un forum et aurait le temps de le faire ?
- Qui a de bonnes compétences C# ?
- Qui a de bonnes compétences SQL ou XML ?
- Qui a déjà programmé du C# ou JAVA sur des techno MMO ?


THE 1ST TEAM WILL BE SET UP FOR MID JANUARY AT LATE. Once you have been invited, be aware that it will basically consist at very annoying MSN chatting for hours and hours to explain the project, its status, what i need and what you can do before we move to the project itself.

Cheers.


PS : Forgot to mention that English speaking is a must, and if you understand French a little, it is even better :D

10.05.2010

Alors, où en est-on ?

Comme on dit chez moi, pas de nouvelles, bonnes nouvelles !
Je viens de rentrer de mon petit-grand voyage (c'est selon) en terminant par New-York la semaine dernière, enfin un peu de repos ! En ce moment, j'ai l'impression de faire une course à tous les niveaux entre vie personnelle, professionnelle ( changement de boulot en cours dès le lendemain de mon retour de New-York, pas le temps de souffler ! ).

Enfin bon, je raconte ma vie, et vous, ce qui vous intéresse, ce n'est pas ce que j'en fait actuellement, ou plutôt une petite partie de celle-ci qui se résume par : StGE. :D
Alors concernant ce projet, je n'ai nulle intention de l'abandonner pour le moment, la petite pause dans les nouvelles étant plutôt due à un grand voyage loin de tout ordinateur. Pour le moment, je dois d'abord me dépêcher de tout virer de mon poste de travail avant que mon ordinateur au bureau me soit enlevé avant mon changement de job.
Je pense de plus en plus néanmoins à former une équipe de dév. , étant bien conscient que le résultat en cette bientôt fin d'année est encore bien trop loin de celui que j'espérai en commençant StGE.
En gros, la reprise sur le projet va être difficile, mais réalisable :D

7.05.2010

LoginServer, de nouveau fonctionnel.

Comme annoncé la semaine dernière, le développement a repris, avec un LoginServer de nouveau fonctionnel après les nombreux changements apportés depuis, et après la 4.1. Les développeurs sur ce jeu ont une sale habitude de changer des IDs de paquets entre les mises à jour, ce qui complique quelque peu le boulot. En général, c'est du +1 sur les paquets, mais pas tous, il faut donc rechercher à chaque mise à jour quels paquets ont été modifiés. Si tout n'est pas correct, le client cesse de répondre et il faut tout redémarrer.

J'espère pouvoir mettre en place un beta-test du LoginServer uniquement ce week-end ou courant de semaine prochaine afin de vérifier plusieurs points (connexions multiples entre autre, vérifications des données écrites dans les XMLs.) Comme promis à certains d'entre vous, ceux qui suivent régulièrement l'évolution StGE se verront donner un accès. J'espère en échange avoir un compte rendu détaillé des bugs qui surviendront.
Plus d'informations à venir prochainement.

7.01.2010

Sword2 : Out of Open-Beta

Petite information :
Sword2 est maintenant sorti de sa phase d'Open Beta qui avait commencé au début du mois.
Ceci signifie donc la reprise du développement StGE (avec je le rappelle une volonté de matcher la version retail box).
Première étape pour fin de semaine prochaine : Finaliser le LoginServer 4.1.
Attendez-vous donc à des nouvelles bientot ;)

6.07.2010

4.1 US

Dorénavant, j'inclurai de temps en temps des données concernant la version US 4.1 actuelle à titre d'information. Ca prend pas beaucoup de temps à rassembler et ça peut aider du monde, alors pourquoi pas.
Format du tableau : Quantité / Item / Rate ( Du plus rare (5) au plus fréquent (30))
Treasure Chest Random :
Remarquez l'absence de Symbol of Virgo et de Symbol of Cancer, aucune idée de la raison pour l'instant.

Parmi les drops recensés un peu partout ailleurs sur internet pour la nouvelle zone payante "Sedecram Dungeon of the Heaven Shelter", il y manque en particulier :
Heaven Bacchanalia, Heaven Acorchado, Heaven Ghoul Spirit, Heaven Myconid, Heaven Red Elemental : Rough-Stone (1/10000)
Heavenly Vespanolla Soldier : Rough-Stone (1/5000)

Et ce que l'on ne trouve nulle part, ce sont les drops des boss et raid boss dont je vais commencer à récupérer les informations. Voici par exemple, le boss du même nouveau donjon, Heaven Giant Keeper.


Heaven Giant Keeper :
GROUPE 1 : 50% chance (Seulement 1 seul de ce groupe)
Symbol of Pisces
Symbol of Aries
Symbol of Taurus
Symbol of Gemini
Symbol of Cancer
Symbol of Leo
Symbol of Virgo
Symbol of Libra
Symbol of Scorpio
Symbol of Sagittarius
Symbol of Capricorn
Symbol of Aquarius 
+
GROUPE 2 : 100% chance (Seulement 1 seul de ce groupe)
Chevalier Greaves
Mystic shoes
Tracking boots
Assassin boots
Chevalier Gauntlets
Mystic Gloves
Aiming Gloves
Assassin Gloves 
+
GROUPE 3 : 2.5% chance (Seulement 1 seul de ce groupe)
Recipe - Elite Piernoente
Recipe - Elite Inviardeco
Recipe - Elite Camarylis
Recipe - Elite Calienalbino
Recipe - Elite Geniaruleano
Recipe - Dragon Heart
Recipe - Archangel's Heart
Recipe - Seeds of Rafflesia
Recipe - Siren's Scale
+
GROUPE 4 : 5% chance (Seulement 1 seul de ce groupe)
Recipe - Enhanced Physical Resistance Necklace
Recipe - Enhanced Shooting Resistance Necklace
Recipe - Enhanced Flame Resistance Necklace
Recipe - Enhanced Ice Resistance Necklace
Recipe - Enhanced Lightning Resistance Necklace
Recipe - Enhanced Mental Resistance Necklace
Recipe - Leather Belt
Recipe - Metal Belt 
+
GROUPE 5 : 2% chance (Seulement 1 seul de ce groupe)
Recipe - Le Noir for Fighter
Recipe - Le Noir for Scout
Recipe - Le Noir for Musketeer
Recipe - Le Noir for Wizard
Recipe - Le Noir for Elementalist
Pure Gold Bar
Pure Gold Bar
Pure Gold Bar
Pure Gold Bar
Pure Gold Bar
Pure Gold Bar
Pure Gold Bar
Pure Gold Bar
Pure Gold Bar
Pure Gold Bar
Pure Gold Bar
Pure Gold Bar
Pure Gold Bar
Pure Gold Bar
Pure Gold Bar
Pure Gold Bar
Pure Gold Bar
Pure Gold Bar
Pure Gold Bar
Pure Gold Bar
Pure Gold Bar
Pure Gold Bar
Pure Gold Bar
Pure Gold Bar
Pure Gold Bar
Pure Gold Bar
Pure Gold Bar
Pure Gold Bar
Pure Gold Bar
Pure Gold Bar
Pure Gold Bar
Pure Gold Bar
Pure Gold Bar
Pure Gold Bar
Pure Gold Bar 
+
GROUPE 6 : 5% chance (Seulement 1 seul de ce groupe)
The Grim-wraith
Grim-wight
Vampiric Edge
Daemon Slayer
Daemon Sword
Gigantic Poleaxe
Assassin Dagger
Sword Breaker
Carbon Gaiters
Desert Storm
The Black Dragon
Conqueror Shotgun
Conqueror Cannon
The Grim-shout
The Rod of Armageddon
Elite Moonstone Rod
Elite Staff of Gnosis
Elite Behemoth Bracelet
Bracelet of Leviathan
Bracelet of Ziz
Bracelet of the Great Soul 
+
GROUPE 7 : 50% Chance (Seulement 1 seul de ce groupe)
The Grim-wraith
Grim-wight
Vampiric Edge
Daemon Slayer
Daemon Sword
Gigantic Poleaxe
Assassin Dagger
Sword Breaker
Carbon Gaiters
Desert Storm
The Black Dragon
Conqueror Shotgun
Conqueror Cannon
The Grim-shout
The Rod of Armageddon
Elite Moonstone Rod
Elite Staff of Gnosis
Elite Behemoth Bracelet
Bracelet of Leviathan
Bracelet of Ziz
Bracelet of the Great Soul 
+
GROUPE 8 : 100% Chance
Enchant Chip Lv 96 *3



Explications :
Les serveurs Granado Espada officiels utilisent un système de drops parfois bien particulier. On peut le voir sur cet exemple bien précis :
Les drops se décomposent en 8 groupes distincts, chacun d'entre eux étant géré avec un nombre aléatoire différent. Dans le meilleur des cas pour les plus chanceux vous aurez donc 8 drops.
Exemple avec le groupe 5 : 2 % de chance d'avoir 1 objet de ce groupe, mais à l'intérieur du groupe, vous avez beaucoup plus de chance de recevoir un Pure Gold Bar qu'un Recipe - Le Noir étant donné le nombre de Pure Gold Bars dans ce groupe.
Les groupes 6 et 7  sont identiques, seul le pourcentage est différent, ce qui signifie que vous pouvez avec de la "chance" avoir 2 armes 30AR.
Ce listing ne concerne que les drops "scriptés" coté serveur (ceux qui ne sont pas influencés par les levels, Drop Manuals et autres). A coté de ça il reste également d'autres drops de moindre importance, ceux généralement listés sur les autres sites, tels qu'ici


Notez bien que toutes ces infos me servent également pour l'implémentation de la version 4.1 StGE.

6.01.2010

Des nouvelles fraîches.... pas si fraîches.

Comme certains d'entre vous l'on sûrement remarqué, cela fait un moment maintenant que je n'ai pas posté de nouvelles concernant le statut du développement. Il y a plusieurs raisons à cela que j'ai déjà survolé par-ci par-là (beaucoup de travail IRL, 3 semaines de vacances, reprise difficile ensuite ..). L'autre raison est, comme vous en avez sûrement entendu parler, le passage prévu en 4.1 cet été de la version US du jeu. J'ai un peu galéré depuis le début de l'année avec les multiples mises à jour de cette version, qui m'ont obligé plusieurs fois à reprendre un travail réalisé les semaines précédentes.
D'où mon idée d'attendre la sortie de la version 4.1 ainsi que d'une éventuelle sortie boite du jeu pour continuer l'essentiel du développement sur cette version. Le but premier étant de finaliser une version 4.1 DÉFINITIVE et STATIQUE(qui ne suivra donc plus les mises à jour US).
Oui vous avez bien compris, le serveur sortira en version 4.1 (alors que peut être la version officielle sera largement supérieure) et ne sera plus tenu à jour ensuite (trop lourd à gérer pour une seule personne). Le suivi et la correction de bugs sera bien entendu de mise.

Résumé : Plus le temps de faire des updates toutes les semaines, la version du serveur qui sortira sera la 4.1, utilisable avec la future version retail box only, et ensuite, plus de mises à jour de prévues.

3.26.2010

StGE : Première vidéo

Pour répondre à certains commentaires, j'ai bricolé (capture en 4ème vitesse, pas de codecs sur le PC pour encoder correctement, pas de temps tout court XD) une petite vidéo en ce vendredi dans laquelle je montre essentiellement la dernière commande intégrée dans le jeu (c'est à dire il y a une moins d'une heure).
Vidéo non retouchée, dans laquelle vous remarquerez que je me plante moi même un peu dans les commandes ^^ Pas le temps d'en montrer plus, de toute manière j'ai même faillit rien montrer du tout tellement je suis pressé de rentrer.
Ce que vous voyez en gros c'est :
- Création de compte.
- Vérifications de mot de passe.
- Création d'une famille.
- Création d'un personnage.
- Création de plusieurs NPCs (objets) sur la map d'arrivée.

Profitez en bien de celle-là, parce que je vais pas perdre souvent du temps à en faire, des videos ;)

3.04.2010

Lien entre LoginServer et GameServer

Avant aujourd'hui le LoginServer et le GameServer ne communiquaient entre eux que par le biais de fichiers XML ce qui pouvait causer pas mal de soucis (relecture des fichiers XMLs obligatoires par le GameServer si une nouvelle famille était créée sur le LoginServer, de même pour les personnages etc ).
Un cas intéressant restait celui d'une connexion au GameServer lorsque le joueur clique sur [New Team], cas que je vais décrire ci-dessous:

-{1} Le client envoie au LoginServer l'ID des personnages sélectionnés.
-{2} Le LoginServer envoie les informations de connexions du GameServer au client.
-{3} Le client envoie au GameServer son nom de compte (celui utilisé sur la page de login).

Le problème est : comment le GameServer connait-il les personnages sélectionnés par le client ?
Il était contourné jusqu'à maintenant par la création d'une table XML supplémentaire contenant l'ID de la famille plus les 3 ID des personnages sélectionnés (table d'ailleurs nécessaire car utilisée par le LoginServer pour récupérer et envoyer au client les informations sur la [Previous Team]). Cette table était donc lue par le GameServer lorsqu'il recevait l'étape 3.
Cette obligation de relire le fichier XML n'étant pas très flexible, je me suis orienté vers la création d'une nouvelle connexion et donc, d'un nouveau "protocole" entre le LoginServer et le GameServer.
Voici donc le nouveau schèma de connexion :

-{1} Le client envoie au LoginServer les ID des personnages sélectionnés.
-{2} Le LoginServer envoie le nom de compte du client ainsi que les ID des personnages sélectionnés au GameServer.
-{3} Le GameServer accuse réception des informations et renvoie OK au LoginServer.
-{4} Le LoginServer envoie les informations de connexion du GameServer au client.
-{5} Le client envoie au GameServer son nom de compte (celui utilisé sur la page de login).
-{6} Le GameServer fait le lien entre le nom du compte et les IDs reçus à l'étape {2} par le LoginServer.

Voila, à partir d'aujourd'hui le LoginServer peut communiquer autant qu'il veut avec le GameServer, avec des paquets forgés exprès pour eux deux qui n'auront de limite que celle de mon imagination :D

3.01.2010

Back to work.

Quelques modifications ont été apportées ce matin pour prendre en compte les modifications dues à la version 3.4 sur le LoginServer. Certaines structures de paquets ont été légérement modifiées pour réfléter les changements permettant ainsi au client de pouvoir de nouveau se connecter ;)
Rien de modifié pour le moment sur le GameServer je pense charger les nouvelles données 3.4 dans le courant de semaine, voire la semaine prochaine.

2.16.2010

Retour sur le LoginServer

Le serveur d'authentification est maintenant terminé à 80% et permet ce que permet un serveur d'authentification officiel (les 20% de travail restant consisteront à de l'optimisation de code et d'autres choses que je définirai ci-dessous) c'est à dire :

- Création de nouveaux comptes ( Ça c'est ma petite touche personnelle)
- Création de nouvelles familles.
- Création de nouveaux personnages.
Ces derniers ont maintenant tous les "vrais" attributs, j'entends par là : stats, "starting level", Arme équipée par défaut si il en possède lors de la création (valable pour les UPCs surtout)
- Le tout est maintenant sauvegardé entièrement sous format XML. Avant aujourd'hui, je ne sauvegardais rien afin d'aller plus loin et plus vite dans le développement. Maintenant le serveur d'authentification sauvegarde correctement toutes les familles, comptes et personnages créés. Plus pratique quand même, dans le cadre d'un MMO.



Il restera à :
- Importer une partie des scripts (terminés pour le serveur d'auth.) afin de calculer à la volée les HP, MP des personnages (à moins que je ne décide de faire calculer ces données par le serveur et les sauvegarder "brutes" dans le fichier xml des personnages (?).
- Faire une vérification si le compte est déjà connecté, soit sur le Login Server, soit sur le Game Server et envoyer le message correspondant au client.
- Trouver comment le Login Server fait la liaison avec l'inventaire de la famille (que je ne pensais pas inclure dans le Login Server) pour savoir quel UPC peut être créé ou pas (à moins que ce ne soit encore une histoire de fichiers XML écrits par le Game Server et récupérés par le serveur d'auth.).

2.11.2010

News du

- Prise en compte du CashShop.
- Correction dans le système de chat : celui ci faisait planter le serveur suite à une modification quand on utilisait les Clan, Squad et Group chats.
- Ajout des Poses (^^)
- Ajout du code pour les objets.

Je me rend compte que je n'explique pas forcement beaucoup les étapes en détail, alors pour une fois je vais expliquer un peu plus comment ca marche :

Contrairement à d'autres MMO, la définition des objets (par exemple une arme) sont stockées dans 4 tables différentes, et non une seule. Si l'on prend l'exemple de cette dague :
 
La première table va stocker uniquement l'ID de la dague "blank", c'est à dire sans upgrade ni aucune modification. Ainsi, si le jeu contient 1000 objets, le serveur ne gérera qu'une seule table commune à tous les joueurs et contenant ces 1000 objets (on est loin d'une table comme lineage2, ou chaque objet de chaque utilisateur correspond à une ligne dans la base de données). De fait, le serveur indique juste au joueur qu'il est en possession de la "Queen's Dagger", position 1 (InventoryID 1) ici dans l'inventaire du screenshot. On a au final un :
SendInventory(TestFamily, ItemID=QueensDagger, ItemCount = 1, InventoryID =1)

Vous aurez compris, je dit au client qu'il est en possession d'une QueensDagger, une seule, et qu'elle est en position 1 dans l'inventaire. Remarquez au passage le peu d'informations stockées dans cette table (Owner, ItemID, ItemCount, InvID)

Ensuite le serveur va chercher dans une deuxième table si l'objet ayant l'inventoryID = 1 possède des enchantements. Dans l'exemple, il y en a, le serveur exécute l'équivalent de :
SendEnchantments(TestFamily, InventoryID =1, ATK=40, SPEED = 28 .....)

Puis si cette dague est enchantée, on envoie l'information :
SendUpgradedItem(TestFamily, InventoryID, Level=9, FinalAtk=69)

Et enfin, si la dague possède elle-même des sockets, on envoie aussi. (Il n'y en a pas dans notre exemple ^^)

L'avantage est, je le rappelle, de ne stocker par objet que les informations réellement nécessaires, et de n'envoyer au client que celles nécessaires également. Dans notre exemple, on n'envoie ni ne stocke les informations de sockets sachant que notre arme n'en possède pas.

Voila, j'ai pas envie de faire le laïus à chaque fois, au moins c'est fait une fois pour toute ;)

2.09.2010

C'est toujours mieux tard que jamais.

Je vais enfin prendre un peu de temps pour mettre à jour ce blog afin de donner quelques nouvelles concernant l'évolution du serveur, désolé pour l'attente ;)

Tout d'abord suite à plusieurs mises à jour du client j'ai constaté des changements dans les IDs des paquets envoyés par le serveur, ce qui m'a obligé à effectuer une mise à jour complète de la liste des paquets afin de prévenir le problème en cas de nouvelle mise à jour.

- Il est maintenant possible de se déplacer correctement sur les différentes cartes, l'élément qui manquait pour pouvoir se déplacer ayant été trouvé.
- Les différents chats (general, clan, group etc) sont maintenant disponibles.
- Possibilité d'interaction avec les NPCs.
- Et toujours ce système de scripts qui me bouffe clairement 90% de mon temps XD