Welcome to DejaVue, the Vue podcast you didn't know you needed until now! Join Michael Thiessen and Alexander Lichter on a thrilling journey through the world of Vue and Nuxt.
Get ready for weekly episodes packed with insights, updates, and deep dives into everything Vue-related. From component libraries to best practices, and beyond, they've got you covered.
Everybody, welcome back to another episode of DejaVue .
Michael Thiessen:It's your favorite Vue podcast. You just don't know it yet. I am Michael Thiessen. I am a full time Vue educator and instructor for Mastering Nuxt. And my co host, Alex, is here as well.
Alexander Lichter:Hey, everybody. Yes. I'm Alex. I'm a web engineer consultant by day, Nuxt team member, and also doing some content, especially on YouTube, and Twitch all around Vue.js and Nuxt.js And with us, we have another amazing special guest today. He is an app and game developer. We'll talk about that in a little bit. He's also design and artist and the creator of the one and only Geotastic.
Alexander Lichter:Hey, everybody. Welcome. Eduard But. Woo.
Eduard But:Hello. Hello. Yeah. You already, introed me very well. Right now, I'm basically, full full time, indie game developer, I'd say, with a lot of side stuff on side stuff on the side, basically.
Alexander Lichter:Very important to mention. You're full time into indie game development with Geotastic for how long now?
Eduard But:I think it's 4 years now. I think we are in the 4th year. Wow. Almost, yeah, I think I started 2020 somewhat.
Alexander Lichter:That's quite some time, indeed.
Michael Thiessen:Yeah. I'm really interested to dig into this because Vue and game development don't seem like they go together that that easily. So I'm interested to to learn more.
Alexander Lichter:Maybe let's start with a little bit early even. So, like, because before you before you program games, you have to learn programming. Right? So maybe, like, a little short overview of how you actually got into programming and maybe then also into web development. Yeah.
Eduard But:That's, I'd say it's somewhat interesting, because I never really had any any formal, education in programming. I remember being interested in that topic for forever, basically. When when the Internet came out, I I was eager to to get into web development, like, development, h HTML development, you know, people called it back in the day, and learned about PHP. That's, I think, what's one of my first real, introductions into programming. We had some, some Delphi in school, informatics class.
Eduard But:I'm not sure what
Alexander Lichter:Computer science class, I guess. Yeah.
Eduard But:Computer science. Yeah. Yeah. Right. So, I learned some Delphi programming there.
Eduard But:And even earlier, I think I I programmed some some wild text adventures in basic. Wouldn't really call it programming. It it it was basically just stringing some Go to, texts together and having prompts to select answers and stuff, so very, very basic. But at least, you know, getting into how to program, actually, that that helped a lot to to get into it, very early. After that, that basically stuck with me.
Eduard But:I had an apprenticeship in a media agency. We're basically involved in everything from designing, as well as maintaining and, websites with their CMS stuff. So a lot of PHP, MySQL work, basically, and some actual programming as well. So, usually, it was just maintaining, but sometimes, we had to add some features to some open source CMS, for example. So, there, I actually got into programming properly, but still no no formal education.
Eduard But:So it was just learning by doing.
Michael Thiessen:So you're doing like everything from design all the way to backend database, like the full, the full stack.
Eduard But:The the fullest stack you can, put into your backpack. Yeah.
Alexander Lichter:Lovely. And how how did you like that? Like, how did you like from building text adventure games and and basic and that we have the the game development, pattern there? I see. I see.
Alexander Lichter:So, like, going, okay. Now I have, like, everything everywhere at once, and have to maintain, like, or, like, also build all these all these things.
Eduard But:I I think it's super interesting just by, by by the sheer, you know, baseline that you have to know everything, like, how everything works together, together to, to get that done, basically. So I'm not just having my, my blinders on and only working on front end, for example, and having no idea how problematic stuff could be if you have to tell somebody that you need feature x and y in the back end to get stuff done. So if I want something like that, I have to deal with it myself, and then I might change stuff around in the front end as well because I know it's in the back end that's gonna be really problematic. There's a better solution for that. But, of course, things take way longer if I if you do everything yourself.
Eduard But:And, of course, the the learning experience also takes takes way more time than just focusing on on one specific task or, platform or, that you wanna, deal with.
Alexander Lichter:Makes sense. Also then, as you said, like, you know the whole package from, like, the start to beginning and Mhmm. Especially when building own things, it's really good to know, okay, as I'm responsible for everything, maybe at some point, we have people, like, taking some parts over. Even, like, as a solo indie hacker or solo cell phone, you you are that. You're like, you have to talk with the user base in some point in some way of, like, hey.
Alexander Lichter:What features or, like, just think about what the users want wanna wanna see. You have to build them yourself, bug fixes, and so on that that goes through the whole the whole application. Okay. And then after the apprenticeship in the media agency, what's what happened next?
Eduard But:Yeah. I was, the the the agency itself moved moved to town. So I basically, stayed where where I was and had to to find a new job. Found something very nice in a software firm here in, Bonn, where where I live, basically. And, they made software for photo printing solutions, basically, for end users to, for for example, print, their photos on T shirts, for example.
Eduard But:So the software for that, basically, is on a user interface. I joined there as a designer. So, basically, UI design, for example. That was my main approach in the beginning, so I worked there for a couple of years in that department, basically, then there was a huge shift, towards agile. The teams had been split up completely, so there was no design department anymore, but teams with specific domains.
Eduard But:So they needed, programmers, and they needed design people in one team, for example. Everybody moved, and, I joined a team where we, dealt with specific things. And, of course, since I was already very interested in in programming, I also, joined the the ranks of, of that part of the team as well, so not only just designing stuff, UI. I also was involved in UX a lot, so UX testing and stuff, and was also involved in some feature development, learned a lot of things. So that's also where I came in contact with Vue the first time.
Alexander Lichter:Oh, nice.
Eduard But:In that agile change. After a couple of of years, in addition to to that, I was a full stack developer at some point, so I just lost my designer badge and went full developer, but also still keeping keeping the the the things clean and simple and, designed as well. So, of course, I cannot just shut up my, my design background, obviously. No.
Michael Thiessen:What was your first experience with Vue like at this at this company?
Eduard But:It's pretty vivid in my memory because, I think it was some kind of, efficiency week we had, in the company. So, the it was like, you get 1 week to build anything you want in, the teams that you create yourself during that week. So people pitched their ideas, and then there there was some some kind of team team finding event, and then people joined teams to to create something. And, I joined a team, that was creating some some front end, for some some parts of the the testing, environment more efficient. Let's keep it at that.
Eduard But:And the the question came about what are we going to do with the front end. And one of the lead developers, just threw in, hey, let's use Vue that that sounds that sounds nice. I'm not sure if he worked with it before, but he just went all in and said, Okay, this is Vue. Why not try it out while we're at it in that week? Yeah, and that was my first experience.
Eduard But:We had some kind of pre reconstructed environments where you can just immediately start developing
Alexander Lichter:A little boilerplate or
Eduard But:A boilerplate, yes, exactly.
Eduard But:Some boilerplate code, we threw in a bootstrap for Vue to get some components ready immediately. And then, yeah, we just started working, learning in that week a lot about Vue, how it works, and me, of course, as well. And it stuck. It really stuck. It was super quick to understand, to learn.
Eduard But:My only prior experience with, JavaScript front ends was with Angular, but I didn't really program with Angular. I just had to check the code and see why some things worked the way they did. And it looked super complicated. I wasn't really a fan of just how it looked, basically. So, having, having the experience with you, it seemed way more way more efficient, way easier to get into.
Eduard But:Yeah, and that week, we did some crazy stuff. It was amazing, and that's why I didn't really bother changing my way to work with front end development, even though we later on also tried out React, for example. So I've also worked with React later down the line.
Alexander Lichter:But you're still stuck with Vue eventually?
Eduard But:Yeah. Yeah. I'm I just feel very, very at home with Vue. So
Alexander Lichter:Makes sense
Michael Thiessen:I've done a a few of those, like week long hackathon style things at, at different companies. And it's always fascinating to see what people can do and accomplish in a short week, especially if there are no like requirements on testing or writing like good code. It's just like make a cool demo is the is the only thing. And then we'll see what we maybe something is good enough that we wanna, like refine it later. But yeah, it's perfect time to try new things and experiment and see what's possible and drink too much coffee and stay up late because you're just, like, so in interested in what you're doing.
Michael Thiessen:Yeah. It yeah. It's good.
Alexander Lichter:But that's the good part. As you mentioned, like, you're really like, you pick something in an idea you wanna pursue that you're interested in. I think that's a a big difference because, of course, like, we usually when we work in a company with a product, of course, we kinda like the product. Otherwise, I mean, at least for me, it would be a big factor if I also wouldn't be solo self employed. But I also kinda do like the product product in this case.
Alexander Lichter:Anyway, like, then but if you have a certain part, like, okay. I really see this as a problem. I wanna improve that certain part because for me, personally, it might be a pain point, maybe not necessarily for other people or, like, the upper management, probably for some users still. Like, having to feel okay. Hey.
Alexander Lichter:I have to re I can change something. It's pretty cool. And then from from using Vue there more and more, we have a little bit of a time gap missing until going full time cell phone that's a game developer. So what happened in that time frame?
Eduard But:Geotastic wasn't even my my first browser game I did. My my first thing was, I think, when the pandemic started, I was getting into into that stuff more. Probably, Alex, you you might know it, RocketBeans TV here in Germany. It's a online gaming, television program, basically. And, when when the pandemic hit, they they couldn't do a lot of stuff, like, for example, playing some some some games, in in the studio.
Eduard But:And since the devs, I basically, I don't I think it's pretty close to after I I got to know Vue, a little better that I thought to to myself, why not try to to create a, Montag's Mala game? I'm not sure Montag's Mala in English would be
Alexander Lichter:I think it's more like most comparable to, like, Nordic phone, I would say, but not exactly.
Eduard But:Not not really.
Alexander Lichter:Let's describe it. I also I'm looking for the word I mean. Yeah.
Eduard But:So basically, you draw something, a term that only you know, and you draw it, and you have the other people have to guess the words that you are drawing, basically. So that's, the game. And the the more, you, the more terms are being, guessed correctly, the more points you get as a team. That's the game, basically, and I think there there wasn't really a a way to play that online, so you couldn't really do it online. So I programmed, a game that basically simulated that experience to be played, remotely, basically, and then I sent that over to the to the responsible people at RocketBeans.
Eduard But:They actually did play it then. They they actually did do a remote session with, with my game. It was that was an amazing experience. I was completely, completely hyped, and it did did work. It didn't crash.
Eduard But:It didn't didn't break down, luckily.
Alexander Lichter:Perfect. So
Eduard But:Yeah.
Michael Thiessen:For people who who don't know, what is RocketBeans? So,
Eduard But:it's kinda hard to, to to put into words. It's a production firm for, gaming related content, basically. So they they have different shows. They they produce, YouTube video and live live streams, events, and stuff. So they have a huge, huge amount of people working on, on their on their stuff.
Alexander Lichter:There weren't actual, like, TV, like, broadcast for, like, we we, like, 24, 247. They don't do that anymore, but they still do, like, lots of live content. They have I think, like, altogether, probably about, like, more than a 1000000 subscribers. For, like, maybe for Germany, it's pretty decent with, like, all their different channels. Wow.
Alexander Lichter:So yeah. Yeah. Yeah. Yeah.
Eduard But:Right. So there's this, there's a lot of, variables that that had to be in the in the correct spot for for everything to work out the way it did.
Alexander Lichter:So is that application still online? Like, can people
Eduard But:It's still online. Yeah. It's still completely I'm not maintaining it anymore. But it's them, montagsmalernusonline.
Alexander Lichter:De. We'll link it in the show notes, of course. Yeah.
Eduard But:So this was also my first approach or, like, gateway into multiplayer server programming. So that's something I've never done before. I had no idea how to approach this. So this was also a very, very strong learning experience for me. I was always very interested in doing some kind of multiplayer service in any shape or form.
Eduard But:And that was a great, great gateway into, keeping me motivated and still having to to learn all that stuff, especially, like and this is not Vue, obviously. It's, written in, Node. Js, so it's state it's state in in JavaScript just to to keep things as simple as possible for me, and try try to find out how this actually works, so, on a on a technical level. So I'm not a good, like, multiplayer service programmer or something. It's probably pretty bad in terms of performance efficiency and whatnot, but it works in the scope I set myself to achieve.
Alexander Lichter:I mean, that's the most important part. Right? Like, you you had a scope. You were building a project, learning things, but also using what you learned, which is, in my opinion, always the best way to learn because, like, you have a goal, you figure out new things. And, I mean, it's a crazy and amazing achievement.
Alexander Lichter:Like, okay, a channel with, like, like in the end, like a 100 of thousands of subscribers probably like then, like, Hey, yeah, let's, let's use the tool. And then probably other people saw too. And so on, so on. So that's amazing.
Michael Thiessen:Was there anything specific that you remember learning about multiplayer servers and coordinating all of that, like between the different browsers and the clients. And like, was there some like, like big problem that, that came up or was it like mostly smooth sailing for the most part or like, Mhmm. Yeah. Do you have have any lesson that you learned from that?
Eduard But:In in general, I think, it worked pretty much as I expected it to to be. So I, obviously, it's I'm not even sure if there's any other ways to do it, but it's with, WebSockets, obviously. So I I I guess that's probably the the the most efficient way to to do stuff like that, for browser based multiplayer games. And, I had some expectations in my mind when when going in, and it pretty much fit fit all my my expectations in terms of technical, limitations and how how to approach the the all these problems. I think the the major issue was in terms of data transfer, so how much data can I transfer in which frequency to not, bottleneck the server application?
Eduard But:Right. Because as as more, players come into the into the application and more data has to be sent around to the players and, like, information like, the the drawing interactions so they the people can see a life or the the other person is drawing. That can get pretty pretty, expensive in terms of payloads. Yeah. So I had to to, find a, a way to, limit the amount of data to to be sent.
Eduard But:So it's basically only the the differences are are being sent, also not the the whole image. So it's all vector based, in the game itself. So I only have to send out the, the vector the new vector information that the person drawing, did in a set amount of time. So I think it's, like, once per second or something I'm sending things over. So it's not live life.
Eduard But:It's, with delay of one second. So it's it looks a bit choppy on on on the other end, but at least the the server holds out then.
Alexander Lichter:And it's close enough to life.
Eduard But:So Yeah. Yeah. It's it's playable.
Alexander Lichter:Very lovely. So then your your your first multiplayer game came to life. Mhmm. And from there, you moved on to probably what is yet your biggest project.
Eduard But:Yes. Absolutely. Absolutely. I think so it has to be the same year. Right?
Eduard But:So it I think it was, like, late 2020. Should have been. I think, I I released it in in, 20 20. So, this also is, due to the fact that RocketBeans played a geoguesser on the programming. So they had this, this format called, Geobetal, where, they played Geogasa in different, like, scenarios, different people and and stuff.
Eduard But:So I we enjoyed this, basically, in our in our little friend group and watched the programming. And, of course, we wanted to play that as well, obviously. That's when I saw that, they, I think it was at at the point where it already was not free anymore. So, I I went I went to the page and saw that they will they wanted some some subscription to be able to actually play it properly. So they had some some very, very small free tier, that that wasn't really the the way I wanted to play it.
Eduard But:It was kinda disappointing, to to see that, I couldn't just play it and, yeah, had the the stupid idea to just build my home geo geography game.
Alexander Lichter:How how hard could it be?
Eduard But:How exactly. How hard could it be? I just lay, in my bed and, figured out, like, what would I need to do it? I I already had some some the Google API. So I I knew, how how that worked.
Eduard But:Didn't work with Street View so far, but I know it's basically the same, just a different API. It's it's it should be fine. Placing some markers, getting some coordinates, how hard can it be?
Alexander Lichter:Mhmm. And and here we are a couple years later. But before we go more in-depth about Geotastic, so you mentioned Geoguessr. You mentioned we mentioned Geotastic already, which is the the big project, just to name it one more time. But maybe it'd be good for everyone not familiar with, any of the 2 games to just briefly explain what exactly like, what type of game artist was, like, the goal.
Alexander Lichter:So that that would be, I think, a good starting point before diving into the technical parts as well.
Eduard But:Yeah. Absolutely. Absolutely. So I think the the best short term to describe it would be geography quiz game. That's that's how I describe it, at least.
Eduard But:So it's a geography slash educational experience, with the main with the main, goal to identify random street view, yeah, like, streets scenarios that you are being dropped into. Identify, to the best of your knowledge where you are exactly. So, you look around, walk around, search for clues, and then you, make a educated guess on a normal standard Google map, and then you get points for, how good you were.
Alexander Lichter:How Like, how how close.
Eduard But:How close you get how close you got to the actual position of that, Street View panorama that you got.
Michael Thiessen:I've seen, like TikToks of people who have gotten extraordinarily good at this and can get like eerily close based on what seems like no clues at all. Really. And it's, it's quite, quite insane.
Eduard But:Yeah. Yeah. Yeah. The thing, if if you look at it, you you you don't see any clues, but the the pro players, they they see everything. They they see the camera quality.
Eduard But:They see some kind of weird antennas on the Google cars. They see, some some, electric pole in the distance, and they know exactly where in Brazil you are. Not it's fascinating. Not a problem.
Alexander Lichter:But, I mean, it's it's it's in general. It's a really fun game, especially either to play with friends or with friends like, I I play it every now and then, if if, like, with random people or if my friends wanna play with me, which is rare. So if everyone wants to play around, I think any of us up we'd be all up to up for that. And, yeah, it's it's a very lovely idea of also, like, getting to know places of the world where you never have been or just, like, getting just of, like, where you might wanna go because it it looks that interesting. So, yeah, all all, it's, it's pretty fascinating.
Alexander Lichter:Plus, you learn a lot about countries, flags,
Eduard But:streets. Languages especially also. Oh, yeah. And and and you learn about countries that you've never even knew existed back, before you played. And and and geography game, basically, but geodesic especially.
Eduard But:It's always fun to to being dropped into some weird remote island, and then people would say, what what what what is this? I've never heard of this before.
Alexander Lichter:That's true. That's true. So yeah. Okay. So you started building it because, geoguessr was was not had, like, mini freemium tier.
Alexander Lichter:I think nowadays, it's, that doesn't exist anymore either. So
Eduard But:it's completely gone now. Yeah.
Alexander Lichter:Yeah. So I because I was I was, of course, using both every now and then, and someone's like, okay. You guys are not not free anymore. It was a bit sad. But, nevertheless, the geodetic is here, and, you you decided to to work on that without asking for, like, a subscription or
Eduard But:similar. Yeah. I personally I hate subscriptions, so I I try to, put my money where my mouth is and, pay what you want, basically, and you can, like, increase your donation amounts on your account, and you can see how much you played, how much that how much that costed me personally. And then you can, make an educated, guess on how much, you may maybe want to donate to the project to, at least, like, for example, cover your own costs, and then get some some stuff in return for your support.
Michael Thiessen:That's a really cool idea of showing the cost to the the end user. Because I think people don't realize that there is a cost to websites, especially if you're using, you know, different APIs. And I've heard that that the the maps API got more expensive
Eduard But:in the
Michael Thiessen:last few years. And so, yeah, it's good to know.
Alexander Lichter:And I also think in a way, it's like what you what you show, like, just just to make sure of that, like, you have the API cost as, like, the the cost is probably the highest. Mhmm. Then, of course, you have, like, servers to to make the back end and everything running. But in in the donation, like, okay, maybe, like, the domain, like, websites, like, a tiny, tiny fraction. But what's with what's with your, let's say, your own seller because also I have to pay your bills.
Alexander Lichter:Right? So Mhmm. Is that also factored into that?
Eduard But:Some somewhat. The the the cost per play, basically. So once you connect to the to the API, it's a estimated cost, basically. So I think it's, like, 1.1.5¢ I throw in there for each connection, basically. So that's not actually the the the cost of a single connection in in Google, but it's I think it's, like, the combined connection plus, like, I don't know, some some additional percent to, cover everything else.
Alexander Lichter:So it's it's kind of marked up in the in DAS. But if you, like, have a look at them, like, monthly, cost, then you have, like, API, the servers, and so on. Yeah. But that it's not in there. Right?
Alexander Lichter:In the
Eduard But:No. No. No. No. No.
Eduard But:That that's correct. Yeah. So, not all the income in this diagram. So I have this, this diagram in game where you can see the daily cost, the daily donations, the daily ad revenue, and stuff. So we can, it's completely transparent.
Eduard But:You can see how how how high my bills are and how, how high the, user donations are and stuff. But there's also some some additional, income that is not in there. For example, the the merchandise shop stuff is not in there. Additional partnerships. I have a partnership with, Weta.
Eduard But:De that is not in there, for example. So there's additional things that, come on top that are not visual visualized there, but that help get get me through the day.
Alexander Lichter:Makes sense. Because, yeah, someone else's bill today, you have to pay your bills too?
Eduard But:Yeah. Right. I I I also have to live. I have to eat. I have to shower every once
Michael Thiessen:in a while. Yeah.
Eduard But:That I, I, everything costs money nowadays, sadly.
Michael Thiessen:So the differences between geotastic and GeoGuessr, is it mostly the, the pricing model where Geotastic is donation based or are there other features that you've added that, that change the functionality?
Eduard But:Yeah. To be completely honest, I haven't checked in with the Geogasa since, forever. So, I only checked in with the Geogasa when I started out, building the the game itself. So I check okay. How does it work in general?
Eduard But:Is there any anything I have to make sure works the same way, for example? And after that, I really didn't check-in with any of it. So the community itself, oftentimes gives me some some updates on on stuff they they did. Usually, it's, if they do something bad, then they will tell me that, like, expect more players soon, for example.
Alexander Lichter:And and don't do that yourself, please. Yeah.
Eduard But:Yeah. So there there there seem to be some issues, but they also did some some some good things, that people request that I also put into geotastic. For example, some some mode with, with, say, HP bar. So you have some kind of, life that you lose or can regenerate during a competitive play, stuff like that that is in the, on the on the feature list. But I don't really, go about to copy everything they do.
Eduard But:That's absolutely not how I approach JIOTASTIC. I usually just, punch things in that I want to have in JIOTASTIC and not run, to copy everything the the other people do.
Michael Thiessen:I'm sure it's way more fun to do it that way than to just copy it blindly.
Alexander Lichter:And then probably you also, like, it's if, like, not looking at it also doesn't give you the risk of just, like, getting closer to, let's say, quote, unquote, just being a copy
Eduard But:Yeah.
Alexander Lichter:Of of Geoguessr because, I mean, I also don't know all the features of Clove platforms, but I still see that there there are quite some unique parts on on either of that, at least, when I was when I checked
Eduard But:the last time. Yeah. I'm I'm pretty sure Geo GeoGuessr does not have, a mode where you can guess the country by its coat of arms, which was added very, very, recently. Yes. Yeah.
Eduard But:I think last week or something. So, yeah, that's stuff that people like to play. Someone, mentioned that on on the Discord, and I thought, yeah. It shouldn't be too hard. We already have flags in there to just swap out the flags with code of arms.
Eduard But:And someone from the community helped with collecting every every code of Arm, and then I just threw them in, had to change a bit of code to make it work a little more efficiently, and then, yeah, that went live.
Alexander Lichter:Pretty fun. So, also, like, the the work with the community is pretty close as in, like, you you really, like, listen to the people that are actively playing. You hear them. You want to, like, basically build with them together in a way.
Eduard But:Mhmm. Yeah. Yeah. Yeah. I'm not sure if that's normal that, people are like, the developers are close with the community, on on a game.
Eduard But:I I I like it this way even though it can be very, exhausting at times, of course, because the the more people, play the game, the more feedback you get, and it's it gets very hard to, like, filter stuff out and, see see everything that's actually maybe more important than other things. People also, of course, get angry more easily, if you have more people on a platform, if you change something, because I, of course, also had to change stuff in terms of the the free tiers. Every once in a while, you know, the the more players come in, the more expensive everything gets. And there's also something I'm not very happy about, but it's just the the reality. I think it's, like, 3 months prior, I I changed the, like, limited some of the free tier to get the the donations back up to a level where I can sustain the game, which worked pretty well even though a lot of people, complained very loudly about that, like, oh, this is not going to work, blah blah blah blah blah.
Eduard But:It worked pretty well, and I'm pretty happy that, I can now, like, sleep again without having Yeah. To think about bankruptcy, every day.
Michael Thiessen:Ultimately, it's for the best for the game if you can actually keep working on it. I mean, to keep running.
Eduard But:The the the only other other alternative would would would have been to just shut it down and, get back into normal work. So I think it's it's it's better for for everybody, the way it's it came to be now.
Michael Thiessen:Were there any interesting things that you had to build with Vue for this for this game that that were fun or interesting in some way that you can tell us about?
Eduard But:In terms of, like, front end components, I'm I'm not too sure if there was something that stood out to me very much. I use, quite a lot of, third party components as well, so I'm I'm working with, Vuetify for the for the main components that helped a lot to get things, off the off the road, pretty quickly, especially the the the whole table components and stuff. We're working out of the box pretty pretty well, but also the, diagram stuff.
Alexander Lichter:Or like Charge. Js or Charge.
Eduard But:I think it's it's a Charge. Js. Yeah. I'm using that on a on a couple of components. I
Alexander Lichter:mean, probably, like, from from the game perspective, the whole, like, handling of the street view, like, the the showcasing that controls, like, maybe maybe something that would be very, say, unique in terms of a project.
Eduard But:Yeah. May yeah. Maybe. But, that's not really, like, fun fun. It's more like, like, work work to get everything done because, the the the biggest issue is, like, of course, if you are on a browser, you never know what kind of, screen resolution people are going in or even out there on their tablet or, the the game also works on phones, but very, very badly.
Eduard But:It is responsive to some extent,
Alexander Lichter:especially in the in the in the,
Eduard But:actual game loop. So that was pretty, difficult to get. Changing changing the views around, just review the guest changing changing the views around a street view, the guest map. If you are on a phone, it's completely different from, when you are on a on a desktop, for example, or tablet with a bigger bigger screen. So this is all basically one one page that will, react to, the way the browser is sized, and that was kinda tricky, but I I wouldn't call it fun.
Alexander Lichter:Necessary, let's say.
Eduard But:Yeah. It's necessary. And still, I'm not sure if that it it was actually worth it. I'd I'd rather not have people play it, on a phone. It's a way, way worse experience, especially, like, playing with your finger.
Eduard But:Is not not recommended, at all. It doesn't work well, especially when, like, trying to pinpoint smaller countries immediate quickly. It's basically impossible, so we have to zoom in. It's it's everything is very small. It's it's just not it's not fun.
Alexander Lichter:I mean, it probably works if you play with your friends in, like, a private lobby and everybody's playing on their phones.
Eduard But:Yeah. Maybe.
Alexander Lichter:But okay. So folks, if you wanna try it out, try it on PC or tablet. That might be more fun. And, like, let's talk a bit more about the technical side in terms of, so you started the project back in in 2020. Now it's more or less 4 years later.
Eduard But:Mhmm.
Alexander Lichter:Did you have, like, any big technical challenges, especially in terms of the front end now with the, like, okay, view view 3 is a thing now. How how did that go eventually?
Eduard But:When I started out, I, built the game on a view 2 with Vuetify. So, I'm not sure when Vue 3 was released to the wild. Was it a cup a year later or 2 years? I'm not sure.
Alexander Lichter:I Think something like that. Yeah. I also don't know exactly. I mean, it's almost I mean, conversation is almost 4 years old. I think, like, end of 2020, 2020, stuff like that.
Eduard But:Right. Right. Sounds right. So, and I also, build everything on Vue VueX. Of course, I I'd love to, I'd love to have, upgraded the game to Vue 3.
Eduard But:That's on the on the horizon, at least. So I I will do that eventually, probably. But right now, I just can't can't really muster up the time to to do that. I did some some smaller things to to approach that goal, at least. I think it was last year when I swapped out Vuex with Pina.
Eduard But:I didn't really like how Vuex worked, especially in terms of, working with TypeScript. It was it was a pain, and pinia pinia's way, way better, and more streamlined. I I I like that way, way, way better. So, yeah, that that's in there. I also swapped out, Webpack, with, what's it called again?
Eduard But:Veed. Veed. Yes. Thank you very much. Mhmm.
Eduard But:You know you know you know it better than I do, apparently.
Alexander Lichter:No. I mean, what people what people swap out is usually that. You know? So I swap out that back 4 with 5. So Yeah.
Eduard But:Yeah. So and that's also the the usual approach if you if you build a Vue 3 f. Right? So this feat is, the the way to go. So that's also already in there.
Eduard But:And, yeah, I'd I'd I'd love to have everything on Vue 3. I think it would also be possible to upgrade to Vue 3 without really changing much, right, in terms of the component logic. I think you can still use a lot of the old stuff without breaking anything and then, upgrade everything to composition API, for example, component by component. But I just didn't find the time to just, like, set my mind to it to do it yet. So, but it's definitely some somewhere, on my on my internal road map.
Michael Thiessen:I think it's a great point to bring up of the the technical debt and and, like, not being able to upgrade because it seems a lot of the time, like everyone is on view 3 and Nux 3 and, you know, soon Nux 4, everyone will be on Nux 4, but it's just like not the case because it's so hard. You're trying to like
Alexander Lichter:Mhmm.
Michael Thiessen:Actually run a, an actual production application and fix bugs and main maintenance and all these things. And so, like, upgrading is a huge task most of the time. And so you have to find time for that and it can be hard. And so for everyone out there who is feeling sad that they're the only ones still in Vue 2 or Nuxtwo or something, you're not. You're
Alexander Lichter:Definitely not.
Michael Thiessen:You're in good company. So
Eduard But:I mean, absolutely.
Alexander Lichter:That's, like, that's also the part. Like, I see tons of Vue 2 and Knox 2 applications in my daily businesses, that machine consultant, because people like, hey, we want to upgrade. Can you help us? Also, because as Michael said, it's not that easy. If it would just be Vue, it would be probably done pretty quickly, but then it starts with, okay, I upgrade Vue, then I have to find all the, like, replacement dependencies for my current dependencies.
Michael Thiessen:Oh, yeah.
Alexander Lichter:And, like, with Vuetify, same idea. They don't have feature parity yet on Vue 3, so some components might not be usable, then finding alternative. So it's a it's a real rabbit hole, which especially when people say, oh, yeah. Just just migrate. It's fine.
Alexander Lichter:Mhmm. They don't necessarily see the the depth of the whole Yeah. And also, this was one thing I picked up on on Reddit, recently where people saying, like, yeah. You know, migrating from options to composition API gives, like, zero value for for the user. And that's another thing.
Alexander Lichter:Like, yeah, technical depth, like, finding it is important because at some point, building features might like it slow and slow or sure. But also, what's the user value there? Like, how how much is the change? Like, switching, if you if you'd be on u three already and just say, okay. I write a component in way a or way b, might not be the big deal.
Alexander Lichter:Switching frameworks, okay, you can say better performance, like, unlock maybe certain libraries you can't use right now. But if it's purely about the API, yeah, not necessary. Don't don't even have to migrate.
Eduard But:And that's also why it's so, prioritized, like, lowly on on my road map because people would probably not even notice if I was, like, working, like, let's say, 2 months on, migrating to Vue 3, changing replacing Vuetify completely, huge chunk of work probably to go to through everything and see if it still works, and then the other components, of course, and stuff. And then it would go live, and people wouldn't even notice probably.
Alexander Lichter:Yeah. Just like, okay. Nothing nothing changed. Maybe it got a little tiny bit faster, but probably the limit is not Vue. It's it's usually API.
Alexander Lichter:Right? So but, and how how does it look in the back end? Like, do you have, like how how is the structure and and, the whole scenario there? I mean, I'm very
Eduard But:So the back end is a an interesting topic. So I'm I'm not a very good back end developer, way worse than I am a front end developer. Also, no no formal education, obviously. I I, I learned PHP, that it was my my my home base. So I also, went in and made everything, in the back end with PHP and MySQL because that's basically what what I what I knew back back in the day.
Eduard But:I didn't even know you could write back ends with any anything else, for example. And I had no idea how I would go about it. So just, ordering a a host, having PHP in MySQL at your disposal. That was the quickest way to get it back and up and running. So that's still still there, still probably pretty pretty badly written, but it works.
Eduard But:It works somewhat. It's it's fine. People hate or love PHP. I'm I'm just happy that it works, as easy as it does for me. I'm not sure how you how how how you all think about PHP.
Eduard But:I think that's a whole other topic probably.
Alexander Lichter:Yeah. True. But I mean, also there, like, it it works. That's the most important part. I mean, I started with PHP.
Alexander Lichter:I I like it. I don't use it as much anymore because everything in in JavaScript, like, we have most of the things there even though if it look terrible sometimes. And also there was, like, a big, let's say, drama on Twitter at the moment. Not sure if if you 2 have seen it. It's like, oh, yeah.
Alexander Lichter:Like like, the whole front end framework world versus, oh, yeah, rails and Laravel and so on, but Right. I'm I'm not a big fan of, like, these polarizing topics as in, oh, you have to go all in PHP or Rails versus but, anyway, I I really think, it's the most important part, it it works. It makes sense, and it's it's in a software you can maintain. Right?
Eduard But:Yeah.
Alexander Lichter:The the other interesting question there would be, how many, like, if you have the numbers, if you know them, like, by heart or have, like, rough estimates, how many players you have, like, let's say, daily or peak or whatever the relevant numbers are there?
Eduard But:Okay. So I I I know that I have, like, 1,500,000 user registrations in total, that obviously include a lot of dead accounts as well as nonconfirmed accounts. I really need to to clean clean up, that stuff at some point. On a daily basis, at least I can I can tell you how many, API connections? So that that's basically a one to one transformation in terms of, how many people play the game and cost me money, for example.
Eduard But:Mhmm. Yeah. So, for example, I think the Fridays are the the most busy days. So one day, for example, did cost me, like, €404. That is one of the more expensive days, which is absolutely crazy.
Eduard But:It is. And if I divide that by 1.5, which is the cost per player oh, no. Like, 0 point
Alexander Lichter:0 point. Yeah.
Eduard But:Yeah. The one is euro. The other one is cent. So we had, like, 7 27,000 players on that day, like, connected to the API 1. So I don't know how many games they played because once you are connected, you can play how, as much as you want without generating any more costs.
Eduard But:So they could have been playing the whole day or just one game. I don't know. But it's but it was 27,000 per day on on that Is it, like, unique
Alexander Lichter:unique players
Eduard But:as well? Yes. Yeah. Wow. It could be the same one, like, coming back, later that day and playing again.
Eduard But:That would generate another cost on my end, so that would come up in that diagram as well. Okay. But I
Alexander Lichter:mean, these are these are impressive numbers in the end, and especially with, like, all the people, like, playing together because they won't be, like, evenly distributed along the day. Yeah. That's that's, like, something that the front end and the back end, of course, as well have to
Eduard But:Yeah. I'm actually not sure how how it holds up at all, but it does. I I am right now within, like, we are moving servers right now. So right now, checking, if the back end runs on the new server probably properly. There are some some thing things I have to deal with.
Eduard But:And then, hopefully, we can move everything to a more potent, server infrastructure very, very soon because, yeah, you you you can tell that the hosting is struggling, a lot of times. The downtimes do increase since, I think it was February when Geogesa switched off their free tier, and, you can really tell by my by my numbers when that happened, when the the the player numbers are increasing by the month. So, last May was a new record in terms of expenses, over €10,000 of Google bill. The the month before, what was 8,000. The month before that was 7 point 5,000.
Eduard But:The month before, 6,000. So I'm increasing my my bill, by, like, 1 €1,000 per month right now. So, hopefully, it will Wow. At some point.
Michael Thiessen:Fingers crossed that the donations increase. Yeah.
Eduard But:They they the the donations are on par with the increased Okay. Builds. Good. So, I can still sleep fine. So it's it's it's it's all good.
Eduard But:It's all good.
Alexander Lichter:That's very nice to hear. Also, on that note, because that's what I did as soon as I discovered that option back, I don't know, when I I registered. It's it's been a while. You can also use your own Google API key, and the Google API has a free tier. So, technically, most of your users wouldn't even cost you money if they would use that.
Alexander Lichter:So that might be also interesting thing to to, like, mention as in, like, a way to reduce your costs by just people using their own keys.
Eduard But:That's actually the the the best way for me personally, to, for players to support the game because you can also, like, set it up in the way that, that key is also used with all your friends, for example. So, if your your friends play the game, they will, get to use your key and not they get one from Geotastic, for example.
Alexander Lichter:So don't share it with everyone? No. No.
Eduard But:Don't share
Alexander Lichter:it with I just Okay.
Eduard But:So if you have a couple of friends that also play, and, you want that they also don't generate any costs on my end, then, yeah, you can set set set that up. And you also get some something in return. So you get, you don't, get any more ads. So you get the ad free experience, unlock a couple of things, bigger lobbies, and and other things. So yeah.
Eduard But:Nice. Giving back to the people that help out is very important.
Alexander Lichter:It's a give and take. Yeah. True.
Michael Thiessen:One thing I wanna mention that you, you, you brought it up before that you, you were saying you weren't so comfortable with the back end. You just like you, you knew PHP. And so you just, like, went with that. And I think it's interesting, and it's it's wonderful to see that you just decided to go for it anyway, And you built this thing and now you've got, you know, 20000, 30 1000 games being played each day, depending on the day. And like all these people having fun because you just decided to go for it and you didn't let that hold you back, that you're like, well, can you build multiplayer games in PHP?
Michael Thiessen:Well, turns out you can. So
Eduard But:At least in terms of API, yeah, so that that that that that worked. But it's a
Alexander Lichter:it's a really good point. And Michael mentioned, like, in the end, it's it's really not about, okay, we have to choose our most sophisticated architecture straightaway. Something is really just about, okay, I have an idea, and I want to do it. And I mean, also, you saw the need was there and was at least for you and your friends, like, hey, I want to play the game, we don't want to pay money. Let's build on our own.
Alexander Lichter:And apparently, more and more people were interested as well. And also for for the rocket beans, once again, was a very good way to to at least, give a little bit of reach and audience to to the project.
Eduard But:Yep. That was a great way to to get the game, like, shared around a bit, at least. In the beginning, it was, I think it was, locked behind a password system when I when I first released it, to to make sure that the, the Google cost did not explode immediately. Yeah. That was a good take, I think.
Eduard But:So, I was able to control the user flow a bit, and I ironed out some of the, of the issues I had in there in terms of, how the the Google API was was, accessed because there was a huge issue in there in the in the beginning where, there was a new connection for every round that people played. So that caused every single round that people played a new 0.007 and 0.1 14, micro sense or something was added to the bill. And so I did not reuse the Google connection back back then. And, it worked out with, with a very, very low player base to to keep everything in the in the free tier, but once the the game was opened up, I saw that that it didn't work pretty well, and I had to to, fix that pretty quickly before my my Google bills would explode.
Alexander Lichter:And still they they are quite high, but how high would they be otherwise?
Eduard But:In the millions, probably.
Alexander Lichter:That's that's also crazy. Also given once again, it's donation based and you added some ads. Like, I think that's the only thing I remember that changed. And when you, like, added ads back then, you said, okay, you you didn't plan on that, but also to, like, cover part of the cost.
Eduard But:People actually asked for that. So there was a user that was user requested, basically. Can't you put Interesting. Can't you put ads in there? I I I I can donate.
Eduard But:Maybe, that would help to at least support the game to some extent, and then, yeah, just kinda, also give and take. And now, yeah, the ads do do, do pay a chunk of the of the cost, so, that definitely helps. And I I absolutely understand that people, especially in in countries that, have lower lower valued currency, that it's way more difficult to to muster up the money to, cover your costs because Google doesn't care where you're from. The the the API costs are all the same. So I have to pay the the Google price.
Eduard But:It doesn't matter where you're from.
Alexander Lichter:And also that you're allowed to disable the ads for people with a higher support here. So, like, people are not forced to see them if they want to contribute that way. It's I think it's it's really cool. But also what an audience you have said, like, hey, please put ads on there. Like, I wanna create it that way.
Alexander Lichter:That's so good. Like, what a what a healthy community. Like, honestly, this is a big shout out.
Eduard But:Yeah. Absolutely. The the community is is definitely super, super supportive, very, very great. It's one of the one of the big, drivers for me, to keep going is how supportive people are writing nice messages in the in the PayPal, donations and stuff. Especially during the the the pandemic, Jupyterstik was a, a great gateway for people to connect with, with their friends, overseas, for example, or if they couldn't go, on holiday or vacation, then they could at least do it within the game, and and play play with friends.
Eduard But:And so, stuff like that did reach me, and, it really, really helps to keep my mood up.
Alexander Lichter:Absolutely. And did you see that you make an impact in a way?
Eduard But:Yeah. Yeah.
Alexander Lichter:Alright. Should we slowly but surely wrap it up? We're on for over an hour now. Are there like, is there anything as I asked me, is there anything that we we should have maybe asked, but you're like, hey, why didn't you ask that? Yeah.
Alexander Lichter:Anything if we missed out?
Eduard But:We we could go into the into the running gag of, of the ranked, competitive mode that is not still it's still not back in in in geotastic. I'm still working on on my list, actually. When when ranked? Yeah. When ranked?
Eduard But:Soon. Soon.
Alexander Lichter:Soon. Soon TM. Okay. But, like, do do you have do you can say, like, I don't know, this year, 2024?
Eduard But:I really I really hope we can we can get it done this year because, it really it also it's it's it's also hard on me. I really don't like having this whole branch lying around and rotting away, getting more difficult to reintegrate with every day.
Alexander Lichter:There's conflicts everywhere.
Eduard But:Yeah. Yeah. I keep, keep the branch updated every once in a while, but it's such a huge mess. It's way more stuff in there that people might consider in the beginning because you know, the the cheating is a huge problem, in in these kinds of games. So people are cheating.
Eduard But:It is it is as it is, and there there's no way to to control that. So I have to put in systems, that makes it easier for the moderators to identify, cheaters, like, distinguish them from actual good players. That's not in the game yet. It's it's it's it's coming. It's coming like, we we have, like, a couple of features already implemented, to lock all the games that are played in Matchmaking, down to the pin they place on the map so people can actually, like, go through the games, see if there's something suspicious going on, that a good pro player wouldn't, fall into, like a trap or something.
Eduard But:So, that that has to go in there. There's some some minor issues with the matchmaking still going on. Sometimes, like, the games crash, and then people lose their their, their progress or something. So that also has to get out of there first before, the the big release. And the the bigger, the audience is, the more pressure is on me to get it working perfectly, especially in terms of progression and items that you can get for leveling up and stuff.
Eduard But:So it's so much work, so much content that needs to get into the game. And, of course, that's all next to the maintenance bug fixes and other features that I personally want to have in the game. So I'm not really someone who would play ranked myself. So it's pretty hard to get my ass up and work on it.
Alexander Lichter:Totally makes sense. And also, I mean, the whole topic of pressure with too many users, I think especially also in the tech world with, like, live with the offer authors, framework maintainers, like, it's very similar. Like, okay, you don't wanna release that new version unless it's polished and it's tested and it works because you don't wanna, like, well, cause terrible problems for users. So that's that's definitely another thing with which is very comparable. But, yeah, I I'm very much looking forward to new rank modes when it will be out.
Alexander Lichter:Now we know, hopefully, 2024. But it's also, as you said, like, there there's, like, such a long, like, a long tail on that. Like, you have all these things that you'd only think about as soon as, well, you actually deal with the issue. Mhmm.
Eduard But:Yep. Yep. Yep. A huge can of worms, sadly. Sadly.
Alexander Lichter:Indeed. Indeed. Ito, is there anything else besides the Ranket? Any new features you wanna you wanna spoil here?
Eduard But:I mean, there there there are some some yeah. I'm actually we we we could spoil spoil some stuff. Of course, the the community is always very eager to to, give me ideas. I think in the last community event, we we had this, this mode where you, get several drops around country or or Europe or something, and you have to guess the midpoint of those. So, you get one for example, it's one in Berlin, and you get one in, I don't know, Warsaw, Poland.
Eduard But:And then you have to, of course, check both drops, see where where am I in both roughly, maybe even you can you can find out where exactly, and then you have to to find the the midpoint. So it's a little twist on the on the general, idea of the game, makes it a little more challenging and maybe even a little more random because, you know, maybe you know you are in Poland, but you don't know. You're in Warsaw, so you have to, like, find a good middle point between Berlin and Poland. Maybe you can region guess, that's it's North Poland, then you have a little better understanding where the midpoint would be. And then, of course, if, if you increase the amount of drops that you have to check, things get even more chaotic.
Eduard But:So we we played this we winged the mode basically, with the normal detective, detective map mode in the community event, but this will become a an actual mode to play, so that you can also see the the reference drops on the result map and stuff, so that's not in there yet. That's going to be fun, I think, because it's it involves some some interesting, geometry calculations and stuff. Oh, for sure. For sure. Lovely.
Eduard But:And a lot of other stuff, but, you know, the the list is long. The day is short.
Alexander Lichter:Of course. Of course. And there I mean, there there are so many things, one can work on. So awesome. I think that the last question we would like to ask is, Ido, where can people follow you?
Alexander Lichter:Where like, with people interested, where should people go to find out everything
Eduard But:about it? So I'm I'm not a huge social media guy. So, you can follow me on, on Instagram the most. I have an personal account on Instagram as well as a geotastic account. I'm not sure how it's called geotastic official or something.
Eduard But:But the We'll
Alexander Lichter:put it in the show notes.
Eduard But:Yeah. Okay. Perfect. But the the best, way to follow me is actually, on Twitch because that's where I occasionally stream. And, I also do development streams there, play some games.
Eduard But:Also, of course, the community events, which are once a month, where we are playing Jotastic with a huge lobby with up to 100 people at at a time. Also, Gartic phone, I'm since I'm a design guy, I also love to draw. So we are playing Gartic phone as well, which is always fun. So, yeah, that's the perfect time to to join in to join in the fray and, get to know me a little better on Twitch. And, of course, the Discord, but that's also a lot, so I tend not to to check-in with the Discord because that would take, all the time of Yeah.
Eduard But:My day. The complete complete day would be gone if I was following everything under the Discord.
Alexander Lichter:No. That doesn't work. Yeah. We don't need like Viewland and Nux Discord. It's impossible to read every message.
Alexander Lichter:Yeah. Anyway, and of course, besides that, your test take dot net, the URL also in the show notes.
Eduard But:So the most of the game is still completely free. Only the the custom local game and the custom online games are locked behind the 1st supporter level if the community, is not able to cover all the costs. So once the costs are covered for the month, everything is completely free. So, that's another thing that, goes into the game. Once the the the everything is crowd once everything is crowdfunded, everything can be played without any any issue.
Alexander Lichter:Now that's even more amazing. Like, that it's it's just such a nice way of, like, giving back. So, like, okay. Hey. I just wanna break even, make a little bit more, and then then we're good.
Alexander Lichter:Then you can use everything like that. Easy. Alright. I think that's a wrap. Thanks, everyone, for listening.
Alexander Lichter:Definitely check out Geotastic and, EDU streams if you can catch them, plus the community events. Tune in, into all their episodes if it was the first one you heard or second one or third. We have quite a quite a backlog backlog nowadays. And, of course, stay tuned for the next episode weekly, every Thursday they are in. So, yeah, stay tuned, and, listen to you, talk to you soon.
Alexander Lichter:Thanks, everybody. Bye
Eduard But:bye.