dimanche 12 mai 2013

HB Monthly Update #51 : ça cause programmation, c'est sérieux

Posté par Olah Le dimanche 12 mai 2013 à 12:30
Salut à tous les humains et autres reptiliens, nous sommes le 12 et comme chaque mois, c'est le jour de la Monthly! Et aujourd'hui, nous sommes largement dans les temps pour cette Monthly!! Suite aux différentes conversations qui ont eu lieu suite à la précédente Monthly, l'équipe de développement a reconsidéré certains choix afin d'optimiser un peu le jeu et d’obtenir une architecture plus performante.

HB passe au C++


Comme conseillé par un ouvrage célèbre dans l'ensemble de la galaxie “Don’t panic!”. Parmi les trois programmes nécessaires à HB, nous avons ‘Dieu’, le programme de création de l’univers, ‘Bâtisseur’, celui qui s’occupe de la gestion temps réel de vos ressources et de vos bâtiments et ‘Chef d’orchestre’, le programme de combat qui gère aussi les déplacements de flottes. Le programme ‘Dieu’ n’a absolument pas besoin d’être refondu puisque son utilisation n’est nécessaire que pour définir la map. Donc il ne servira pas beaucoup. Pour le programme ‘Bâtisseur’, la majorité du code fonctionnelle n’est pas en Java, mais utilise le SQL pour être plus rapide dans l'interaction avec la base de données. Il ne reste plus que le programme de combat qui est toujours en développement. Donc globalement, la refonte des programme du Java vers le C++ n’impactera que de peu le temps de développement. En contrepartie, le C++ devrait nous permettre d'avoir des programmes un peu plus rapide et sur.

My et sa soeur Maria


Au commencement, il y avait Monty. Monty, c’est Michael Widenius, le créateur de MySQL. MySQL? c’est un système de gestion de base de données. Le principe : stocker (et récupérer) des informations rapidement et facilement via un langage commun, le SQL. Typiquement la liste de vos vaisseaux, vos ressources, etc. En 1995, il crée donc MySQL. C’est un succès. En 2004, c’est 10 millions de téléchargements par an. Une des pierre angulaire du Web. En 2008, pour le faire encore plus progresser, il vend sa société (et donc MySQL) à Sun microsystème, déjà propriétaire, entre autre, d’OpenOffice. Et là patatrac ! Sun Microsystème est acheté par Oracle en 2009. Oracle, c’est le méchant de cette histoire. Très vite, on entend parler de certaine partie de MySQL devenant payantes. Impossible pour un logiciel libre ! C’en est trop pour Monty, qui fait sécession, avec une grosses partie des développeurs de MySQL, afin de crée un fork : MariaDB. MariaDB, c’est la même mais en plus rapide, plus ressemblant à sa vision et en LIBRE. Car le libre, c’est bien

Donc voilà, c’est la petite histoire. Qui nous intéresse car HB tourne désormais sous MariaDB.

En fait, My et Maria sont les filles de Monty, leurs prénoms ont donnés MySQL et MariaDB

Et voilà ... à dans un mois.

