Créateur de while True: learn () sur la programmation dans le développement de jeux, les problèmes de VR et la simulation d'apprentissage automatique



Il y a quelques années, j'avais le sentiment qu'Oleg Chumakov (qui travaillait alors au studio de jeux Nival) était le programmeur le plus célèbre de l'industrie du développement de jeux. Il prononçait des discours, animait des Gamesjams et se montrait fréquemment sur le podcast Comment les jeux étaient faits .

Lorsque la VR est arrivée sur le marché, Oleg a été choisi pour diriger le nouveau département de l'entreprise - NivalVR. Mais, comme vous le savez probablement, la VR n'a pas autant décollé que ce que les gens attendaient.

Je suis en quelque sorte passé à autre chose dans la vie et j'ai arrêté de suivre le développement du jeu pendant un certain temps, mais après y être retourné, j'ai remarqué que les choses allaient bien pour l'équipe d'Oleg. Maintenant, il s'appelle Luden.io, et leur simulateur expert en apprentissage automatique, tandis que True: learn () est devenu un énorme succès dans sa niche certes petite. Beaucoup d'histoires sympas se produisent autour du jeu et de l'équipe.

Nous avons décidé de faire une interview avec Oleg, mais je ne pouvais pas m'en tenir à un sujet - sa vie jusqu'à ce moment a été, faute d'un meilleur mot, «intéressante». Il a tout vu. Et, pour s'assurer qu'un programmeur puisse parler de programmation sans craindre de paraître trop «ringard», l'interview a été menée par mon ami, collègue et développeur expérimenté de son propre fillpackart .


Oleg Chumakov lui-même

J'ai vérifié alors que True: learn (). Un grand jeu, d'ailleurs, je ne pouvais pas arrêter de jouer.

Jusqu'où êtes-vous allé?

Pas loin du tout. J'ai commencé à jouer la nuit et je me suis immédiatement retrouvé coincé dans une quête secondaire. Je n'ai pas pu m'endormir tant que je ne l'ai pas résolu. Comment ça se passe avec le jeu, au fait?

Assez bien. Nous ne pouvions même pas imaginer que cela deviendrait si grand. Nous n'avions prévu qu'un petit projet. Regardez-le de cette façon: prenez tous les joueurs, puis prenez ceux qui ne jouent qu'à des jeux de puzzle et rien d'autre. Ensuite, prenez ceux qui sont prêts à se lancer dans la programmation. Et puis, à partir de ceux-ci, prenez les personnes qui sont spécifiquement dans l'apprentissage automatique. C'était notre public cible. Mais bien sûr, cela ne s'est pas tout à fait déroulé ainsi.

Rien que pendant la première nuit, nous avons eu plus de joueurs que nous espérions attirer en six mois. Alors, évidemment, les semaines suivantes ont été plutôt amusantes. Nous essayons d'ajouter la prise en charge de différentes langues et, en général, de maintenir le jeu à flot tout en parlant à des milliers de personnes à la fois sur Discord.


J'ai le sentiment que votre discussion Discord est très engagée, car tout le monde est vraiment dans l'apprentissage automatique. Avez-vous des histoires intéressantes sur vos joueurs?

Nous avons un joueur, appelé M. Floppy (aucune idée de son nom dans la vraie vie). Il a rejoint le projet pendant l'alpha fermé, lorsque nous avons distribué le jeu à un nombre limité de personnes pour recueillir des commentaires.
Dans le jeu, vous (le programmeur) avez un chat, il est assis sur le moniteur et miaule tout le temps. Mais au départ, il était censé vous distraire activement du processus. Cela viendrait à un moment très inopportun et exigerait que vous jouiez avec lui, que vous vous asseyiez devant le moniteur, ce genre de choses. C'était l'idée de M. Floppy: quand il jouait, son vrai chat le distrayait toujours, alors il a pris une photo, l'a publiée sur Discord, et tout le monde a immédiatement su quelle prochaine fonctionnalité nous allions ajouter.

Il s'est vraiment impliqué dans la communauté. Il a commencé à imprimer en 3D ces chats dans le jeu dans différents vêtements et les a envoyés aux meilleurs joueurs. Essentiellement, il a manipulé notre marchandise gratuitement. Il venait juste de s'en sortir. C'est un souvenir très chaleureux de la façon dont notre communauté est essentiellement née d'elle-même - nous n'avons jamais eu cela dans nos projets jusqu'à présent. Nous avions des gens qui faisaient des cosplays, des fan arts, mais des objets d'impression 3D du jeu à offrir en cadeau les uns aux autres - c'était une première.

Certains joueurs espéraient plonger dans l'apprentissage automatique et le jeu a levé la barrière d'entrée notoirement élevée pour eux. Après l'avoir joué, ils sont allés à Coursera, à la recherche de compétitions de différents niveaux ... Et nous les surveillons de près, en prenant des paris sur qui serait le premier à obtenir un vrai travail d'apprentissage automatique. Quand ce jour viendra, nous fêterons probablement.

Donc, cela signifie que personne ne l'a encore fait?

Ils sont à mi-chemin de leurs cours en ce moment. Le jeu est sorti en mars, il n'y a pas encore assez de temps. Mais en général, beaucoup de choses sympas se sont produites avec le jeu. YouTubers l'a utilisé pour enseigner l'apprentissage automatique, par exemple. Le jeu est actuellement utilisé dans les écoles - en Russie, au Royaume-Uni, aux États-Unis, en Australie, partout. Je ne peux donc pas nommer exactement l'histoire la plus cool qui nous soit arrivée - nous avons quelques prétendants chaque semaine.


Stanislav Semenov - un scientifique des données et l'un des meilleurs utilisateurs de Kaggle - joue WTL

OK, nous reviendrons plus tard sur l'apprentissage automatique. Dites-moi ce que vous faites exactement dans le cadre du projet, décrivez votre journée de travail typique.

