Danny: 00:00 Welcome MUDders, MOOers, MUSHers, Talkers, one and all to the titans of text podcast. We are your hosts, Danny "Austerity" Nissenfeld. Eric: 00:19 And Eric Oestrich Danny: 00:21 And we are here with Vadi of Mudlet. We're going to get straight into Mudlet's history, its development and its future. Welcome to you Vadi. Vadi: 00:31 Hey guys, thanks. It's an honor to be here. Danny: 00:34 So how did you get started with text games? With muds? Vadi: 00:40 That's a very, very long while ago I think in middle school I had a friend who was playing Achaea yeah, in the browser at the library. And I sort of followed them and then made a character and he could quick killed pretty quickly in the newbie zone. I think I lost interest after that cause I wasn't all that old. But then a couple of months later I decided to pick the game up again and I sort of got stuck into it. The friend who introduced me quit the whole genre pretty early on, but I managed to last and I played the same game for like a decade or so. So yeah, that was my introduction to MUDs, browsers. And libraries. A lot of that. So how did mud lake get started? Why would you even want to make a mud client at some point on, I switched to playing on my own computer. Vadi: 01:30 This was back in windows and I've used zMud for a short while, I had somebody purchase me a license, but then pretty early on in like 2007 I switched over to Ubuntu to Linux switched over fully. And by fully, I mean I was trying to install Ubuntu and I managed to wipe windows by accident, so I only had Ubuntu on the laptops. I was like, well fuck, I'm stuck. So I decided to figure out how it worked and it worked pretty well. I was happy with it, but there wasn't a zMud. My four year went of course. So I was scouring fourms and I used, I was using other clients, I seem to try gMud. I was using Kmuddy for a bit and it was on Kmuddy forums that I met, never coder named Tyco from Germany who played Avalon.De the German variant. Vadi: 02:18 And together we conspired that, hey, we should make a good mud client for Linux that you know, that could like rival zMud. And then also pretty early on we decided that hey, we should have a mud client, a little have a 3D mapper cause that'll be awesome. So built Mudlet, we could, the first Beta I would pre early on people were happy with it. It was in around 2009 when people were like, Hey I want to run this on windows I want to run this on MacOS. So we're like okay sure let's do this. And that's how the cross platform aspect of mudlet came to be from pretty early on. And then it all just sort of grew from there. Danny: 02:54 Was there any pushback within the community from players or mud owners or zMud zealots when you guys first introduced mudlet? Vadi: 03:02 No. I'm pretty lucky to have had a good reception as, and there wasn't any hostility from anybody at all. And so of course, since I played an IRE game, I started popularizing mudlet and IREs because I built combat systems that were pretty popular. And so at some point I had this multi-client combat system which worked as a proxy, my client would connect to this proxy and the proxy would connect to the game so that essentially multi-client you could use any client with it but there were a number of issues with that architecture. And so my next iteration when mudlet was good enough is I simply made it, made my next system be available in mudlet. I was like, Hey, do you want to get my system come to mudlet and it sort of took off from there. In terms of Achaea and other IREs and then with enough people playing mudlet other people have started noticing its good qualities and it all came to be. Vadi: 03:56 And of course we had mud owners really early on who were also, you know, curious for better alternative to mud clients. And I'm like, hey can you add this and this to mudlet? And this is in fact how the early games ended up in mudlet's games list. This is where like, hey, thanks for helping us, let's stick your game into the game list. So no, there wasn't any negativity ever really. It was all pretty good. Which is good because this is a hobby. And if your hobby is too toxic, then you would give up doing it. Eric: 04:24 So speaking of that list, what was the first mud that made it to the pre-installed list? Vadi: 04:30 Oh, it's a difficult question, but let me, let me scroll through some things. I'm not sure. Maybe it was realms of despair or ZombieMUD or God Wars 2. If we've added things to this list in chronological order. Yeah, I really don't remember to be honest. Danny: 04:48 How does one get their mud into the list? There's not a whole lot of muds in it yet. So how do you get on there? Vadi: 04:55 We have a Wikipedia and there's a link available for it. And essentially the idea of the requirements for this list are give the mudlet player and nice mudlet experience. And you're good to go. And what does the nice mudlet experience mean? Well, it's one, first of all enable go ahead or end of record in your mud. So basically notify the client when you're done sending, cause mudlet, will wait until it receives a go ahead. And then it'll process everything in bulk, which is nice for performance. And a lot of older mud drivers don't do this by default, so it makes things a little bit difficult. Vadi: 05:33 So if you have that for mudlet then great. And then point 2 is actually whether the mudlet mapper works for the game and we already have a generic mapper script which you can just take and if it doesn't work out of the box, you can give it a few patterns for it to match your, you know, exits' line. And it's pretty much good to go from there. And you don't have to give like a whole map of your game and that's not necessarily an exploration that is really cool to do. But just make sure that know people don't have to fiddle with code before we can give them up or help and going the mapper can figure out, navigate your game and then they can go off and explore and map on their own, for example. But do provide like a map of the newbie area so we don't have to start figuring out how to map your game right when they're newbies, which I think is reasonable. Vadi: 06:14 We haven't had pushback on this so far at all. And then the last one is provide some sort of interface because it's pretty clear the direction for most muds these days is you've got to have some sort of an interface. Every web client based mode for example, it gives it basic interface with gauges and a map and the, for example, a chat capture and et cetera. And this is what we recommend as well. And then for the last bit is really set up package autoinstall. So when mudlet connects to your game there's automatically delivered to the player and their map or works and have like a little interface. And that's about it really. So the requirements aren't super stringent and we also help people a lot if anybody needs help in getting them done to their game. Eric: 06:56 So what are mudlet packages and how can they mud take advantage of them? Vadi: 07:03 A mudlet package is basically an export of aliases, trigger, scripts, key bindings, but it can also include pictures in it. You can include sounds in it, you can include the fonts in it and all of that. It gets zipped up and export it as a single file. And if mudlet wants to take advantage of it, like I mentioned before, you can have a mudlet package and get pre-installed. So when mudlet connects to your game, you can tell them hey, I have a muddler package available with the best URL and unless the user has opted out from autoinstalling packages, you will get auto installed. As far as the user is concerned, they don't have to do anything. We'll see it mudlet will download and set it up and then Bam, they have a nice interface and all of that. Danny: 07:48 Let's talk about some of the other features of mudlet. I know everyone's talking about like pretty much everyone has their own discord server at this point. Except I think like me, I think I'm the only one in the world without a discord at this point. How does mudlet interact with discord? I know that's a relatively recent thing that's happened. Vadi: 08:07 Yeah. One of his passions and one of the reasons why I'm continuing to work on mudlet for 10 years now, we've had our anniversary a couple of months ago. It's because I want to keep the genre going and I want to grow the genre. And discord is an obvious contender on the gaming scene as hugely popular these days. So I thought, well, I was looking at those lists of players that a server has and you can clearly see what games people are playing. And I'm like muds are invisible in that list. Vadi: 08:37 Nobody knows if you're playing a mud and our hand, if we made it visible, it'd be a bit of, you know, like of promotion for our servers. People would be like, Hey, what is that game that you're playing? So I've taken the discord rich presence API, which basically controls that side list for a player. They can, it can show what game they're playing. What, what is their in-game status? They can have a time or you can have like party styles and et cetera and they've integrated that onto mudlet. And then I've done two things. First of all, added is JMCP spec for that. So a game can control that and mudlet it without installing any mudlet packages whatsoever. And because it's GMCP, I'm hoping other mud clients will also adopt it. Just read of the data and use the the rich presence API to configure them. And I've also added a Lua API so players themselves can also set up custom things cause I believe in power of customization and player control over their mud client in that way. So that is the discord part of it. Eric: 09:39 So mapping is a pretty big feature of mud lit. Do you want to go into any more detail about that? Vadi: 09:45 Yeah, sure. So like I mentioned before, we have cool 2d mapper and a 3d mapper. And in fact in the 2d map it's pretty nice; so you can actually set custom labels up and you can actually set custom pictures in the map too. So if you want to give like your, your area a cool background you can totally do that. Cause I knew if anybody has played more than just a few muds from the same company of sorts, they realized that muds all look very differently. Vadi: 10:11 The way rooms that are presented, the way exits are done. It was all very very different and this is what makes mapping or automatically mapping was pretty challenging thing to them. And we've put in a fair bit of work into that and I'm like can we make you know a one size fits all solution? So you just press a button and then you can start mapping right away. And I've tried really hard and it was like no that's not possible. So what we've come to, you know, acceptable tradeoff middle, what do we have now and modalities that if it doesn't work out of a box there's a few commands, you can run two commands or just trigger really pinion to set up a, we'll detect the room name in the excess and that's all you don't need anything else. And if you can set up a trigger for our test map then you're good to go with mapping and I'll mention it's actually one of the biggest strengths of mudlet. In the latest batch, I've actually added the discord button straight to mudlet's interface. We actually replaced the older c button, which is still there because there are people who use it actually, it's in the background. Discord has a foreground now and when you press discord, you'll get opened. You'll get taken to mudlet's discord channel, which is actually always super helpful. There's a good chance question you'll ask or you can answer it and we have a bunch of people who are sitting around and helping people get set up with a mudlet mapper there too. They're like, hey, okay, and get my mapper working on some side game. Somebody will log into the game, they'll give you a trigger pattern to use and then off you go. So that's the mapping situation right now. Handsome Ad Guy: 11:40 We're going to take a short break so I can relay a few words on behalf of one of our many sponsors for the podcast. The Mud Coders Guild. Are you or would you like to run your own Mud? Are you looking for better advice than "why bother". Point your web browser at slack.mudcoders.com. The Mud Coder's Guild: when you ask why we will bother. Danny: 12:07 So speaking of the community surrounding mudlet. Mudlet it gets, it can get pretty complicated. I mean if you're not a programmer, there's a lot of scripting involved. There's a lot of programming type things. Like how robust is the community behind actually generating scripts and getting them out to the public; the support behind that? Vadi: 12:30 Yeah, I think, I honestly think it's one of the biggest strengths of mudlet as a community, but we've been able to build to begin with. We're trying to make things as easy as possible. So for example, I know the power of copy pasting. It's amazing. Programmers love to rave about stack overflow, which is the same idea for our Wiki. We add, we add a couple of examples that you can copy/paste. Okay this is how it works. Then you can tweak it. But for the things that still aren't clear, you can hop onto our discord and we have a ton of people literally helping everybody like 24/7 cause everybody's located in all different parts of the world. Figure things out and code it for them and et cetera. I would say the biggest barrier people have is actually not going to the discord. If somebody too shy to come and ask then you'll get stuck. But if you come and ask as a very good chance you can get your question answered or you know, problem solved or script. I'm quite happy about that. Eric: 13:30 So what are some other strengths of mudlet that you would like to talk about? Vadi: 13:34 I think, well as I mentioned at the start, at the fact that it runs the same on windows, mac and Linux is a pretty big deal. And not just runs of same, but all of the scripts that are made for it run the same too. So windows is pretty dominant market share, but scripts made on windows. They'll still work on macro where sort of we all still work in Linux, so use it on those systems like me and linux for example, you know, they sort of don't get quote unquote screwed over because a guy coded on a windows and he only thought about windows and I'm using a mac and it doesn't work for me. That's a really nice way to help encourage adoption of our platforms. If somebody can take their muddle it and they'll still work the same one Linux, then it will still work. Vadi: 14:15 The same with MacOS. It is a small thing, but it's a thing nonetheless. And for some people that can actually be a blocker in switching. So I'm happy to be helping in that regard. I think the other thing is we're always consistently ensuring that mudlet runs fast. You know, we've had bloated and slow mud clients before and I think everybody's synonymous feedback is like, no, I don't want this. This isn't nice, so we've made mudlet be performant right from the start and I think that's one of the biggest strengths for the clients too is just how fast it is and how much, how much can you do with it and it'll still be fast. Another thing I think is cool is how much customization you can do in terms of interface as well. I have seen like super impressive interfaces, Diablo 3 skins for example or completely custom space things and it's pretty easy to get going with your own interface. Vadi: 15:12 We have templates on the forums that people find they just install a template and we're like, wow, I already have a bunch of boxes that I can fill in or stuff. And then they started filling in stuff. Then of course from the beginning it doesn't look very different from any other template interface, but some people are super, super creative and some really beautiful things come out of that and the better thing is pretty cool and not just the area inside mudlet is customizable the whole application is customizable as well. So, you know, like scroll bars and the top menu and the settings menu can just skinned as well, which I think is pretty important for game essentially. Cause that's what mudlet is I think is that you can really create an immersive interface, gets you in the field. I would say those are the biggest strengths from my point of view. Danny: 15:58 So you've mentioned there's people on the discord pretty much 24/7 because of how international mudlet is and how international muds are. I mean we've always had a pretty big community across the globe. I mean not big in total size, maybe compared to some games these days, but it's always been a very global community. How many languages is mudlet currently localized to, and are there any in the works that might be coming out soon? Vadi: 16:25 Yeah, so we've just had our mudlet 4 release after two and a half, I think years of development and the major focus of this development cycle was internationalization. I think I'm pronouncing that word. It's pretty hard to say. But anyhow, mudlet now is support out of a box in Russian, German and Italian and the Chinese language is coming up close. I have to mention that as it like as a software developer, the fact that we were thinking of cross-platform right from the start was a really big boon because it made cross-platform issues on you know, almost disappear. Like I would say like 5% of the problems that we deal with are cross platform in nature. They're really a non factor cause we thought about it from a start but internationalization wasn't something that we fought it from the start and I think we should have because taking software that's aimed at working with plain ASCII for English and making it work with custom characters you know, non Latin characters of like let's say Italian or Spanish and going even further making it work with Chinese display is and things like that. That's a fair bit of work but we've got it done. Mudlet 4 is out and it supports all of that out of the box. Danny: 17:52 Who helps with the translations? Is this something that's a community effort? People just volunteering their time and translating menus and help tips and all that other stuff that has to be localized. Vadi: 18:04 Yup. It's definitely community driven for which I'm very thankful for and it's surprisingly, as you can imagine, if you think of from an administrative point of view, it's like, hmm, how can I trust this translation? Or how can I trust that somebody that sneaking something dodgy in their translation. But thankfully that all has been working out pretty well so far and what we're using for this is an online platform, which has free accounts for free and open source projects. This platform is called Crowden and it's actually developed in the Ukraine and I think it's the best of the class. It's really amazing. You can use it on your computer and on your phone pretty easily when you're commuting to work, for example, you're bored on the subway, you can sit in and start translating and what's really cool about it is it also helps with auto translation a fair bit. Vadi: 18:49 So similar text has it been translated elsewhere? Either in the mudlet project or in the global crowdon platform. It'll give you suggestions and you're like, oh, this is what I want to use, click on it. Or it also integrates with online translation tools. So while we have, we have set it up to translate using IBM Watson, I didn't even know it had to translate API before this, but it does and it's pretty good with Amazon and Microsoft and Yandex, which is a Russian service. And so for relatively simple strings, like for example, we have language names for every language cause I think when needed them for dictionaries, right? For spelling dictionaries, so those all have to be translated and it's a pretty boring list of, I don't know, to learn 50 or so different languages. When you open up one of those languages, you get trans, you get automatic suggestions and you're like, oh this is this suggestion looks good, click a button and then translate, which makes it super easy to translate. So I can recommend setting something like that up. And to complete a circle, we have automated CI builds, which are hooked up to this translation service. So whenever somebody translates a few more words an automatic build kicks off and within, you know like 15 minutes they have a version of mudlet with a newly added translation where they can just run, see how it looks like inside of client for real. And off they go. Eric: 20:11 So the biggest question and mudding at the moment has to be mobile clients. Probably at least once a month if not way more often something similar to mobile clients pops up on the reddit. Are you all working towards something like that for mudlet? Vadi: 20:26 The next goal for 5.0 after the 4.0 of internalization for 5.0 of a goal as a first timer experience. I definitely see the appeal of mobile mudding and thinking about it from a technical point of view there is no blockers in it might let's say technical from being run on a mobile ios like Ios or android cause muddler uses QT for interface and QT widgets is supported by android. And then I don't Lua or the PC Erie engine or anything else will have an issues, but I think that you can imagine how nasty if we actually go to going on nasty a desktop, like literally a desktop application would look like on your phone. It'd be a little bit horrible. So QT has a mobile first sort of sort of interface that's called QML that would work very well on android. Vadi: 21:25 I've tried out developing that. It was very nice to develop with, but that would mean rewriting, you know, mudlet's interface in QML or making an alternative mudlet front end with QML. So that would be a fair bit of work. So it's not on the plants for me to work on per se, but we have the same thing and our mudlet discord every once in awhile it's like, Hey, I want to run this on my android phone. I'm like, yeah, that's awesome. There are some people who are interested in it or giving it a go. So I can't give any promises right now, but there was no blockers to making it happen either. Danny: 21:56 So mudlet of course can be downloaded for free. And all of these packages are for free for all of these buds. How is mudlet's development supported? Because you guys have a pretty good schedule of, of releasing updates. It's going pretty well right now. How, how has that monetarily supported? Vadi: 22:16 I can definitely say that it's definitely not supported. Not at all. My thoroughly, we've recently launched a Patreon and I'll talk about it in a moment, but for a good 10 years of mudlet's life wouldn't really take in donations or make big bucks. We've always had a donation button from the started I think, but barely anybody finds it and even less people donate to it. So things like, you know, paying for, and also for the first 10 years the costs of developing free software were very low, the only thing we had to pay for it was for, we don't name domain name and hosting, which I paid for and one of our main team members paid for out of our own pocket. And like it was just a hobby cost and everything that all of the development time that we spent on mudlet, it was just, well, this is a hobby. Vadi: 23:03 We'll love what we're doing and we're doing it for free. But then the costs have started rising recently. For example, if you don't want to get a horrible, this software is insecure dialogue in macos or windows, you've got to pay for a code signing certificate, so just to get, and the cost of that is nontrivial. It's for apple it's 100 bucks a year for windows a code signing certificate for a couple of years is about 200 bucks. And you're sitting thing. It's like, you know, I dedicate all this time their hobby, but I'm not sure I can spend this much money making a free product for everybody else to use. So this is where we're at into a bit of trouble and we're like, hey, we would love donations in this area we don't need money for ourselves, but we would love some money to help us continue doing this so we can get an awesome free client. Vadi: 23:50 And that is why we launched Patreon last month is to get money for development for the costs we have to cover and none of the money that we're receiving we're going to be taking ourselves or we are going to be injecting it all into the mudlet project. So paying for co-signing certificates, paying for we haven't paid for anything extra yet, but I think some more CI jobs would be handy so you don't have to sit around for, you know, a couple of hours if you have a couple of prs running, waiting for the bill to happen so you can finally approve a PR. So all the money that we're raising through our new Patreon is re-injected. I can tell a client we've also made, well, it was all figured out some value to our Patreon thanks to demonic who is our core, one of the core team members. Vadi: 24:42 He's really handy in his workshops and he's been printing 3d arches of mudlet. You can see some of those in our Patreon page and he's also Carlene custom wooden pens for mudlet too. And I actually signed up for my own Patreon just for the pen alone. I'm like, shit, I want this. And Yeah, as as went surprisingly well actually if we'd been working on this for a decade and we've really no expected retribution. And if I check right now we have 18 patrons in there, which is like wow, nice. You know, somebody appreciates what we do has really good to see actually. Eric: 25:20 So what's in the works for a mudlet post 4.0? Vadi: 25:22 Yeah. So the next version of muddle, that 5.0 being, I would like to focus on the first-timer experience as far as I call the newbie experience, but I think first-timer sounds a little bit better and more to a point, the basic idea is frame. Quite a lot of people who get into months, they get into via friends, like I got into it via friends. I don't think that many people are able to, well no, I don't have the stats for it, so I'm just guessing here. But I think that if you give muddle it to somebody who has no idea what muds are. I think they'll be pretty lost straightaway. And we'll definitely have to, you know, work to figure out what muds are and if you want to convince somebody or if you want to sell something to somebody, you can't make them work to figure out what it is. I have to be blown away enough to be amazed they had to be impressed. And so for that I would like to improve the first time or experience of muds and mudlet. I want to make sure that if somebody, let's say in the future downloads mudlet from Steam, which I would like to get Mudlet in they would be impressed, you know within the first minute and I'm like wow, it's just so interesting. Vadi: 26:31 You can make a character you can make a wizard they can run around. They can understand how this works. So the first time experience is pretty important and then also improve one of the strengths that mudlet has, you know, tons of examples and certainly on the coding cause I think making triggers and aliases and et cetera like a fair bit of our players like do this and I would like to get something that's right in the client available for them as a help. Cause I know you've got to go out to our manual which is an external wiki website and then you have to go back and forth within the client but if you had an example of here's how I make it target alias, here's how I make a target highlighting trigger right within mudlet. It would also help things a fair bit. Vadi: 27:13 So that's one of the big directions we're working on. As always mudlet as an open source project. If you want to send us a PR for some something random and it's a good idea and we'll happily take it in some of our random non first time of things that we're working on this on personally working on and making it quote unquote portable version of mudlet it as in you can put on USB stick and he'll carry all of your settings with you because right now it stores all the settings and the predefined location. If you put mudlet on your USB drive, well none of your profiles will come with you, so that'll be a useful thing. And also for online syncing, quite common people have more than one computer these days and they want to be able to have the same profile on many computers. For that, you've got to use a syncing service like Dropbox or Google drive until that also you've got to be able to store your profiles in that folder on your machine, which gets synced up. Vadi: 28:05 So being able to choose where your profiles go in my lit is now big thing I'm working on as you can imagine, but also involves a fair bit of surgery to remove the assumption that hey profiles, I don't have this one easy predefined place and they'll always be there. And now we're even more shorter term things that I'm working on are expanding our web functions. But now we'll have a download file function, which is essentially an http get request and it worked pretty handily for us, but also expanding it to http post put and delete so people can interact more with online services and you know, hook up, people have been mentioning Spotify, I don't know if Spotify has a Web API, but if it has them one, maybe you can hook up Spotify or or whatever else can control that from mudlet, which should be pretty cool too. Danny: 28:51 So I'd like to thank you Vadi for coming on the Titans of Text to talk to us and to illuminate all of our listeners to some of the more discrete parts of muddle it and the inner workings of its development. Vadi: 29:03 Awesome. Thank you guys for giving an opportunity, being a real pleasure to be here. And I have to say, I don't listen to podcasts that much. My partner does, but Titans of Text is the first podcast that I started listening from episode one and until the latest one. So I'm really excited to be here today.