Pour une fois je ne vais pas vous parler du dernier framework Java à la mode, mais d’une aventure humaine. Minecraft est un jeu créé par un seul homme, devenu millionnaire en quelques mois. Ce jeu simple mais très addictif est écrit en Java.
Markus Persson, alias Notch, est un développeur Suédois. Fan de développement de jeux vidéos, il lance mi-2009 la création d’un jeu appelé « Minecraft » de type « sandbox ». Le principe est simple : vous vous baladez dans un univers en 3D et vous créez ce que vous voulez avec différents blocs. Développé avec Java, en partie avec la librairie LWJGL, la première version tourne parfaitement sous la forme d’une applet dans votre navigateur. Je vous encourage à la tester pour comprendre la base du jeu. Elle devrait se lancer sans soucis sur votre navigateur.
Minecraft réinvente le principe du Lego ou de l’assemblage de briques pour construire un univers. Vous disposez de blocs pour construire selon votre imagination un univers, peuplé par d’autres joueurs. Lorsque j’y ai joué la première fois, je me suis amusé à construire une tour afin de pouvoir monter en hauteur, et découvrir les alentours. Le jeu propose le mode « Creative » ou « Survival ». Dans le mode Creative, vous disposez de tous les blocs dans votre inventaire. Seul ou à plusieurs, vous pouvez construire des univers énormes. L’intérêt est plus limité car il n’est pas possible de combiner des éléments ensemble pour obtenir de nouveaux blocs. Le mode « Survival » est plus intéressant. Seul ou en multi-joueur, vous devez cette fois-ci trouver des ressources pour survivre et éviter de vous faire tuer la nuit lorsque les monstres sortent.
Il y a à ce jour 76 blocs différents. Vous pouvez construire la Tour Eiffel si cela vous chante, des bâtiments, creuser à travers une montagne ou construire une maison avec d’autres joueurs. Le jeu simpleBeta vous laisse poser des blocs sans vous limiter, alors que le mode Survival ne vous donne pas beaucoup blocs pour commencer. Il faut aller en ramasser. S’il vous faut du bois… et bien vous aller couper des arbres. Il vous faut de la pierre ? Creuser la montagne et accumulez de la pierre. Et ainsi de suite.
En combinant plusieurs éléments ensemble, vous créez de nouveaux blocs. Par exemple 2 blocs de pierre permettent de créer un interrupteur (un Stone button). Vous pouvez ensuite programmer ce bouton pour qu’il actionne une porte. Vous pouvez ensuite par exemple tondre un mouton, couper un arbre, puis transformer la laine et le bois en une canne à pêche pour manger. Prenez par exemple 2 morceaux de bois et 3 morceaux de fer, et hop une épée. Pour avoir le fer il faut miner, et en trouver. Si vous voulez voir une partie de ce qu’il est possible de faire, regarder la page « Crafting » du site Minecraft Wiki.
Le jeu est écrit en Java. Le noyau de base ne pèse que 532ko. Il télécharge les ressources nécessaires d’un serveur, mais celle-ci sont très limitées. Le gameplay est très « années 90 », et cela n’empêche pas le succès du jeu. Loin de là.
A priori les serveurs tiennent la charge avec plus de 390 000 joueurs pour la partie Multi-player. Inutile de préciser qu’il ne s’agit pas d’un serveur Websfear+base OnRaque mais de solutions plus simples et plus efficaces. Tiens j’ai pas encore parlé de Play! Framework… et pourtant la stack réseau de Play! 1.0 est la même que la version Open de Minecraft : Apache Mina. (à noter que Play! est passé à JBoss Netty depuis la version 1.1).
Si vous vous sentez l’âme d’un développeur, vous pouvez aller voir le site MinecraftWiki et des exemples d’implémentation de la partie serveur comme de la partie cliente : http://www.minecraftwiki.net/wiki/OpenCraft
.
Un gros succès
Souvenez-vous qu’au départ il n’y a qu’un seul développeur. Markus débute en mai 2009 à coder ce jeu. Il va y travailler pendant quelques semaines, les premières versions rencontrent un énorme succès. Le jeu est tellement ouvert qu’il permet à chacun de s’amuser en quelques minutes. Markus met en place une page Paypal pour que les joueurs puissent acheter la version « alpha » du jeu. En septembre 2010, le jeu rapporte 250 000 dollars par jour, soit 15 000 USD par heure. Fin septembre, avec un pic à 300 000 USD par jour, Paypal bloque le compte de Markus, le temps qu’il régularise sa situation. Il explique qu’il n’a pas eu « …le temps de vider son compte et que donc, Paypal l’a bloqué car il était au delà de 600 000 EUR…« . Il y en a qui ont de vrais problèmes comme vous voyez.
C’est un vrai succès, plus de 380 000 fans sur la page Facebook du jeu, 5.2 millions de joueurs enregistrés, 1.56 millions de personnes ont déjà acheté le jeu 14.95 EUR. Le jeu a remporté de nombreux prix, qui saluent non pas la qualité technique mais plutôt la partie gameplay.
J’adore lire le blog de Markus car il lui arrive des aventures assez uniques. Par exemple au début du mois de mars, des serveurs sont tombés en panne. Il est dans un avion entre New-York et San Francisco. Et bien c’est grâce à la liaison Wifi dans l’avion qu’il relance ses serveurs. Tu imagines le bonhomme entrain de relancer une partie de son infrastructure dans le cloud alors qu’il est lui même… dans les nuages ?
Aujourd’hui Markus est toujours en Suède, il est maintenant à la tête d’une petite boîte de développement avec 8 autres personnes, donc ses meilleurs amis. Ils ont annoncé il y a quelques jours le projet « Scrolls« , un jeu de combat et de stratégie où l’esprit des cartes Magic devrait aussi apporter un côté collectionneur intéressant.
J’ai beaucoup d’admiration pour ceux qui font. On pense souvent qu’il faut avoir une bonne idée pour réussir. Je pense plutôt qu’il faut simplement faire les choses. C’est en construisant et en s’investissant que le succès arrive. Ce n’est pas sur une « bonne idée ». Et si Markus a réussi, c’est bien parce qu’à un moment, il a fait un logiciel qui marche, avec du code et des versions chaque semaine. Il n’a pas monté un studio de développement énorme ou une équipe projet. Il a juste « fait quelque chose ». Et ce quelque chose l’a rendu riche, libre et heureux.
A méditer.
Bonne semaine.
Ressources et références
– Minecraft : bac à pixel par Damien Hypolite
– $250,000-a-day Minecraft strikes indie game gold qui parle du succès du jeu
– Article WIkipedia FR sur MineCraft
– Les vidéos excellentes de quelques minutes pour tout comprendre du jeu de Sean Anners
Enfin si vous avez quelques minutes, regardez celle-ci :
Je ne suis pas tout à fait d’accord avec ta phrase » C’est en construisant et en s’investissant que le succès arrive. Ce n’est pas sur une « bonne idée ». ». Imagine que dans le même laps de temps, il se soit investit sur un tétris plutôt qu’un jeu au gameplay jusqu’alors jamais rencontré (si j’ai bien compris). Il aurait beau avoir sorti des versions chaque semaine, écouté ses beta-testeurs etc., je pense que le jeu aurait eu largement moins de succès…
Bon, si même les blogs Java se mettent à parler de Minecraft, je vais peut-être y jeter un oeil alors.
Remarque au passage, vu la tronche des screenshots que j’ai vus jusqu’à présent, ce jeu ne semble pas faire une super pub pour les excellents moteurs de jeu 3D en Java du marché 😉
Si tu as une idée en tete, « juste fais le ! » comme disais l’autre.
Long live MineCraft !
@Bastien Effectivement, on peut s’investir à fond dans un projet et ne pas rencontrer le succès. Mais je pense que Nicolas voulait surtout souligner que pour que ça marche, l’investissement des personnes compte plus que les idées.
Les startups qui marchent ne sont pas celles qui ont une bonne idée au départ, mais une bonne équipe. Et il n’est pas rare qu’entre les débuts et le « succès », elles aient changé 5 fois d’idée.
Les idées sont légions. Ceux qui les mettent en œuvre sont plus rares.
On entend trop souvent le discours : j’aimerai bien créer une startup / j’aimerai bien créer un projet Open Source / j’aimerai bien créer une app mobile => « mais j’ai pas d’idée », ou « mais j’ai pas le temps ». Je trouve ça bizarre. Une idée, j’en ai une presque chaque matin en sortant de la douche. Et bizarrement, le temps, il suffit de le prendre pour le trouver…
+1 avec Bastien.
Je fais des tonnes de choses la journée, je m’investis et pourtant je ne rencontre pas le succès => Ce mec a eu une idée qu’il a su concrétiser et dans laquelle il a investi ses efforts. L’un ne va pas s’en l’autre.
Le moteur 3D est ultra simple (des cubes) ce qui permet de minimiser les assets et de maximiser la complexité des interactions et la tenue à la charge. C’est l’un des cotés où sa réalisation tiens du génie KISS
Le truc qui m’épate aussi : le jar serveur autonome fait 414 Ko oO
Et mes war super simple (bon avec du spring…) font 30 Mo :/
@Piwaï J’aimerais avoir une idée (une bonne !) à chaque fois que je sors de la douche. En général, la seule que j’aie c’est « et si j’attrapais la serviette ? ». Du temps en effet ça se trouve, une idée pour moi c’est moins évident, si on cherche à faire quelque chose d’utile…
Mais tu devrais peut-être devenir entrepreneur 😉
@Samuel, moi ça m’étonne pas trop, y’a pas les monstrueuses couches d’abstraction des 15 frameworks que tu dois télécharger avant de commencer à faire ton hello world J2EE, si tu te contentes d’utiliser ce que fournit de base J2SE, tu peux t’en sortir avec un JAR léger, sans compter que le serveur doit principalement transmettre des infos d’un client à l’autre, voire les stocker, je ne pense pas qu’il fasse énormément de traitement dessus.
Bonjour, voilà, j’ai appris à programmer en jAVA (merci l’AFPA de Créteil) et je cherche une idée non pas pour m’enrichir, mais pour me faire connaître.
D’autre part je suis passionné de musique rap, donc je cherche à développer une appli pour cette passion, si quelqu’un a une idée, je suis preneur !
La différence entre ceux qui le font et ceux qui le font pas…c’est qu’il le font.
@Bruno : une base en ligne des artistes, librement accessible, développée avec le framework java Play! Framework ?
@author effectivement, l’idée d’utiliser un framework semble la plus appropriée car je ne pense pas avoir le temps de développer un système complexe en repartant de zéro. Merci pour ce conseil, je vais voir si une bdd artiste serais un plus pour la communauté… mais c’est un bon plan d’utiliser les internautes pour alimenter la base mais au niveau de la validation est ce que moi tout seul pourrais-je y arriver ?
Je suis actuellement plongée dans cette univers de folie qu’est Minecraft.
J’ai commencé par simple curiosité, et maintenant c’est ma drogue nocturne.
Je vous conseil ce lien http://www.gamerzonline.eu/forums/minecraft/ qui héberge des tutos qui permette de personnaliser l’univers du jeu.
J’y retourne, je tente actuellement de faire mon propre serveur.
Je ne te remercie pas pour ton article, car étant bien tourné j’ai essayé minecraft et depuis j’ai perdu ma vie sociale.