The Changelog: Software Development, Open Source - Creating and selling multiplayer online games (Interview)
Episode Date: May 24, 2019We’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)
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
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
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.
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.
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.
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
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.
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.
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
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
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
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.
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
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.
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,
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?
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.
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,
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
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
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
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.
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
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.
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
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.
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
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
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
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.
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?
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
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
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
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
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,
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
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
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.
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
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
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.
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,
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.
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
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
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
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.
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,
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?
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
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
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.
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
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.
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.
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.
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.
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
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
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
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
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
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
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
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
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
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
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
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.
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.
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
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
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.
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?
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,
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.
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
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
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.
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.
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
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,
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
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
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
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.
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.
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.
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
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
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.
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.
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?
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
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?
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?
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
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
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,
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
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.
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
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,
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.
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.
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
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
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
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.
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
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,
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.
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
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
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?
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
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,
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,
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
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.
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
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
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.
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.
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
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
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
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,
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
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,
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
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
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.
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
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
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
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.
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
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.
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,
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.
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?
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.
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
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.