18-10-2007, 12:30 PM
(Modification du message : 18-10-2007, 11:25 PM par Sephi-Chan.)
Salut à tous,
Je vous présente la première partie de l'entrevue avec Galaan qui m'a parlé de son jeu et de son expérience.
Entrevue avec Galaan – Partie 1
Synthèse de l'entrevue par IRC avec Galaan, créateur du jeu ITTM (http://www.ittm-manager.com/), qui compte un peu plus de 10 000 comptes, dont environ 1 500 joueurs actifs. Merci à lui pour ce témoignage.
<Sephi-Chan> On peut peut-être commencer par parler un peu de la naissance du projet, le moment où on est tout excité à l'idée de donner naissance à un jeu. Qu'est ce qui t'as mis dans la tête de créer ton propre jeu ?
<Galaan> Je jouais à un jeu de tennis par navigateur qui n'existe plus aujourd'hui. Comme je joue en vrai au tennis de table et que je ne doutais de rien, je me suis dit : pourquoi ne pas essayer ?
<Sephi-Chan> Et tu avais déjà des affinités avec le développement à ce moment là ?
<Galaan> Oui je bossais en Java à l'époque , et je connaissais le C/C++. D'ailleurs la toute première version du moteur (qui n'a jamais servi) était en C et générait des page HTML.
<Sephi-Chan> Ok. Tu n'avais donc encore aucune connaissance en développement Web donc ?
<Galaan> J'avais seulement de vagues notions d'HTML.
<Sephi-Chan> Donc tu ne pensais pas à une mise en production sur le net à ce moment ?
<Galaan> Non pas vraiment. c'est quand j'ai fais connaissance avec PHP que j'ai commencé à y penser sérieusement.
<Sephi-Chan> Et tu as commencé à développer ce moteur en C directement après avoir eu l'idée de créer ce jeu ? Ou bien tu es passé par une phase de conception ?
<Galaan> Si tu veux savoir si j'ai couché quelque chose sur le papier, et bien non. Ca faisait toutefois plusieurs semaine (voir mois) que j'y réfléchissais et quand j'ai commencé à coder, j'avais déjà une idée très précise de ce à quoi allait ressembler mon moteur.
<Sephi-Chan> Donc chronologiquement tu as eu l'idée, tu l'as travaillée en tête pendant quelques temps, puis tu es passé au développement d'un moteur sans ambition particulière quant à sa publication ?
<Galaan> Pas tout à fait... En fait j'espérais pouvoir faire une sorte de jeu Offline.
<Sephi-Chan> Ah carrément, tu es passé du tout au tout finalement !? Tu es seul à travailler sur ce projet ?
<Galaan> Ma rencontre avec PHP a été le déclencheur. Et non, je ne suis pas seul : Pit, un ami, s'occupe du design du site depuis le commencement du jeu.
<Sephi-Chan> Tu as pris connaissances de PHP grâce à ton boulot ? Ou bien tu es tombé dessus par hasard un jour de pluie ?
<Galaan> En partant du jeu de tennis j'ai voulu savoir s'il existait d'autres jeux du même genre, et je suis tombé sur un autre jeu en PHP (je ne me souvient plus duquel), j'ai alors cherché à en savoir plus.
<Sephi-Chan> Et c'est donc à partir de là que tu as appris PHP. Par quels moyens ?
<Galaan> J'ai appris seul avec www.asp-PHP.net.
<Sephi-Chan> Tes connaissances de C++ et Java ont dû t'être précieuses lors de ton apprentissage de PHP.
<Galaan> Oui. Ca m'a permis de ne pas faire la première erreur que font la plupart des débutants : j'ai travaillé dès le début avec des objets.
<Sephi-Chan> Tu as donc commencé en utilisant l'objet de PHP. Quelle était la version de PHP à cette époque ?
<Galaan> C'était PHP4, et oui j'ai commencé en orienté objet, même si en PHP c'est plus du luxe qu'autre chose.
<Sephi-Chan> Tu avais déjà accumulé de bonnes bases au commencement du développement ou bien tu apprenais les "subtilités" de PHP sur le tas ?
<Galaan> Entièrement sur le tas et j'ai presque envie de dire que c'est ça qui m'a sauvé, même si je traîne quelques grosses boulettes.
<Sephi-Chan> Comment ça ?
<Galaan> En fait, le fait de voir le jeu évoluer et de rapidement pouvoir faire jouer les copains m'a « surmotivé » pour faire la suite. Je me souviens qu'au tout début j'avais seulement écris le moteur en PHP ! J'étais sur un canal IRC comme celui-là et j'ai distribué des comptes à tous les présents, et j'ai commencé à lancer les premiers matchs. Tout le monde était super enthousiaste !
<Sephi-Chan> Tu n'avais pas encore mis en place le système d'inscription/connexion ? Tu procédais donc "manuellement" au lancement des différents éléments du moteur ?
<Galaan> Oui. Il n'y avait rien du tout : pas d'inscription, rien ! Seulement le moteur.
<Sephi-Chan> Et tu as décidé de poursuivre le développement et de faire le « cadre » du jeu en voyant l'enthousiasme des premiers joueurs ?
<Galaan> Exact.
<Sephi-Chan> Ces mêmes joueurs qui ont fait les premiers pas sont-ils venus sur la première version "complète" ?
<Galaan> Oui.
<Sephi-Chan> Je suppose que tu as très vite rencontré des bugs dans le système ? Si oui, certains joueurs te les signalaient ? Ou bien tentaient-ils de tricher en les exploitant ?
<Galaan> Il y a eu des deux, mais les premiers gros bugs que j'ai rencontré était liés à mon hébergeur.
<Sephi-Chan> Sur quoi as-tu commencé ?
<Galaan> Multimania (Lycos), mais ça faisait planter le mon zoli moteur Javascript. Il se bloquait et si je n'étais pas devant pour le remettre en route, tout le monde devait attendre patiemment.
<Sephi-Chan> Pour nous situer dans le temps, en quelle année sont nées ces premières versions ?
<Galaan> Août 2003 il me semble.
<Sephi-Chan> Ok, ton jeu a donc bien tenu ! Mais pour en revenir à la sécurité, tu avais mis en place des systèmes pour les traquer ?
<Galaan> Non pas vraiment. Mais quand un joueur devient beaucoup plus fort que tous les autres joueurs de sa génération, tu te poses des questions, tu passes le compte à la loupe et là tu remarques de grosses anomalies.
<Sephi-Chan> Donc tu cernais les tricheurs une fois qu'ils étaient passés à l'acte
<Galaan> Oui.
<Sephi-Chan> Après coup, tu regrettes ce choix ?
<Galaan> Je ne suis pas sûr que j'aurais pu faire mieux : la plupart du temps les problèmes venait de la mauvaise protection des formulaires.
<Sephi-Chan> Tu devais donc subir des attaques à coups de valeurs négatives, par exemple.
<Galaan> Des choses dans le genres effectivement
<Sephi-Chan> Que faisais tu quand tu voyais ça ? Tu fermais le compte dudit utilisateur ou bien tu le contactais pour qu'il t'aide à trouver et corriger les failles ?
<Galaan> Quand un joueur me dit qu'il a découvert une faille, je m'arrange avec lui. Mais si c'est moi qui m'en aperçois, je « lobotomise » le joueur.
<Sephi-Chan> Violent ! :p
<Galaan> Ils le méritent !
<Sephi-Chan> Les rapports de bugs t'ont beaucoup servi ? Je veux dire par là que si tu travaillais sur un nouveau projet, tu inciterai les joueurs à contribuer à leur correction ?
<Galaan> Franchement... Non. Faire ça, c'est les inciter à chercher les bugs et les exploiter, et il ne se gène pas pour le faire.
<Sephi-Chan> Ok, donc selon toi ça ne vaut pas le coup. C'est un point important sur lequel je voulais ton point de vue.
<Galaan> Peut-être que c'est envisageable dans une petite structure où tout le monde se connaît, mais dès que le jeu devient plus gros mieux vaut que le joueur pense le jeu « propre » et qu'il n'y a aucune faille à découvrir.
<Sephi-Chan> Dans le cas d'une bêta test fermée, par exemple.
<Galaan> Oui, par exemple.
<Sephi-Chan> Lors du développement du jeu, tu as directement sorti une version complète ou bien tu rajoutais des modules progressivement ?
<Galaan> Je continue toujours d'en rajouter : dès la conception du jeu, j'ai voulu que le jeu ne reste pas figé et que je puisse toujours le développer.
<Sephi-Chan> Pour les rajouts, tu développes en local, tu testes puis tu l'appliques au jeu ?
<Galaan> Hem...hem... En théorie c'est ce que je devrais faire, mais c'est finalement très rare quand je le fais.
<Sephi-Chan> Ah ! J'aime quand ça ne se passe pas comme la théorie le voudrais.
<Galaan> De toute façon, l'expérience m'a appris que ce qui marche en local ne fonctionne pas toujours en production.
<Sephi-Chan> C'est vrai que de bêtes configurations peuvent parfois tout changer.
<Galaan> Ca ou les sources qui ne sont pas à jour, ou même le serveur qui ne supporte pas la charge. Il peut y avoir des tas de raisons !
<Sephi-Chan> Comment procèdes-tu donc pour ajouter de nouvelles fonctionnalités ? Tu clos le jeu quelques jours et fais des essais ?
<Galaan> Je code le module « en parallèle ». Généralement, je duplique les pages concernées et une fois le développement fini, je choisi quelques joueurs pour tester. Si tout fonctionne, je mets en production. Je garde toujours un backup local.
<Sephi-Chan> Comment réserves-tu ces pages modifiées aux joueurs choisis ?
<Galaan> Je leur donne l'URL. IRC ou MSN sont très pratique pour ça.
<Sephi-Chan> C'est assez dangereux comme façon de faire, non ?
<Galaan> Oui et non. Je me réserve toujours la possibilité de revenir en arrière très vite : en cas de grosse bourde, ça me laisse une marge de sécurité. Après, c'est sûr qu'il faut être très rigoureux pour faire ça.
<Sephi-Chan> Tu as même un backup de ta base de donnée ? Si oui, tu as déjà eu besoin d'y recourir en 4 ans ?
<Galaan> Oui, d'ailleurs, Ovh (http://www.ovh.com/), mon hébergeur actuel, est très bien pour ça. Et j'ai rarement eu besoin de ces backup. Il me semble que je n'ai dû recharger 1 ou 2 tables.
<Sephi-Chan> Les rares cas étaient dû à quoi ?
<Galaan> Une fausse manip' sur la base.
<Sephi-Chan> Okay, donc pas de tentatives de hack ou de foirage majeur.
<Galaan> Non.
<Sephi-Chan> Mine de rien, on a traité la naissance du jeu, sa sécurité et ses mises à jour. Je pense qu'on peut finir pour ce soir sur les solutions d'hébergement choisies au fil de l'évolution du projet ?
<Galaan> On a donc commencé sur Multimania (Lycos), mais ça a été très vite insuffisant.
<Sephi-Chan> D'un point de vue du temps de réponse ou de la capacité de stockage ? Ou encore à cause de ces foutus pubs ? :p
<Galaan> À l'époque c'était surtout les pubs qui empêchaient le moteur de tourner. C'est devenu très vite l'enfer. Je n'avais pas encore fait le système de salle : il y avait de plus en plus joueurs et donc de plus en plus de tournois. Ensuite est arrive la période Websiteout (http://www.websiteout.fr/) : un hébergeur très bon marché proposant 15 Mo d'espace disque mais une BdD illimitée.
<Sephi-Chan> Actuellement, ton site occupe combien en terme d'espace disque ? Et combien pour la BdD ?
<Galaan> La BdD est propre et elle tourne autour de 40M sans les archives. Pour le code c'est difficile à dire tant il est pollué : on utilise 200 Mo mais je suis persuadé que le jeu ne nécessite pas plus de 30 Mo
<Sephi-Chan> En effet !? Et pourquoi avoir quitté Websiteout pour Ovh ?
<Galaan> A cause du manque de support et des gros problèmes de bande passante, d'autant que la solution d'hébergement supérieure était beaucoup plus chère. On est donc allé voir ailleurs, chez Ovh et leur formule 90plan avec laquelle le site tourne très bien.
Sephi-Chan
Je vous présente la première partie de l'entrevue avec Galaan qui m'a parlé de son jeu et de son expérience.
*****
Entrevue avec Galaan – Partie 1
Synthèse de l'entrevue par IRC avec Galaan, créateur du jeu ITTM (http://www.ittm-manager.com/), qui compte un peu plus de 10 000 comptes, dont environ 1 500 joueurs actifs. Merci à lui pour ce témoignage.
<Sephi-Chan> On peut peut-être commencer par parler un peu de la naissance du projet, le moment où on est tout excité à l'idée de donner naissance à un jeu. Qu'est ce qui t'as mis dans la tête de créer ton propre jeu ?
<Galaan> Je jouais à un jeu de tennis par navigateur qui n'existe plus aujourd'hui. Comme je joue en vrai au tennis de table et que je ne doutais de rien, je me suis dit : pourquoi ne pas essayer ?
<Sephi-Chan> Et tu avais déjà des affinités avec le développement à ce moment là ?
<Galaan> Oui je bossais en Java à l'époque , et je connaissais le C/C++. D'ailleurs la toute première version du moteur (qui n'a jamais servi) était en C et générait des page HTML.
<Sephi-Chan> Ok. Tu n'avais donc encore aucune connaissance en développement Web donc ?
<Galaan> J'avais seulement de vagues notions d'HTML.
<Sephi-Chan> Donc tu ne pensais pas à une mise en production sur le net à ce moment ?
<Galaan> Non pas vraiment. c'est quand j'ai fais connaissance avec PHP que j'ai commencé à y penser sérieusement.
<Sephi-Chan> Et tu as commencé à développer ce moteur en C directement après avoir eu l'idée de créer ce jeu ? Ou bien tu es passé par une phase de conception ?
<Galaan> Si tu veux savoir si j'ai couché quelque chose sur le papier, et bien non. Ca faisait toutefois plusieurs semaine (voir mois) que j'y réfléchissais et quand j'ai commencé à coder, j'avais déjà une idée très précise de ce à quoi allait ressembler mon moteur.
<Sephi-Chan> Donc chronologiquement tu as eu l'idée, tu l'as travaillée en tête pendant quelques temps, puis tu es passé au développement d'un moteur sans ambition particulière quant à sa publication ?
<Galaan> Pas tout à fait... En fait j'espérais pouvoir faire une sorte de jeu Offline.
<Sephi-Chan> Ah carrément, tu es passé du tout au tout finalement !? Tu es seul à travailler sur ce projet ?
<Galaan> Ma rencontre avec PHP a été le déclencheur. Et non, je ne suis pas seul : Pit, un ami, s'occupe du design du site depuis le commencement du jeu.
<Sephi-Chan> Tu as pris connaissances de PHP grâce à ton boulot ? Ou bien tu es tombé dessus par hasard un jour de pluie ?
<Galaan> En partant du jeu de tennis j'ai voulu savoir s'il existait d'autres jeux du même genre, et je suis tombé sur un autre jeu en PHP (je ne me souvient plus duquel), j'ai alors cherché à en savoir plus.
<Sephi-Chan> Et c'est donc à partir de là que tu as appris PHP. Par quels moyens ?
<Galaan> J'ai appris seul avec www.asp-PHP.net.
<Sephi-Chan> Tes connaissances de C++ et Java ont dû t'être précieuses lors de ton apprentissage de PHP.
<Galaan> Oui. Ca m'a permis de ne pas faire la première erreur que font la plupart des débutants : j'ai travaillé dès le début avec des objets.
<Sephi-Chan> Tu as donc commencé en utilisant l'objet de PHP. Quelle était la version de PHP à cette époque ?
<Galaan> C'était PHP4, et oui j'ai commencé en orienté objet, même si en PHP c'est plus du luxe qu'autre chose.
<Sephi-Chan> Tu avais déjà accumulé de bonnes bases au commencement du développement ou bien tu apprenais les "subtilités" de PHP sur le tas ?
<Galaan> Entièrement sur le tas et j'ai presque envie de dire que c'est ça qui m'a sauvé, même si je traîne quelques grosses boulettes.
<Sephi-Chan> Comment ça ?
<Galaan> En fait, le fait de voir le jeu évoluer et de rapidement pouvoir faire jouer les copains m'a « surmotivé » pour faire la suite. Je me souviens qu'au tout début j'avais seulement écris le moteur en PHP ! J'étais sur un canal IRC comme celui-là et j'ai distribué des comptes à tous les présents, et j'ai commencé à lancer les premiers matchs. Tout le monde était super enthousiaste !
<Sephi-Chan> Tu n'avais pas encore mis en place le système d'inscription/connexion ? Tu procédais donc "manuellement" au lancement des différents éléments du moteur ?
<Galaan> Oui. Il n'y avait rien du tout : pas d'inscription, rien ! Seulement le moteur.
<Sephi-Chan> Et tu as décidé de poursuivre le développement et de faire le « cadre » du jeu en voyant l'enthousiasme des premiers joueurs ?
<Galaan> Exact.
<Sephi-Chan> Ces mêmes joueurs qui ont fait les premiers pas sont-ils venus sur la première version "complète" ?
<Galaan> Oui.
<Sephi-Chan> Je suppose que tu as très vite rencontré des bugs dans le système ? Si oui, certains joueurs te les signalaient ? Ou bien tentaient-ils de tricher en les exploitant ?
<Galaan> Il y a eu des deux, mais les premiers gros bugs que j'ai rencontré était liés à mon hébergeur.
<Sephi-Chan> Sur quoi as-tu commencé ?
<Galaan> Multimania (Lycos), mais ça faisait planter le mon zoli moteur Javascript. Il se bloquait et si je n'étais pas devant pour le remettre en route, tout le monde devait attendre patiemment.
<Sephi-Chan> Pour nous situer dans le temps, en quelle année sont nées ces premières versions ?
<Galaan> Août 2003 il me semble.
<Sephi-Chan> Ok, ton jeu a donc bien tenu ! Mais pour en revenir à la sécurité, tu avais mis en place des systèmes pour les traquer ?
<Galaan> Non pas vraiment. Mais quand un joueur devient beaucoup plus fort que tous les autres joueurs de sa génération, tu te poses des questions, tu passes le compte à la loupe et là tu remarques de grosses anomalies.
<Sephi-Chan> Donc tu cernais les tricheurs une fois qu'ils étaient passés à l'acte
<Galaan> Oui.
<Sephi-Chan> Après coup, tu regrettes ce choix ?
<Galaan> Je ne suis pas sûr que j'aurais pu faire mieux : la plupart du temps les problèmes venait de la mauvaise protection des formulaires.
<Sephi-Chan> Tu devais donc subir des attaques à coups de valeurs négatives, par exemple.
<Galaan> Des choses dans le genres effectivement
<Sephi-Chan> Que faisais tu quand tu voyais ça ? Tu fermais le compte dudit utilisateur ou bien tu le contactais pour qu'il t'aide à trouver et corriger les failles ?
<Galaan> Quand un joueur me dit qu'il a découvert une faille, je m'arrange avec lui. Mais si c'est moi qui m'en aperçois, je « lobotomise » le joueur.
<Sephi-Chan> Violent ! :p
<Galaan> Ils le méritent !
<Sephi-Chan> Les rapports de bugs t'ont beaucoup servi ? Je veux dire par là que si tu travaillais sur un nouveau projet, tu inciterai les joueurs à contribuer à leur correction ?
<Galaan> Franchement... Non. Faire ça, c'est les inciter à chercher les bugs et les exploiter, et il ne se gène pas pour le faire.
<Sephi-Chan> Ok, donc selon toi ça ne vaut pas le coup. C'est un point important sur lequel je voulais ton point de vue.
<Galaan> Peut-être que c'est envisageable dans une petite structure où tout le monde se connaît, mais dès que le jeu devient plus gros mieux vaut que le joueur pense le jeu « propre » et qu'il n'y a aucune faille à découvrir.
<Sephi-Chan> Dans le cas d'une bêta test fermée, par exemple.
<Galaan> Oui, par exemple.
<Sephi-Chan> Lors du développement du jeu, tu as directement sorti une version complète ou bien tu rajoutais des modules progressivement ?
<Galaan> Je continue toujours d'en rajouter : dès la conception du jeu, j'ai voulu que le jeu ne reste pas figé et que je puisse toujours le développer.
<Sephi-Chan> Pour les rajouts, tu développes en local, tu testes puis tu l'appliques au jeu ?
<Galaan> Hem...hem... En théorie c'est ce que je devrais faire, mais c'est finalement très rare quand je le fais.
<Sephi-Chan> Ah ! J'aime quand ça ne se passe pas comme la théorie le voudrais.
<Galaan> De toute façon, l'expérience m'a appris que ce qui marche en local ne fonctionne pas toujours en production.
<Sephi-Chan> C'est vrai que de bêtes configurations peuvent parfois tout changer.
<Galaan> Ca ou les sources qui ne sont pas à jour, ou même le serveur qui ne supporte pas la charge. Il peut y avoir des tas de raisons !
<Sephi-Chan> Comment procèdes-tu donc pour ajouter de nouvelles fonctionnalités ? Tu clos le jeu quelques jours et fais des essais ?
<Galaan> Je code le module « en parallèle ». Généralement, je duplique les pages concernées et une fois le développement fini, je choisi quelques joueurs pour tester. Si tout fonctionne, je mets en production. Je garde toujours un backup local.
<Sephi-Chan> Comment réserves-tu ces pages modifiées aux joueurs choisis ?
<Galaan> Je leur donne l'URL. IRC ou MSN sont très pratique pour ça.
<Sephi-Chan> C'est assez dangereux comme façon de faire, non ?
<Galaan> Oui et non. Je me réserve toujours la possibilité de revenir en arrière très vite : en cas de grosse bourde, ça me laisse une marge de sécurité. Après, c'est sûr qu'il faut être très rigoureux pour faire ça.
<Sephi-Chan> Tu as même un backup de ta base de donnée ? Si oui, tu as déjà eu besoin d'y recourir en 4 ans ?
<Galaan> Oui, d'ailleurs, Ovh (http://www.ovh.com/), mon hébergeur actuel, est très bien pour ça. Et j'ai rarement eu besoin de ces backup. Il me semble que je n'ai dû recharger 1 ou 2 tables.
<Sephi-Chan> Les rares cas étaient dû à quoi ?
<Galaan> Une fausse manip' sur la base.
<Sephi-Chan> Okay, donc pas de tentatives de hack ou de foirage majeur.
<Galaan> Non.
<Sephi-Chan> Mine de rien, on a traité la naissance du jeu, sa sécurité et ses mises à jour. Je pense qu'on peut finir pour ce soir sur les solutions d'hébergement choisies au fil de l'évolution du projet ?
<Galaan> On a donc commencé sur Multimania (Lycos), mais ça a été très vite insuffisant.
<Sephi-Chan> D'un point de vue du temps de réponse ou de la capacité de stockage ? Ou encore à cause de ces foutus pubs ? :p
<Galaan> À l'époque c'était surtout les pubs qui empêchaient le moteur de tourner. C'est devenu très vite l'enfer. Je n'avais pas encore fait le système de salle : il y avait de plus en plus joueurs et donc de plus en plus de tournois. Ensuite est arrive la période Websiteout (http://www.websiteout.fr/) : un hébergeur très bon marché proposant 15 Mo d'espace disque mais une BdD illimitée.
<Sephi-Chan> Actuellement, ton site occupe combien en terme d'espace disque ? Et combien pour la BdD ?
<Galaan> La BdD est propre et elle tourne autour de 40M sans les archives. Pour le code c'est difficile à dire tant il est pollué : on utilise 200 Mo mais je suis persuadé que le jeu ne nécessite pas plus de 30 Mo
<Sephi-Chan> En effet !? Et pourquoi avoir quitté Websiteout pour Ovh ?
<Galaan> A cause du manque de support et des gros problèmes de bande passante, d'autant que la solution d'hébergement supérieure était beaucoup plus chère. On est donc allé voir ailleurs, chez Ovh et leur formule 90plan avec laquelle le site tourne très bien.
*****
Merci d'avoir lu et n'hésitez pas à laisser vos commentaires et avis.Sephi-Chan