 How many are familiar with Steam? Okay, just wanted to verify. So let's go. I'm Eshed. I am a core developer in the Spring RTS engine. The RTS engine is then like real-time strategy. And while we have lots of games, well, I don't know lots, but there are quite a number of games, the engine itself supplies, you know, some underlying services that most games use. Like it supplies some scripting language so the games can actually be written by something that is not C++. It supplies physics. Everything is really, like, simulated. Units cannot shoot through units unless you, like, have a certain tag that says do not collide. You know, graphics pipeline, pathfinding, which is endless work, networking, so you can play with your friends. And currently we have 27, 963 commits, so it's been kind of busy. The first, like, version was released on 2005, more or less, so it's been, I think, April, yeah, and it's been working even before. In total, we had something like 100 contributors, but at the moment the team, the core team, the people who touch, you know, feel comfortable touching everywhere is kind of less than two. And I'm, like, half at least, at most. So this is the engine. It started as a reimagining of a proprietary RTS game, total annihilation that came out in 97. By 2005, you know, hardware was quite better. You could use, you know, video cards in order to render stuff. Total annihilation was using all kinds of weird tricks to render 3D models from a fixed camera. So TA Spring, as it was in the beginning, could do it from a different angle. And if you can see, this is, like, the same model. This thing is what this is here. And it really just used the assets from the original game, but using a real 3D engine. But time has passed, and people understood, wait, we have an actual game engine. We don't just have to pause total annihilation as it is. So other games were made, such as Zero K, which you can kind of see that it is similar to the mood and things, how they looked in total annihilation and evolutionary RTS, which kind of moved from it, but it is similar in some ways. And our games that looked quite more different went into not robots fighting robots, but, I don't know, you might recognize some of these things that we probably have no license for, or Spring 44 that nobody requires license for. And they play quite differently for total annihilation games. And you have, like, really different games. Kernel Panic, as you can see, like, entirely changed how the graphics is imagined. And it's still an RTS, but it's, like, inside a computer. Gravitas, which was made in a game gym in 72 hours, was quite fun to make. And it's a puzzle game, not even an RTS. The controls are WASD. It's really, really different. We've made more games in game gems. It's like, as a recommendation in general, if you make an engine, game gems are an excellent way of testing what is fast, what isn't fast, what things work, where developers need a little bit more help, like your users. So Area 17 was a really fun game about an alien looking for the partner who ditched it on Earth and you're, like, burning the entire place with doomsday weapons. And Parsonated was just a spooky, you know, a first-person perspective game that also could kind of happen. And then you'd be really, like, testing the limits of spring. It might be an RTS engine, but maybe the abilities can be used in many ways. But let's talk about Zero K. Zero K, as I showed, is one of the games. And they wanted to release some steam. So if we look about Zero K, like, the past history, the first version of it was released somewhere around 2007. And with games like this, the first release is not usually when people start to actually play it in masses, when I say masses, I don't mean, like, you know, the AAA games, but I mean, like, that whenever you come in the evening and you want to join a game, you will find people to play with. This is, like, a very important measurement. And this happened in, like, 2009. And since then, like, consistently, which is quite impressive to be more than 10 years consistently, you know, finding people to play with, it's, like, one of the more popular games in the spring engine at the moment I think it's the most popular. And in 2013 or so, Steam came up with the green light thing. Are you familiar with green light? No. And also I will say, green light was basically because Steam were understanding that they start to be a monopoly in deciding which games are released on Steam and which not, and when you are kind of deciding which games reach an audience or not, that might be a problem for governments and stuff. So they kind of offloaded the work to users. Green light was a thing where you put your game to the popular vote, and if there are enough votes, it will be released in Steam eventually. Like, it will be accepted. So Steam green light, like, Zero K put the game in April 2014. It was, like, in the same month, it was accepted because there were enough users to just bring and, you know, bring them to vote. And then, just, you can see it. This is in May. You know, even though you're green light, it doesn't mean you have to release the moment you get the green light. Liko is, you know, a core developer of Zero K, and he said, like, we have to prepare and double check lots of things now, so probably a couple of weeks. This happened in May 2014 when people asked when it's going to be released. And then, like, you know, in June 2014, a little bit more than two weeks, it got released. So that's all. Any questions? Yeah. So a question, like, that you might ask yourself is what really happened? Let's talk about something that happened a tiny bit before that. Remember that I showed next to Zero K another game, Evolution RTS. So it was released, the first version, also around 2007, quite near the timeline of Zero K. It never reached a big popularity. There were people playing, it has a community, it has a community now, but it wasn't in the same level. And it submitted itself to Steam Greenlight very early, like, near the beginning of this endeavor by Steam. Also got Greenlit in really, really fast because the entire Spring community happily helped it to be Greenlit. And it launched 4th April 2014. As you can see, this is very, very close to the Zero K Greenlight. Now, this all seems very nice, except that there was a catastrophe. Steam decided that they want to advertise games. And on the main screen, when people opened Steam, there was this feature about Evolution RTS. Now, you can say, oh my God, this is like the most amazing thing that can happen to a game. Not exactly. But if the game is stationed on a server which isn't even its own, it's like a server of the Spring engine and the Spring engine never experienced a big influx of players. And maybe we had some problems where every user gets all updates about all other users. If you count fast, this is O of N squared. So when there are 100 people, there's a day when there's like 500, maybe 1,000, all right, but this goes up fast. And if everybody and his sister from Steam comes at the same time, what you get is this. This is a core developer of Evolution RTS, a one-man army, and he wrote on the forums in 7th April 2014, please help me. I'm at work and Steam users are flooding in. Blah, blah, blah, this is like, we had technical issues now. In order to explain how big of a problem it was, people from Spring that don't even play Evolution RTS came and started helping and assisting people how to get into rooms, how to open them. We will see later why it's hard. There were people from other games also trying to steal Evolution RTS players into their own game and then somebody starts a game an entirely different game. So it was mayhem and then you have all the people that it doesn't work and things became slow. And then you can see reviews cropping up like this one. And this is very sad. Note, this is not a review of the gameplay itself and you'll find out why in a second. The download for the game is simply a download for a game, lobby. Oh god, why? I hung around for around 25 minutes trying to figure out how to just start a game. Okay, this makes no sense. Like, somebody wants to start a game, they should be able to start a game. Something was definitely rotten in Spring and the entire ecosystem if somebody spends 25 minutes trying to run a game. Now, this is even worse when your game is free. Like, let's say you are a big company and you release a game and then somebody paid for a game. They have sunk costs. They will spend 25 minutes an hour to learn your game, to do something. If they downloaded it for free and things don't work, they will just uninstall it and play something else. There is no sunk cost. There is no big reason for them to persevere. So, this is the current state. Now, it was worse before that. It was worse after the release. But currently, it's like 50 percent. Positive reviews is not good. And the bad thing is that it's not about the game. The game is quite nice. It's not bad at all. So, I talked about lobbies. And let's start talking about lobbies. This is how a lobby looks. It looks nothing like evolution. This is a past client. This is also the F lobby, I think. And, wait, spring lobby. As you can see, many people tried to write lobbies. There were always people unhappy with how the previous lobby looked. And, wait, I think there are more. This is spring web lobby. And then they made another version of spring web lobby using React. And 0k understood that it just makes no sense that every lobby's work with all games. Maybe they should make their own 0k lobby. But you can still see other games like pants, narration, and so what is going on. And, oh, this is like, this is a new one. Actually, I gave this talk a year and a half ago, more or less. And this is a new one that somebody started making. Just a screenshot. It wasn't released yet. And I also found this one. And, okay, something is really, really insane. If you have like 10, I don't know how many. I missed some. So many lobbies. Why is a lobby even necessary? We're trying to play a game. Why can't I start evolution RTS? And this is for a very interesting reason. When you start spring.exe, this is what you see. What, I don't know what to do here. Like select a game, select a map. What is a script? What is this? This looks horrendous. And this is, I'm not even exaggerating. When I first downloaded spring in like 2007 or 2006 or something like this, I was sure I'm going to play single player total annihilation with spring. Because nowhere in the website said it's multiplayer only. There is kind of single player. That's basically multiplayer. And I just run spring.exe because it made sense. And I see this and I don't understand anything what's going on. And I just gave up after a bit. And then I found launchers for some of the game had single player launchers in order to replace the lobby. And what is a launcher needed for? Because if you just run the spring.exe, you just get this screen that isn't supposed to be used by any user. Instead, there's this text file which is called a script. Which says, oh, this is the game used. There are this and that teams. And this who-and-gainst-whom, like their line says, it holds an IP if you're trying to connect somewhere. And something has to generate it. And it's not the user. So naturally, this program will be a lobby that handles all the network stuff of like, this is what's going to the game looks like with the server. And then they send directions to the users to generate this text file and start spring with that text file. Okay. How the hell did we get to this situation? Like, it would make no sense for any place to use it. But I think it's an inherent thing in open source software. This is a quote by Eric Raymond. It misses the attribution. But anyway, there's a closely related issue, however, that I don't know. Doing systematic user interface and user testing. And why is that so difficult to test user interface with end users? Because basically, users don't want to do tests. And you cannot trust developers to do tests because then they use text files and stuff like this. And user testing costs money. So if you don't have it, it's a bit of a problem. Or you need lots of users that will agree to, or maybe not agree, just release a version and see what's going on. Because everybody has a testing environment. Some people are lucky enough to have a totally separate environment to run production in. We always do it in the spring. We just like release stuff and see what happens. So in this case, the big, I don't know, the huge loss here was evolution. Yes, they were the testing environment for 0K. So 0K sees that like a week ago, there was a disaster with the current situation. Something has to be changed so we don't release and we don't suffer the same fate. And this is why it wasn't released two weeks later. So this is kind of what I said. And user time is a limited resource and dev time is an even more limited resource. This is why we don't just pay developers also to check because we want them to develop stuff. And you know, good will. You can only release so many CREP releases until you won't have any users to test them. And we talked about free games having it worse. And even if you are improving stuff, some people will not like it because they've been playing since 2005 and they're used to things just remaining the same way. If you don't know this XKCD, check my presentation later and really it is one of the best. But basically users like things to stay the same and if you're trying to get to new audience, you have to change the things that are broken. So there's kind of a tension. While you are doing the tests for the new people, you're losing veterans. And is it worth it? Are you sure that the new people will come? It's a bit of a problem. It's a bit like from the end user perspective, they think that you're just trying to ruin their day. They think that you were in school and you thought that if the teacher is giving you a bad grade, they hate you or something. And when I was teaching in junior high, I understood that the kids don't understand that I'm on their side. And if I'm telling them something is wrong, it's because I want them to get it right the next time. And I have to tell the kids all the time, I'm on your side, I want you to succeed. So this is kind of the same with our end user. They just think, oh my God, the developers cannot just, you know, and keep the things good. They have to change things all the time because they are bored. And no, we don't. We actually want things to improve. We are very sorry that things don't always do this. But like, yes, sorry, this is like a zero case length. I hope you like it. If not, well, nothing to worry about it. It's a, yeah. Anyway. Okay. So let's understand what had to be changed between like the planned release and the release. First of all, the server. We talked about the O of n square. Something has to solve this. So you can actually support 1000, 2000, I don't know, as many as might come. A lobby, of course, is a problem. We cannot just use the current system. It makes no sense that you will see a list of 20 games and the lobby doesn't even look like the game. You know, people look in a screenshot in Steam and they want the things they run to kind of look the same. It's about branding. It's about like understanding what's going on. User interface. I will show in a second why it had some problems. But as a game made by developers, kind of for developers, it was very customizable to like too much. Single player. Like many, many games, the multiplayer community is much smaller than a single player. And you kind of get, you know, a foot in the door if you have some single player presence. So you're not just like for the die-hard, you know, Starcraft insane people. And the trailer. Because if you change things, like you had all trailers, but if you change things, then you need a trailer that shows how the game looks now and not how it looked before. How did we solve all this stuff? And when I say we, even though I wasn't in 0K, because it was kind of the entire ecosystem had to like work and change things in order for this to improve. How much time? When did I start? 20 minutes. Amazing. So first of all, there was seven migrations. 0K decided to just make their own backend. And like at first there were some issues because why can't you just like work with the current server, which the server was good. But in the end, this was the exact tension about when you're a game that is released, the biggest thing you need is stability. And they couldn't just stay on the bleeding edge of the server like it's in the engine. Second thing, in-game lobby. Why not take the lobby and put it in the same executable? So you don't have to like run lots of stuff and this is a good thing. The GUI revamped was like basically trying to standardize everything I will show it. And the rest was compromises and luck. And we will go through everything. First in-game lobby, like when we started talking about lobbies, as you can see like that many people did lobbies, even more people tried to like come up with different designs on the forums. It's more just like funny. And basically all the people were just forum-posed about stuff instead of actually doing anything. What even, like I can say that I don't understand what's going on here, but actually it made this one, so I do understand. Yeah, this was like criticism of the entire 0K project. Anyway, this is the in-game lobby. I think it's quite nice here. And you know, there are two really, really important things. One of them, it has 0K in the top, so you know that you started the right game. It's not a joke. And other things, like there's like a single player and it doesn't like clutter your screen way too much. And you will believe me, maybe I will show later, how like you really need very few clicks in order to get in a game. You don't need like to spy this small ready box that you have to tick in order, and I don't know what. And there's like they implemented a matchmaker. So it's like in two clicks you can wait in a queue. If the community is a bit bigger than you wait so time, now it's like a long time after the Steam release, you might wait a lot. But it's like with regards to the approach, it was really, really useful in the first few weeks, let's say after release. And even now people are using the matchmaker for a competitive playing. This is like the old user interface. And you can see like you have lots of stuff just floating around. And they're not entirely like, how do you call it, consistent with each other, like this player list, which is kind of in the way, it doesn't really look related to any of this stuff. And this just floats, I don't know. And this is because you see this little button, this green arrow, if you click it, then you can just like move your GUI around wherever you want. And you have like if you press F11, you can choose all kinds of widgets and stuff that you can add, you can remove. Everything was like immensely customizable. That is awesome. It's part of the reason why Spring's user interface is very powerful, but very ugly. Like there's a cost benefit here. But once you want to release a game, you should kind of use what power already exists and try to make things more consistent. Now I don't want you to think that the only thing changed was moving the minimap from the left to the right. You can also flip it, there's like a setting. But in general, everything is kind of better docked to places and they got rid of this really, really bad button that lets you move everything. You can, if you really, really want to shoot yourself in the leg, you can kind of find it hidden somewhere in the settings. But in general, this was much better. And like I use it. There were also compromises made. This is a single player campaign. Instead of going full red alert with stories and the plots and I don't know what, this was kind of the idea in the beginning. Just somebody came up and said, okay, let's just do a galaxy map when you go from planet to planet and every planet you unlock new units. And there's not story. Just like you progress. You learn how to use this unit. It's like kind of between a tutorial and a single player experience. It's not as good as something with a story, but you can have fun here. There are bonus missions. You can do it on hard difficulty, which is quite difficult. And it works. This is a single player. People can play it at home before they are getting shredded by the pros in multiplayer. And there's luck, which is basically that we needed trailers. And for trailers, you sometimes just need the right people. I think that sound is kind of not very good here, right? Or do we? Okay, we will see because I'll just show you the trailer and if you don't hear anything, then I'll try to narrate it. Oh, I'm muted. Yes? Give me a second. Yeah, I'm muted. I'm not muted. I don't hear anything. I think it's trying to go through. Yeah, I will see if I can change it. Oh, here. Give me a second. No, no, I think. We have Caster. Caster is even, yes. We have Terraforming. We're like almost the only game that I know that has petfinding with Terraforming. Anyway, this spring. Aha! Anyway, so there are things you cannot always plan for. Like that you will have people as talented as Dinefreind and Spring that will do this trailer. But it works. And it showed the new UI, which is important. And before the Steam release, we did a smaller release on itch.io. Anyone here doesn't know it. It's a smaller platform for publishing games. Much more limited. And it was kind of trying whether people can download it and run it and not cry. And there's a smaller risk because the reviews from there are not going to be passed into Steam. So it's just like a great opportunity for feedback and knowing what works. So it works very nicely, actually, because we worked for quite a while on fixing everything. I didn't talk about the in-game lobby. This is actually something that I worked on a little bit. Not on the lobby itself. The lobby was someone, a guy, of doing. But you needed to change and have another state during scripting. And there was lots of fun stuff. But everything kind of worked, which was quite surprising. And then there was the Zero Case Steam launch in April 2018, four years after it was planned. So these things took time. And we really spent quite a bit on it. And then we should ask ourselves whether it was a success. So this is like the number of unique daily users and daily first-time players. And while you can see that the days after Steam are at least twice than the all-time peak, which is quite nice. And this is quite 2020. This is now. So we're already stabilized after the really, really big peak in the beginning. One thing that's important, we survived the influx in the beginning. And then a week or two later, I think it was the week after the release, that I made an error and broke the server during the weekend exactly when we were supposed to get an even bigger peak. So I'm sorry about that. But it doesn't matter. We managed to get players. And even though we don't entirely know how many of the people coming are old players, because sometimes people used to play and say, oh, this came on Steam. I liked it back in the day. Let's go and have some games more. So it's a bit hard to check. But all in all, I think this is nice. But the bigger question is about retention. Because all these things that we changed were supposed not to bring many people for the first time. You really want to see whether more people left or less people left very fast. So retention graphs are a bit weird. But in general, I think there is a little bit of better time. This is like the Steam release. So you're a little bit better retention here than, let's say, here. And you know why here the retention is bad, because this is when all the things were changing all the time just before the release. So it's like the question, when you think, was it worth it? OK. And this is also a nice measurement of success, which I think we have lots of user reviews and they're quite positive. And I think I've read each and every one, especially the bad ones. And it's really fun reading bad reviews. You have the ones that are like, they have good reasons. And then while like, why is it not Age of Empires? And I'm like, well, listen. But yeah, and I should really proudly stop reading because it's a bit of an obsession, although it's fun. So let's talk about, was it a success? Because when you work on something for four years, we didn't work on a more interesting feature, let's say, because we wanted a Steam release to work. So first of all, donations cover service cost. We got more donations, which is nice. Before that, they didn't cover service cost. They even like, they covered the 0K server and then 0K sent some money to Spring to cover our service, which was nice. I had to ask them. But it's getting maximum amount of players really our goal because maybe changing the game could also get more players in a similar manner. Because there's something very, very charming, for me at least, in having this die-hard fan base, which is also why we have players for 10 years, because they think this is the best game. They're not playing it because it's free. They have money. They're just playing it because it's almost payload to them. And maybe maximum amount of players isn't really needed. So maybe we want more exposure to get more devs. I don't think we got even a single dev from Steam. I don't know. Maybe we did get a little bit of contribution, but I know for sure that Spring didn't get anything from the Steam release. Do I think it was success? I think it was. I learned a lot. I had fun. It was very, very impressive. I don't know, user-wise. Considering our goals, I think it was quite nice. But different people have different opinions. The aftermath. The devs were burnt out a few months after the release. There was nothing being done. And then there was all the talks about whether stability is more important or stability is more important. And when these are the same on paper, but they're not, from the engine, the point of view, the version of engine that was used in 0K had bugs. And we wanted them to update. But they didn't want to because these were known bugs. Who knows what new bugs are in the newer versions. And there were lots of arguments and trying to work out how to really keep changing the engine and keep using a newer version. Which still goes to this day. And what I think we'll learn is minimize MTTF. Do you know MTTF? It's mean time to failure. Usually. I change it into mean time to fun. Like I said, when you have user interface or anything, you want the player from the moment they started the exit into when they're having fun to be as short as possible. Like two clicks, fun. This is good. If it's like I have to read lots of stuff and I don't understand what's going on, not fun. This is about anything. Like tutorials, user interfaces, buttons, anything. Also compromise, like the final version didn't entirely look like what we expected. I gave it an example, the single player, some things that the engine planned. You know, not everything works and you have to put like the line, okay, we're releasing this. And we hope that it works. And that's all questions. And this time, yeah. Do we have time? Yeah, we have some time. Okay, yes. I was just wondering because if it's a question of genera or what's the link between? Yeah, they were started being developed. Well, not started, but Spring was started before Supreme Commander was released. And 0K I think also about the time. So it's just the genre. That's the genre. They're both like drawing a lot from total annihilation. So this is kind of how you do it. Sorry? Oh, planetary annihilation took from... Oh, sorry. No, no, no, that's total annihilation from 97. Yeah, more questions? Yes. So what? Yes, we had a few. Oh, I was asked whether we had media exposure. So 0K wasn't advertised on Steam like evolution RTS. Maybe it would have a fair battle, but this doesn't matter. We had some articles not in very big places. There was actually more media exposure about 0K back in the days, like in game magazines. We have people to this day that saw it in like a German game magazine that sent CDs or something back. Things that I think disappeared. There was even one article that I have to tell you. It was about someone who tried to play it on like a gamepad or something, an RTS game. I have no idea. And they were quite frustrated. I can understand why. Anyway, yes? If you had to go back in time right now, would you do it again? Yes. OK, I was asked whether if I would go back in time, I would do it again. And yes, we've learned a lot. The product now is much better and we had fun and we didn't argue that much. It's good? Yes? How many people are working on it? What is it on 0K? It's hard to tell. Sorry, how many people are working on 0K? It's hard to tell. There are like a bunch of people kind of active. It's much slower development now than it was before. It's really, really hard to quantify. But there are regular contributors doing things. Yes? OK, how do I see the future of real-time strategy? I don't know about the future, but currently it's dead. I hope this is the end. I say it is dead because just like from an observation of interest and what people want. I don't agree that things that will magically be solved because there's a new game that solves problems. I don't think so. Users know what they want and they want data or whatever. Yes, there was one there. Yes? OK, I was asked if there were forks of spring. There was one attempt at a fork, but it was an in-engine. He was an engine developer. He did lots of multi-thread stuff that nobody could write and then you had two versions of everything and it didn't go well and it was decided to remove this code. So he got quite pissed. I understand him. But then he went away and did the version without releasing his source code and violating GPL. So this didn't go very well because later it didn't keep up with our development and no game actually supports it. And that's it. Do I have more time for questions?