The creator of the game while True: learn () about programming in game devs, problems with VR and simulation ML
A few years ago, it seemed to me that Oleg Chumakov (then from Nival) was the most famous programmer for gamedev. Constantly spoke, conducted Gamesjam, was a frequent guest of the podcast How to make games .
With the advent of VR on the market, Oleg headed a new division in the company - NivalVR. But you all know, with virtual reality, something went wrong, as desired.
I was distracted from game development for a long time, and looking again, I saw that Oleg's team only got more interesting things. Now it's called Luden.io and their machine learning simulator while True: learn () has become a hit in its niche, a lot of cool stories are going around it.
We talked with Oleg, but I could not choose only one topic - his path was too full and varied. And so that the programmer spoke about programming without fear of being misunderstood, the conversation was supported by my friend, colleague, and experienced developer of fillpackart .
I played while True: learn (). Cool game, I'm really stuck.
Not. I started playing at night and got stuck on the sidequest. Sat, could not go to bed until I decide. How are you doing with her?
It works very well, we did not expect it to be that size. Planned a small project. Imagine this: take all the gamers of the world, cut off those who play only puzzles. From there cut off those who are ready to deal with programming. And then another machine learning ... it turned out quite a small piece of the audience. And in fact here.
For the first time, the players came running more than we had planned for two months. At the launch - on the first night more than we wanted for six months. Therefore, since then we have a very fun life. We localize, try to somehow keep afloat and talk to a thousand people in Discord at the same time.
Your chat in Discord - as I understand it, there are all people interested, all in the topic of machine learning. Tell a cool story about any of the players.
There is a player there, his name is Mr. Floppy (I don't know his name in reality). He came to us on the closed alpha. We allowed a certain number of people to play, and we received an approximate feedback, could be corrected.
We have a cat in the game - sitting on the monitor, meowing. And according to the original idea, the cat should have interfered. When you program, it constantly comes, “pat me” there, climbs into the monitor. In general, Mr. Floppy when playing, his real cat came to him, live, to stop him from programming in the game. He sent this photo, it all started with her.
Then he got carried away, became an active member of our community. I started producing these cats in different in-game clothes on a 3D printer at home and send them to the best players myself. He, relatively speaking, did merch free. He just liked it. And this is a very warm memory of how our community has organized itself. On our projects this has never happened. There were cosplay, fan-art, but for people to print toys themselves on the game and share with each other - this is the first time.
There were players who wanted to study machine learning right deep. The game took off their fear of the difficult threshold of entry into ML. After the game, they went to Coursera, looking for competitions that would be hard for them at their level of knowledge. And here we are actively following them, we are all waiting for the first of them to get a job in the field of machine learning. On this day we, apparently, will celebrate
That is, until we received?
They are still in the middle of training. The release of the game was in March, not enough time yet. And in general, a lot of things happened. People and on YouTube used the game to teach machine learning. In schools, it is constantly used now - in Russia, in the UK, in the States, in Australia a lot. So I’m not smart enough to choose the most beautiful story. There are two of them every week.
Stanislava Semenov - Data scientist and one of the top Kaggle users - plays in WTL
Well, ok, we’ll return to machine learning. For now, tell me exactly what you are doing on the project, your responsibilities, your day.
My responsibility now is to find out from the core-team their plan - what they are doing for the next two or three months - and with this plan in my head to work with everyone who comes to us. Integrate the game back and forth, to this school, to that school. To be such a bridge between developers and the outside world.
Sometimes I add something from my beloved Customer Development. For example, they found out such a problem: children go to programming courses - their parents ask, “What was in the classroom?”, Such children say “yes, nothing.” The parent does not understand, the child does not want to tell the toli, the toli and the truth have not done anything. Therefore, in our game in the game, the reports are automated. That is, parents receive messages - “your child today studied the perceptron,” “your child taught rnn-ku,” and so on. Such features appear due to my interaction between the outside world and the game.
Well, respectively, I, like the CEO, have the task to ensure that everyone was inspired by a big goal, everyone was comfortable working, there were no difficulties, everything moved forward without thinking about basic things.
Clear. That is, you yourself are not programming now?
It happens, but not very often. I have a great feature on remaking startups inside the game. I came up with it a long time ago, though in the framework of our next project about Internet marketing, but my hands go slowly. Instead of doing it in a good old week, I have been doing it a month already.
About programming in game dev
Well, let's remember about the good old days. Tell me about yourself as a programmer?
Well, the biggest project on which school life was received is the game Prime world. It was a very large project by Nival. Moba with a social part (it was called the Castle). There were more than 20 people in our team, which was engaged in them, and this is only for one small part of the game. The project was of monstrous proportions, well, there were all the problems of synchronous multiplayer that exist in this world.
Phil: And at what stage did you connect to the project? In what position was he at that moment?
The castle, but when I arrived, there was nothing there yet.
Well, so that readers understand - the game consists of two parts: where the battle itself takes place, and the Castle - where development takes place, the player builds, hires heroes, develops them, and then takes the hero and goes into battle with him. Here the combat unit was already to some extent ready, and the social part was just beginning.
F: And by whom did you come to him, like who?
I came to the post of an ordinary programmer. I remember directly as I created empty Unity the project. We started from the beginning. It was necessary to create and integrate everything with the combat unit that was actively developing at that moment.
F: Yeah, this is Unity. That is, what yap? Pros, C #?
The sessional part was on the pros. Our part was on Unity. The main logic was in C #. But due to the fact that it was a project of, let's say, a complex combination of technologies, through Thrift it was also generated in Python, because the server was on Python.
F: Oh, and of course it imposes its overhead on C # development.
Well, to put it mildly. But we are pretty elegant out of this. The older teammates were very experienced guys, so we had kodogeneratsii in all the right places arranged, and in general everything was generated quite nicely. It was not necessary to start everything directly with my hands.
I understand that this was the heyday of technology like Thrift, Protobuf, this one. And then they were perceived as an incredible invention of scientific humanity - once, and they solve your problem with the fact that several different languages and data should be sent, and everything should work everywhere equally
. I can imagine how many problems there are. When you came to the project, did you already know C # and the .net world?
Yes, I was familiar. I was also familiar with Unity 2.6 (if I do not confuse), it was a very strange product. I myself wrote on .net, but Mono was there at some early stage. These are times when Miguel de Icaza was not even engaged in Xamarin.
I remember, mono was such a rare animal that few people saw, and it was built into Unity, and Unity was almost the largest product that mono used. Accordingly, there was all the monstrous things that happen in the world of virtual machines in the early stages. Huge incomprehensible memory leak on all platforms, unpredictable differences from .net in elementary things. Any extra allocations constantly.
F: That is, before that you worked with regular .net, and here you were given another runtime, which in fact is not normally documented.
I started working with Unity before, but this transition period, which you are talking about - worked in .net and now in mono - it was, but a bit earlier. I can not say that I was very experienced in .net. I had a presentation and several completed projects, but there was no question of performance anywhere, even if I did everything wrong in those projects. All the loaded parts in those projects were in the pros, and .net had nothing to do with this.
F: Can you tell me about your first week on the project? Here you have been interviewed, you are a developer. What's next?
Well, for the purity of the story it is worth saying that we did not first Prime World. Before him was another project. He, unfortunately, did not get to the release, and one day we transferred to PW to create the Castle. Everything was so fast there - approximately, the designers described to us the idea of what should happen: “There must be some kind of lock, there’s a player in the lock, he develops it, builds it up”.
In the first week, I remember, we put together a camera, building with base blocks, lined up how it all should stand, it was all single. And after the first week, when the base picture and the base interactive was collected, it was necessary to start inventing how it would work with the help of servers, how to go to a friend to the castle, to see what kind of lock he had, how to transfer this context to the combat unit. That is, the heroes were hired, set up, bought the right talents, now you need to fight with this hero. And to go into battle, we must somehow transfer from our castle part to the sessional part. There are other languages, other technologies - this bridge was not built quickly. Here are some of these memories. But it was so long ago.
Timeline development Luden.io
- In 2014, Nival formed a separate team to develop educational games in virtual reality - NivalVR.
- In January 2015, their first project InMind came out - a game about traveling to the human brain at the microscopic level to search for neurons that cause mental illness.
- InCell came out the same year. She developed the idea, but it sounded quite like the text of the chat bot went on - an educational game with elements of racing and strategy, with procedural generation, for VR devices, about traveling to the human cell world.
- At Epic Games Mega Jam 2016, Luden.io made VRobot a “useless but fun game” where you have to destroy a city with a giant robot. In 2017, she was released on Steam VR, in 2018 - on the Playstation VR.
- In 2016, NivalVR was renamed Luden.io.
- In 2017, ARrived came out - a simulator of God in augmented reality on Google ARCore, Apple ARkit and CoreML technologies.
- In March 2018, I got into early access while True: learn () is an ML specialist simulator, but without VR and AR.
About the management of the technology company
Well now you are the head of Luden.io. And how do you - what is more difficult? Is it purely to develop or manage all this, to be a bridge between the world and developers?
I think it depends on what kind of people you do it with. I was very lucky, with people like me and there and there super interesting and super cool.
And if you theoretically compare the two professions - the CEO and just a programmer? I think the programmer is more thoughtful and slower. Came up, planned, made. External factors appear less often and not in such volume. There, relatively speaking, there are always the right decisions, there are concrete, clear, measurable indicators that the right decisions are when your calculation takes no more than two milliseconds and runs in N threads. You know exactly these parameters; if you fit into them, everything is fine.
In the work of the CEO of this, of course, no. In this world, there are usually no clear formalized things, even though you surround your business with targeted measurable indicators. One has to think all the time, and how to do something else is better, or maybe even different. There are no clear rules either. But this one has its own charm.
F: Do you think a developer’s experience helps you manage?
I'm sure yes. I do not think that in the future there will be many technology companies that are built without an understanding of the development context in the head of the chief manager. It's just hard for me to imagine how this can be. I am sure that, at a minimum, a person should have a technical education so that a technology company rushes forward with the train speed, which is now the minimum necessary to survive. I would not say that this is the only way, but probably one of the most evolutionarily correct.
Do you review yourself?
Well, not so much. On a large project PW, yes - there were other processes there, not like now with us. There, of course, all the code looked, so that everything was in a single standard. The PW was of such a scale that there it was possible to simply forget that one part was used somewhere else. Even testing locally was hard as a big project. Therefore, there were good standards for code review.
And here the guys are looking at each other's code, but mostly when integrating, when we collect all the features into a single brunch. I have not seen in game dev, so that when you have 5-6 programmers, there are big code review processes. Most often this is not really necessary, the product is primary, and the period of support is not decades.
F: Is there a consolidated approach to development? Is he being imposed?
There is a standard codestyle and basic concepts that combine architectural rules. There is a project framework in which we always work. It is time tested, and we know for sure that it will not allow us to shoot ourselves in the leg (at least with a shotgun). There is a basic set of modules that travel from project to project. Some are written a long time ago, some recently. We are due to a large reuse of architectural standards, due to the observance of the codestyle we are not slipping completely into the abyss.
F: Do you yourself take part in hiring new employees?
Yes of course.
You probably are not very big company, right?
Well, yes, not very large, not thousands of people. Therefore, I thank God, at least once, but with each new employee at the interview stage I will talk 10 minutes - what does a person have to do with the gaming industry, what does he play. To just understand.
F: But developers, you yourself will not talk as developers?
You know, I'm somehow so lucky. So I think that the guys who are engaged in banking software do not have such prerogatives and luck as we do. Our whole Russian-speaking industry is small. And when you work in it for several years, you will make friends with people and get acquainted. For almost any employee, if this is not a student, there is always some recommendation, an approximate understanding of what he is doing in production.
But if I had to hire a hundred people a week, then, of course, I could not do that. I don't need to hire at such a pace, and, most likely, when I hire people, I already know them.
Gamedev vs business development
F: And there are cases when people from other industries are moving?
It happens, but not very often. In a game track, he usually records a track - people like to make games as a child and just then continue.
There were several iconic interviews when people were taken from banks. At the stage of the interview, they seemed to agree, they seemed to like it, they are “like, I work in a bank, I get paid a lot, but I don’t really like it. I would like to do what the soul is about. And the soul lies in the games. ”
You like him, he likes you, you agree, you put up an offer and the person disappears. Sometimes you ask, “how are things there,” and they say to you: “so I came to resign, the boss asked where I was going. I say, here. And he - well, let us raise the salary to you, and you will not go anywhere. ” Very often, people succumbed to additional monetary motivation and remained in their industries.
But there were of course other cases. Very good people came from different industries, including banking software.
Yes, I remember you telling this story in a podcast - a programmer from the bank says “I want to do creative work,” they write a number on a piece of paper, and it remains. Were there such papers in your life?
Yes, like everyone else, offers are constantly coming from different sides. I, you know, never really look at them. It's great, of course, that somewhere else they call. But this is not what I would like to build in life.
F: They say that in banking, in business, the quality of the code is higher than in game dev.
I think it would be good for me to plant an opponent, who has worked in both the bank software and gamedev. But from the point of view of the theoretical part, I think that in a game devil, very often there are situations when the project suddenly flew.
For example, the company Kefir is wonderful there is a game The Last Day on Earth. Made for sure high quality and great. And she flew very quickly, became very popular. I think the last thing that gets enough hands when it starts to take off like this is to comb the quality of the code.
The whole process of maintaining cleanliness in a project depends mainly on the awareness of developers, senior developers who at any stage of the project observe good manners and keep everything under control. Because the stage “let's finish this, then we will finish everything” never comes.
F: I myself worked very hard in business development - we had the quality of the code in a cult. We did not have to solve problems, we had to write good code - that was our task. We did not care how the product works and whether it exists at all (well, as a department of developers). You, as I understand it, have exactly the opposite situation. So you have a task to do.
Of course, our product and its indicators are primary. Sometimes there are situations similar to what you describe. Suppose we are doing a project with a well-known IP, we know what its future is. With some accuracy we can predict that it will be maintained for 15 years. Obviously, we immediately have a business value in that its support does not rise in price every year. To do this, it must be well documented and understandable for a new programmer to be written. But there are few such projects that are supported for 15 years - the specifics of the industry. World of Warcraft how much? Just in time for 15 years will be soon. That's theoretically yes. But I think that even 15 years ago, the developers at Blizzard were in a hurry to finish the product and not everyone did it perfectly.
F: It’s more like in game projects that you initially less can assume how long it is, unlike business projects.
F: In business, the default code is to be maintained for 15 years, and you don’t do that, right?
Not always the key task of a programmer is to make code that will be easy to maintain for 15 years. But I have met very clean projects, where both the people and the central developer are very responsible, they like it all.
If they like to follow the cleanliness, then the project is usually all beautiful and good. But obviously, business does not always require this purity, it does not always correlate with the success of the product.
At the same time, it is quite difficult for me to imagine a situation where we are doing banking software and do not know if it will fly or not. Completely different industries.
How to make games for yourself and for the audience
Looking at the games luden.io, it seems to me that they are made as if for myself. Without relying on the things that business people usually say, without having to pay to a specific audience.
This is always a double question. Imagine that we are making software that solves a specific user problem. We are going to this user, asking him “what's the problem?” We understand, find, consider the economy - is the person ready to pay to solve this problem? Create a product that solves this problem.
The game can also be considered as software that solves the problem of the player. He wants to have fun or - as in our case - to study something. But here it is not that it hurts, I took the software - it has ceased to hurt. The user wants to play something soulful and pleasant. It is necessary for a person to have chemistry with the game. He should be friends with her. If there was a way to study the mechanics of the formation of this chemistry with the player as well as to study the problem in the business sphere, then probably it would not be important to make games for yourself.
If we say that we can’t do this research in sufficient detail, then the only way to know that a game really makes friends with a user is to be that user. If the game seems to us to be excellent, beautiful, interesting, then we can hypothesize that people like us, more than one, that such people still exist, and they will also like it.
But here is a fine line. You need to be able to look at the product for yourself, but with a slightly different eyes. How to perceive a person who has not played for 5 years? And the person who now plays only in Destiny? How will the man who spent a thousand hours in DotA look? So - but with the sparkle that you should play yourself - this is business motivation.
And the lyrical motivation is simple - a game to do for a very long time, and to any game by the end of development there will be a feeling close to hate. You have already seen her so much, she is so tired of you. And if you still don’t like it, then how to drink will you release the hands by the end. There is no other way - except how to make a game that you like - no. Otherwise, you will not reach the end with good motivation, you will get too tired.
Well, do you agree that your games are still niche?
Of course! This is the main advantage of what we do. We really want to be niche. Do not try to entertain men from 20 to 40 years old - the whole world entertains these men.
We want the game to bring a new subject to the person, to tell him something, to be a useful companion in his life. This niche is definitely not as wide as a game about football, where the audience is much larger. But we are in that direction and do not aim.
To work on this principle is profitable?
I think that it is profitable (well, in our example), but it requires the buildup of the market. We have reached the point in four years, when we understood what genres, in what format and how we should serve, so that it would be profitable. We do it, but it does not say that this is the point of the biggest profit that can be extracted from this niche.
Only now we got an understanding of how to work with this market, how to create it at all. It is poorly developed. Now, for another 10-15 years, we have to turn it into something more open to other developers, who also share our goals - that games should carry the benefits.
Our task is to make sure that in 20 years with the help of games, people will study and do what will bring them pleasure, it will be relevant in that future world, and in what they will be as effective as possible. Then universities and schools can be engaged exclusively in research activities.
In general, a common line is visible between the games, your classes - gamesjam, lectures, you seem to be still teaching ...
Very rarely. Hours 10 per year, at best.
Where does such interest in education, teaching come from?
There is some beauty in helping younger specialists to be much better and happier than us, experience should work. But there is less visionary motivation. What is your favorite game? Now, by genre, we define someone directly.
Generally from all?
Of all. Any year. Well, offhand, you still remember something.
Come on Mass Effect.
Ok, Mass. The effect is good, I like it too. And our second ...
F: Gothic, probably.
Damn, well, Gothic is also beautiful. I now wondered whether to call them. I also like Gothic very much, and I like the Mass Effect, but I'm just a mad fan of the simulator and taykun genre. I generally think Mini Metro is a brilliant achievement of modern game art. Did not play?
Yes, yes, I saw her.
If we draw a parallel with the art of art, then this is such a “zero form” as in Malevich — when a huge reservoir of a deep system is supplied with minimal effort.
Taikuns and simulators are a domain model in which we interactively do something and see the consequences. Games, if you look deeper, this is the way to get experience without risks. That is, the game - the most natural form of learning. Here we have a company called Luden.io. If decomposed, Ludus is translated from Latin in two ways - game and school. Near the Colosseum are such ruins, they are called Ludus Magnus. This is the place where the gladiators studied, they played there, fought and so prepared for battles in the arena.
And simulators, Tycoon - just designed to give experience in areas where it is too difficult or too expensive to get, or not at all possible to get on planet Earth. Prepare a person for the situation that he will face in the future, to rehearse her.
Education, which was in the format of 20-30 years ago, was poorly implemented. The child has a phone in his hands, he has Youtube, Twitch, any game, and all this is much more interesting than reading an abstruse and not fascinating book.
If we combine these forms - to play and learn, then we will gain from all sides.
What happened to VR
By the same principle, the first projects had an idea to focus on VR?
With VR, an interesting topic ... when we started, it just started. VR, of course, scales the strong side of games - risk-free gaining experience adds the effect of presence. The brain even more believes that this is actually happening, although it is just an extra rehearsal. But the market is having some difficulty with the growth rate now. We could not find the VR format that everyone would like to have at home.
Therefore, we decided that we would continue to go towards our goal, but VR ... We have projects released on all platforms. In addition, we have in the production of VR projects that are integrated into schools. If something moves from one of the platforms, and this is a virtual reality that will help produce useful games, then we will certainly strengthen our presence there. In the meantime, we have a lot of players there, everyone is happy and happy, but while True: learn () is without virtual reality.
After E3, this picture just went on the Internet, that there are catastrophically less mentions of VR in the press than before.
Well, unfortunately, yes.
What do you think happened?
Want to buy yourself a virtual reality helmet?
Here you go. That is what happened. People do not want. As soon as you wake up and realize that you want your VR, then the turning point is near.
Why do not want? After all, everything was so cool. When it appeared, everyone was delighted, everyone said, in 5-10 years it will be everywhere, we will move there in general.
No complicated analytical answers from businessmen can be listened to, only custom ones. Custom will answer this question much better in simple language. Therefore, guys, if you do not want a helmet to your home, your motivation will describe the situation much better than all my abstruse business conclusions.
It always happens this way - if the game is not for sale, go to the game-stop and ask the person who did not buy it. He will explain much better than all marketers combined.
I think there is a problem of chicken and eggs. A helmet can be bought home, but the question is what to do with it. And the one who produces the content for this helmet thinks what I will produce for it, if there are no people there, how to stop the development with money. This problem has not yet found a balance in the VR market.
But the segments have appeared, and I think they will be strengthened. First, narrow markets, then pull the market larger, larger. As was the formation of consoles in the 80s, 90s, the formation of VR may also occur. But for three years it failed - he did not soar to the scale of mobile phones.
So you believe that he will fly, just later?
The question is in what format. Whether it will be a universal device that allows both AR and VR to be made, or separate devices is difficult to predict.
My personal opinion is that it will occupy a specialized niche, such as, for example, tablets today. Many who have them at home, but few buy new ones. And still they solve some problem. With VR, it will probably be the same. He will definitely take some segment in the market. The question is only in the size of this segment.
There is one great use, it seems, Seregey Galenkin, told me. One person bought a helmet to watch a movie, because he has four children. Use case is immediately understandable.
Was it hard to work with virtual reality? Technically.
With VR, there are huge problems with performance, and platform requirements are often to support it. We are now out with our old game - VRobot - on a Playstation VR. There, for example, it is necessary to maintain a stable 60 fps. On Oculus (including mobile) you need to support 75 fps. Even if at certain moments drops to 20-30 frames - that's all. You have to optimize the game, so as not to fall.
But we have a very strong team in terms of low-level graphics optimization. We have Nikita, who is a super professional in this.
F: So you have a separate dude for optimizations?
Well, he not only does it, but this is his main skill. They are still paired with Dima work, which can collect any 3D scene under the desired performance indicators. Therefore, with them we were all fine and beautiful.
Pro machine learning in game dev
Those who are interested in geymdev and machine learning, Oleg for inspiration shows a photo of Demis Hassabis. Chess prodigy, neuroscientist and founder of DeepMind also began his career as a game developer.
He programmed artificial intelligence for Black & White, Peter Moulinier. And then in his own company Elixir Studios released, for example, a simulator of the Bond super-villain Evil Genius.
And only then he became one of the most famous AI researchers in the world.
While True: learn () displays your actual experience?
Yes, yes, everything is built on it. In the gaming industry like - if you start to do something, you must have a reference point, a reference point to which you will look. We do the simulation, in the simulation there are a lot of trifles, these trifles need a reference point in order not to fly off completely into some kind of abstraction.
And while True: learn () we took for reference not another project - our reference was a reality. If you do something and do not know how to do it - look like in real life. The economy of the game is the rental of computing servers. If you solve the problem of processing a huge array of data, you rent a server, consider, rent, terminate the lease.
We wanted to show in the game the chronology of the development of machine learning from the 50s, from the first perceptron to modern self-driving cars, all kinds of capsule networks, and so on.
We laid out all these pivot points, we have Vanya specially collected Google-table - the main transitional blocks of machine learning, how the industry has changed, what's new is introduced. And with the help of quests it is served in that order.
In some versions of the game, we even had a year specified. For several reasons, we removed it, maybe we will come back. But a man goes the way - he starts the game, goes through several quests with a perceptron, earns some money from it.
Every year something was interesting. It was either refuted by the future development of technology, or vice versa was confirmed.
You can click in each block, see how it works in the game, how it works in real life.
There are always two links, one on YouTube, a video about this block, where someone is fascinating about this. And any article to understand more deeply if you want to make out right down to the details how this thing works.
In the team, people were engaged in machine learning before?
Yes. while True: learn () we did in parallel with the launch of VRobot, so the VR team was focused on porting to the Playstation. A new small team just consisted of specialists in machine learning.
And tell me about them, what kind of team, what did they work on before?
Yes, that's how they collected it. When the idea came, I picked up a team based on friends, friends, students.
F: Did you select ML specialists?
Yes, but there we have all the young guys, they have, of course, 20 years of experience in machine learning. Everyone played at Kaggle at least several times, some tasks were solved. At the institute, many have already passed this.
F: And they made the game. But game development is not machine learning, right? That is, these are full-steaks - the date of the Scientists and product developers in one person.
Well, how do you answer. These are people who understand machine learning, understand how it works. And they are developing the game on Unity, writing gaming code, creating interfaces, and so on.
Just to come up with some quests and decompose it all in chronology, you need to understand the context. But obviously ipython notebook for each quest, they did not start.
We have a special library there that considers convolutional networks and some very basic things on Sharpe that work in Unity. It also released our game AIDraw about drawing. There the player draws, and the neural network guesses what he draws. This library calculates this whole thing, and the whole game is tied around it.
F: ML and gamedev started to intersect not so long ago. Here, for example, I have a game with machine learning. What stack is suitable?
I have not seen many projects that cross machine learning and game devs - namely, product use, so that something happens in the game client.
Unity has its own system of reinforcement learning. It allows you to do a small number of things, but is built right into Unity, so the entry threshold is low.
There are a number of libraries, the same as for other areas, plus frameworks for neural networks.
Mobile technologies often use Apple's CoreML, which allows you to calculate directly on a GPU device. We take a model, train it in the same TensorFlow or in Yandex CatBoost, pack it in a special file - and now it can be launched directly on the GPU on the iPhone and give us the resulting prediction back.
We used it, for example, in the ARrived game with augmented reality, where it was necessary to recognize the image from the cameras and say what was on them.
If we are not talking about grocery use, not in the game client, everything is classic. On servers, people chase the most common technologies that are in all of ML. But there it is used for analytics or offer personalization.
The famous case - they tried to predict when a player would fall out of World of Tanks and what to do with this information.
Or predict the time when to give the player some kind of offer - buy two horses for the price of one. He will buy with high probability and will be happy afterwards. These are server things, and there the stack is not limited in any way.
Can a collection of datasets be in the center of the game design?
Well, this is such a westworld concept. Perhaps she has the right to life, but I do not immediately see that for dataset from the actions of the players can be useful.
Well, for example, we are making a game about driving in an urban environment with you, we are doing a real model of Moscow roads. Here we see - many players here constantly crash, here the speed limit is violated. From this dataset one can understand where the problems are.
And if this is an abstract game, not a simulator in the domain? Perhaps it will help solve the problems of the company. If she makes games of the same type, then dassetting the behavior of players in such games can be useful for them. But in order to create separate projects for this, I haven’t met yet.
And in AIDraw it was not a task?
Ah, well, here it is. We could go on this, if we have a scale of 300 thousand times larger. Google, for example, collected a dataset on a similar game, it does something with it. I think for research purposes. Here they can be a problem.
F: Suppose you conceived a game that will somehow use ML, and in the development process you realize that, as planned, it will not work, but it turns out something completely different. Have you had such cases?
For example, we knew that while True: learn () there will be a big update about self driving cars. The player will train the machine to drive, to go around other cars, to rebuild, to press the gas, to press the brake.
Usually, game designer writes a game designer in a dizdok, content is produced according to dizdoc (well, as in TK in other areas). But with the machine, we immediately understood - we will have several stages there, several technologies. Will learn genetics. The player will understand that genetics is learning, but it is not very good. Then there will be a reinforcement of different types. The player will understand that a certain reinforcement for this task is more effective.
These are weakly controlled things. Knowing that everything could go wrong, we first wrote a techno-demo - raw, ugly, incomprehensible. Gave it to game designers. Game designers played with her, wrote dizdok, which we will already finish and polish.
More precisely, not only gamedizaners, we have a closed community of the closest friends in Discord, we can give them a feature in any state, they will play and say what they think. Now they play more than two weeks in these cars and tell.
With cars, we came to what? Initially, we indicated which data input to use to teach the machine to drive, which parameters we can change (all sorts of threshold, loss. In genetics, for example, generation size, mutations). And it turned out something not very interactive. A person enters, changed some parameters, and then goes off, looks at how the machine drives. For developers who are in context, this is cool. And for the person from the side somehow not interactive.
F: Do not feel your contribution?
Yes, no instant feedback. Therefore, we have a little changed design. The player will drive the car. Like teach a car, drive it yourself. And she repeats after you how you taught her.
If a player is constantly rebuilding just to the right, then the machine cannot be rearranged to the left, because he did not teach her that way. It immediately became interactive. So, a few more iterations, and something can work out,
That is, we are laying down that with ML something can always go wrong. It is almost impossible to think this through in advance at the design stage.
F: That is, you are laying down on the fact that you will have to make a prototype, see how it behaves and in essence redo it anew?
Of course, yes.
F: But this is outside the box for development. This is ML feature, right?
You could say yes. Because in other areas and games, we can roughly predict. We have been doing this for the first year, so we understand what the player will do, what emotion he will experience.
Our predictive base, which we hold in our head, it copes with this task.
But with ML still can not cope.