Les conseils des développeurs (les hors sujets des réunions en gros):
- Jouez à Pokémon (http://www.youtube.com/watch?v=jVm1NbrXaXc)
- Vive les cuirassés!!
- Vive les tanks!!
- Les avions, c'est pour les grognards!!

PS: pour ceux qui se demande qui se cache derrière Nigech, il s'agit d'un compte commun à Nigel et Mech (NIGel + mECH). D'ailleurs, l'avatar reprend la représentation de DOT (pour Nigel) mais en rouge en plus de l’œil rouge (pour Mech). Bref, c'est uniquement pour le fun et ne pas faire de préférence entre Nigel et Mech puisqu'il rédige ensemble les Monthlies.

vendredi 12 avril 2013

HB Monthly Update #50 : la cinquantième Monthly !

Posté par Olah Le vendredi 12 avril 2013 à 22:23
Salut à tous les humains et autres reptiliens, nous sommes le 12 et comme chaque mois, c'est le jour de la Monthly! (oui nous sommes toujours le 12!) Mech et Nigel n'ayant pas la possibilité de faire cette Monthly, il est de mon devoir de vous en faire profiter, même si certains ont perdu la foi dans notre noble quête et ose, sur ce propre forum, faire part de leurs doutes ... Honte à eux! Si les lois Française et Suisse ne me l'interdisaient pas, je les pendrais sur un bûcher! Maintenant, place à la question que tout le monde ce pose:

Comment que le bouzin k’i marche ?


Aujourd’hui, nous nous faisons fort de répondre à cette simple question posée dans le titre. Comment marche le jeu ? Et nous ne parlons pas du code, mais de ce qu’il y a derrière : les serveurs !

Rappel : Un serveur fonctionne en permanence, répondant automatiquement à des requêtes provenant d'autres dispositifs informatiques (les clients), selon le principe dit client-serveur.

Halo-Battle repose sur trois systèmes :
- le PHP
- MySQL
- Java



Le Java met à jour en temps-réel la base de donnée (MySQL). Cette base de donnée contient toute les informations du jeu : nombre de vaisseaux, richesse, nom du joueur... Le PHP vas chercher ces informations pour les afficher sur votre navigateur (this is where the magic append). Le problème est que le serveur à une capacité limitée. Tout comme votre PC ne peut (peut-être) pas faire tourner Battlefield 3 (TM), un serveur lambda ne peut pas gérer toutes les personnes se connectant à Facebook (TM). Aucun serveur en fait :p Le problème se pose donc. Nous pouvons optimiser autant que nous le voulons (voir quelques monthlys plus haut), les serveurs peuvent-ils tenir la charge ?

Il faut savoir que chacune de vos actions sur une page web en php génère de la charge sur le serveur car oui, c’est le serveur qui traite vos demandes. Ensuite, il y a aussi de la charge avec MySQL puisqu’il fournit les informations dont php à besoin pour afficher les bonnes informations et le java là-dedans qui travaille en permanence comme un acharné pour calculer la position de vos flottes, ce qu’elles peuvent durant un combat ou encore l’évolution de vos constructions et de vos ressources et puis s’occuper de 10 joueurs, c’est facile. Avec 2 000, c’est une autre histoire ... Surtout avec les idées débiles de Mech ...

Comment supporter autant de monde ?


Bref, le serveur de HB doit être en mesure de supporter tout ce petit monde et donc deux solutions se profilent :
- prendre un gros serveur qui va gérer les trois systèmes: c’est la solution la plus simple nous allons dire. Les trois éléments qui constituent le jeux sont présents dessus. L’avantage, c’est qu’il ne s’agit que d’une structure à maintenir et généralement, le goût global se révèle moins onéreux. Par contre, l’évolutivité est presque nul et il faut absolument que php, mysql et java cohabite ensemble (pas gagné)

- prendre trois petits serveur: soyons franc, c’est plus cher! Par contre, c’est le fantasme de Nigel donc il va falloir mettre la main à votre porte monnaie. Cette architecture est pleinement évolutive, déjà parce que chaque élément du site possède son propre serveur dont il n’utilise pas toujours la totalité des ressources, mais aussi parce qu’il suffit de remplacer le serveur défectueux s’il y a le moindre problème.

Pour le moment, nous n’avons pas de réponses précises. Nigel fait de nombreux benchmark pour savoir ce qui serait le mieux. Nous vous tenons informé dès que nous en savons plus

Et voilà ... à dans un mois

PS de Nigel et Mech: plus d'information pour le 31 Avril.

PS n°2 de Mech: Vous avez failli avoir une magnifique Monthly sur les chats, heureusement que d'autres sont là ...

PS n°3: Parce que l'équipe de développement aime vous taquiner, je vous rappelle que le mois d'Avril ne comporte que 30 jours.

PS n°4: Le chocolat c'est bon :3

mardi 12 mars 2013

HB Monthly Update #49 : des croquis mal dessinés

Posté par Olah Le mardi 12 mars 2013 à 21:11
Salut à tous les humains et autres reptiliens, nous sommes le 12 et comme chaque mois, c'est le jour de la Monthly! Je tiens dans un premier temps à m'excuser car je vais piétiner votre rêve le plus cher sans aucune pitié: toujours pas de HB pour le moment.

Au boulot Halo-Battle !


Je pourrais, dans un second temps, vous présenter mes excuses ainsi que celle de l'équipe de développement, mais il n'en sera rien. Il faut avouer que nous n'avons plus aucune excuse en stock depuis un moment et les excuses, c'est pour les faibles ou le Covenant (c'est gratuit).
Bref, je vais quand même vous parler de notre travail sur HB et principalement de l'interface et du moteur de combat qui essayent de se mettre en place.

Pas grand chose à dire sur le moteur de combat puisqu'il s'agit d'un domaine très technique. le principale enjeu est de pouvoir gérer le système d'attaque présenté (chaque vaisseau indépendant pour rappel) en vous garantissant rapidité et stabilité et la survie du serveur dans le temps ... et ce n'est pas forcément gagné.

Que dire de l'interface ?


Pour l'interface, nous avons fait une réunion avec Nigel et Moloc ... Passons les problèmes que rencontre Moloc avec l'informatique, vos flottes pourront être consultées depuis une planète à partir du moment où le bâtiment associé est construit. Par la suite, vous aurez une liste vous indiquant le nom de la flotte, le nombre de vaisseau la composant ainsi qu'un champ concernant la position ou le déplacement ou encore le combat et pour finir, une série de bouton pour vous permettre d'effectuer les actions sur cette flotte comme le ravitaillement, la renommer, la déplacer, changer sa réaction vis-à-vis des flottes rencontrées, etc ...
En cliquant sur l'une des flottes de cette liste, il sera rajouté ses vaisseaux avec l'image/silhouette pour chacun, le nom qu'il porte, l'état de sa structure/armure/bouclier, l'état des soutes et, de même que pour les flottes, une série de boutons pour changer le nom, affecter le vaisseau à une autre flotte, améliorer le vaisseau, etc


Je sais, c'est moche, mais c'est un croquis de développement.

La page des combats reprendra les mêmes principes avec, à gauche, les noms de vos flottes et celles de vos alliés avec les pseudos des joueurs associés et le nombre de vaisseaux inclus dans chaque flotte; la même chose à droite avec les flottes des joueurs ennemis. En cliquant sur les noms de flotte, vous faites apparaître les vaisseaux qui la compose et l'état de chacun. Par la suite, il devrait y avoir des commande pour retirer la flotte d'une bataille (la fuite? sale lâche!) ou changer la tactique.


Oui, c'est toujours aussi moche et en plus, le seul alien du groupe se fait victimiser... C'est la nature humaine de s'en prendre aux faibles et aux minorités.

Et voilà ... à dans un mois.

PS: Merci à Nigel pour avoir ajouté les mises en page sur le forum, c'est très pratique

PS2: Rectification, il s'agit d'Olah.

mardi 12 février 2013

HB Monthly Update #48 : la Monthly la plus courte de l'Histoire

Posté par Olah Le mardi 12 février 2013 à 20:34

Salut à tous les humains et autres reptiliens, nous sommes le 12 et comme chaque mois, c'est le jour de la Monthly! ... Qui va être courte. Non pas que je m'y prend à la dernière minute, mais ce mois n'a pas été riche en évènement et cela, malgré une réunion.

samedi 12 janvier 2013

HB Monthly Update #47 : du nouveau sur HB docteur ?

Posté par Olah Le samedi 12 janvier 2013 à 13:15

Salut à tous les humains et autres reptiliens, nous sommes le 12 et comme chaque mois, c'est le jour de la Monthly! La quatrième consécutive si j'ai bien compté.