Ma responsabilité en ce moment est de parler avec l'équipe de base, de parler de leurs plans (ce qui va faire pour les 2-3 prochains mois), et de garder ce plan à l'esprit pour tous ceux avec qui nous travaillons. En intégrant le jeu dans diverses activités, aidez-le à vendre à cette école ou à cette école. Bref, être le pont entre les développeurs et le monde extérieur.

Parfois, je contribue quelque chose de mon intérêt profond - le développement client. Par exemple, lors de l'intégration du jeu dans un cours scolaire, nous avons rencontré un problème: les enfants vont aux cours de programmation, puis rentrent à la maison, les parents leur demandent «qu'avez-vous fait dans ces classes», et ils répondent «rien, vraiment». Et les parents se demandent - ne veulent-ils simplement pas leur dire ou ils ne font vraiment rien. Nous avons donc automatisé les rapports d'avancement: par exemple, les parents peuvent recevoir des messages «votre enfant a appris le perceptron aujourd'hui» ou «votre enfant a programmé un rnn» et ainsi de suite. Ces fonctionnalités se produisent grâce aux interactions entre le jeu et le monde - principalement à travers moi.

En outre, en tant que PDG, mon travail consiste à inspirer tout le monde avec un objectif commun et global, à rendre le travail de chacun confortable, à éliminer les complications et à faire travailler les gens sans se soucier des besoins de base.

D'accord. Vous ne vous programmez donc pas maintenant?

Oui, mais seulement occasionnellement. Je travaille actuellement sur la refonte des startups en jeu. J'ai une idée sur la façon de le faire depuis longtemps, bien que pour notre prochain projet dédié au marketing Internet, mais je n'ai tout simplement pas eu le temps. J'avais l'habitude de faire ces choses en une semaine, maintenant je prends un mois et ce n'est toujours pas fait.

Sur la programmation dans le développement de jeux


Souvenons-nous du bon vieux temps. Pourriez-vous me parler de votre vie de programmeur?

Eh bien, le plus grand projet auquel j'ai participé, celui qui a façonné ma future carrière, était le jeu Prime World. C'était un énorme projet à Nival, un MOBA avec un élément social (appelé Castle je crois). J'étais dans l'équipe de Castle et il y avait plus de 20 personnes - pour une toute petite partie du jeu! Et bien, il y avait tous les problèmes de multijoueur synchronisé qui existent dans ce monde.

Quand avez-vous rejoint le projet, comment était-il à ce moment-là?

Quand j'ai rejoint, "Castle" n'existait pratiquement pas.

Mais, juste pour informer les lecteurs qui n'ont pas joué - le jeu comportait deux parties: celle avec de véritables batailles de style MOBA et le château, où le joueur monte de niveau, embauche des héros, les développe, puis choisit un héros et part au combat . La partie bataille était presque complète à ce stade, mais la partie sociale en était aux tout premiers stades de développement.

Et comme Nival vous a embauché?

Je suis venu en tant que programmeur régulier. Je me souviens avoir créé un tout nouveau projet Unity - nous sommes partis de zéro et nous avons dû à la fois créer le château et l'intégrer à la partie bataille, puis en cours de développement actif.

OK, c'était donc Unity. Quel langage de programmation, alors? C ++, C #?

La partie session était sur C ++, notre partie était sur Unity et la logique principale était sur C #. Mais comme c'était, disons, un projet complexe avec beaucoup de technologies qui se croisent, nous avons également mis le tout à travers Thrift pour le traduire en Python, car c'est sur cela que le serveur était écrit.

Wow, parlons des frais généraux pour le développement C #.

Et c'est pour le dire doucement. Mais nous avons quand même trouvé un moyen élégant de s'en sortir. Nos collègues plus âgés étaient des gars très expérimentés, nous avons donc adapté le code spécifiquement pour ces traducteurs et c'était assez joli - pratiquement aucun classement manuel requis.

Je pense que c'était de retour à l'époque où des technologies comme Thrift, Protobuf et autres ne faisaient que décoller. Nous l'avons considéré comme un miracle technologique - ils ont juste pris votre code, en plusieurs langues, et ont résolu le problème de tout assembler.

Je ne peux qu'imaginer. Lorsque vous avez rejoint le projet, connaissiez-vous déjà C # et le monde de .NET en général?

Oui, j'étais assez familier. Je connaissais également Unity 2.6 (si je me souviens bien), mais c'était un produit étrange en soi. Je pourrais écrire sur .NET, mais sur Mono à un stade précoce. C'était le moment où Xamarin n'était même pas encore en développement.

Je me souviens que Mono était un animal plutôt sauvage que les gens ont rarement vu, mais il a été intégré à Unity, qui était le plus grand projet à inclure Mono. Il y avait donc tous les petits problèmes que les machines virtuelles avaient dans leur enfance. Fuites de mémoire incroyablement élevées sur toutes les plates-formes, différences imprévisibles avec .NET dans les choses les plus banales, allocations inutiles partout ...

