The Changelog: Software Development, Open Source - Creating and selling multiplayer online games (Interview)

Episode Date: May 24, 2019

We’re talking with Victor Zhou about the explosion of the .io game genre. We talked through all the details around building and running one of these games, the details behind Victor’s super popula...r game called Generals — which he eventually sold, and we also covered the economics behind creating and selling one of these games.

Transcript
Discussion (0)
Starting point is 00:00:00 Bandwidth for Changelog is provided by Fastly. Learn more at Fastly.com. We move fast and fix things here at Changelog because of Rollbar. Check them out at Rollbar.com. And we're hosted on Linode cloud servers. Head to Linode.com slash Changelog. This episode is brought to you by DigitalOcean. DigitalOcean makes it super simple to launch a Kubernetes cluster in minutes. The DigitalOcean Kubernetes platform empowers developers to launch their containerized applications
Starting point is 00:00:27 into a managed, production-ready cluster without having to maintain or configure the underlying infrastructure. They seamlessly integrate everything with the rest of the DigitalOcean stack, including load balancers, firewalls, object storage spaces, and block storage volumes. They even have built-in support for public and private image registries like Docker Hub and Quay.io. Developers can now run and scale container-based workloads
Starting point is 00:00:53 with ease with the DigitalOcean platform. Learn more and get started for free with a $50 credit at do.co.changelog. Again, do.co.changelog. Alright, welcome back everyone. This is the Changelog, a podcast featuring the hackers, leaders, and innovators of software development. I'm Adam Stachowiak, Editor-in-Chief here at Changelog. Today we're talking with Victor Zhao about the explosion of the IO game genre. We talked through all the details around building and running one of these games. The details behind Victor's super popular game called Generals, which he eventually sold.
Starting point is 00:01:35 And we also covered the economics behind creating and selling one of these games. So Victor, we're here to talk about your multiplayer IO web games. But first, let me give a little background on how this show came together. You've been really killing it on the writing front lately. I just want to compliment you on the writing that you've been doing. Thank you. And the first thing we logged on Chainsaw News that you wrote was, why I replaced discuss and you should too, or discus, if you're into pronouncing it that way.
Starting point is 00:02:05 I don't know how to pronounce it. Right, yeah. I think it's discuss. Yeah, I think I or discus if you're into pronouncing it that way I don't know how to write yeah I think it's discussed because that's yeah I think I say discuss yeah I think Adam were you the one that says discus that's because somebody else called it discus and they forced me to say it and so like I just felt like I had to but it's I don't I actually don't know which one's correct I think disgusting like disgusting platform yeah well I think this isn't a day of like flicker not having the e with the er so I think it was makes more sense for the platform. Well, I think this is in the day of Flickr not having the E with the ER, so I think it was cool to call it not Discuss, which would be obvious. It was back in those Web 2 days, basically. Anyways, you wrote about how you were replacing Discuss on your site.
Starting point is 00:02:39 Then you wrote how decision trees are trained, kind of some deep dives into machine learning for beginners, random forest for complete beginners. Tons of really cool stuff. So we've been logging pretty much all your submissions to ChangeLog News. By the way, listeners, if you're writing interesting stuff
Starting point is 00:02:53 and you want us to help share it around, we have a submit form on changelog.com slash submit. You can submit your things there. We're happy to help cover especially awesome written things like what Victor's been doing. And then just last week, you submitted a post called How to Build a Multiplayer I.O. Web Game. And I actually did decline this one.
Starting point is 00:03:15 I was about to decline it because we don't really do straight-up tutorials very much. Explainers, deep dives, et cetera, but how to do this just isn't all that interesting for us. So I did decline that one, but I clicked through to it because you've written so many good things that I thought I'd check it out.
Starting point is 00:03:34 And I was intrigued because I didn't know what a.io web game was. You referenced a few things I had never heard of. Video games are cool. And then you mentioned that you've actually created and sold a couple of these while in college you are graduating soon from princeton so you've been a lot of stuff here i thought wow that's an interesting topic we
Starting point is 00:03:57 talk about video games a lot but we don't talk about actually building games very much on the changelog so that's why we have you here cool so maybe before we dive into the gaming side of it tell us about uh your writing while you're you're going to school you're writing about things i suppose you're learning them there and writing about them what's up with your writing and maybe what the motivation for you doing that yeah sure so uh i kind of started writing pretty recently um i believe it was February of this year. So coming right up around three months of doing this. Basically, I just write about stuff that it's pretty much like you said, like I've, I've learned it maybe kind of recently. There are a lot of things that I think
Starting point is 00:04:37 are explained, maybe to, you know, in a really complicated manner. And sometimes I feel like I have a way that is a little bit simpler to approach some of these things. And so a lot of my writing is kind of like that, you know, like how to do X for beginners or X explained, you know, like for a beginner. And I think it's kind of fun. It's kind of a nice challenge to write those, because it's harder than you think right like writing for someone who has basically no background on this you have to you have to throw away all the assumptions that you have right like you personally might understand it but it's it's a whole another story to be able to explain it to someone who's maybe never seen this before or
Starting point is 00:05:20 never even heard of anything like this so um that's fun um and then you know some of the other stuff i do is just kind of like random random things that um you know like like the discuss posts or discus whatever we decided um yeah like that's just you know something i did and i thought was interesting and uh felt like i could share um yeah yeah basically i'm just doing this because i honestly actually in the beginning i I just wanted to work on writing more. I think that's something I don't really get to do much. You know, I'm a computer science major. I do a lot of coding here at school.
Starting point is 00:05:54 So I don't really get to write that much. And I really like writing about, you know, just tech stuff. And so that's basically how this blog this blog got started yeah yeah it started in february too so was this like a new year's resolution thing or what was it that sort of was it by your own accord or did you read somebody or hear from somebody saying hey you should write to better yourself yeah uh actually it was sort of you know not exactly a new year's resolution type kind of thing but it was actually something that i've been thinking about for a while you know it's been in the back of my head um and then what happened was right around the end of january
Starting point is 00:06:30 um princeton has like the way princeton's semesters work is that we have we kind of have this like week-long break um because our spring semester starts in february so we have kind of like a week-long break right at the end of january pushing into February, where we just don't have to do anything. I think we call it intersession. And people, you know, people will sign up for classes, they'll be like, Oh, I want to learn how to bartend or Oh, I want to learn how to cook or whatever. And kind of during that period, I was like, Hey, you know, I got a week right now, I don't really have much going on. Why don't I just do that thing I've always been thinking about doing? There's no better time to start it than now.
Starting point is 00:07:08 And so, you know, I just did. I just dove in. And that's how that got started, basically. So how did you find us in terms of submitting it to ChangeLog News? Because we've covered a lot of your stuff and it's not too far from February. So maybe you just posted all of your posts here. But curious how you knew about to go about doing that. Right? Yeah, actually, I think what it was, was somebody so my first post that kind of blew up was, I wrote this, like introduction to neural networks, this, like,
Starting point is 00:07:37 I think it was like simple neural networks or something. And basically, it walks through like what a neural network is, and then it implements one from scratch in Python. So it's kind of just like, you know, we only use NumPy. No, it's not just like importing another library or something. We've kind of like, you know, bare bones it. And I believe someone posted that post of mine to changelog. And I got the email about it. And I was like, what is this email?
Starting point is 00:08:02 I clicked through it. And then I kind of did this deep dive dive like rabbit hole dive into changelog I was like looking through all the podcasts like looking through all the all the histories and stuff and I was like this is really interesting and and that's basically how I found changelog and and why I started posting there yeah look at that that's the one I logged machine learning for the beginners back in March 6th would you rename it? No, I think I just forgot what I... Well, sometimes we do sometimes adjust the names just for context.
Starting point is 00:08:31 So sometimes we'll give it a slightly different name if we don't enjoy the name or we want to provide more context. But it's the longer version of this Machine Learning for Beginners and then an Introduction to Neural Networks. Yeah, that sounds about right. Yeah. And yeah, sometimes we'll just shorten it for short and sweet or something like that. Just kind of keep it, you know, just more minimal, so to speak. But that's a good, that's good sign, Jared,
Starting point is 00:08:54 because that's like our growth hack slash thing. Yeah, I love that. Makes the effort worth it when we do that because I love that, you know, just for those listening, when we log news, we can attribute it to somebody and that means i love that you know just for those listening when we log news we can attribute to somebody and that means they get an email when it becomes live or when it gets published and so it's a way of us alerting you or somebody else you being the proverbial you if you submit or if we find it and submit it on your behalf and that's pretty cool because then you
Starting point is 00:09:22 can sort of discover us because you may not have been aware, like Victor, to what we're doing here. Yeah. Yeah. It works. It's a grassroots little effort. But, I mean, as a random stranger who also writes things on the internet, I think if I wrote something and we covered it and I had never heard of us, I think I would be interested in knowing that. So we try to stay classy and and not do things that we wouldn't want ourselves but one little notification saying hey you've been featured on change log news
Starting point is 00:09:50 check it out i think yeah that's a good point to add on too because yeah it's in good spirits to do that not just simply like hey spamming victor by the way it's it's meant to be in good spirits right yeah good boy i appreciated the email it was cool it was nice to see cool well we're uh now i got you on the changelog so there you go back again a victor's tale so let's talk about what you're here to talk about well before we get to that i did want to ask do you have plans upon graduation because you're graduating real soon new phase of life what are you thinking you have a job lined up or do you have prospects yeah i do so uh after i graduate i'm going to do a little bit traveling for a couple i do so uh after i graduate i'm gonna do a little bit traveling for a couple months and then uh in august i'm gonna head to california i'm working
Starting point is 00:10:30 for facebook as a software engineer oh wow congrats yeah thanks well let's dive into these web games so as i said i've never heard of, you mentioned when Agar.io came out in 2015, it inspired a new IO game genre that has since exploded in popularity. So this is a genre that has missed my radar. I went to Agar.io and I was like, what the heck is this? There's another one, Slither.io. I actually had seen that one, so I'm kind of aware, I guess, tangentially what's going on here. But I wasn't aware that this is a genre and tons of people are playing these games. So tell us about that whole little niche.
Starting point is 00:11:12 Sure. Yeah. So the first one. So I actually call it Agar.io. I'm not sure how people say it. Anyways, I'm going to say Agar.io. Go ahead. So when that one came out, it was actually i believe developed by this one
Starting point is 00:11:26 19 year old dude um off somewhere by himself um he kind of launched it and then it just went viral it blew up everyone started playing it um and basically i think it's because of how simple it is right so in general this this genre of dot io games um the game is, you know, you go to a website, right? Agar.io, you show up and there's a play button for you. And there's maybe like a username input field. And you can just click play and jump into a game with, you know, 50 other people immediately. And so there's very little friction to, you know, start playing the game. You can do it anywhere.
Starting point is 00:12:03 It's great to play like in class or, in class or at work or whatever you want. Oh, okay. Yeah. And so people started playing this game a lot. And then game developers realized this is a game model that works. And people really like to play these games. And so people started making similar games, but you know, just with different, different game mechanics, right? So I think the next one that came after that was probably slither.io. Like you mentioned, that one is kind of like, you know, you play as
Starting point is 00:12:34 this snake, you go around eating food. And then if if some other snake crashes into your snake body, they die. And so it's basically, it's very simple. It's, you know, there's no learning curve. Anyone can play. You just jump in. You can play with your friends. There's a leaderboard for people to climb, people who want to, you know, top that.
Starting point is 00:12:56 And then after Solido.io, there's a big one that's called Diep.io, D-I-E-P.io. And that one is basically, you jump in uh you control this little tank like thing um and you can shoot other people uh and you can shoot these like npcs um and just shooting stuff in general gives you experience you know you level up your ship you can upgrade certain things you can you know you can choose a class it feels like a it feels like an rpg almost um and so yeah and after those three there are you know there's just tons and tons of io games out there and there are also these io game sites that will basically collect all of the io games that are out
Starting point is 00:13:37 there um and present them nice and neatly to players that want to you know play different io games um and so there's one that's really big called io games dot space i believe that's the that's the main one out there um and so people will just play these games like at school or like you know to procrastinate studying whatever things like that um yeah that's about it wow i just went to io games on space and you're right there are literally hundreds of these yeah there's so many and just new ones every single day too it's absurd so slither did ring a bell and this is going to date me quite a bit and maybe adam as well because it reminds me so much
Starting point is 00:14:17 of nibbles adam did you used to play nibbles i i played nibbles on my ti86 calculator when i was in high school i played snake snake nibbles yeah pretty TI-86 calculator when I was in high school. I played Snake. Snake, Nibbles, yeah, pretty much the same thing. Only that was one player, but you'd eventually run into your own tail and die. Yes, and that was the fun part was because, gosh, man. That's when you knew you were winning big. It just gets longer and longer and longer until you kill yourself. Yes, and so this is the same idea applied in a kind of a massive multiplayer way where you're eating other people's
Starting point is 00:14:46 snakes so uh nothing new under the sun that being said this is way more fun playing with other people than just playing by yourself but if you're sitting there in class you know it's better than listening i guess just for terminology's sake and those who may not be ultra gamers npc means what npc means non-player character so kind of just like some other object in the game that's controlled by the game, basically. Gotcha. And then you also mentioned just the fact that there's very little friction to get into a game.
Starting point is 00:15:16 Does that tend to lead to not very much investment? Like, oh, I'm not very tied to it because I don't have a lot of... I'd have to invest a lot to get into it, so I don't feel very tied to it. Or are're pretty addicting. I think they are pretty addicting. I think honestly, what makes them addicting is the leaderboard. So people basically will join into these games. Maybe like they don't even know how to play the game and you kind of figure out how to play as you play and you gain score along the way. And eventually if you go long enough without dying, you know, let's say you're in this game for five minutes, right?
Starting point is 00:15:46 You go long enough without dying, and you start seeing yourself on the leaderboard. And you realize that if you die, you lose all the progress you've made over the past five minutes. So it's kind of like you want to keep playing because you want to keep increasing that score. And you really don't want to die because it feels like you've invested so much already you have to keep going so the ease of getting in leads to deep investment
Starting point is 00:16:11 or potentially deep investment which keeps you in exactly yeah i've seen people like have hour and a half long games um and they just can't seem to die and they they'll have other you know other things they need to get done or other things they need to go to and they just they just can't seem to die and they will have other things they need to get done or other things they need to go to and they just can't do it. They have to keep playing because if you're in a game for an hour and a half you don't want to give that up, right? Right. Not a one-to-one, but it
Starting point is 00:16:36 reminds me of Portlandia, the episode when they couldn't stop watching the sitcom because it was like they were just binge-watching. It's almost like binge-playing. Yeah. So they've definitely gotten more advanced. I hopped into robo storm io and by the way the rest of the show might be a waste because i'm going to be partially playing games and partially talking to you guys no offense but this looks amazing i mean it's it almost looks like a metal gear solid style not 3d but kind of that off kilter 2d space with a map and i mean people put some work into
Starting point is 00:17:07 these things for sure definitely yeah they've gotten a lot better since the early days so that got you into building a couple of your own tell us that history because as i said one of the things that was interesting is you built and sold two of these in the past three years and so just the fact that selling them as a thing i thought was intriguing but why did you start building them we'll get into how you built them um probably here soon but let's talk about some of maybe the economics around it sure yeah so the reason i started building them uh so the very first game i built was this one called generals.io um and it's still
Starting point is 00:17:46 live it's still running to this day it's still somewhat popular i believe um and how that started is i believe my sophomore year of college uh we had a break um we had a week-long break in the fall semester um and i was just hanging out on campus with some of my friends um we didn't really have much going on. We were honestly just kind of messing around all day, not really doing much. And one day we're sitting in this room together and we go to this site, iogames.space,
Starting point is 00:18:14 like I just mentioned. And we're looking through IO games because we were just playing these casual games together for fun. And we happen upon this game called kings.io um and the way kings.io works is you control you're on this 2d board and you control this one uh square that's called your king um and every square that you own will slowly generate army units for you so it's kind of like um maybe you can think about it like risk uh you kind of like control territory
Starting point is 00:18:45 the territory generates army strength um and you can move that army strength around the map to conquer other you know other territories and ultimately other players kings and so the way you win the way you beat someone else in this game is you take an army to someone else's king and you attack their king with a stronger army and if you conquer anyone's king you become the new owner the new ruler of all of their territory so the game starts with you know usually like eight or nine or ten people and slowly it goes down to like four people um and then at the very end you have these two massive empires battling each other both trying to find the other person's king so you know it was a fun game i played it a lot with a couple
Starting point is 00:19:31 of my friends we got really high up on the leaderboard how we were starting to figure out like what the best tactics were for this game and stuff but you know the game wasn't too popular and we felt like there were a couple things that were really... A couple pain points about the game. One of them was that the game pace was way, way too slow. So I think the way they had it set up was that one move took two seconds, I believe. And you can think about that, right? You can imagine making a move and then waiting two seconds for it to happen.
Starting point is 00:20:04 And you can only make 30 moves per second like for you know for young people like us who are who are used to playing these super fast-paced action games like uh first person shooters whatever it feels way too slow we feel you know we get impatient um and so that was a that was kind of an annoyance um there were some other things that happened uh like like the there were some bugs in the game that i don't really remember but you know just you can imagine bugs in the game it's a little bit annoying to play um sometimes like you would spawn in a location that would basically be impossible to win from um which is which is annoying because it's like why like this is this could be controlled right
Starting point is 00:20:45 you could with a little bit more like with a little bit better map design you could um make it a little more fair for everyone right so like in their defense it's pretty hard because all the maps are randomly you know generated um but you know so there were some pain points like the ones i've i've mentioned and basically at dinner one day someone someone jokingly based mentioned that I should you know I should build a better version of kings right and everyone was like oh haha like yeah that would be cool right imagine if right and then I started thinking about it more seriously and I was like you know this game isn't that complicated you know I have the technology i have the engineering background
Starting point is 00:21:25 to do this i know i already know how i would implement this um and it would be a fun thing to do and i have a lot of game development you know background right like i've been making games since i was basically 13 um that's how i would imagine that's how a lot of people get into software engineering um and i i also had the free time to do it because, again, this happened to be during that break from school in our fall semester. And so I just decided one day to do it. And so in three days, I built a version. So, OK, yes, that's that's where the name Generals.io comes from. It's kind of a it's kind of a tribute to the original Kings.io game.
Starting point is 00:22:07 And then in the first three days, I built a simple version that was similar to Kings, but that was a lot more fast paced and fix some of the issues that we've been talking about. And I kind of just threw it up on some sites. I think I sent out a couple of emails. Maybe I probably posted about it on Facebook and it got a little bit of traction in those early days. But, you know, I think I sent out a couple emails, maybe I probably posted about it on Facebook. And it got a little bit of traction in those early days. But you know, I was just working on it, I kept on working on it, I would implement new features, implement new game modes. For example, like I added replays, so you can go back after a game and, and replay the entire game and,
Starting point is 00:22:40 you know, share replay links with your friends um and like see exactly where see exactly what other people did things like that um and eventually one day i i think it was like i want to say it was like the january after that uh fall semester one day someone found my game someone found generals and posted it on hacker news um and, and it blew up. It was the number one post on hacker news for like probably that entire day. Um, I woke up that morning and my friends were texting me like, yo, generals is really, really slow right now. Can you check the servers? And I was like, yes, of course. Right. So I go in and I check the servers and I'm trying to figure out what's wrong. And eventually I realized that it's just there's nothing wrong.
Starting point is 00:23:26 It's just that there are like 50,000 people playing on this $5 server that I've rented. And so that was a crazy day for me. That was a crazy, crazy day. I remember it was a Saturday. Luckily, it was a Saturday. Otherwise, I might have been doing other stuff. But I spent that entire day just putting out fires um up like moving the game to beefier servers like you know like handling support questions and stuff like people telling me that their games were crashing or whatever like
Starting point is 00:23:55 there was there was a ton of stuff to do that day and i i still it was a good time it was a fun time and i learned a lot that day um and yeah and so from that day on a bunch of people you know i mean that's what happens if you're the top host in hacker news like the game stayed really popular um i kept on building more features um i kept on adding on to it because i was now motivated because you know i had i had a real player base right there are a lot of people playing this game you go you go to the game at like 4 a.m on a tuesday night and there's people queuing up with you to play which is just crazy to me because um i've never had a game be that popular before um and so you know i worked on this game probably like almost full time like yeah i'm a student right but i would spend i want
Starting point is 00:24:43 to i was spending at least like 30 hours a week just developing this game because i'm the only guy running the show right like if i don't do it it's not going to get done um and so in the year after that hacker news post i basically i basically worked full-time on this game while studying at princeton i guess and um I implemented a bunch of stuff. There was a lot of there was a lot of growth in the game over that year. And then eventually, I think I just got, I think I just got tired, I guess, there were some other things that I wanted to do. And I felt like there wasn't so much more for me to do with generals kind of felt like it reached like a natural ending point um and so i had actually been looking for kind of a way out right like i felt like i couldn't just i couldn't
Starting point is 00:25:33 just quit on the game i obviously wasn't going to shut it down because it was making me a good amount of money from ad revenue and stuff but i was i had already kind of started thinking about looking for a way to exit looking for a way to maybe hand it off to someone else. And then I get an email out of the blue. It's this guy who runs this small gaming company who's interested in buying out Generals from me. We talk, you know, and then two months later, that's it. I sell Generals to him and that company is still the company running generals to this day. This episode is brought to you by GoCD.
Starting point is 00:26:18 With native integrations for Kubernetes and a Helm chart to quickly get started, GoCD is an easy choice for cloud-native teams. With GoCD running on Kubernetesubernetes you define your build workflow and let go cd provision and scale build infrastructure on the fly for you go cd installs as a kubernetes native application which allows for ease of operations easily upgrade and maintain go cd using helm scale your build infrastructure elastically with a new elastic agent that uses kubernetes conventions to dynamically scale GoCD agents. GoCD also has first-class integration with Docker registries,
Starting point is 00:26:49 easily compose, track, and visualize deployments on Kubernetes. Learn more and get started at gocd.org slash kubernetes. Again, gocd.org slash kubernetes. So help us understand the kind of dollars behind this. You said you were running ads, then you got this offer from someone else to buy it, and eventually you sold it. So break down the figures for us. What's in this?
Starting point is 00:27:22 Sure, yeah. So there are two main ways i was making money from this game one of them the big cash cow was ads right um people waiting in queue to queue up with other people would see an ad and people would click those ads like all the time so there's that um and then the second way was uh generals had this kind of supporter feature where you could basically donate some money and you would get a supporter tag on your profile for X amount of months. And being a supporter kind of unlocked some special benefits from you, some like kind of cosmetics basically. But that one didn't contribute so much monetarily but let's
Starting point is 00:28:07 see at peak right um at peak i was making i want to believe i'm just trying to i'm trying to think about the numbers again it's been it's been a while okay so the month that i topped hacker news generals made me probably three or four thousand dollars um and then after that of course you know the traffic's gonna decline um but it kind of leveled off to around i want to say a thousand a month um and then eventually when i was contacted to sell the game uh i sold it for kind of like mid five figures range mid to high yeah like mid five figures um nice and yeah it's just basically you know a multiple of how much revenue how much revenue is making sure which makes sense because i mean it has very little or very low expenses right so your overhead wasn't really much so you could in theory give a valuation based on simply revenue yeah i mean the overhead was
Starting point is 00:29:11 basically zero i think yeah more than 99 of the revenue was profited when you think about advertising in this space you say that when someone would try to enter the game there would be a pause or a queue essentially and an opportunity to display an ad yeah what kind of you mentioned hacker news 50 000 one day what's what's sort of like an on day or active user count like rough it rough daily um like an like an average day back in those days probably uh probably i want to say 10,000 active users in a day. So we're talking about 10,000 impressions likely, potentially.
Starting point is 00:29:50 I think it ended up being more than that because people would, you know, general games, they only lasted a couple minutes. People would play, oh man, there were times when I would play you know, like 50 games back to back. Like just me. And I made this game. So I've played this game a lot pretty addicting so were you just running adsense or did you have
Starting point is 00:30:11 specific ad partners you're working with no nothing fancy just adsense nice so it's been a little bit since then do you are you happy that you sold it? Are you wishing it was still yours? Some people have, we talk about buyer's remorse. Some people have seller's remorse. You got any of that going on? Or are you just fat and happy as the saying goes? I would say that there are definitely some days here and there where I have a bit of that, you know, I have a twinge of seller's remorse.
Starting point is 00:30:40 But I think by and large, I'm happy with that decision. I've been able to, you know, I've had a lot more free time since then because of it. And I've done a lot of interesting stuff. So I'm glad that I'm glad that, you know, I closed that chapter. Yeah. So that's generals. But your post says you've built and sold two IO games in the past three years. So I assume you got another story queued up for us here.
Starting point is 00:31:05 I do. Yeah, this queued up for us here. I do. Yeah, this one's probably a little shorter. So actually, I think earlier I said that Generals was the first IO game I made. And that's wrong. I'm gonna have to correct myself. Generals was actually the second one. It actually came after my other one.
Starting point is 00:31:20 Okay. So the other one I made was called GeoArena. arena dot online so not actually the dot io tld but you know later it's it's now geo arena.io but anyways that's unrelated um originally when i launched it it was called geo arena.online and basically that was a game that i think i started it freshman year um that was a game that i had been thinking about for a while in high school, and I thought would be cool to try to implement as a web game. Because that was the time when I was kind of getting into web a little bit, I was kind of trying to learn more about web development.
Starting point is 00:31:58 And I have always been like, I've always liked making games so um that game is is actually sort of similar to diep.io that's the tank game that i mentioned earlier um some people like to refer to geo arena as like diep.io but 1v1 right so diep.io you get into this big arena you're playing with 50 other players you're kind of just one kind where you're just, you're just one ship in a sea of many ships. But in Geo Arena, it's much more personal. You customize a ship, and then you enter into a queue, and the game will matchmake you with another player
Starting point is 00:32:39 based on your skill level, basically. You have this in-game rating system called i believe it's called geocrystals um but anyways it's kind of just like an elo rating system and so the game matches you with another player and then it's just the two of you in this arena diep to io style battling it out right it's last one standing wins um so you can kind of you move around you can fight the other player you can fight the non-player characters if you want to level up things like that you can upgrade right there are a bunch of different strategies that you can use but ultimately at the end of the day it's kind of just this 1v1
Starting point is 00:33:16 skills test and so I made that game and it launched. It got a little bit of traction. It never really blew up so much as Generals did that one day. But, you know, it kind of grew in player base over the course of the first couple of months. And then after that, it was a bit it was a little bit steady, kind of flatline for a while. And I pretty much put it on the back burner. Right. So I basically put it on the back burner right so i i basically put it on the back burner to build generals um and while generals was happening i didn't really work on geo arena as much um because it just its player base just couldn't justify the kind of investment that i should have been like using on generals instead um but after i sold generals, I kind of went back to G arena for a bit with a lot
Starting point is 00:34:07 of the lessons that I learned from, you know, building and selling and scaling generals. And I applied those to G arena. It was, you know, it's fun to go back and look at code you wrote three years ago and be like, wow, this is terrible, right? I'm sure you guys have been there. I'm sure you guys know what I'm talking about. So I had some fun refactoring code base. I had some fun implementing a couple of new features. For example, I also brought replays to G Arena where you can go back after a game and share a replay link
Starting point is 00:34:38 and kind of rewatch the game happen because that was definitely one of generals is big big uh features right so like people people always ask like how did you beat out kings.io right like kings was the original game kings was the kind of like the incumbent in the market um and after the first two months generals stole all of king's players and they quickly shut down the site um and i think a big part of it was that generals is features were just were just a lot better and people really liked being able to share replay links with each other it's you know it's part of it's a social experience right like actually to this day literally two hours ago um one of my friends just sent me a link
Starting point is 00:35:20 a replay link to generals of a game he just played against one of my other friends because the two of them have just recently discovered generals um and so they've been playing it a lot like which is actually really cool to see because i haven't been involved in generals for a couple for like over a year now but um people are still finding it to this day and it's just as fun and addicting as it was before well the cool thing about those replays too is it seems like they're an opportunity for more page views which is like it sounds like it could be viewed by anybody right so you're you're actually attracting potentially non-game players yeah right just like your friends and family or you know i don't know instagram followers or whatever yeah so there was this subreddit for generals
Starting point is 00:36:02 like watch someone else's replay if you don't play the game yourself or understand it right yeah so one thing they have going on right now because I am checking it out while you talk is like a 1v1 tournament going on is that new features they built beyond or did you have that going when you sold it that's definitely a new thing that they want to do I think we
Starting point is 00:36:20 actually talked about that I talked about that with the buyer when we were making the transaction that's a thing that they've started running kind of recently um you know people like to have these tournaments and there are a lot of really competitive generals players out there surprisingly even though it's a really simple game but uh you know there's actually it goes deeper than you would think um and so i think i think they run these 1v1 tournaments every 10 weeks something like that um and i know that at least the last time i checked in on them they were somewhat popular so it's definitely a fun thing that you know you can do as a community
Starting point is 00:36:56 yeah so i would be curious just of the logistics of selling a game so i assume there's a domain transfer that has to happen i would assume there's code that has to change hands is there an escrow scenario i mean you got the money offer how do you know they're good for it how do they know you're actually going to do the thing did you get a third party involved i would love to hear just the details of how you go about even mechanically selling one of these games uh we felt like this was a small enough transaction where we didn't want to get a third party or escrow or anything like that involved um we had been talking for a while we'd been video chatting each other we felt like we got to know the other person relatively well um and we there was a at least a baseline level of trust we'd established so i believe what happened was
Starting point is 00:37:50 um they paid half the money up front just so i knew that they were like good for their word um and then we started the transaction process so there's actually a lot that goes on um there's the domain like you said there's all these accounts that are linked to the game you know facebook twitter reddit like cloudflare even right like all of these accounts that i'd set up over the over the years um and i had to go back and like remember all those passwords like change all those passwords it was a whole deal right um and then uh we had to transfer over the code base um that's not so bad uh and then the big part was um transferring the game like the live running game from my servers to their servers basically um because i couldn't just like i couldn't just like give them my servers
Starting point is 00:38:41 there was like some kind of uh complexity that that was working behind the scenes there but that was a big that was a big day i think we had probably at like a two-hour maintenance that day i think we like posted it on the website and we like told people and then we tried to do it in the middle of the night i'm pretty sure i like i'm pretty sure it happened at 3 a.m or something like that um but yeah so the live transfer was a big deal. And then there was also the live transfer of the AWS like replays bucket. So replays are stored as like compressed files in a AWS S3 bucket. And I had to we had to migrate all of those replays from my AWS account over to their AWS account. So replays also had to go down for a little bit. So it was definitely involved, there was some, you know, there were
Starting point is 00:39:31 definitely technical challenges. But at the end of the day, I think it probably took about two weeks total, just because I like we kind of did it in like small incremental steps. So there was like definitely that two week transactional period. And then at the end of that, I got the rest of the money. And then that was pretty much it. And you rode off into the sunset. Yeah. Lived happily ever after.
Starting point is 00:39:54 Pay down some of them student loans. Very cool. Well, I mean, even though it happened a while ago, I just got to say congratulations. That's a heck of an accomplishment, think absolutely thank you thank you appreciate it so this all started with your post how to build these games and we haven't talked about that yet so i'm sure some of the hackers in our audience out there are thinking hmm i might try my hand at this because i like games i'm a good developer and maybe just maybe there's some success and some money at the end of this rainbow.
Starting point is 00:40:28 So you have this big long post. Actually, it's a two-part post, which we will link up both of those just for people that want to read. But I would love to hear the breakdown maybe on the high level of what all goes into these games, how they work. If we want the nitty-gritty, I think we can
Starting point is 00:40:43 keep that into your written form because it's much easier to consume that way versus a conversation but maybe just high level help us understand you know what they're built with how they work we know their web web games so their web technologies are involved somehow but uh give us a breakdown definitely if i had say, the thing that all of these IO games share is that they use WebSockets, right? That's pretty much the only way that you're going to be able to get the real-time communication that you need
Starting point is 00:41:13 to build one of these web games. And so I personally used this nice JavaScript socket library called socket.io. It's probably, you guys, I'm not sure if you guys have heard of it, but it's definitely like the top socket library out there right now.
Starting point is 00:41:28 And so we use that in my post, and it makes it really easy to use WebSockets. And then on the server side, I personally also run just Node.js. And so my reasoning for that is that I want to be able to share code between the client and the server. So if everything's written in JavaScript, it's much easier to not have to rewrite stuff, right?
Starting point is 00:41:52 Like you can imagine, I write a class for a player or something. And I want to be able to use that class on both the client and the server,, the server is the one that's doing all of the game simulation. But the client also needs it because one, you know, it needs to be able to understand and parse information that the server sends to the client. But two, also, you want to be able to do a little bit of simulation on the client side to kind of mask the latency that you're going to have, right? Like a big problem with these games is that you can't use UDP on the web, right? Everything is TCP, everything is reliable, everything is ordered. But the issue with that is you're going to have head of line blocking sometimes, right? So if you know, if one game update doesn't show up,
Starting point is 00:42:42 like to the to a player, the entire game is going to freeze for a little bit as the internet figures out what it's doing. And then the rest of the game updates are going to flood in at the same time. And there's just no way around that right now. And so there's a lot that goes into making sure that the client-side experience is as smooth as possible, even though latency is going to be weird. You're going to have weird ping spikes.
Starting point is 00:43:10 Like you might be a player in Brazil playing on like the New York server. Right. And so I definitely spent a lot of time doing that. And, and so like having shared code makes that a lot, you know, makes that a lot easier and helps you, helps you get get the development like helps you push the game out faster. More than that, there is other than that, basically, you're going to have a you're going to probably have a database of some sort. If you keep player stats, which you might not necessarily do. But for example, like generals has this kind of rating system. So you need a database to do that. So that's nothing special. You know, you just have
Starting point is 00:43:49 something running, you can, you can store player information in that. And then also, I've been talking about this replay feature that I had with my other two games, I believe some other games have it, but I'm not, I don't think it's so common right now um but the way that i've been implementing that is just storing like i said storing those replays in an aws bucket um and and then downloading those uh when i need them so um but yeah that's about it like it's you know client javascript right uh server javascript we have web sockets for the communication channel between the two. And then we got some database and some other
Starting point is 00:44:28 storage solutions behind the scenes to make it all work together. The thing with games that I always get tripped up on is when I start to think of the actual visual interaction with the end user. Maybe you say the sprites or the graphics.
Starting point is 00:44:45 Yeah. And I'm looking at some of these games and I get immediate, I don't think imposter syndrome is the right word, inadequacy. I'm like, there's no way I could create these kind of things because they're amazing or they're beautiful.
Starting point is 00:45:00 Yeah, exactly, self-doubt. Just because the artistic skill isn't there but also i don't i don't know how to interact with the world like that in in the browser so maybe maybe not from the graphics side but could you speak to how i mean like i guess with generals it was it's kind of a board game style from what i'm seeing just curious how you actually go about building that part of the interactions like the collision detection and all these kinds of things so yeah like you said generals is a board game style so that's going to be a little different um yeah i actually used react for generals uh react js but um for most games it's going to be like geo arena is a more
Starting point is 00:45:42 stereotypical game um and for most of those games they're going to use an h arena is a more stereotypical game. Um, and for most of those games, they're going to use an HTML five canvas as like the, you know, kind of like the drawing board. Um, and you basically just, you basically just draw your sprites to that canvas,
Starting point is 00:45:57 uh, and, and you make it. Yeah. And that's how you paint the game. Um, as far as like collision detection and anything else like that goes, all of that is probably going to be done on the server side
Starting point is 00:46:12 and then just rendered and maybe smoothed out a little bit on the client side to make it look a little bit better. Like, for example, any explosions or whatever, like cool particle effects, that's just going to be put in like client time like during rendering but yeah it's
Starting point is 00:46:31 pretty much everything is running on HTML 5 canvas nowadays sorry I'm just over here playing Geo Arena this is a cool game so far I've always camped out in general so now i'm checking out geo arena definitely has the like you said the canvas definitely has the collision detection and the other stuff that i would feel inadequacy so is there libraries beyond socket beyond you know
Starting point is 00:46:59 node and express kind of the typical underpinnings? Are there actually application layer libraries where you can say, hey, I need a thing that already provides all of the interactions and I just call collision or whatever these higher level function calls that I'm sure somebody else has thought through that I haven't.
Starting point is 00:47:18 Do you use those? Are they out there? What's your thoughts on that? Yeah, so they are definitely out there, but I personally have not used them um i believe there is one that's called phaser.js i think it's p-h-a-s-e-r.js um i think that's a popular one that some people are using but i just personally have not been using those because i'm kind of the kind of i'm the type of guy who wants to be able to control every single little part of it.
Starting point is 00:47:46 Maybe to a fault sometimes. But I really wanted to be able to write everything myself and be able to customize any little tiny thing that I want. And that's something that you sacrifice a bit if you're going to use a library like Phaser.js.
Starting point is 00:48:09 So I have basically had to write all of those things that i might have um gotten from one of those libraries myself um so like like you said like the collision detection everything like that i implemented myself um i have to optimize myself and i you know i'm in charge of it myself so for better or for worse right well beyond libraries what about platform is like iogames.space is this I know you got a couple of your games here is this a platform where you can go and build your game on their
Starting point is 00:48:35 existing platform and sort of skip the coding part or is there a way to bypass some of the things that Jared has issues with like the being intimidated by the graphics portion of it and just sort of bypassing the things that you don't do so well or don't want to do at all yeah so i don't believe i don't believe there are at least me personally i don't know about anything like that um i'll gain space you host yourself with io games it's just yeah so i'll
Starting point is 00:49:02 gain that space is actually it's just an iframe um they basically are just a collection like they just list the games and then they iframe out to them um and that's how yeah that's their whole site basically cheaters i'm just wondering like the next level of this is like, if it's so popular, you know, create a platform where you can build these without having to like have all the skills. Right. Yeah. Unfortunately, I think you just have to have all the skills for now. This episode is brought to you by our friends at Rollbar.
Starting point is 00:49:46 Move fast and fix things like we do here at Changelog. Check them out at rollbar.com slash changelog. Resolve your errors in minutes and deploy with confidence. Catch your errors in your software before your users do. And if you're not using Rollbar yet or you haven't tried it yet, they want to give you $100 to donate to open source via Open Collective. And all you got to do is go to rollbar.com slash changelog, sign up, integrate Rollbar into your app.
Starting point is 00:50:09 And once you do that, they'll give you $100 to donate to open source. Once again, rollbar.com slash changelog. So you sold two games. Are you one and done? That doesn't make sense. Are you two and done? Are you kicking up a new I.O. game? Got any fresh ideas? What are your ambitions here with regard to these games?
Starting point is 00:50:41 Just teaching other people how to do it so you can play even more cool games. What are you thinking? Yeah, I think I'm two and done. I think I've done what I wanted to do here. I've learned what I wanted to learn. Honestly, I think a big part of it is I'm kind of out of ideas for
Starting point is 00:50:58 good games. Maybe in the future, if something strikes me, if I get inspired, maybe I'll jump back to it. But for the near future, I think I'm pretty good with what I've done. I could be pro-Victor here, but I would feel like it seems like you've only scratched your surface. Maybe I'm just really pro-Victor here. I don't know. Call me wrong if you have to. Yeah, I don't know. There's a lot of other stuff I'm interested in, right?
Starting point is 00:51:24 So I don't want to narrow myself too much. What about trends in gaming? Is there anything else that's up and coming that people might find interesting? Or maybe even do you have any of the IO games that you would think are top notch, great games that people should play, if not try to build?
Starting point is 00:51:41 I think I see IO games sticking around for at least another five years um i don't think they're going to go anywhere i don't think this is just like a fast trend um i think there's actual demand for this and people will keep playing these kinds of games um as far as specific games go i don't really have a i don't really have any right now because I've kind of I haven't been playing IO games for a while I think it kind of happened after I finished the sales and I kind of moved on into other things I've been out of the IO
Starting point is 00:52:14 game for a while but you know just check out iogames.space right there's a lot of good stuff there as far as the rest of you know video games I I don't know i guess i mean there's that new trend with all the fortnite type games right right that's that's sort of like the new thing battle royale yeah is it beyond fortnite or is it just fortnite uh i mean there's fortnite
Starting point is 00:52:40 there's like pub g right player unknowns battlegrounds. There's also that new game that just launched. I'm struggling to remember what it's called, but it's very similar. There's another big game. I forget what it's called, but there are definitely new games coming out in this arena. I'm personally excited for Super Mario Maker 2. I just hang out in the console space,
Starting point is 00:53:03 so just Nintendo, lifelong Nintendo player. I did have PlayStation 2. Maker 2, I just hang out in the console space. Just Nintendo, lifelong Nintendo player. I did have PlayStation 2, so I dipped my toe in those waters. PlayStation 3 maybe even as well, but Nintendo for life. And now that I have kids that are reaching gaming age, oh man, just Nintendo all day, Nintendo all night. That's an interesting perspective. there any has there been any io related games that has gone from an io game to say console or transcended simply just the web space yeah um actually one that comes to mind is called paper.io um it was kind of big in the web space
Starting point is 00:53:40 when it launched and then they launched these uh ios and android apps and those were like super popular i believe um i think i i think i saw paper dial at the top of the app store one day um and i think they might be on consoles uh i might be wrong about that though i haven't actually seen it myself but i know that paper dial doing really well. They're kind of like spreading their wings. They're everywhere now. So that's a good game too. Are most of these games optimized to be used on mobile too? I know that they're not apps and they are based on the web.
Starting point is 00:54:15 So, or at least web protocols and stuff. So, I mean, are they generally playable on a mobile phone? Yeah, a lot of them are honestly so paper.io is really really simple and you basically only need to have like you can just swipe to control the direction you're going um and the game is that like that's it right it's very very simple i think slither.io is the same kind of deal where you can just play on your phone um control the snake right there's not that much that you need to do so so earlier in the call we mentioned that you're going to facebook yeah and jared just asked you about one and done two and done whatever you said you're out of ideas i said you're simply scratching the
Starting point is 00:54:57 surface because i'm such a believer in you but i'm thinking like why would you go and this is just maybe the entrepreneur me you know that's hopeful for others to be entrepreneurs as well. And you've already been there, so it's not that you're not. It's just a matter of your choice seems to be to go to work for somebody else rather than be your own boss. And I'm curious why you make that choice. Yeah, I mean, for now, right? I thought about that a lot myself, and it was something I struggled with when I was kind of making this decision. For now, I think I wanted to go to Facebook to just learn more, grow more, grow quickly,
Starting point is 00:55:38 maybe make some friends, make some mentors, find people to look up to. Because I think that there's a lot that goes on at Facebook that is really valuable. So I've actually interned at Facebook before I've interned there twice. And those two summers I spent at Facebook, I learned an unbelievable amount, right? Part of it is just, you know, I'm really young, right? I'm kind of inexperienced. I don't know like so much about the tech world yet. And so I think there's a lot for me to do there still. And I think coming out of college, you know, it's kind of, yeah, it's a little bit of a safe move, right? Like get a nice paycheck, whatever. But I think part of it is also just being at a big company for these next few years is going to be like a good way for me to grow. Yeah.
Starting point is 00:56:20 Let me just say that's a that's a wise response to that. I would say it seems like you put a lot of thought into it. It's not just like, hey, Facebook's big, hope for the best. I think that makes sense. You're going to level up your skill set. You're going to level up your network, which is very smart moves that's playing to your future, which makes sense. Yeah. That's not to say that I won't ever go off and do something entrepreneurial.
Starting point is 00:56:43 I think I have it in me. I think the reason why I have the perspective that I, or the position I have for the question was that when you're at your age, you tend to be able to absorb more risk. Yeah, that's true. And so this generally is when people make more risky moves. Yeah. Yeah. But Adam, if he goes to Facebook for three years, he's only 25 then. I mean, still. It's true. Footose and fancy free man that's true you got time well the good thing too is there's
Starting point is 00:57:12 somebody out there that's in you know that's two steps behind you right that's listening that's going to make this choice two three years from now for themselves and they may take your words victor as like wow man i listened to the change all that one time and my life changed because of what victor said and that wisdom he shared so that's how it plays out we're putting a lot of pressure on you here victor a little bit yeah you're about to change someone's life with what you say that's right say it choose your words wisely oh man this is. This is a fun space. I never really imagined this IO
Starting point is 00:57:48 space, this IO Games space, being like it is. And it seems like it's for fun, and it seems like it's for profit, and it seems like there's some ringleaders out there who've really killed it and have cornered the market. Clearly, IOGames.space has made a place where you can go
Starting point is 00:58:04 and find plenty of the games. And they've even attached their own ability to make money off of your game by serving their own ads and stuff like that. So that's really... A little ecosystem. Yeah. I mean, it's like just this layered onion of the web, Jared. It almost reminds me... It reminds me of the old web, but it's not.
Starting point is 00:58:25 Flash games. It's web-based. And this revival, this renewal of love for the web. Yeah, and even more love for the web because it doesn't require a plug-in anymore. I mean, it's a lot like the Flash games of the days of yore. You know, yesteryear. I think there will always be a place for casual gaming. And I think the web is a great place because it can be
Starting point is 00:58:47 low friction, because it can be massively multiplayer, because an individual like Victor can run a server or have a cloud instance that scales up endlessly when he needs it. But a lot of the heavy lifting is done on the devices and just the accessibility of the web technology stack. You know, it's the same Node.js and Express and client-side JavaScript that you're using to build your website. You know, learn some Canvas, maybe grab Phaser,
Starting point is 00:59:16 or maybe, you know, be hardcore like Victor and do your own mathematics. And you can get up and running relatively quickly. So the move from a good idea to implementation especially once you have a how-to you know tutorial you could just follow step by step and tweak it to to remix for yourselves is i mean that's the spirit of the web right there is like no permission you know from idea to live and you know a couple of days if you if you got free time and Not just live, but blown up.
Starting point is 00:59:46 Viral. Given you got $15 a month for not a $5 Linode, maybe a $15 Linode. Yeah. Maybe it's late in the game, but if someone was following these footsteps, what are
Starting point is 01:00:02 some of the core steps you would take to build one of these games core tech is there any resources you could recommend obviously you've gotten the part one and part two jared mentioned here is that the extent of it what would you suggest yeah i mean i would say to just i would say that the part one part two i wrote are pretty in-depth. They cover a lot of it, but a lot of what you're going to be missing from those is sysadmin type stuff. How do I actually
Starting point is 01:00:32 deploy my own IO game? For example, how do I get HTTPS? How do I get SSL running? A lot of that is just going to come from experimenting with it. If you want to do this, just go and do it. And there are tons and tons of good resources out there on the internet that you can just find and you can just read, follow in their footsteps, like, do it like they did it. And then see how it works for you, right?
Starting point is 01:00:58 It's really easy today to just get a server, right? Pay five bucks for it and put up your game and, your game and buy a domain for a year for like five bucks and have people start playing it. And then just learn as you go, right? Like there's no reason to not just jump in. What about first steps once you've launched it to tell the world? Is it, hey, tweet about it or drop a post on Medium
Starting point is 01:01:19 or whatever, like what are the ways that you would go about making your thing known? I think the number one thing you got to do here is you got to go to iogames.space and you got to register your game that's the number one thing okay yeah are you sure you don't work for them i'm sure i promise don't worry i'm just kidding call me crazy too on this front. I kind of feel like, you know, you got these two blog posts out there, but I kind of feel like you got more in you kind of feel like what, how hard would it be to create a mini course that is like a,
Starting point is 01:01:54 a one-stop destination for those coming to this space to, to build their next big thing. Oh, I could, I think I could do it. Yeah. I mean, I could do it,
Starting point is 01:02:03 but I think the reason I wanted to keep it short is because I'm not sure there's that much demand for it but I don't know if someone were to convince me otherwise I'd definitely be willing I feel like this just turned into a pep rally where Adam convinces you to be an entrepreneur he's like you could create a course and sell it
Starting point is 01:02:21 a little bit I believe in you, Victor. Yeah. Don't go to Facebook. Well, let's talk about machine learning a little bit. Just hard right here, because this is what you've been writing about. You know, we happen to hop on this multiplayer IO game post of yours, but mostly what you've been writing about is random forests, you know, decision trees, machine learning.
Starting point is 01:02:44 First of all, are these things that you're going to be able to apply in your new life at facebook and secondly what is it about these things that excites you etc that you're i mean you're doing deep dives so you're i know you're you're probably having to do some of this stuff for your school work but you know no one's making you go with all these diagrams and stuff on your decision trees ones specifically or on your random forest post. Obviously you're, you really enjoy these topics. Actually, I'm not probably going to be able to do much in my new role at Facebook with this kind of stuff. Um, and that's by design. So there, I like, I think I write this, I think I have this on my
Starting point is 01:03:21 blog. It's like my, my one-liner by myself it's basically like i'm interested in machine learning and web development right like that those are kind of like the two things i really do um and so my job is going to be more like full stack web type stuff so i'm probably not going to do much machine learning um but i actually just you know i i think machine learning is interesting i think it's gonna be around for a while there's a lot more that we haven't done with it like as a you know human society um it's gonna change our world definitely in the next like decade or two um and so it's just something fun for me to it's kind of like a hobby i guess it's fun to learn about it's fun to experiment with
Starting point is 01:04:00 um and it's especially fun to try to explain to other people, because I think there's sort of this aura around machine learning where people are like, oh, it's so complicated, right? It's this new magical thing. It's how we made self-driving cars. But in reality, if you really wanted to get into it, a lot of it can be explained very simply to people with very little background in this kind of stuff. And so that's kind of what I've been challenging myself to do. And that's where a lot of these blog posts have been coming from. It's like from the person in me who's like, I know I can explain this. I bet there's a better way to explain this.
Starting point is 01:04:38 I bet I can make someone understand this. And that's what I get out of it. So for those in the audience that are sort of tracking you on ChangeLog and reading what we've been linking out for you, what's upcoming for you written-wise? We know you're going to Facebook. I've already tried to sway you against that.
Starting point is 01:04:58 I'm just kidding. I think you're making a great move. But we know kind of what's coming up in your near future in terms of employment. But what about your writing? What's coming up for you that you can tease here um yeah so i definitely got some stuff in the works right now um i want to build on some of the success of my previous like you know like the neural network post for example um i i have a post coming up about convolutional neural networks um it kind of builds on top of that
Starting point is 01:05:24 one we go into cnn's it's kind of like a deep dive we do some image classification um i'm also going to do some stuff with rnns like recurrent neural networks um do some you know text classification maybe some sentiment analysis kind of like hot topics in natural language processing right now um and then once i have that like kind of base like the base starting point established where i can be like hey you should read these introductory tutorials then i can start to maybe get into some more uh some more intermediate to advanced topics like um one of the ones i was thinking about was like visual question answering that's really interesting
Starting point is 01:06:01 like give i give you an image i give you a one line question about it can you answer that question right it seems really hard like from a you know from a surface level right it seems impossible like how do you even how do you even begin to do that but in reality like there are there are very like there are simple steps you can follow right there's it's it's not as complicated as you think um so i think like there are some fun applications out there uh that i would love to write about maybe like throw up some example code for um and just play with so cool well victor thanks so much for schooling us and bringing some nostalgia back to these old these old fools here that joined you today i love the old web and like this new stuff
Starting point is 01:06:42 it's pretty cool yeah no problem no problem. It was fun. I never knew about this world at all. And I feel so old saying that. And I shouldn't even admit that because it's just just terrible. But it's been fun to talk to this. And thank you for sharing your time with us. Yeah, thank you for having me. All right. Thank you for tuning into this episode of the changel Log. Hey, guess what? We have discussions on every single episode now. So head to changelog.com and discuss this episode. And if you want to help us grow this show, reach more listeners, and influence more developers,
Starting point is 01:07:18 do us a favor and give us a rating or review in iTunes or Apple Podcasts. If you use Overcast, give us a star. If you tweet, tweet a link. If you make lists of your favorite podcasts, include us in it. And of course, thank you to our sponsors, DigitalOcean, GoCD, and Rollbar. Also, thanks to
Starting point is 01:07:35 Fastly, our bandwidth partner, Rollbar, our monitoring service, and Linode, our cloud server of choice. This episode is hosted by myself, Adam Stachowiak, and Jared Santo, and our music is done by Breakmaster Cylinder. If you want to hear more episodes like this, subscribe to our master feed at changelog.com slash master,
Starting point is 01:07:56 or go into your podcast app and search for Changelog Master. You'll find it. Thank you for tuning in this week. We'll see you again soon. Congratulations. You've listened all the way to the end of the show. And guess what? Got a little surprise for you. Here's's a preview of brain science our upcoming podcast coming out very soon the easiest way to subscribe is to subscribe to our master feed at the changelog.com slash master get all of our podcasts in one single feed plus some extras that only hit the master feed including brain science brain science is a podcast for the curious we're exploring the
Starting point is 01:08:45 inner workings of the human brain so we can understand things like behavior change, habit formation, mental health, and this thing we call the human condition. It's hosted by myself, Adam Stachowiak, and Meryl Reese, a doctor in clinical psychology. It's brain science applied not just how does the brain work, but how do we apply what we know about the brain to better our lives? Here we go. As humans, one of the things that separates us from any other animal out there is the fact that we have language, we have words, and we have super powerful words that truly change how we feel and how we make other people feel. If the words we say have so much potential to influence ourselves and the world around us, how do we begin to understand the power of words? So words really are the thing that
Starting point is 01:09:31 separates us from all other animals because, right, sharks, bats, dogs, lizards, they don't talk. And this is really critical when it comes to managing our moods and our feelings. One of the things that I sort of talk about or even I mentioned earlier about the way in which we file things in our mind according to feelings, this is exactly how we differentiate it too. Thinking about an example like with professional athletes, you might say that they get anxious before a race or before a run or a dive. But using that word, it's not really a threat, right? But their brain would be like, oh, I'm anticipating or I'm excited, it creates a different sort of rollout of emotions as well as physiological responses. I mean, I'm anxious about going to Disneyland is not usually what we say, right? I'm excited.
Starting point is 01:10:39 Exactly. Exactly. So it then puts a lid on or files things differently in our mind, which then reptile lane where I'm always just flipping my lid. I'm reactive. I'm angry or I'm sad. But rather I can go, I recognize this is how I'm feeling or like I'm afraid of some other threat like losing my job. And I can go, you know what, here's the words I can use to talk to myself about that fear so that I'm not just stuck feeling afraid of a possible threat, which has never occurred yet. You use this concept too to say customized thinking. I'm not sure I fully understand what you mean by customized thinking. What do you mean by that? Well, because we are human, we do have the power of choice, which is super powerful. Like nobody
Starting point is 01:11:47 has to tell you how you need to think or how you need to feel, right? And like your version of success might be very different than mine, which is going to impact my choices and the direction I'm headed. And so when you think about customized, right, I mean, you can customize a car, you can customize your order at a restaurant. Like it really is tailored specifically to you and going, how do I want to think and how do I want to feel? One example I consider is I want to always I want every day of the week to feel like I do on the weekend. Because to me, the weekend feels great. I'm with my family. I'm not sort of running things with such a tight timeline. And there's just a different sort of ethereal vibe to the weekend. And I think, why does that
Starting point is 01:12:40 only have to exist on the weekend? I want that every day. Why is that? I want that every day too. Well, and I think part of it is really our attitude and our expectations. I mean, there are legitimate threats all around us, but it doesn't help me do me or do my life any better if I am only focused on threats. So I want to practice changing the channel in my mind that says, hey, yeah, I see that potential job loss, but I also see I'm with my family right now. And right now, nobody can take sort of what I've been through
Starting point is 01:13:17 and how I feel away from me. I'm in charge of how I feel. So I'm going to do things that actually contribute to feeling better. So how do we apply this name entertainment idea to this model then? Because maybe if you name the week the weekend, can you change how you feel about it? Because that's really what it's about. How do we take the labels we apply things to things, the names we give things, the words we use, the choices, what I think we might call nuance. I'm not really sure how you put that into play with the power of words.
Starting point is 01:13:52 But the difference between, like you said before, being anxious or being excited, fundamentally it's almost the same feeling. But from a nuance level, it's very different. It's one direction or the other of excitement, negative excitement potentially or positive excitement. How do we apply that to customized thinking? Well, I think that's a great way to say it, Adam. I really like that nuance because what we're looking for, even as I talk about the different brains, we want a symphony. I mean, I'm not going to fire the woodwind section because I don't like a violin, right? So I don't want to fire a certain
Starting point is 01:14:30 part of my brain like, you're not really helpful. I don't need to see that. But what we need is a sense of congruence. And so sure, not every day of the week can feel exactly like the weekend. So I'm not going to say this is how I feel, but I have to actually believe it for it to impact my mind, my brain, and my body in the way in which I desire it to. And so I might use the words like, I strive for every day to have a feeling that reminds me of exactly how I feel on the weekend so that I don't lose sight that like every day really is a gift and I get to enjoy every day of my life to some degree. And so another example might be I'm living out in the Pacific Northwest. A lot of people have negative feelings about the weather.
Starting point is 01:15:25 Imagine that. But so if someone were to say that they just need to learn to love it, that's going to create what we call cognitive dissonance. It doesn't fit. So it doesn't matter how much I'm like, oh, I do love the gray. I do love the clouds. It's not going to jive with me. And so it won't stick. So instead I can say, I love the way in which the rain creates the green. And in the summer,
Starting point is 01:15:53 when it is green, it is amazing. This idea of learning to live with it though, get over it. It is what it is. Like there's so many phrases we use to say just that, like just learn to live with it. What is it called again? Cognitive dissonance. And what does that mean when you play it out? It doesn't go together. So if you're like, oh, just do it. You just need to get over it.
Starting point is 01:16:17 Like that really isn't helpful either because your body is giving you a signal and your brain is telling you, I don't like this sensation. I don't like this sensation. I don't like how this feel. I mean, a lot of people will say, oh, I just hate the gray and the gray is just overwhelming. And so we have to go, well, what's my emotional buy-in? Like, what do I like? How does that even allow me to enjoy something else? And so I'm going to look at going, you know what?
Starting point is 01:16:48 I really like that I get to wear warm clothes or I really do love my coffee because it's for such a long time, it's gray and rainy. I want to be inside by a fire drinking my coffee. And so how can I look for going, you know what? If I do these things I might not want to do, I do get some more of what I do want to do. And so it's really almost like a bartering system in your brain of saying, if you do this thing you don't like, you get this thing you do like.
Starting point is 01:17:18 Or, you know, I know you don't have to make yourself do this thing unless you can see a way in which it actually benefits you or speaks to you emotionally everything adam really has to have this emotional buy-in and if there's no good emotion no really the primary neuro neurochemical in our brain is dopamine for feeling good i don't get some hit of dopamine. My brain's going to be like, it's not worth it. And I'm not going to do it. Period. That's a preview of Brain Science. If you love where we're going with this, send us an email to get on the list to be notified the very moment this show gets released. Email us at editors at changelog.com. In the
Starting point is 01:18:06 subject line, put in all caps, BRAIN SCIENCE with a couple bangs if you're really excited. You can also subscribe to our master feed to get all of our shows in one single feed. Head to changelog.com slash master or search in your podcast app for ChangeLog Master. You'll find it. Subscribe, get all of our shows and even those that only hit the master feed. Again, ChangeLog.com slash master. Thank you.

There aren't comments yet for this episode. Click on any sentence in the transcript to leave a comment.