Comment nous avons créé le moteur et le jeu pendant un an et demi

Bonjour à tous, chers amis! Ici, je m'assois, regarde la feuille de code sans fin, fais un examen avec un pot de bu rouge. Une année s'est écoulée. Un an, bon sang, juste un an - tant et si peu en même temps. Nous avions des plans napoléoniens pour cette année, et maintenant il semble que nous n'avions pas beaucoup de temps. D'un autre côté, nous avons réussi à faire quelque chose qui était digne d'entrer dans les annales d'un ayty marqué «Démence et courage». J'appellerais cette histoire "Comment entailler votre moteur avec des outils et effectuer un rendu à partir de zéro en seulement un an." La publication sera publiée en plusieurs volumes, mais où aller, il faut commencer quelque part. Alors allons-y!

Il y a exactement un an, nous avons commencé avec un projet, sur lequel j'ai maintenant l'intention d'écrire en détail. De la hauteur de l'expérience, je peux dire en toute sécurité: c'est l'une des choses les plus risquées et ambitieuses que nous ayons jamais commencées. Je pense que l'expérience de notre équipe sera utile aux autres développeurs de jeux, mais il amusera au moins les joueurs.

Ici, je dois me présenter: je m'appelle Ivan, je suis le directeur technique d'une entreprise jeune mais ambitieuse. Ces 5 dernières années, j'ai développé des moteurs commerciaux. Au cours des 7 dernières années, il a travaillé dans une grande société de jeux, où il a travaillé sur un moteur pour un jeu multijoueur de session multiplateforme. Eh bien, avant cela, dans tous les lieux de travail précédents, il a créé soit des moteurs soit le jeu entier. Et une précision importante: il se trouve que presque toute mon expérience dans le développement de moteurs est liée aux plates-formes mobiles.

Le premier projet auquel j'ai participé consistait à développer un moteur 3D compatible OpenGL pour les appareils mobiles pour Motorola. Ensuite, il y avait le moteur des jeux occasionnels, où nos clients étaient Electronic Arts, Chillingo, Big Fish Games et d'autres sociétés éminentes et peu éminentes. Par la suite, ce moteur a été utilisé sur un grand projet de jeu.

En général, le moteur sur lequel j'ai travaillé a évolué au fil des ans. C'était une technologie open source, et nous avons commencé à la développer lorsque la société sous les auspices de laquelle nous avons créé des jeux pour nos clients était encore assez petite. Nous avons continué à le terminer, nous avons finalement publié l'un des premiers MMO de tireurs sur iOS / Android, faisant une sorte de percée sur le marché encore émergent des tireurs mobiles.

Il y a environ un an, j'ai pris mon cœur et j'ai décidé de quitter l'entreprise, de quitter le projet si cher et si cher à mon cœur, de partir en voyage libre. Ce n'était pas facile, je doutais depuis longtemps, mais l'expérience accumulée et les connaissances acquises au cours des années de travail suggéraient que tous mes bagages pouvaient être emballés dans quelque chose de moins, ou peut-être plus frais. J'avais même une idée de la façon dont cela pouvait être fait, mais je n'étais pas sûr que nous pourrions le faire avec l'aide d'une petite équipe, que nous serions en mesure de créer une technologie de haute qualité et populaire sur le marché en peu de temps. Mais, comme vous le savez, la fortune favorise les courageux, et nous avons réussi. Très rapidement, nous avons réuni une équipe de professionnels, animés par un désir commun: créer une nouvelle technologie complètement unique qui montrera au marché comment tirer le meilleur parti du fer des appareils mobiles modernes.

Et ici, le plaisir a commencé. Dans le mois suivant l'existence de notre démarrage de jeu, un plan a été formé. Quelque chose de complètement nouveau et complètement unique, surpassant toutes les solutions existantes. Cela semble très ambitieux et cool, non? Il en est ainsi! Mais il y avait des risques. Nous nous sommes fixé un objectif: réaliser notre idée immodeste en seulement un an et en un an et demi pour lancer notre premier jeu.