Donc, avant cela, vous travailliez avec .NET normal, et là, vous avez reçu un runtime différent et mal documenté (à l'époque).

J'ai déjà travaillé sur Unity auparavant, mais cela, faute d'un meilleur terme, «période de transition» - lorsque vous avez travaillé sur Unity et que vous devez maintenant travailler en Mono - a été difficile. Je ne peux pas dire que j'étais un développeur .NET particulièrement expérimenté. J'en avais une compréhension approximative et même quelques projets finis, mais je ne me souciais pas du tout de la performance, alors j'ai probablement fait beaucoup d'erreurs d'optimisation dans mes projets. Toutes les parties exigeantes en performances étaient en C ++, .NET n'avait rien à voir avec elles.

Parlez-moi de votre première semaine de travail. Vous avez réussi l'entretien, obtenu une offre et boum - vous êtes développeur. Et ensuite?

Eh bien, il convient de mentionner que nous n'avons pas commencé avec Prime World. Il y avait un autre projet avant cela, mais il n'a pas pu sortir et un jour nous avons été transférés sur Prime World pour travailler sur le château. C'est arrivé si vite - nos concepteurs ont donné une idée très approximative de ce qu'ils voulaient: «Il devrait y avoir une sorte de château, et il y a un joueur à l'intérieur, il le construit, le nivelle, etc.».

Je me souviens, la première semaine, nous avons construit le contour de base d'un château avec quelques blocs de base, juste pour montrer aux concepteurs ce que cela pourrait être. Et puis, une fois l'interactivité de base terminée, nous avons dû comprendre comment cela devrait fonctionner du côté serveur - comment visiter le château d'un ami pour le vérifier, comment motiver le joueur à passer au combat. Le joueur a donc embauché des héros, les a mis à niveau, a acheté les bons talents, comment il doit se battre avec ce héros. Mais pour aller au combat, nous devons le transférer de la partie château à la partie session. Et les pièces sont basées sur différents langages et technologies - ce n'était pas un pont rapide à construire. Mais c'était il y a très longtemps.

Chronologie de développement de Luden.io


  • En 2014, Nival forme une équipe distincte pour travailler sur les jeux VR éducatifs - NivalVR.
  • En janvier 2015, leur premier projet a été publié: InMind - un jeu sur le voyage dans le cerveau d'une personne au niveau microscopique pour trouver des neurones qui causent des problèmes psychologiques.


  • La même année, InCell est sorti. Il développait la même idée, mais ressemblait à un chatbot devenu fou - un jeu éducatif avec des éléments de course et de stratégie, avec une génération procédurale, pour les appareils VR. Le jeu consistait à voyager dans le monde cellulaire d'une personne.
  • À Epic Games MegaJam 2016, Luden.io a créé VRobot - «un jeu inutile mais amusant» où vous avez écrasé une ville avec un robot géant. En 2017, il est sorti sur SteamVR, et en 2018 sur Playstation VR.


  • En 2016, NivalVR s'est séparé de l'entreprise et a été renommé Luden.io.
  • En 2017 ARrived est sorti - un simulateur de dieu en réalité augmentée basé sur diverses technologies: Google ARCore, Apple ARkit et CoreML.


  • En mars 2018, True: learn () - un simulateur d'attente d'apprentissage automatique, mais sans VR et AR - est entré en accès anticipé.

À la tête d'une entreprise technologique


Alors maintenant, vous êtes à la tête de Luden.io. Quoi de plus difficile: coder purement ou faire tout ce truc de gestion, être un pont entre le monde et les développeurs?

Je crois que cela dépend du type de personnes avec lesquelles vous travaillez. J'ai eu beaucoup de chance d'avoir les gens que je fais, et je suis très heureux à la fois de gérer et de coder.

Mais, si nous comparons théoriquement les emplois d'un programmeur et d'un PDG, la programmation est un travail beaucoup plus lent. Vous venez avec une idée, vous la planifiez, vous la faites. Les distractions externes sont rares et petites. Essentiellement, dans le codage, vous avez toujours une «bonne» décision et des mesures de succès strictes et quantifiables: une bonne décision signifie que vous exécutez cette fonction en moins de 2 ms et parallélisée en N threads. Vous connaissez vos poteaux de but, si vous les touchez - tout va bien.

Le PDG n'a rien de similaire. Dans ce monde, il n'y a pas de mesure formelle du succès, même si vous les définissez constamment vous-même pour votre entreprise. Vous devez toujours penser à ce que vous pouvez faire mieux ou différemment. Il n'y a pas de règles non plus. Mais il a certainement son charme.



Pensez-vous que votre expérience en tant que développeur vous aide dans vos responsabilités de PDG?

Je le crois, oui. Je ne pense pas qu'il y aura beaucoup d'entreprises technologiques à l'avenir qui n'auront pas de leader ayant une compréhension claire des routines de développement à l'esprit. Je peux à peine imaginer comment cela fonctionnerait. Mais je suis sûr que le leader devrait, au minimum, avoir un diplôme STEM pour permettre à l'entreprise d'avancer comme un train en fuite - ce qui est la vitesse minimale acceptable pour qu'une entreprise technologique survive ces jours-ci. Je ne peux pas dire que c'est la seule façon, mais je pense que c'est la plus correcte en termes d'évolution.

Faites-vous une révision de code vous-même?

Pas vraiment. Quand nous avons travaillé sur Prime World, un énorme projet, je l'ai fait, mais nous avions des processus très différents à l'époque. Là, nous avons passé en revue l'intégralité de la base de code afin qu'elle adhère à une norme commune. Prime World était si grand que nous pouvions simplement oublier qu'une partie de la base de code était utilisée dans une autre section du jeu. Nous avons même eu du mal à tester le projet localement, il était si grand. Nous avions donc des normes de révision de code très strictes.

Mais là, même si les programmeurs s'empruntent du code, c'est principalement pour l'intégration, lorsque nous collectons toutes les fonctionnalités dans une seule branche. Je n'ai pas vu de petits studios de développement de jeux, où vous avez au plus 5-6 programmeurs, faire un processus de révision de code géant. Il n'est généralement pas nécessaire - le produit vient en premier et nous n'avons pas l'intention de le soutenir dans les décennies à venir.

Existe-t-il une approche consolidée du développement? Le forcez-vous sur tout le monde?

Il y a un style de code standard et quelques directives de base sur ce qu'il faut combiner avec quoi, quelques règles architecturales. Il y a un squelette de projet dans lequel nous travaillons. Il a été testé et testé, nous savons donc qu'il ne nous permettrait pas de nous tirer une balle dans le pied (du moins pas à partir d'un fusil de chasse). Il existe un ensemble de modules de base utilisés dans plusieurs projets. Certains d'entre eux ont été écrits il y a des années, d'autres seulement récemment. Cela - réutiliser l'architecture, adhérer à un codestyle - ne nous permet pas de nous enfoncer complètement dans l'abîme.

Participez-vous personnellement au processus d'embauche?
Bien sûr.
Tous?
Tous.

Votre entreprise ne doit pas être très grande, n'est-ce pas?

Eh bien, pas des milliers de personnes, j'ai donc l'occasion de parler à chaque personne interrogée pendant au moins 10 minutes - juste pour savoir ce qu'il voit dans l'industrie du jeu, à quels jeux joue-t-il personnellement.

Mais vous n'interrogez pas non plus les développeurs?

Tu sais, j'ai un peu de chance. Je pense que les gars qui font, disons, des logiciels bancaires ne sont pas aussi faciles que nous. Notre industrie russophone est très petite et lorsque vous y travaillez pendant quelques années, vous apprenez à connaître beaucoup de gens. Essentiellement, chaque candidat, s'il n'est pas un étudiant fraîchement sorti de l'université, a une recommandation de quelqu'un et une compréhension approximative de ce qu'il peut faire.
Mais si je devais embaucher 100 personnes en une semaine, je ne pourrais évidemment pas être aussi impliqué. Mais je n'ai pas besoin d'embaucher aussi rapidement, et la plupart du temps, si j'embauche des gens, je les connais déjà un peu.

Développement de jeux vs développement commercial




Avez-vous des gens venant d'autres secteurs?

Il y en a, mais pas souvent. Les gens entrent dans le développement de jeux pour une raison très simple - ils ont aimé créer des jeux quand ils étaient enfants et ont juste continué à le faire.

Nous avons eu quelques entretiens historiques avec des gens du secteur bancaire. Nous avons eu une bonne interview, nous nous sommes entendus sur quelque chose, ils ont semblé aimer et ils disent: «Je travaille dans une banque, je suis beaucoup payé, mais je n'aime pas vraiment ça. J'aimerais poursuivre ma passion, et c'est le jeu ».

Vous vous aimez, vous faites une offre et ... la personne disparaît. Parfois, vous lui demandez pourquoi, et il répond: «Je suis venu déposer une lettre de démission, le patron m'a demandé où, j'ai répondu, et il m'a proposé d'augmenter mon salaire pour me retenir». Très souvent, les gens ont pris l'augmentation de salaire et sont restés dans leur industrie.
Mais il y avait aussi d'autres cas. Beaucoup de gens très compétents venaient d'autres secteurs, dont la banque.

Oui, je me souviens avoir entendu cette histoire dans un podcast - un programmeur de banque dit "Je veux créer quelque chose", puis il reçoit un morceau de papier avec un numéro et il reste. Aviez-vous ces morceaux de papier dans votre vie?

Comme tout le monde, j'avais des offres d'emploi de partout. Honnêtement, je n'y regarde même pas beaucoup. C'est bien que je sois en demande, mais je veux me consacrer à cette entreprise.

Les gens disent que le code bancaire est beaucoup mieux que le code de jeu.

Je voudrais m'asseoir avec quelqu'un qui a travaillé à la fois dans le domaine bancaire et le développement de jeux. Mais théoriquement, dans le développement de jeux, il y a beaucoup de cas où le projet a décollé de manière inattendue.

Par exemple, il y a une entreprise, Kefir, et ils ont un projet, The Last Day on Earth. C'est probablement très bien fait. Et il a décollé instantanément, a gagné en popularité plus qu'ils ne l'auraient jamais imaginé. Je pense que dans cette situation, la dernière chose à laquelle vous pensez est la qualité du code.

Le processus de maintien de la base de code propre repose principalement sur la conscience des développeurs. Surtout des développeurs seniors qui sont habitués à écrire du code bien fait et à tout garder sous contrôle. Parce que l'étape «finissons-en et revoyons le code» ne se produit pas. Jamais.

J'ai moi-même essayé le développement des affaires - notre entreprise avait un culte du code de qualité. Nous n'avons pas vraiment résolu les tâches, nous avons écrit du bon code - c'était toute notre tâche. En tant que service de développement, nous ne pouvions pas nous demander comment le produit fonctionne ni s'il existe. Je vois que vous avez une approche complètement opposée: votre travail consiste à faire avancer les choses.

Nous accordons évidemment la priorité au produit et à son succès. Réflexions parfois, il existe des situations similaires à ce que vous avez décrit. Imaginons que nous fabriquons un produit sur une IP existante et célèbre, et nous savons à quoi ressemblera son avenir. Disons, nous savons que cela va être soutenu pendant 15 ans. De toute évidence, il est important pour l'entreprise de s'assurer que le soutien ne devrait pas devenir plus cher chaque année. Mais il y a très peu de projets de jeux pris en charge pendant 15 ans - c'est ainsi que l'industrie fonctionne. Quel âge a World of Warcraft? À peine âgé d'environ 15 ans, Blizzard pourrait avoir des problèmes avec cela. Mais je crois que, il y a 15 ans, Blizzard voulait que le projet se concrétise et fraye un chemin en cours de route.

Cela ressemble plus à cela dans un projet de jeu, vous ne pouvez pas prédire combien de temps cela durera, contrairement aux projets d'entreprise.

Sans aucun doute.

En affaires, les gens ont l'habitude de créer une base de code qui dure 15 ans, mais vous ne le faites pas, n'est-ce pas?

Les programmeurs ne se concentrent généralement pas sur la création de code facile à prendre en charge pendant 15 ans. Mais j'ai vu des projets très propres où clairement beaucoup de temps était consacré à la qualité du code, les gens étaient très responsables et ils ont aimé.

Si tout le monde aime garder les choses propres, cela se traduit par un produit facile à entretenir, mais notre entreprise ne l'exige pas toujours - nous nous concentrons sur le fonctionnement du produit.

Bien que je puisse difficilement imaginer une situation lorsque nous créons un logiciel bancaire et nous ne savons pas s'il va décoller. Les industries sont trop différentes pour être comparées.

Comment créer des jeux pour vous et pour les gens




Je regarde les jeux de Luden.io et j'ai l'impression qu'ils sont créés par des développeurs pour eux-mêmes autant que pour leur public. Ne tenant pas compte des pratiques commerciales et autres, ne ciblant rien pour un public spécifique.

C'est une double question, comme toujours. Imaginons que vous fabriquiez un logiciel qui résout un problème particulier pour l'utilisateur. Nous allons l'utilisateur et demandons "Quel est votre problème?". Nous allons profondément dans son industrie, exécutons les chiffres - l'utilisateur est-il prêt à payer pour résoudre ce problème ou non. Et puis nous créons un produit qui résout ce problème.

Les jeux peuvent également être considérés comme un logiciel qui résout le problème d'un joueur. Il veut se divertir - dans notre cas, apprendre quelque chose. Mais ce n'est pas comme «j'ai mal au dos, je prends ce médicament et ça ne marche plus». Le joueur veut jouer quelque chose de joli, quelque chose avec une âme. Nous devons développer la chimie entre un utilisateur et le jeu. Il veut «se lier d'amitié» avec le jeu. S'il y avait un moyen infaillible de développer cette chimie, de la même manière que pour résoudre des problèmes dans l'industrie, alors peut-être que la création de jeux pour nous ne serait pas si importante.

Si nous disons que nous ne pouvons pas mener de recherches détaillées sur la question, alors le seul moyen de savoir si le jeu établit ce rapport avec le joueur est d'être ce joueur. Si nous aimons le jeu, si nous le trouvons beau, intéressant - alors nous pouvons en déduire qu'il y a probablement plus d'un d'entre nous, que d'autres personnes qui aiment ce jeu existent également.

Mais il y a là un bord très fin. Nous devons regarder le produit comme nous le faisons pour nous-mêmes, mais en quelque sorte de la troisième personne. Comment une personne qui n'a pas joué depuis 5 ans regarderait-elle le jeu? Que diriez-vous d'une personne qui ne joue que Destiny? Ou quelqu'un qui a mille heures à Dota? Nous devons donc le regarder sous différents angles, mais aussi avec la motivation commerciale supplémentaire de le jouer pour votre propre plaisir.

La motivation mentale est simple - les jeux sont difficiles à créer et cela prend très longtemps, donc à la fin vous développerez invariablement quelque chose de similaire à la haine. Vous l'avez vu tant de fois que vous en avez assez. Mais si, parmi tout cela, vous n'aimez pas du tout le jeu, alors vous vous relâcherez inévitablement vers la fin du développement. Il n'y a pas d'autre moyen de développer des jeux que de les créer eux-mêmes, sinon vous ne le ferez pas du tout.

Mais en même temps, vous convenez que vos jeux sont plutôt de niche?

Bien sûr! C'est le principal avantage de ce que nous faisons. Nous voulons être des niches. Nous n'essayons pas de divertir tous les hommes de 20 à 40 ans - le monde entier le fait déjà.

Nous voulons que les jeux disent aux gens quelque chose d'utile, d'être le compagnon du joueur dans la vie. Ce n'est certainement pas un créneau aussi grand que, disons, les simulateurs de sport, où le public est énorme et diversifié, mais nous ne prétendons même pas essayer de capturer autant de gens.

Travailler selon ces principes est-il rentable?

Je pense que cela peut être rentable (enfin, on y arrive), mais il faut, faute d'un meilleur mot, «préparer» d'abord un marché. Nous travaillons depuis 4 ans et nous avons découvert dans quels genres et formats devrions-nous travailler pour gagner de l'argent. Nous pouvons le faire, mais personne ne dit que notre marque est le maximum d'argent que vous pourriez gagner de cette industrie.

Ce n'est que maintenant que nous avons développé une compréhension sur la façon de travailler ce marché, comment le créer. Ce n'est pas très bien développé. Les 10 à 15 prochaines années seront consacrées à rendre ce marché plus accueillant pour les développeurs tiers qui partagent nos objectifs - que les jeux doivent être utiles.

Notre objectif est de faire en sorte que dans 20 ans, les jeux aident les gens à apprendre et à faire quelque chose qu'ils veulent faire. Quelque chose qui est également en demande dans ce monde futur, quelque chose pour lequel ils sont les plus efficaces. Ensuite, les universités et les écoles n'existeraient qu'à des fins de recherche.

Dans l'ensemble, je vois un thème commun entre vos intérêts - jeux, Gamesjam, conférences, je crois que vous enseignez même ...

Très rarement. 10 heures académiques au maximum par an.

Quand est né cet intérêt pour l'éducation?

Il y a quelque chose de beau à aider les jeunes experts à être meilleurs et plus heureux que nous. L'expérience y contribue. Mais il y a aussi une motivation moins «visionnaire». Quel est ton jeu préféré? Déterminons qui vous êtes en fonction des jeux auxquels vous jouez.

Votre préféré à tous?
Tous. N'importe quel genre. Juste la première chose qui vient à la nature.
Disons Mass Effect.
OK, c'est un bon choix, je l'aime aussi. Et le second?
Gothique, probablement.
Enfer, le gothique est également excellent. Je me demande si nos intérêts concordent. J'aime aussi les deux, mais je suis un grand fan de simulateurs et de magnats. Mini Metro, par exemple, je considère une réalisation ingénieuse de la conception de jeux modernes. L'avez-vous joué?


Bien sûr, je le sais.

Si nous établissons des parallèles avec l'art, alors c'est la même «forme nulle» que Malevitch aimait à imaginer - où une énorme matière, cachée dans un système profond, est présentée avec un effort minimal.

Tycoons et simulateurs sont le genre de jeux conçus pour que nous fassions quelque chose et que nous voyions immédiatement les conséquences. Les jeux, si nous regardons plus en profondeur, sont un moyen sans risque d'acquérir de l'expérience, ce qui signifie que les jeux sont la forme la plus pure d'éducation. Notre entreprise s'appelle Luden.io. Si nous le regardons, «Ludus» se traduit du latin de deux manières - jeu et école. Il y a des vestiges d'un endroit nommé Ludus Magnus près du Colisée à Rome. C'était un endroit où les gladiateurs jouaient et se préparaient pour les combats dans l'arène.

Ainsi, les simulateurs sont des magnats conçus pour donner aux joueurs une expérience dans des domaines où il est très difficile de l'obtenir naturellement - trop cher ou carrément impossible dans les limites de la planète Terre. Ils préparent les gens à des situations qui pourraient survenir à l'avenir, ils leur permettent de «répéter».

L'éducation que nous avons maintenant et qui existe depuis 20 à 30 ans est devenue très inefficace. Les enfants ont des téléphones, ils ont accès à YouTube, Twitch - tout cela est bien plus intéressant que de lire un livre trop plein lui-même et même pas si bien écrit. Si nous combinons ces formes - éducation et jeux - alors tout le monde gagne.

Qu'est-il arrivé à VR




Ces idées ont-elles été le moteur qui a conduit votre entreprise à se concentrer sur la réalité virtuelle?

La VR est un sujet intéressant. Lorsque nous nous sommes séparés de Nival, la VR vient tout juste d'être lancée. La VR met certainement à l'échelle la partie la plus forte des jeux - une expérience sans risque, car elle ajoute un effet d'immersion très puissant. Le cerveau croit plus facilement que cela se produit pour de vrai, bien que ce ne soit qu'une autre illusion d'optique. Mais le marché est actuellement en difficulté. Personne n'a imaginé une application VR que tout le monde aimerait avoir à la maison.

Nous avons donc décidé d'aller de l'avant avec notre objectif final, mais VR ... Nous avons des projets sur toutes les plateformes. Au-delà, nous avons des projets VR en développement que nous avons l'intention d'intégrer dans les écoles. Si une plate-forme «déplace» vraiment le marché et devient la plate-forme VR qui la rend grande, nous travaillerons évidemment sur notre présence là-bas, mais pour l'instant nous avons des tonnes de joueurs VR heureux, et même si True: learn () est un traditionnel , jeu non VR.

Après l'E3, il y avait ce graphique qui circulait sur Internet, il y avait moins de mentions de VR dans la presse qu'il y a même un an.

Malheureusement, c'est vrai.

Que pensez-vous qu'il s'est passé?

Voulez-vous personnellement acheter un casque VR?

Non.

Voilà votre réponse. Les gens n'en veulent pas. Une fois que vous - oui, vous - vous réveillez et décidez que vous voulez un casque VR, alors quelque chose se déplace dans la bonne direction.

Pourquoi pourquoi les gens n'en veulent-ils pas? Quand il est sorti pour la première fois, les gens étaient ravis, ils disaient que dans 5 à 10 ans, la VR serait partout, à la manière de Ready Player One.

Première chose: n'écoutez pas les évaluations d'entreprises, seulement les rapports des consommateurs. Un client, contrairement à un homme d'affaires, pourrait répondre à votre question de manière simple et concise. Donc, les gars, si vous ne voulez pas de casque VR, votre motivation décrirait la situation bien mieux que mes pensées professionnelles.
C'est toujours comme ça - quand le jeu ne se vend pas bien, allez simplement à un Gamestop et demandez à une personne qui ne l'a pas acheté. Il l'expliquerait bien mieux que tous les vendeurs réunis.

Je pense que c'est une extension d'un problème de poulet et d'oeuf. Vous pouvez acheter un casque VR, bien sûr, mais il faut ensuite savoir quoi en faire. Mais les gens qui créent du contenu VR se demandent: pourquoi développer des jeux pour ce type de matériel alors que si peu de gens l'ont? Je ne récupérerai pas mon argent! Et ce cercle vicieux n'est pas encore rompu sur le marché VR.

Mais certains segments ont émergé et continueront de s'améliorer. Commencer par des niches plus petites, puis grossir de plus en plus. Comme l'émergence des consoles de jeux dans les années 80 et 90, la meilleure heure de VR prendra du temps. Cela ne viendrait certainement pas dans 3 ans.

Vous pensez donc que la VR va décoller, un peu plus tard?

Dépend du format. Serait-ce un appareil VR-AR universel ou des produits séparés est très difficile à prévoir. Mon opinion est que la VR prendra une place importante, mais spécialisée, comme les tablettes aujourd'hui. Beaucoup de gens les ont chez eux, mais peu en achètent de nouveaux, et pourtant ils résolvent toujours un problème défini. Je crois que la VR finirait dans la même veine. Il y a un segment de marché à prendre, la question est - quelle taille.

Il y a cependant une autre utilité. Un de mes amis m'a dit qu'il avait acheté un casque VR pour regarder des films car il avait 4 enfants. Le cas d'utilisation est parfaitement clair, je pense.

Était-ce techniquement difficile de travailler avec la VR?

La VR a des problèmes de performances géants et exige beaucoup des plates-formes qui la prennent en charge. L'un de nos anciens jeux - VRobot - vient de sortir sur Playstation VR. Il nécessite des performances stables de 60 FPS. L'Oculus Rift (y compris la version mobile) a besoin de 75 FPS. Même si une baisse de 20-30 FPS pendant des scènes particulières - c'est inacceptable, vous devez mieux optimiser le jeu.

Mais nous avons une très forte équipe d'optimisation graphique de bas niveau. Nikita, par exemple, est spécialisée dans cela.

Vous avez donc un gars d'optimisation dédié?

Non seulement il le fait, mais c'est sa compétence principale. Il travaille en tandem avec Dima, qui peut construire n'importe quelle scène 3D pour toutes les exigences de performance. Nous sommes donc déterminés à cet égard.

Sur l'apprentissage automatique dans le développement de jeux


Pour les personnes fascinées par le développement de jeux et l'apprentissage automatique, Oleg montre une photo de Demis Hassabis comme source d'inspiration. Wunderkind d'échecs, neurobiologiste et fondateur de DeepMind, il a également commencé sa carrière dans le développement de jeux.

Il a programmé sa propre IA pour le jeu Black & White de Peter Moulineux, puis, à la tête de sa propre société Elixir Studios, il a sorti un simulateur de super méchant Bond - Evil Genius.
Et c'est seulement alors qu'il est devenu l'un des chercheurs en IA les plus célèbres au monde.

Est-il vrai: learn () basé sur votre propre expérience?

Oui, le jeu est construit principalement sur cela. Le fonctionnement de l'industrie du jeu est que si vous commencez à faire quelque chose, vous devez avoir un point de référence sur lequel vous tourner en arrière. Nous faisons une simulation - il y a beaucoup de détails à prendre en compte, et pour cela nous avons besoin d'un point de référence, juste pour éviter de sortir complètement des rails de manière créative.

Dans True: learn (), nous avons pris notre propre réalité comme point de référence. Si vous faites quelque chose et que vous ne savez pas quoi faire, regardez comment cela se fait en réalité. L'économie du jeu loue des fermes de serveurs. Si vous essayez de résoudre une tâche de traitement d'un énorme cluster de données, vous louez une puissance de calcul, exécutez vos numéros, soumettez la tâche et arrêtez votre loyer.

Nous voulions montrer comment le machine learning s'est développé depuis les années 1950, du premier perceptron aux chariots de conduite, aux réseaux de capsules, etc.

Vanya a spécifiquement gardé une feuille de calcul Google avec tous les points de référence - les principales étapes de l'apprentissage automatique, l'évolution de l'industrie au fil du temps et les nouvelles technologies développées. Et c'est ainsi qu'il est présenté à l'utilisateur - à travers des quêtes.

Certaines versions de jeux mentionnaient même un an. Nous l'avons supprimé pour un certain nombre de raisons, nous y reviendrons peut-être un jour. Mais le joueur parcourt le même chemin - accomplit quelques quêtes avec le perceptron et gagne un peu d'argent.

Chaque année, quelque chose d'intéressant se produit qui est soit confirmé, soit réprimandé par le développement futur.



Vous pouvez cliquer sur n'importe quel bloc et découvrir comment cela fonctionne dans le jeu et en réalité. Il y a deux liens: l'un vers une vidéo YouTube qui en parle de manière concise, et l'autre vers un article détaillé pour ceux qui veulent vraiment y entrer.

L'équipe a-t-elle déjà travaillé en apprentissage automatique?

Bien sûr. tandis que True: learn () a été créé le long de VRobot, l'équipe VR s'est concentrée sur le portage du jeu sur Playstation, et la nouvelle équipe plus petite était composée de spécialistes de l'apprentissage automatique.

Parlez-moi d'eux: à quoi ressemble l'équipe, sur quoi ils ont travaillé avant?

Rien de spécial, vraiment. Quand une idée de créer un simulateur ML m'est venue à l'esprit, j'ai choisi une équipe parmi les recommandations d'amis et d'élèves.

Spécialement des experts en ML?

Oui, mais ils sont tous assez jeunes, personne n'a, comme 20 ans d'expérience en apprentissage automatique. Tout le monde a joué à Kaggle au moins deux fois, résolu certaines tâches. La plupart d'entre eux l'ont étudié à l'université.

Et ils ont fait un jeu. Mais là encore: le développement de jeux n'est pas vraiment un apprentissage automatique, non? Ce qui signifie qu'ils sont des piles complètes - les scientifiques des données et les développeurs de jeux en un?

Ce sont des gens qui, avant tout, comprennent l'apprentissage automatique, ils savent comment cela fonctionne. Et puis ils développent un jeu dans Unity, écrivent du code, conçoivent des interfaces, etc. C'est juste que, pour développer des quêtes et les disposer le long d'une chronologie, vous devez d'abord comprendre le contexte. De toute évidence, ils n'ont pas créé de bloc-notes ipython pour chaque quête.

Nous avons une bibliothèque spécifique qui gère les réseaux convolutionnels et certaines choses de base dans Sharp qui fonctionnent dans Unity. Il a également été utilisé pour créer AIDraw - un jeu de dessin: le joueur dessine quelque chose, puis l'IA doit deviner ce qui est dessiné. Cette bibliothèque fait la majeure partie du travail à ce sujet, et le jeu entier est construit autour d'elle.

Il n'y a pas longtemps que l'apprentissage automatique et le développement de jeux ont commencé à se combiner. Disons que j'ai un jeu qui utilise l'apprentissage automatique. De quel type de pile ai-je besoin?

Je n'ai pas vu beaucoup de projets combinant le développement de jeux et l'apprentissage automatique, à proprement parler - où le travail ML est vu du côté client. Unity a son propre système «d'apprentissage par renforcement» qui ne fait pas nécessairement beaucoup de choses, mais il est intégré à Unity, de sorte que la barrière d'entrée est assez faible.

Il y a beaucoup de bibliothèques pour cela, tout comme pour d'autres domaines: frameworks C ++, réseaux de neurones ...
Les appareils mobiles utilisent souvent le CoreML d'Apple qui peut exécuter ses calculs directement sur la puce graphique de l'appareil. Nous prenons un modèle, «l'enseignons» dans TensorFlow ou CatBoost de Yandex, nous l'intégrons dans une archive spéciale et nous y voilà - il peut fonctionner directement sur le GPU du smartphone et nous renvoyer une prédiction résultante. Nous l'avons utilisé, par exemple, avec notre jeu de réalité augmentée ARrived, où il fallait prendre une image d'une caméra et comprendre de quoi il s'agissait.

Si nous parlons de l'utilisation du backend, cependant, tout cela est très classique et simple. Les serveurs fonctionnent sur des technologies très simples utilisées dans tout l'apprentissage automatique, mais elles sont utilisées pour l'analyse ou la personnalisation - le ciblage publicitaire, par exemple. Un cas assez célèbre était de prédire quand un joueur de World of Tanks se déconnecterait du serveur et quoi en faire. Ou pour prédire le temps de faire une offre au joueur - deux chevaux pour le prix d'un - quand il est le plus susceptible de l'acheter et d'en être heureux. Ce sont des applications serveur, et la taille de la pile n'est pas vraiment un problème.

Mais la construction d'un ensemble de données pourrait-elle être au cœur de la conception d'un jeu?

Cela ressemble à un concept tout droit sorti de Westworld. Il pourrait avoir ses utilisations, mais je ne vois pas comment un ensemble de données d'actions de joueurs pourrait nous être bénéfique.

Par exemple, nous créons un jeu sur la conduite en ville. Nous créons un modèle réaliste des routes de Moscou. Nous pouvons voir que beaucoup de joueurs se plantent à cet endroit ou dépassent la limite de vitesse sur ce tronçon. Avec un ensemble de données comme celui-ci, nous pouvons déterminer où sont les problèmes.

Mais si c'est juste un jeu et non un simulateur? Peut-être que l'ensemble de données peut résoudre les problèmes de l'entreprise plutôt que ceux des joueurs. Si la société crée des jeux d'un type similaire, des ensembles de données sur le comportement des joueurs pourraient leur être utiles, mais je n'ai pas vu de projets construits spécifiquement à cet effet.

N'était-ce pas le but d'AIDraw?

L'échelle compte. Si nous avions 300 000 fois plus de joueurs, alors probablement quelque chose aurait pu en sortir. Si Google créait ce jeu, ils pourraient collecter des données précieuses et en faire quelque chose, à des fins de recherche. Mais pas pour nous.

Imaginons que vous ayez créé un jeu qui utilise ML dans une certaine mesure, et pendant le développement, vous réalisez que vous ne pouvez pas créer exactement ce que vous imaginiez - vous avez créé quelque chose de différent. Cela vous est-il déjà arrivé?

Par exemple, nous savions que nous voulions publier une mise à jour importante pour True: learn () sur les voitures autonomes. Le joueur apprendrait à une voiture à conduire, à dépasser d'autres voitures, à changer de voie, à accélérer et à freiner.



Habituellement, le concepteur de jeu écrit un document de conception, puis le contenu est créé sur cette base (comme dans d'autres industries). Mais avec les voitures, nous avons compris dès le début que ce ne serait pas comme ça. Nous avons eu plusieurs étapes, chacune avec sa propre technologie. Le joueur apprendrait la génétique; alors comprenez que ce n'est pas très bon pour ses fins. Ensuite, il y aurait un renforcement sous de nombreuses formes. Le joueur comprendrait qu'une méthode d'application particulière est la plus efficace pour sa tâche.

Ce n'est pas une expérience qui peut être contrôlée. Sachant que quelque chose pourrait mal tourner, nous avons d'abord écrit une démo technique - une version brute et technique de l'expérience que nous voulions créer. Ensuite, nous l'avons remis aux concepteurs de jeux, qui l'ont ensuite joué, ont écrit un document de conception et nous avons peaufiné et finalisé le jeu en fonction de cela.

Et pas seulement les concepteurs de jeux, aussi - nous avons une communauté des amis les plus proches sur Discord, nous pouvons leur donner une démo de fonctionnalité et ils peuvent nous donner des commentaires. Actuellement, ils jouent à la démo des voitures autonomes depuis quelques semaines et ils nous parlent constamment de leurs expériences.

Avec quoi avons-nous fini, finalement? Premièrement, nous avons indiqué quel type d'entrée de données devrait être utilisé pour enseigner à une voiture à conduire, quels paramètres nous pouvons changer (seuils, pertes; en génétique, taille de génération, mutations). Et ce qui est sorti, c'est quelque chose de peu interactif. Le joueur se connecte, définit certains paramètres, puis regarde l'écran pendant que la voiture se conduit. C'est cool pour les développeurs qui connaissent le concept, mais pas pour le joueur qui ne le sait pas.

Le joueur ne ressent pas sa contribution?

Exactement, il n'y a aucune rétroaction. Nous avons donc un peu changé le design. Le joueur conduirait lui-même la voiture, l'enseignerait. Et puis il se répéterait après vous en fonction de la façon dont vous l'avez entraîné.
Si le joueur passe uniquement sur la voie de droite, la voiture ne saura pas comment basculer à gauche, car vous ne lui avez pas appris comment. C'est devenu interactif. Alors peut-être que nous ne sommes pas loin du produit final après tout.

En substance, nous comprenons qu'avec l'apprentissage automatique, quelque chose peut mal tourner. Il est pratiquement impossible de tout expliquer au stade de la conception.

Vous envisagez donc de créer un prototype puis de refaire quelque chose à partir de zéro?

Essentiellement, oui.

Mais ce n'est pas la façon dont les développeurs de jeux font les choses. C'est une chose exclusive à l'apprentissage automatique, non?

Vous pouvez le dire, oui. Dans d'autres jeux et industries, nous pouvons prédire les choses. Nous ne sommes pas novices dans ce domaine, nous pouvons donc comprendre ce que le joueur fera, quelle émotion il ressentira. Notre «base de données de prédiction» que nous avons construite au fil des ans peut gérer cela. L'apprentissage automatique, cependant? Chaque convention sort par la fenêtre.

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


All Articles