Salut les gars! Le texte ci-dessous vous expliquera comment j'ai développé mon jeu MMO sur les harceleurs, les artefacts, les émissions et les vélos autour d'un feu pendant deux ans et demi.

Tout a commencé avec le fait que, pour la première fois de ma vie, j'ai pu transférer des informations d'un appareil à un autre à l'aide de sockets. En appuyant sur le bouton tactile sur l'écran du smartphone, la boîte noire du moniteur d'ordinateur portable s'est déplacée. Ma joie ne connaissait pas de limites. C'est une sorte de magie, pensai-je. Il a été immédiatement décidé - "C'est ça, je fais un jeu en ligne." Puisque je suis un fan du harceleur, la question - "Quel genre de jeu en ligne?" N'a même pas résisté. À propos du fait que les jeux ne sont pas faciles à faire, je le savais. Le fait que faire des jeux en ligne n'est pas très facile, je suppose. Mais à ce moment, enivré de joie et d'inspiration, je n'y attachais pas la moindre importance.
Et le développement a commencé. Comme je ne sais pas dessiner, la question s'est immédiatement posée sur les graphismes. Et la réponse à cette question a été trouvée. Il était une fois, sur les anciens téléphones à bouton-poussoir (j2me), un passionné indépendant a développé le jeu "Zone of Aliation". Si pour décrire le jeu en bref, alors c'est un harceleur 2D pour mobile. Les graphismes de ce jeu étaient parfaits pour mon projet. J'ai contacté l'auteur des graphiques, Pavel Shevelev, et j'ai demandé la permission de l'utiliser dans mon jeu. Paul n'a pas refusé et a même dessiné autre chose, dont beaucoup de remerciements à lui.

De plus, il était nécessaire d'écrire du code. Déplacer un carré noir est une chose, et faire un jeu à part entière en est une autre. Si vous conduisez dans le moteur de recherche - "Comment créer un jeu en ligne?", Vous ne trouverez pas de réponse spécifique qui pourrait même vous aider un peu. Les informations dans RuNet sur ce chat ont pleuré, mais sur les exemples, je me tais généralement. Mais j'ai néanmoins réussi à trouver des informations sur les conférences vidéo de Vitaliy Chibrikov sur Habré, qui expliquaient comment écrire un serveur pour un jeu en ligne. Après avoir étudié à fond les 9 conférences (une conférence dure environ deux heures en moyenne), j'ai quand même réussi à construire un solide squelette d'interaction client-serveur sur ma base pour mon futur jeu. S'il n'y avait pas eu Vitaly, je n'aurais pas atteint un tel résultat, merci beaucoup à lui. Quelques mots sur les technologies que j'ai utilisées - le serveur est écrit en java, base de données MySql, connexion réseau nette. Le client est également écrit en java en utilisant le framework libgdx.

Ayant les graphismes et le mécanisme de transfert de données, le plus «simple» est resté - faire un jeu. Pour commencer, il a fait une localisation. Puis il a ajouté un personnage de jeu, lui a appris à marcher. Puis il a foiré le changement de jour et de nuit, ainsi que les effets météorologiques. Puis il a créé la première foule - un porc. Il a ensuite ajouté des tirs pour que ce sanglier puisse être tué. Puis il a fait du pvp pour qu'il soit possible de tuer non seulement des sangliers, mais aussi d'autres joueurs. Et maintenant, il y a quelque chose qui ressemble à distance à un jeu. Il semblerait qu'il n'y ait pratiquement aucune fonction de jeu, mais il a fallu beaucoup de temps pour mettre en œuvre tout ce qui précède. Tout a été compliqué plusieurs fois par le fait qu'il s'agit d'un jeu MMO. Presque toutes les actions que vous effectuez dans le jeu devraient être vues par les joueurs autour de vous. Au stade initial du développement, le serveur est tombé en panne à chaque éternuement. Presque tous les jours, je suis tombé sur un tas de problèmes et d'erreurs. Avant le début du développement, je ne pouvais pas imaginer combien de problèmes je devrais résoudre. Mais le développement s'est poursuivi lentement et le jeu s'est développé.

