I. Introduction▲
Hello tout le monde ! Je fais ce petit billet parce que j'ai l'impression que pas mal de personnes se retrouvent légèrement perdues face à la question de l'hébergement d'un jeu et du choix du serveur. C'est un article théorique destiné aux débutants et qui ne sera donc volontairement pas très technique. Il concerne l'hébergement d'un jeu en ligne par navigateur (généralement développé en PHP avec une base de données MySQL).
Si vous avez des bons plans d'hébergement de sites, n'hésitez pas à les partager via les commentaires ;-). Je pense qu'il y aura des preneurs… ! Idem si vous avez des précisions à apporter, n'étant pas forcément à jour…
I-A. Le serveur▲
Afin de pouvoir rendre accessible votre jeu à vos futurs joueurs via une adresse URL, vous aurez besoin de le déployer sur une machine (un ordinateur) allumée (et connectée à Internet) en permanence sur laquelle est installé un ensemble de logiciels indispensables à son bon fonctionnement. Cette machine via laquelle les joueurs auront accès au jeu est communément appelée serveur.
Généralement, pour héberger un jeu par navigateur classique, on aura besoin (au minimum) d'installer sur cette machine les trois éléments suivants :
- PHP (http://php.net/downloads.php) ;
- un serveur Web (Apache : http://httpd.apache.org/download.cgi) ;
- une base de données (MySQL : http://dev.mysql.com/downloads/installer/).
Ces éléments sont inclus dans les fameuses plates-formes de développement web WAMP (ou EasyPhp) et LAMP.
En général, pendant toute la phase de développement, vous n'avez pas besoin d'un hébergement en ligne, car il n'est pas encore rendu public. C'est votre propre ordinateur personnel qui jouera le rôle de serveur. La recherche d'un hébergement en ligne intervient donc en fin de développement, juste avant la mise en ligne de la bêta (ou de l'alpha) nécessitant l'intervention de joueurs (et donc que le jeu soit accessible à tous via Internet). Inutile de commencer à payer un hébergement en ligne alors que personne ne peut encore jouer à votre jeu :). Focalisez-vous sur la conception et le développement et mettez cette problématique de côté tant que votre jeu n'est pas un minimum abouti.
Il faut également noter que le terme « serveur » désigne habituellement un ordinateur (« Tu peux me rappeler l'adresse du serveur ? »), mais peut également désigner un ou plusieurs logiciels installés sur une machine (« J'ai installé un serveur FTP sur mon PC portable ce week-end »). Parfois, il peut s'agir d'une personne (« Le serveur a encore oublié ma pizza ! »). Tout cela peut éventuellement porter à confusion…
Lorsque l'on parle d'héberger son jeu en ligne, cela revient à chercher un serveur sur lequel le déployer. Vous pouvez utiliser votre propre ordinateur ou bien encore en louer un à une société (un hébergeur) en payant une somme tous les mois qui sera variable selon le type de machine louée, les services associés, etc.
I-B. Quelques types d'hébergement▲
Un jeu par navigateur est avant tout un site Internet et il y a différents moyens de l'héberger (il est possible que j'en oublie, car les offres sont très riches sur Internet). À vous de décider de la solution que vous allez adopter, selon vos besoins, vos connaissances et vos moyens (financiers). Voici un petit topo des solutions d'hébergement les plus fréquemment rencontrées.
I-B-1. Personnel : héberger soi-même son jeu par navigateur▲
Il est tout à fait possible d'héberger soi-même son jeu en utilisant son propre ordinateur. Cela nécessite néanmoins des connaissances techniques non négligeables et présente pas mal de contraintes. C'est donc une option que je déconseillerais aux novices même si elle présente l'avantage (non négligeable) d'offrir une liberté totale au niveau du serveur.
Déjà, il est évident que l'ordinateur doit être allumé et connecté sur Internet en permanence - faute de quoi votre jeu sera inaccessible - ce qui a un prix et peut occasionner quelques gênes (bruit, chaleur). Inutile également de préciser que si votre bande passante est saturée par vos téléchargements (des isos Linux, bien évidemment), vos visiteurs en souffriront puisque c'est cette même connexion qui sera utilisée pour votre jeu. De même, si votre serveur plante lamentablement pendant que vous êtes en vacances à Bora-Bora, cela peut signifier des jours d'indisponibilité, un désastre pour votre jeu web…
À prévoir :
- installation et configuration de l'ordinateur (OS, serveurs applicatifs, base de données, serveur mail, etc.) ;
- sécurisation du serveur (conf réseau, firewall, OS, etc.) ;
- ordinateur allumé 24h/24 ;
- connexion Internet performante et disponible ;
- prix pas vraiment attractif (ordinateur, électricité, Internet) ;
- disponibilité en cas de surprise (problème) technique : crash du PC, la box qui part en vrille…
Bref, pas forcément une partie de plaisir. Si j'étais vous, je ne me lancerais pas dans l'aventure.
I-B-2. Gratuit : mais (forcément) limité !▲
Il est tout à fait possible de trouver un espace gratuit pour votre jeu.
Par exemple via votre fournisseur d'accès à Internet, vous avez peut-être droit à un espace web gratuitement, renseignez-vous. Mon jeu a ainsi passé ses premiers mois sur un simple espace personnel Free (saturé au bout de quelques mois, mais c'était globalement satisfaisant au début).
Malheureusement, les hébergements gratuits (comme Multimania) ajoutent souvent à votre site des bandeaux publicitaires qui ruineront le design de votre jeu et feront fuir vos visiteurs… Bien plus restrictifs, certains hébergements gratuits sont limités à des pages HTML (pas de PHP), ou bien ne proposent pas de base de données.
Cela peut néanmoins être une première étape dans la vie de votre jeu et vous pourrez toujours changer d'hébergement par la suite, pour un petit hébergement mutualisé par exemple.
I-B-3. Mutualisé : passer par un hébergeur (payant)▲
L'hébergement mutualisé est la solution la plus pratique (et je pense la plus fréquente) pour un jeu web. Il s'agit tout simplement de passer par une société spécialisée dans l'hébergement web en payant une certaine somme par mois en fonction de ses besoins. On obtient ainsi un espace sur lequel déployer son site (dans notre cas notre jeu).
Il existe un grand nombre d'hébergeurs sur Internet qui proposent différentes solutions à des prix très variables. En général ces offres ont pour caractéristiques :
- espace disque disponible pour vos fichiers ;
- bande passante allouée par mois (trafic mensuel) ;
- nombre et taille des bases de données ;
- nombre de comptes mails associés ;
- etc.
Votre but sera de trouver ce qui convient le mieux à votre besoin et à votre budget. Il ne faut pas voir trop petit (sous peine d'en souffrir), mais il ne faut pas non plus voir trop grand. Le mieux est donc de prendre le nécessaire au bon fonctionnement du jeu (avec une marge de progression afin de ne pas étouffer en quelques semaines) puis de monter en gamme au fil du temps. Plus il y aura de joueurs, plus vous aurez besoin de bande passante, d'une taille de base de données plus grande, etc. Anticipez un minimum vos besoins futurs !
Attention, pensez à vérifier que les éléments techniques nécessaires au bon fonctionnement de votre jeu sont bien disponibles !
- Version de PHP installée.
- Fonctions, extensions PHP autorisées.
- Version de la base de données MySQL.
- Présence de CRON (lancement automatisé de scripts).
- Etc.
Ce serait dommage de vous rendre compte au dernier moment que votre frameworkPHP top moumoute ne fonctionne pas, car vous ne disposez pas de la bonne version de PHP sur votre serveur… Par exemple le framework Symfony a ainsi besoin d'une version de PHP 5.2.4 (ou plus) et Symfony 2 d'une version 5.3.3 (ou plus). Si votre hébergeur ne propose pas une version compatible avec votre code source, c'est tout votre jeu qui est KO.
Vous pouvez avoir un exemple d'offre sur la page de 1&1. On peut par exemple voir que si votre site utilise du Ruby, l'offre « 1&1 Essentiel » ne vous conviendra pas, car Ruby n'est pas supporté dans cette offre ! Prenez donc bien le temps avant de choisir votre hébergement, surtout n'hésitez pas à vous renseigner sur Internet pour vérifier la qualité de l'hébergement que vous comptez prendre.
I-B-4. Serveur dédié : louer une machine▲
On trouvera souvent chez ces sociétés des offres d'hébergement dédié en plus des offres mutualisées. Il s'agit de louer un serveur fixe ou virtuel (par exemple les VPS d'OVH) chez l'hébergeur et donc d'avoir plus de libertés. Elle nécessite par contre un minimum de connaissances système et de patience…
À noter qu'un hébergement dédié est en général plus cher qu'un mutualisé et je pense qu'il est préférable de commencer par un mutualisé au lancement du jeu, ce serait un brin dommage de payer un dédié pour un jeu qui ne fonctionnera pas forcément aussi bien qu'escompté (et ça arrive !).
Ne pas oublier non plus que vous allez devoir assurer la maintenance de votre dédié ce qui est une contrainte à considérer (ne pas oublier les mises à jour, par exemple…).
I-B-5. Associatif : trouver un espace au sein d'une association▲
Enfin il existe des associations qui peuvent (en respectant certaines conditions) vous fournir un espace pour votre jeu. C'est la solution pour laquelle j'ai opté pour mon propre projet, via l'association Nainwak. En plus d'être gratuite, cette solution vous permet de côtoyer d'autres créateurs passionnés, de vous délester de la partie administration du serveur ou bien encore d'avoir une assistance technique en cas de pépin.
À noter qu'il y a néanmoins une cotisation annuelle à prévoir, car il faut en général adhérer à ce type d'association pour bénéficier de l'hébergement.
I-C. Conclusion▲
Pour un créateur néophyte, je pense que le plus raisonnable serait de commencer par un hébergement gratuit comme ceux de Free ou un petit mutualisé (offres de mieux en mieux fournies pour quelques euros par mois). Lorsqu'on lance un jeu, on n’a pas forcément le temps ou l'envie d'avoir en plus les galères techniques d'un serveur (hébergement perso/dédié). Inutile de faire un investissement important en prenant un hébergement de fou furieux dès le début, vous pourrez évoluer petit à petit selon le succès de votre jeu.
Pour ceux qui n'arrivent pas à mettre la main sur un bon hébergement gratuit et qui n'auraient pas de quoi payer un mutualisé, vous pouvez toujours essayer d'aller squatter le dédié d'un ami ou d'aller faire un tour du côté des associations ;-).