Je sais, je sais, en ce moment ça commence à sembler absurde. Mais - de façon inattendue - cette idée folle dans notre équipe a trouvé de nombreux supporters (et cela a une fois de plus prouvé combien il est important d'essayer de transformer des montagnes pour obtenir le soutien des mêmes personnes aventureuses partageant les mêmes idées). C’est un péché à cacher, l’idée de couper votre propre moteur motive vraiment les programmeurs à exploiter. Beaucoup se souviennent de la longue histoire de 4A Games, où les développeurs, après avoir quitté le GSC, ont créé à partir de zéro un moteur pour le célèbre jeu Metro. Il me semble que le succès des gars de 4A motive plus d'une équipe de progression tout comme il nous a inspiré.

En général, nous avons décidé. Ce sera mon histoire. Dans notre blog, avec mes collègues, je vous dirai dans quel tourment notre technologie est née, à travers quelles épines nous avons fait notre chemin vers les étoiles et pourquoi nous avons pris exactement les décisions que nous avons finalement prises. Je vais vous raconter par ordre chronologique l'histoire du Blitz Engine depuis le tout premier jour de développement jusqu'à la version finale. Sans aucun embellissement de la cuisine intérieure, seule la pure vérité.



La première question que vous vous poserez probablement est: «Pourquoi pas l'unité ou l'irréel?» Eh bien, la question est tout à fait logique et correcte.

En général, en choisissant le moteur de rêve - celui sur lequel le jeu même qui gagnera des millions sera fait, tous les développeurs indépendants sont finalement confrontés à un choix: Unity ou Unreal. En fait, les deux ont leurs avantages et leurs inconvénients, mais pourquoi ne nous conviennent-ils pas?

Commençons par Unity. Il y a peu de questions, à l'exception d'une: c'est C #, et nous scions en C ++. En conséquence, l'unité disparaît. Si vous souhaitez nous conseiller sur Unity, car c'est une excellente technologie qui vous permet d'écrire en C ++ avec un grand désir, alors soyons honnêtes: ce n'est pas du C ++ à part entière. Et nous ne sommes pas des développeurs C # et nous ne prévoyons pas encore de le devenir. Le deuxième problème est que malgré les efforts des développeurs Unity, ce n'est pas la technologie la plus rapide en termes de performances. Les décisions prises imposent des restrictions, notamment sur les performances.

Irréel - il semble, à la fois en ++, et les gars ont écrit raisonnable. Mais le moteur a commencé à être écrit il y a environ 10 ans. Les solutions architecturales qui y sont utilisées sont des solutions de pointe de cette période. Mais le monde a changé et en 10 ans, de nombreuses idées nouvelles et progressistes sont apparues. Peut-être pas si original pour écrire UE5, mais assez pour faire une percée décente. Nous avons décidé de miser sur ces nouvelles solutions et approches architecturales.

"Oui, Unreal Engine est cool, il est écrit en C ++ par des professionnels", dira le lecteur attentif. Bien sûr que oui. Mais permettez-moi de vous le rappeler: notre objectif est de tirer le meilleur parti des appareils mobiles et de faire progresser l'industrie. Unreal Engine est un moteur polyvalent, et ce n'est pas mal, il donne un plus à l'universalité. Ces technologies sont conçues pour des jeux de différents genres, et cet avantage entraîne des restrictions architecturales pour les développeurs du moteur. Et au début, nous avions prévu de briser les frontières et les stéréotypes, et de ne pas les intégrer.

En fin de compte: choisissez Unity - choisissez un environnement qui nous est étranger, choisissez Unreal - faites un projet moyen.

Tout le monde sait que les tireurs modernes haut de gamme sur PC sont fabriqués sur leurs propres moteurs de studio. EA a DICE et un moteur Frostbyte, Activision et Ubisoft ont leurs propres solutions technologiques, 4A Games a également construit son propre moteur, id Software a id Tech. Les développeurs des meilleurs tireurs sur consoles font de même. Oui, bien sûr, le travail, le temps, l'argent et tout le reste dans cette situation prend plus. Mais d'un autre côté, vous avez un contrôle total sur la technologie: vous pouvez choisir des solutions qui seront plus rapides et plus efficaces que des solutions toutes faites "pour tout le monde". Le tout, en fait, est dans la personnalisation: vous décidez de ce qui est important pour vous, et vous y mettez l'accent. Les exclusivités pour consoles sont conçues pour tirer le meilleur parti du fer cantilever super puissant. Et c'est ce dont nous avons besoin, non seulement depuis les consoles, mais aussi depuis les téléphones portables!

Mais nous avons décidé de partir du contraire: n'essayez pas de créer une solution pour le fer haut de gamme, mais regardez d'abord les appareils les plus faibles que nous devons absolument prendre en charge. Nous avons pris en compte leurs caractéristiques et avons commencé à rechercher des technologies qui nous permettraient de fonctionner sur ces appareils en haute qualité. Autrement dit, extrayez un maximum de visuels sympas d'un minimum de caractéristiques. Et oui, bien sûr, les solutions devaient être telles que plus tard, nous pourrions facilement nous améliorer sans restrictions pour les appareils mobiles haut de gamme, jusqu'au niveau de la qualité de la console et du PC.

Presque tous les tireurs mobiles modernes sont basés sur Unity ou Unreal. Vous avez déjà tout compris de nos plans ambitieux pour redresser l'industrie, donc le fait que nous ayons décidé d'introduire des innovations déjà à ce stade ne vous surprendra pas. Nous avons ignoré le dilemme traditionnel Unity vs Unreal et avons commencé à couper notre moteur.

Pour commencer - je vais vous montrer la vidéo. C'est ce qui s'est passé en un an. Nous avons fait de notre mieux pour tirer le maximum des appareils mobiles et créer un produit qui peut, sinon rivaliser avec les jeux de bureau, au moins se rapprocher d'eux en qualité. En fait, comme je l'ai déjà dit, notre objectif principal, aussi pathétique que cela puisse paraître, est de rendre les jeux mobiles bien meilleurs et de faire avancer l'industrie.


Il existe une telle règle «connaître son matériel». Son importance est difficile à surestimer. Nous avons souvent vu comment les meilleures équipes font quelque chose d'impossible pour les consoles - parce qu'elles savent sur quoi s'appuyer et décident à l'avance qu'elles vont essayer de surpasser. Nous avons toujours voulu faire des shooters, mais nous avons sobrement évalué nos forces: aujourd'hui le marché des shooters sur consoles et PC est immense et plein de produits de haute qualité. Dans le même temps, le marché de la téléphonie mobile est injustement privé d'attention, bien que beaucoup puisse y être fait. En général, tout s'est mis en place: nous avons décidé de rectifier la situation.

En résumé, nous avons formé cette direction générale:

  • Propre technologie
  • Niveau de qualité de la console sur les plateformes mobiles
  • L'accent est mis sur les tireurs
  • Moteur de réseau de jeu de session
  • Infrastructure pour faire fonctionner le jeu
  • Et, en fait, un jeu sympa.

Nous avions prévu de mettre tout cela en œuvre dans 1,5 an.

Naturellement, de nos collègues de l'atelier, nous avons constamment entendu dire que fabriquer son propre moteur avec Unity et Unreal était une démence (et sans beaucoup de courage). On nous a proposé un grand nombre de solutions toutes faites sur lesquelles quelqu'un faisait déjà quelque chose. Mais nous avions une opinion complètement différente. Nous avons décidé de l'essayer, et maintenant je peux dire avec fierté que nous allons bien. Le moteur est déjà là, et c'est très prometteur. Exactement comme nous le voulions. Nous travaillons activement sur notre nouveau jeu, nous prévoyons de le lancer déjà cette année.

Je ne me cacherai pas, les gens sont encore sceptiques quant à notre idée lorsque, lorsque nous nous rencontrons, nous partageons nos plans. Mais tout change lorsque nous sortons l'iPad et montrons les meilleures pratiques et les bandes-annonces. Les gens comprennent de quoi il s'agissait. Nous montrons le calendrier de notre jeu lors des interviews de nouveaux employés, et ils ne croient pas que ce soit un produit pour téléphones mobiles. Parfois, ils précisent trois fois si nous plaisantons. Un produit révolutionnaire nécessite des solutions innovantes. Oui, cette année a été difficile, nous avons dû beaucoup travailler. Mais maintenant, nous avons un moteur révolutionnaire, un excellent jeu BattlePrime et une histoire amusante qui intéressera de nombreux développeurs.


Habituellement, après avoir regardé cette vidéo, on nous dit qu'ils ne croient pas. Ce qui est probable dans la version finale, tout sera différent. En général, il n'est pas habituel dans notre industrie de faire confiance aux remorques ... Mais vous y croyez vraiment. Et dites-nous dans les commentaires comment vous allez!

Nous voulons dire comment nous avons développé le Blitz Engine, et pour cela je publierai une série d'articles sur l'année de notre développement.

La deuxième partie: habr.com/en/post/465343

Source: https://habr.com/ru/post/fr461623/


All Articles