Eric: 00:00 Welcome API endpoints, websockets, message queues one and all to the Titans of Text podcast. We are your hosts, Eric Oestrich Danny: 00:18 and Danny "Austerity" Nissenfeld Eric: 00:20 And we have with us today the one and only Thibaud the veritable Aristaeus of the text gaming world. Today we're going to talk about how Thibaud got into gaming, what led to the creation of Written Realms and what he's all about. Welcome Thibaud Thibaud: 00:34 Hey guys, thanks for having me. Danny: 00:39 So to start us off. Why don't you tell us a bit about yourself and how you got into text gaming. Thibaud: 00:45 So, I am an immigrant. I grew up in France and I moved over when I was 18, but growing up, I grew up in the mid nineties and you know, the Internet started to be a thing at that point and I really got into, mIRC chat rooms basically. And it was kinda my first experience interacting with text with other, you know, live people, uh, far away. And there were some my first experiences of encountering, you know, meaningful experiences on that. Both like emotional, like, you know, meeting people who then resonated in your life for some reason or another. Or also just kind of like the magical aspect of the technology that was there. So, you know, like bots for example, they had these little bots that you can ask them to do things and they would say things in channel or they would give you certain roles and they would kick someone you don't like or they would, you know, interact with you. Thibaud: 01:38 And those were also my first instances kind of interacting with programs that were among also real people. And I started coding a few years earlier, just kinda like programming, ti calculators, like I program little games on there, like hangmen and, guess the number. So you just, you know, have a number and then tell you it's more, it's less very, very simple stuff. But, everyone else in class was like really, really into it and we kind of pass me their calculators for me to program them. So that was sort of my first foray into game development, I guess. And so then once I kind of jumped into, you know, IRC and you know, chat rooms and this whole like, text world, it really made me want to learn how to do all that stuff. So I started learning how to do html. This was like 94, 95. Thibaud: 02:23 So you know, javascript was kind of like barely a thing at that point. You know, you sprinkled it here and there, but there was not too much of it. And yeah, I just kinda like started to teach myself coding as much as I could. And then when I immigrated in the US after my baccalaureate, after my, my french high school, basically I spent, I declared my major in computer science very quickly and I kind of knew that that's what I wanted to do. So, you know how to program in c++ and Java and Perl and later Python and all of those. Um, and uh, kind of at the same time. So this was in college, right? And then, junior year in college. So this is early 2002, I'd been reading a fantasy series called the Wheel of Time, which at the time my best friend had given to me a couple of years earlier to read than it. Thibaud: 03:08 It's a, it's a big, big fantasy series, well nowadays it's like 14 books or something, but even back then it was like seven or eight or something. And I got really, really quite enthralled in that series. And then he went abroad to study in London for a little bit and he kind of sent me the link to this mud this one day, which was Wheel of Time MUD and was like, hey, you should check this out. It's based on the books. I like it a lot. It's pretty cool. And uh, you know, being happy to kind of have a way to keep up with my friend as well as, you know, discovering a new game. I started playing it and I got very hooked. Like I got very, very, very hooked, probably to the detriment of academic studies and some of my friendships, real life friendships and all kinds of things. Thibaud: 03:47 But I really kind of dove both feet into, into the mud world. And I played that very hardcore for probably like three years. And I would say that the PK, I mean I was into all of it, like all of the immersion, all of the, you know, the pve, the roleplay, I loved all of it, but really the player versus player. I've always been a pretty competitive person. And, that kind of give me an outlet to kind of explore that in a very unrestrained way. And yeah, so I did a lot of PK and PVP and played the hell out of that mud. And then eventually, I don't exactly know like why I moved away. I think World of Warcraft was about to come out and then everyone kind of assumed at that point that muds were going to die. Thibaud: 04:30 And I did too basically, because their narrative around there was all we like about new technology is coming, it's gonna choke the life out of everything else. Everyone is playing these new games. So you know, I'm a very all or nothing kind of person. And then I jumped both feet into that. So I did like a whole lot of wow. You know, at that point I sort of stopped playing muds. Like I kept tabs with the mud a little bit, but I didn't, you know, I didn't really log back on, but I'd always had a deep desire to build my own game and to build, you know, kind of like my own platform that kind of did what I want. And as soon as I stopped mudding, I right away kind of wanted to build my own but to make it on the web. And the reason why I wanted to make it on the web was for it to be perfectly accessible to everyone, right? Thibaud: 05:19 Including myself. So I was always kinda like straddling like max npcs and I always found like the setting up of mud clients to be really, really painful, you know, finding like how to get ZMud and running on like a computer and how to get the licenses installed. And it was just always kind of like a big headache. And I always felt that the immersion provided by muds and the, you know, the experiences that they provided were just so good and so enthralling and immersive, but I just thought it was completely crazy that that medium was not better known essentially. And that, you know, a lot of people didn't play muds and I felt like the reason for that obviously was that they were too hard to get into. So that's kind of, I mean it took me a while to really start coding on it, but that desire to build it like started, I mean it started really even towards the end when I was playing Wheel of Time MUD but then very much the entire time afterwards. Thibaud: 06:13 So my career then oriented me more towards computer programming. I spent like three years doing things that were not programming because I graduated in 2003 and we had a big dotcom bubble bust at that point and it was, believe it or not difficult back then to um, find work as a programmer. People didn't really want to hire them. So I ended up writing documentation for a few years and doing consulting and stuff like that. And that would always kind of think about muds still and about games. And I was like, oh these games are good but a mud would be so much better. But I didn't have the tools. And then eventually I sort of decided to really just go into programming hardcore. So I quit my job and like I took a big pay cut but I took like a job that was less paid, but at least I was coding and I really haven't looked back since. Thibaud: 06:56 And then these things started happening where like the more about web development that I would learn, the more I would immediately like have this automatic reflex of saying oh I could use that to build a mud. If I were to find like you know javascript technologies that would help you with like rendering things on canvas or any kind of visualization libraries I would think, oh that's, that would be great for mud. If I would work on the back end pieces, which my career sort of oriented me towards backend pretty quickly. So I would work with a lot of APIs and databases and distributed system message queues and all that. And that was always like, oh wow that would be a perfect fit for the back end of a game. Like I would just be ideal because when I played a lot of Wheel of Time MUD there were a lot of users on right? Thibaud: 07:37 This was like late nineties early two thousands there were a whole lot of users on there. So much so that like sometimes you have like waiting queues get in and sometimes the game would get really laggy and they were basically unplayable. So I would always think, okay, well if I'm going to build a mud it's going to have to be able to like handle a lot of users because if it's ever successful I need to get to the point where you know, it can handle success basically. And so once I started learning about message queues and how to scale big systems, I worked for a startup that did mobile apps and I focused on their back ends and we had a lot of, we solved a lot of scaling problems there, which were a, it was just really useful, useful knowledge for mud building. Thibaud: 08:18 For, and I haven't really, I mean I'm saying this, assuming that I built it correctly to handle scale and like the truth is I don't know yet because we haven't had enough users that that's seen any kind of load situation that might be problematic. But the hope is that it would be able to handle it. Yeah. Basically the more as I learned more technological construct, I would always automatically apply them to oh my God, I could, I could build a mud with that. And eventually pretty much around the time that I learned about message queues, I thought, okay, now I really have all the pieces that I need to be able to build this. And from that point on it, it's been kind of like for me not to work on this would have been like fighting against a natural inclination because I'm a gamer, you know, I like games, I like muds. Thibaud: 09:03 And if you can sort of like imagine in your head like the perfect game for you and if you have all the tools to build it and sort of like why wouldn't you build it? It would be kind of crazy. You'd be going against your impulses and what you want. So like in a lot of ways, I don't want to say that I don't have a choice but, but I do feel like this is just kind of like what I do and what I work on and I'll always try to find whenever I have a moment of free time, this is what I want to sink it in to kind of make it into a, into the game that I want it to be. I really want this to be, uh, a longterm game. So a lot of games that I've started, I always kind of had the, I didn't want to start playing a game that would then kind of like go away and have this sort of feeling like, oh, I invested some time and it was all for nothing. Thibaud: 09:44 And one of the things that a lot of muds have going for the still the ones that had been up for, you know, 20, 30 years is that a lot of the times when the players come back, they feel that the things they achieved in the past still mattered, right? Then their characters are still there and they still are in clans. And everything is still good. And I think that that's a very powerful way to go about building such a system, so I really want to do that as well for it to be kind of like the focus to be very long term. I'd like to be this game to still be on in like, you know, 20/30 years as well, just like the current muds are. And so yeah, that's been kind of like the, the genesis of why I started to build it and that's why I'm still working on it so much. Eric: 10:23 Are you still involved in WOT MUD or any other muds? Like has written realms just taken over your life? Thibaud: 10:28 Yeah, so first it absolutely has taken over my life, but I generally try to always kind of find a way that I can always work on it. So you know, the kind of work that I do is kind of like contracting work. So I'm never like fully invested to something to the point where I can't, you know, still work on it. As far as other muds go, yeah, I do still play Wheel of Time. I did not for a long time. So I did not play it from like something like 2006ish until a couple of years ago, 2017ish. And you know, Wheel of Time was down for a little bit, you know, it's kind of stopped to exist. And then he came back and, and I was just kind of like, I was struggling a lot with world-building. Thibaud: 11:07 So you know, I'm a pretty good coder. I'm pretty good with systems and all of that. But the, you know, creative writing and building quests and all that is not something that I'm naturally very good at probably in part because I haven't died very much. So I haven't practiced it pretty much. And so there was kind of a part of me that sort of really wanted to remind myself what good room descriptions were like and who wanted to kind of look at how, you know, other games did like their ramp up, new user experience, that kind of thing. And so I took a look at a, I went back to, Wheel of Time. I'd want you to like read some descriptions and kind of see how they were doing things and then of course it kind of like started sucking me back in because that's what good games do, right? Thibaud: 11:48 So I'll find myself spending a decent amount of time playing that, you know, in addition to just kind of like reading and experiencing it more analytically. I was also experiencing more as just like a player. But then I kind of came back to the initial struggles that I had from all those times ago, which is, all right, how do I actually set up a good client with a good map and all of that. So I started playing with Tintin without a map at all because I, I don't know, I just thought it would be an interesting exercise for me to try to always visualize everything in my head. But then I was like, okay, well let me try to install a proper client with a real map so I can do some good PK and stuff. And then I went back to the rabbit hole, like, all right, how do I bring up zMud on a Mac computer or a, and I didn't, I didn't know about mudlet at that point, but I kind of struggled to try to install zMud and cMud. Thibaud: 12:32 And then I said, okay, this is not going to work for me. I already have a whole mud platform that has a pretty good client and that you know, consumes like text data. I should be able to just reuse some of the parts for realms and basically use them to play Wheel of Time. So then what I did is I wrote a telnet to websocket proxy that converts the telnet connection that Wheel of Time has into a websocket connection that my platform can understand. And then I kind of like took apart of little pieces of the realms front end and then I reassembled them in an open source repo that basically had like a working client. And then I started mapping their world inside of written realms so that I could use the all of the map code that I had to kind of render their world with pieces of my UI. Thibaud: 13:21 And so I was able to do that. So there's now like a web client for Wheel of Time that works that anybody can just hit a webpage and go there, which you know, was kind of my goal initially of just making it to that people can play muds more easily. So I was really happy about that. But then I started doing kind of like more coding of, I had like little calculators that you can kind of like input what your offensive bonus and dodge bonus and parry and stuff and they'll tell you, okay well this is their probability you have of, you know, being effected by bash in the game or other kinds of skills. And I've been kind of trying to sort of build a lot of tools for the community to kind of like get a better sense for what the game is all about. Thibaud: 14:00 And then, you know, as I did just a lot more coding, we started talking a little bit with some of the, Wheel of Time immortals about possibly me helping them with coding. And so I then started the process of becoming an immortal on there which I am now. I'm not a high level immortal, but I, I do stuff down there and I don't, I don't do coding yet there, but it's been a really, really, really interesting journey for me to see how another game is implemented behind the scenes. Right. And how do they do their quests and how do they do their interactions with mobs to players and realms is different because all of Wheel of Time is scripted with their, um, mobile programming language, which is like a scripting language. So you kind of say this happens and then you know, you execute these commands. Thibaud: 14:43 And in realms, I try for everything to be more declaratively structured where you just kind of, you know, you create a quest and then you say this is the kind of quest that it is and this is the kind of item that it wants and this is what the mob says when you enter the room. But all of this can just be entered by a web form, right? There's no, there's no programming needed. So it's been a very interesting exercise for me to try to convert a lot of the constructs that I saw that were solved via scripting, um, via declarative patterns and stuff. So yeah, I'm still, you know, pretty involved with Wheel of Time. I try to divide my time, maybe not quite evenly. I do spend more time on realms for sure, but you know, I do have a very soft spot in my heart for Wheel of Time and I always well. And I love that it's still around and I try to do whatever I can to, to improve their platform, both inside of it and outside of it. And my bigger goal is I really want more people to play more muds period, whether it's mine or theirs or someone else's. I think that now I kind of started out saying this. I think it's crazy that everyone doesn't know what a mud is and has like one that they play in. I'd like to try to help us get there. Danny: 15:49 So is there anyone from your wheel, the old wheel of time days that the, the current ones that you got back in contact with that you kind of pulled into to help with written realms? Is any connections you made that lasted a, from the old days? Thibaud: 16:05 Not to help with the written realms? I mean, so in terms of connection from the old days, uh, I met my wife on Wheel of Time, so I met her very quickly after I started. So probably like, I want to say a couple of weeks or something like that. And you know, we played together extensively for a couple of years and then we met in real life and then, you know, everything went well after that. So, you know, that's definitely like something that's still around. But you know, she does for one thing in terms of a pulling in Wheel of Time people to help me with realms. I've, I've tried very, very hard to like not do anything that could be construed as poaching both because you know, it would be perceived badly and I because I generally don't want to do it. I want to like increase the size of the whole pie. I want like more people to come play both of those games ideally. But yeah, no, I'd say the answer is no, I haven't really. I haven't really pulled in anyone from then. Danny: 16:59 Yeah, that's, that's fair. Uh, I know that was always a thing in the old days of poaching staff and poaching players and just the ascerbic back and forth that we used to have. I'd like to say we're over, but we're probably not. Thibaud: 17:14 No, no, for sure. I, I mean there are, you know, there are players who have like come in and tried it. Um, it's interesting. There's, there's one guy who came in and actually I still don't know who this player is but he told me he is from Wheel of Time and you know, Wheel of Time has some pretty serious grinders who are like extremely efficient in what they do. And you know Written Realms goes to about level 20 right now and there are no level 20s currently in the game. But that guy is level 19 he's the highest level. And he got there in I think like three days or something like that. I was astonished at how quickly he got there and then he ran out of content basically. Right. So he kinda like moved on. So I think like some of the people will try and then, you know, they won't have enough to do. Thibaud: 17:51 But also I think a lot of people are very, very, very reluctant to leave their muds. I think that like it's just a lot of them requires such an upfront investment to kind of like get good. And then once you are good, once you're really good, you have such an advantage over other people that it's kind of like, it's hard to give up all of that. And so I find that that, yeah, even if, even if I wanted to do that, I think, I don't think I'd be able to honestly, uh, I think the only answer, like I was saying, let's try to increase the size of the whole pie so that everyone gets more users, which I think is totally doable. And I think a lot of what you two are doing helps a lot with that. Obviously. Kudos. Danny: 18:26 So enough about the people, enough about us, enough about you. What exactly is written realms? When you first jump into it, it's, it kind of feels like an interactive fiction, but that's, I guess just the really the tutorial and it drops you into that town. And there's the multi obviously multiplayer because the first thing I did was type who and enter and there was someone else playing. But you can also make your own content or your own games or what's really the deal going on there. Thibaud: 18:57 I, I'd say that written realms is a few different things right now. The first thing that it is, because that's the first thing that it was kind of a logically is it's a platform for building muds and it's a platform for how you build it is also where the people go to play it. So you go to writtenrealms.com, You build your world and then the people who want to play and go to the exact same web page and then you just launch the world and they have no installation or anything. Pretty early on though, I realized right away that I was going to have a problem of how am I going to get people to play in a platform where there are no worlds. So it became very quickly obvious that the thing that I have to do was to create the first one because otherwise people were just not going to have a reason to go there. Thibaud: 19:40 So the second thing that it is, it's an actual game that when you go on the front page and you click play, you actually taken to a single player world where you're the only person in that world. And the reason for that is when I created realms, my first priority was new user experience and I wanted that to be the priority over everything else, including depth and game mechanics. And in all of that, I really wanted to make sure that if a new user came into it, especially if it was a user who did not know what a mud was, who had never played one before and who honestly didn't know what a text based game was. I wanted those people to be able to get into it effortlessly. And the issue that a lot of muds have when they kind of create like onboarding workflows is that, well, how do you make sure that everything exists in the world laid out as you want that initial user to be experiencing it. Thibaud: 20:32 If you have a multiplayer world and you have three new users joining and you're, you know, you want all of them to kill a dragon and the first guy comes in kills the dragon, the second guy comes in the dragon's dead. Well that sucks. The second guy now doesn't have that experience. He has to wait, wait for repop or do something else. So I've realized, uh, thinking through that workflow that I needed to have a mode where, because I always wanted realms to be multiplayer, that was the goal. But I realized that to get there I had to first create a mode where the worlds only existed in single player. And after I did that I had to make sure that I created a feature to transfer characters from one world to another including single-player to multiplayer. Because typically in introduction sequences you're trying to teach someone something you know about the game early on. Thibaud: 21:18 And so necessarily they're gonna surmount some kind of obstacle and hopefully they're going to achieve something for it and have something to show for it. And I wanted to make sure that whatever that they acquired was still there in the multiplayer world. Uh, and there's also a user workflow piece to it where I wanted to make sure that when that user comes to the front page, they hit the play button and then they're in period the end, no asking for emails, no asking for usernames, no asking for anything. And again, the only way you can do that is by creating an anonymous player where you don't have any anchor data about them yet. And so all of that, just making sure that I could do that was a whole lot of work behind the scenes and making sure that the platform could support these worlds. Thibaud: 21:58 So as a result, anybody can indeed create their own worlds within it either single player or multiplayer, which is currently a Patreon tier. But it is possible. And if, if you're, especially if you're a single player, you can control the pacing a lot better, right? You can really make sure that each room, the user goes through it one at a time. You can control everything that's happening to them where they go. And it really helps for kind of like creating those, um, those initial narrative moments. And, uh, and kind of, you know, get them ramped up quickly. Now the multiplayer world that we're creating, you know, is a specific kind of world where we're trying to make it as easily identifiable to new people as possible. So it's very generic fantasy. Like Lord the Rings like, or you have humans in orcs and they're kind of fighting. Thibaud: 22:46 And then there's this third faction that's called lifeless that's kind of like undead. They can corrupt either sides. So there's a bit of a triangle struggle going on. And you know, the way that we developed the platform really is as we find things that we want to add to our main game world right now, we prioritize putting those in. But you know, the platform can, can support any kind of world than if someone were coming in tomorrow and creating, you know, a science fiction world. You know, if they started to have traction. And you know, if, if it was clear to us that like there were users who wanted to play their world, we would absolutely prioritize those kind of features even probably over our own because we do want the platform to grow is the number one priority. But growing our game is kind of like the only way that I sort of see to get there. Thibaud: 23:28 Um, the third thing that realms is right now is a bit of a question mark. It's kind of like up in the air where it goes from. Now we're in this interesting place where I've been working on this project code base for six years now, which to me, the software world, that's the dinosaur. That's really long time, right? Because most of our projects are pretty short lived. So it feels like I've been working for a long time. But also it feels like it's just getting started in a lot of ways. And where it goes from here is sort of very much up to where we find traction and where we find product market fit and where we sort of feel those pulls from users or creators wherever it comes from. And then we'll just, we'll just follow that wherever we find it basically. Eric: 24:07 So let's take a brief moment a out from the podcast for a word from one of our, uh, many, many sponsors. Have you come to the end of an episode and faced one of those two long weeks wanting more? You should give one or both of our newsletters a read each and every month we cram as much information and insight into the world of muds and text gaming as we can find cruise on by to the grapevine gazette to read up on all the latest developments with the grapevine network and to keep up to date on upcoming events and muds at, at gazette.grapevine.haus. That's h a u s if a bit of pontification is more your fair head to digest.mudcoders.com you can always tell people you read it for the articles. Eric: 24:47 So how did you come to the decision to keep the like written realms as a web client and not involve telnet at all? Thibaud: 24:57 It all really started with the priority that I was talking about earlier of new user experience and how I was going to make sure that people are coming into the platform, are able to sort of learn how to play a text based game never having played it before and really the only way to do that is to guide them along the way and to give them little UI elements to sort of help them figure out how to interact with this text. So on written realms. When you see an item in your room and you'll see a dagger is on the ground, if you hover over it with your mouse, there's going to be a little pop up. It's going to show you the status of the item, the name on the item, and then depending on what room you're in and what item it is, what mob it is, et cetera. Thibaud: 25:40 There will be some actions. Basically you get or wield or you know, drop or whatever you might want to do with it. And when you click the action it shows you in the UI. It kind of echoes back what the text command equivelant would've been. So that way we're trying to sort of gently show to the user, hey, you're doing this that way. You can also do it by entering this text command because we always try to respect the fact that you know, we are a text based game and you know, we rely on the text medium. But the only way that you can do that is if you're passing data along with text. If you're only passing text, then you know you have to kind of like look up the text against database and then hope that the string on the text is unique so that you only get a single return and it gets very clunky. So the way that realms works is that whenever you do anything at all, you get back kind of like a bunch of data and there's always going to be a text attribute in the data payload. Everything can always be reduced to text, but then there's also a bunch of data about the data. There's a bunch of metadata in there that you know. Thibaud: 26:43 So let's say you do a look, you're going to get back a string with the output of the look, but you're also going to get back a data payload with the actor who requested the look what all of his information currently looks like, what the room is like, and then within the room, all the items in it, all the characters in it, all of the data comes to you in that same response. The idea is that that the front ends can interpret the data however they want. So you, you know, someone could integrate with this platform even though it's a text platform for them and not use it that way if they wanted to. One of the things that I really wanted to do very early on is to make the whole platform extremely pluggable. So on the back end, for example, the way that you create an edit your world on the world builder, you know you use the javascript front end, but that javascript, Front End Calls API end points behind the scenes and they're just rest operations. Thibaud: 27:31 So to create a wall to just doing a post on the world collection, you know, to edit it, you're just doing a put request on the world resource with change the name, et Cetera, et Cetera, et cetera. So not using telnet was a very difficult decision because it meant kind of alienating a whole lot of people who already knew what a mud was, who already had the clients installed to use them, who already had a buy in into the immersion and all of that. But certainly, especially when it started, the telnet medium just couldn't really have facilitated transferring that augmented data that I wanted the site to have. And even beyond that, I wanted it to be web based for the zero installation thing. That was very important to me. And then to have a way for people to play on their phones. I have been working in web development for a couple of decades now, but especially in the mobile space for a good decade and kind of like mobile first very quickly became my ethos after, you know, after working with some startups that that did a lot of mobile work and in order for, in order for the game to be playable on phone it kinda had to leverage what technologies that existed at the time. Thibaud: 28:43 That being said, there's nothing about realms that says that it has to be web only. And I'll give you an example early on, Patrick, who, someone who works with me a lot in written realms and has for for many years now he's an ios developer and he wrote an iPhone app that basically just consumed the web socket layer and he didn't touch the rest layer at all. But just through websockets, he was able to build a little iPhone app that played written realms. You could move from room to room and pick up items and attack monsters and do all of that. So really I did alienate telnet but I try to make up for it by making it as pluggable as possible to anybody who would possibly want to integrate with it. And if you know anyone ever wants to create a websocket client, you know, that's desktop based that plays the game, they could totally do so. Thibaud: 29:27 Um, so it's not meant to be exclusionary, but just sort of leveraging technology and try to reach more people. Danny: 29:32 Well, uh, you know, as I mentioned a I had, I had played around a bit on written realms, a little bit of discovery for myself and quite frankly it's one of the best looking clients or mud clients out there in my opinion. But not only for desktop, it also works on mobile. What do you feel, what do you feel we need to do for mobile specifically to get it working? Because a lot of us keep thinking about mobile because why wouldn't you? There's seven practically 7 billion humans on a mobile phone at any given point. The thing we always run into, of course in discussion is you still have to type for social interaction. Is there any way you could see to mitigate that? I mean you certainly hit the gameplay mark in my opinion with combat and other things, but always come back to how do I type say and three or four sentences without fat fingering half the words. Thibaud: 30:30 It's a really hard problem because it's, it's, there's an inherent tension going on there where muds are inherently about entering text commands and mobile phones and inherently suck at typing and I don't think that's ever going to go away. I mean I think there was a little bit of hope with all the voice recognition technology that has been developing. There's actually a lot of interest are on Alexa Games these days and it was actually talking to someone yesterday at a barbecue who I showed them realms and he was like, Oh wow, I want to build like an Alexa game and this could be a useful backend, et cetera. I think maybe trying to leverage like text to speech would be one way to help with the specific kind of capturing of text that you're talking about. And text to speech is very specific about learning the habits of the user. Thibaud: 31:14 So I have the, there's one imm sometimes I'll on wheel of time who uses their mobile a lot and you can tell that like their their text to speech sort of like spell check because it's kind of like picked up on their habits and on some of the words of the type of very much mud words. And I think that like we could probably get to there. I think using truly only the fingers as the interface for that is very challenging. But then you have to rely on tapping and modal interactions essentially. You have to, I think if you want to say something to someone, probably the best way to do that is to have that be an action from tapping their line of description in the room. Right. So I'd see austerity is here, I would tap on you and then maybe they would be like a social action that would then open a bunch of socials or something like that. But it would have to be assisted in a way. So whatever framework this is happening into would probably need access to like more contextual data about the operation, about the world that they're in to be able to assist the users with it. It's a very, very hard problem to solve. Yeah. I think trying, trying to pass more data so that, so that the clients kind of know how to help you is one way to do it. Danny: 32:24 So what would you say is one of your favorite features or mechanics currently in written realms? Thibaud: 32:34 We spent a lot of time on our combat system and um, all of our combat system is a hundred percent original was designed by Patrick who works with me on written realms. And we've really tried to borrow from a lot of games that have been successful since muds were kind of big sort of things, you know, like World of Warcraft for example. And we've really tried to build a combat system that was difficult to exploit with scripting that was really based around long cast times and cool downs and combos and kind of like creating certain specs that highlighted certain minmax type setups. And um, and yeah, we really tried hard to create something that was entirely new, but that did lean in a lot of things that, um, that we felt that other games just did really, really well and things that I think a lot of players have come to expect since the days of early muds. And I think that's one of the more, more compelling aspects of our platform right now. Eric: 33:34 So what's over the horizon for written realms? What are you most excited to be working on in the future? Thibaud: 33:39 Currently, I would say that I'm very excited about redoing a lot of the game UI basically. So I started realms in 2013 and one of the issues with front end development currently is that the pace of innovation is just brutal. And so when I started in 2013 I wrote all of the front end in backbone and a framework on top of it called marrionette. I mean, honestly I don't want to hate on backbone. I think it's a fine framework and like it does a lot of things well, especially if you've spent a lot of time building patterns for doing things that you know you kind of end up creating a language for your site that that works for a while and that is very efficient. Thibaud: 34:19 But you know, I've been doing some vuejs lately and I've already been all of the world editor to that to make it responsive and to add a lot of stuff like quest management and path management and stuff like that. And there was a lot of things that we'd like to do in the front end to make it better. For example, one feature that we often hear is in our quest system, you have to inquire from a mob for him to tell you what it is that you have to do and then the mob tells you what you have to do. But then there's not really a way for you to go in there to go back and see what did they tell you previously. Some kind of log basically. And you know, we'd like to add a lot of features like that. Patrick who is the guy who does all of the game mechanics, design, you know, from spells and all of that has a lot of ideas for uh, for kind of like our feats system, uh, which is kind of like a talent customization I guess. Thibaud: 35:09 And he has some ideas, but for, for some of those, the skill selection gets pretty tedious to do just via commands and you kinda like a, an interface to help you with that. So we're really excited to have a more powerful javascript front end to just really help us do a lot of stuff like that. There's that. And then there's also a, currently the, the front end really only uses websockets currently. So everything you see on the game, you saw it through websocket messages and the way that realms is architected, there's very much to halves of it. There was one half, which is the data definition layer, which is Django with the postgres database and we serve API endpoints. And so that has all of your worlds and rooms and templates and quests and rules and basically all the things that dictate how your world should look. Thibaud: 35:56 And then there's another layer which is the game engine layer where all of the, all of the playing actually happens and that happens through websockets and the redis database and using zeroMQ dispatch the messages and they would be a lot to be gained from having the front end also able to um, to interact. Yeah. With the data definition layer directly. Um, some good examples of that are like if you're buying stuff from a merchant or if you're completing a quest or if you're doing anything that writes your character's state in a significant way, if you're doing it through websockets, you know, it's asynchronous, what if something was wrong in between the message getting from you to there or coming back. It's not always easy to handle errors in asynchronous world. It's a lot easier in a synchronous rest world. I think the frontend is going to get a lot better once we can have those capabilities. Thibaud: 36:48 But also I'm, I'm just excited about building more intricate spells and more complicated encounters in dungeons. So you know, mobs that despawn at a certain health and spawn adds and then come back and then do all kinds of crazy things with reaction systems and things like that. We are going to be adding more classes. We have three right now. We have plans for a fourth. We are also thinking a lot about how to kind of create social incentives for new players to be mentored by players who are already on the platform. Um, so we're looking at implementing something similar to Asheron's Call allegiance system where basically you can um, have people who are like pledged their allegiance to you if you make it worth their while and then you get a benefit coming back to you from doing that. Encouraging, usually going to like have a lot of people to help that you're helping out essentially. Thibaud: 37:40 And then developing more things around some of the patreon on tiers that we have. So we just introduced the player housing and there's a lot of stuff we want to do with that. Like one of the things that we want to do with player housing is this ability for when you purchase a house to be able to, when you log out, your player character becomes a mob and your inventory becomes for sale essentially, and you're going to have like interactions so that you are still relevant even when you're offline as well as ways for the game to advance and to sort of mutate even just at the game definition layer. So just at the API layer at the API layer, which help us kind of like change the world over time based on certain rules and things like that. And so there's no shortage of things that we're extremely excited about and that we just have to find the time to do Danny: 38:25 To close the episode out why don't you offer our listeners any advice for bringing their muds, perhaps not into future, so to speak, but at least into a more accessible place, uh, for players. Thibaud: 38:40 I think you really have to think a lot about what it's like for someone who has never, never experienced a mud who are never played a kind of text based game to come into your, your world. And how do they get started? A lot of muds, were born in a time period where there were literally the only game in town and they had a ton of demand and they made sure that they were the best possible mud by having the most depth, which is a fine thing to aim for, right? Because your current users are gonna love it. And at the end of the day we all want to create really deep games. It's, you know, it's kind of why we're doing this, but a lot of games are also considerably more enjoyable when they have a lot of people playing them and getting there is not an engineering problem. Thibaud: 39:27 It's more of like a process. And then trying to think about the users and even trying to have empathy for the users and trying to see, okay, where are they going to get stuck and how can I help them? Sort of like figuring out what is the essence of this game. I think some of the barriers are technological, but I think most of it is just really spending the time to try to understand where users coming from and try to ease them into a system. And I think that can be done even with relatively hardcore games that have, you know, like brutal penalties for, for dying or anything like that. I think the, the initial experience is always worth spending a lot of time thinking about. Eric: 39:59 So thank you for coming on Thibaud.