Jusqu'à un certain point, les tests n'étaient effectués que sur mon PC personnel. Le serveur et plusieurs copies de clients ont été lancés sur la même machine et ont communiqué entre eux via localhost. Mais au fur et à mesure du développement du projet, la pensée m'est venue de plus en plus souvent: "N'est-il pas temps de montrer le jeu aux gens et d'organiser de vrais tests avec des joueurs en direct?" Et à un moment donné, j'ai décidé qu'il était temps. J'ai loué du fer, la configuration minimale avec Linux à bord. J'ai téléchargé mon programme serveur là-bas, et après une nouvelle portion d'hémorroïdes et de danse avec un tambourin, le serveur a démarré avec succès. "Ouah!" J'ai pensé, ça marche. La première personne à entrer dans le jeu a été l'artiste Pavel. Nous avons couru autour de la carte, bavardé et abattu des sangliers. Après quoi j'étais heureux et heureux que tout fonctionnait et j'ai commencé à me développer avec vengeance. Les jours ont passé, le jeu a grandi et s'est développé, environ une fois toutes les deux semaines, j'ai organisé des tests ouverts, pendant lesquels tout le monde pouvait jouer et tester de nouvelles fonctionnalités. Parfois, le compteur de joueurs en ligne dépassait la centaine. C'était un grand moment, j'ai créé un monde virtuel qui vivait selon mes règles et lois, pendant les tests, je me sentais presque comme un dieu. Parfois, je suis allé sur le serveur et j'ai simplement regardé les joueurs, ils y courent, parlent, se querellent, se réconcilient, créent des clans, se battent, collectent des artefacts, se brisent en anomalies, errent docilement dans les maisons pendant la libération. Et combien d'histoires intéressantes se sont produites dans le jeu! Je me souviens que certains gars se sont déclarés bandits et ont renversé le butin pour entrer dans un certain endroit. Ceux qui ont refusé de payer ont été abattus (dont moi). Ou une fois, un groupe de harceleurs lors d'une éjection s'est caché dans une maison entourée de tous côtés par une clôture et quelqu'un a bloqué la seule sortie avec des anomalies de l'électron (il y a un artefact qui crée une anomalie) après l'éjection, le groupe a été fermé dans la cour de cette maison jusqu'à la fin du test, donc comme à ce moment-là, après la mort, le joueur est né de nouveau au même endroit où il est mort.

Pour le moment, le jeu a été implémenté: 20 emplacements, jour et nuit, pluie, pvp, pve, 3 types de mobs aux comportements différents, attaques massives de mobs sur la base, 1 boss de raid, 13 artefacts aux caractéristiques différentes, 8 anomalies aux effets différents, boulons pour rechercher et désamorcer les anomalies, 8 quêtes, système d'expérience et compétences de nivellement, traqueur pda, rayonnement, émissions, groupements, guerre des groupements sur les territoires, PNJ qui peut tirer sur des mutants et se cacher des émissions dans les maisons, système de sac à dos et d'objet, commerce avec PNJ et joueurs, 9 types d'armures, 7 types d'armes, détecteur d'anoma un détecteur de rayonnement, une guitare, plus environ 15 articles différents, et bien sûr la possibilité de s'asseoir près du feu et de discuter avec d'autres joueurs. Je voudrais également m'attarder sur la méthode d'extraction des artefacts. Les artefacts sont nés après une éjection d'anomalies, et ne sont pas initialement visibles pour le joueur, pour que l'artefact soit levé, il est nécessaire de remplir un certain nombre de certaines conditions propres à chaque artefact. Par exemple, pour obtenir l'artefact «Sang», il est nécessaire que l'anomalie électronique de second niveau, lorsqu'elle est déclenchée (projection de boulons), entre en contact avec l'anomalie d'un nuage acide (vole le long de la carte dans une direction arbitraire). Ou pour obtenir le «cœur», vous devez utiliser l'artefact «bleu» (crée une nouvelle anomalie) afin que la nouvelle anomalie pénètre dans l'élan de l'anomalie, plus le manque de soleil est nécessaire, c'est-à-dire que l'artefact ne peut être obtenu que la nuit.

J'ai travaillé sur tout cela pendant plus de deux ans, mais tout le sel de ce contenu est suffisant pour trois ou quatre jours, après quoi il n'y a tout simplement plus rien à faire dans le jeu. Pour cette raison, le nombre de joueurs dans le jeu diminuait progressivement, et j'ai compris de plus en plus clairement que je ne pouvais tout simplement pas terminer le jeu. J'ai passé beaucoup de temps sur le développement, mais il semble que je n'ai pas fini le projet même de moitié. Je pense que j'ai obtenu un bon résultat, mais je dois encore faire face à la vérité - il est impossible de créer un MMORPG à part entière seul ou presque impossible. J'ai essayé de trouver un autre programmeur, mais peu de gens connaissent parfaitement Java et ont de l'expérience dans le développement d'applications client-serveur. Oui, et peu de gens veulent comprendre mon code, car il a été écrit loin d'être parfait, et surtout, il y en a beaucoup, beaucoup, beaucoup de vraiment directs. Je ne vais pas poster le code en libre accès, peut-être un jour, après avoir assez joué dans le stalker 2, je finirai tout de même.
Voici une telle histoire. Équipe de projet en vk -
Zone de projet 2d en ligne .