Greater Than Code
249: #TechIsHiring + eSports and Software Engineering with Chad Stewart
01:19 - Chad’s Superpower: Making People Laugh
- Using Comedy to Deal with Problems
03:46 - #TechIsHiring
- Bot: @TechIsHiring
- Amplifying Others
- Using Networks For Good
- Being a Bridge/Connector
- Actively Working to Benefit Others (Possibly Professionally?!?)
- Diversify Tech
31:03 - eSports and Software Engineering
- Street Fighter
- Strategy & Feedback
- Online vs In-Person Events
- GGPO Rollback Networking SDK
- Chad on Twitch
- Netherrealm Studios
-
Guilty Gear Strive
Reflections:
John: The simple act of connecting others with a hashtag.
Mandy: Follow @GreaterThanCode for new content and RTs! Amplify others.
Mando: Drawing comparisons and connections between playing fighting games and software development and engineering. Bringing experience from one realm to another.
Chad: The possibility of being a connector in a professional sense and the validation of comparing fighting games and software development as a discipline worth talking about.
This episode was brought to you by @therubyrep of DevReps, LLC. To pledge your support and to join our awesome Slack community, visit patreon.com/greaterthancode
To make a one-time donation so that we can continue to bring you more content and transcripts like this, please do so at paypal.me/devreps. You will also get an invitation to our Slack community this way as well.
Transcript:
JOHN: Welcome to Greater Than Code, Episode 249. I’m John Sawers and I'm here with Mando Escamilla.
MANDO: Thanks, John. Hi, and I'm here with my friend, Mandy Moore.
MANDY: Hey! And I’m here with our guest, Chad Stewart.
As a software engineer and esports athlete with many years of experience in both fields, Chad dives deep into issues that he comes across, drilling down to the core of a problem and finds solutions others may miss, letting the lessons of the journey guide future expeditions into the unknown. If you’re confused at comparing esports to software engineering, you’d be surprised at how similar they are.
Welcome, Chad.
CHAD: Thanks. Thanks for having me. I never imagined that writing that [chuckles] and it being literally the thing introduces me on a podcast. Wow, I’m sorry, I’m a little mesmerized.
MANDY: I really do want to ask about how we compare esports to software engineering. But before we do that, we have to ask our standard question that we ask all of our guests, which is what is your superpower and how did you acquire it?
CHAD: So, funny enough, I listened to a few episodes before coming on and I wanted to tell a silly joke, but that segues into what my superpower is, is I make people laugh. That's just something I like doing, it’s a big thing for me and I guess, I acquired it by watching Cartoon Network way too early in my life [laughs] and just being, I don't know, I just enjoy making people laugh. I enjoy making myself laugh and I guess, it's just fun. To be honest, that's what I kind of do on Twitter all day, make people laugh.
MANDY: That's awesome. That's a great coping mechanism. Especially these days, I find myself doing the same thing, trying to make light of situations so things don't seem as dark. [laughs]
JOHN: Years ago, a friend of mine, it wasn’t exactly a criticism but he was like, “Man, you’ll laugh at any joke,” and I'm like, “Oh, that's the option. I can either laugh more, or I can laugh less and I choose more.”
MANDY: Yeah, I always say I'd rather laugh than cry about it.
CHAD: I completely agree. There's so much sadness in the world at the moment. We've been in this pandemic for an extended period of time now and there's been people who've lost family members and friends, people who've lost livelihoods. Obviously, comedy is not necessarily going to fix all of that, but at the very least, it makes it easier to deal with those problems.
We were all hoping that we were going to come out of that this year and it feels like that's not even going to happen. There is some level of normalcy, but long story short, definitely I'd much rather see people smiling and having a good time and if I can add more of that into the world, then great. Just trying to make people laugh and it's fun, it's good for you. It's physically good for you.
MANDY: That's awesome. So I know that I reached out to you to come on the show because I wanted to talk to you specifically about, I think it's something you started around the beginning of the whole pandemic situation, The #TechIsHiring hashtag, do you want to talk about that a little bit?
CHAD: Yeah. So #TechIsHiring is a hashtag that is specifically for job seekers and people who are looking for candidates for their jobs. What I noticed is people would post their jobs, or post that they're looking for a job on Twitter and depending on how strong their network is, it would get a lot of traction, or not so much traction at all.
So I was thinking, there are people out there who are maybe looking for work and to be fair, it started mostly from that in the first place. More people are looking for an opportunity and posting about it on Twitter and if their network isn't very strong, or for whatever reason, the tweet doesn't get a lot of traction, then it may potentially become difficult for them.
I started the hashtag so that if I saw a tweet like that, I could add it to the hashtag. If you have a job tweet that you're looking for somebody to fill this position, I’d just go out and ask if I could add it to the hashtag and if you say yes, I just tag it with #TechIsHiring and obviously, the same for if somebody is looking for an opportunity. It's been fairly successful like within the last couple of weeks, there've been a lot more usage of it.
I don't necessarily have great ways of coming up with data on obviously how, if people are really benefiting from it outside of me maybe probing to see, but for the most part, I have the Twitter bot that I created for the hashtag. I have notification alerts for that and it's like my phone goes off all the time with notifications and I'm just like, “Hey, at least people are using it and people are retweeting it.” So I'm pretty happy about that. There's a few things I'd like to do to kind of expand it, but I'm definitely happy with where it is right now.
JOHN: So you're saying that the need you saw was that people are posting about that they're looking for a job, but maybe their network isn't particularly good, or they're not getting a lot of reach out of that and so, they're not really getting the benefit of all of Twitter being available to them. So you wanted to create this way to amplify those tiny voices that are saying, “Hey, I need a job.”
CHAD: Yes, yes, yes. To be fair, the #TechIsHiring, it's growing, but ultimately, what I wanted to be is pretty much the thing that people can rely on. You know what I mean? So in essence, I want to build the network for #TechIsHiring so I go and look for like jobs and for people who are looking for jobs, I will actively go and search for them on Twitter and initially, this was to add to the hashtag because obviously, the hashtag didn't have too much when I started it and it's just become a habit of mine.
There are definitely some people who are looking who, by the time I get come across their tweet, which may be even a week after they've done it, they've maybe had two, or three, or so retweets and likes. I was like, “Hey, if I add this to the hashtag, maybe at the very least, people will see it.” My network is decent. It's not the best I'm not super Twitter famous, but I have a fair amount of people that follow me.
So what I do when I'm asking is I always make sure to like and retweet whatever I find and ask so at the very least, other people on my network could see it and so, even if they don't reply—and to be fair, some people don't reply for whatever reason, maybe they never see it, or whatever. But even if they don't reply, at least some people are seeing it potentially and even a lot more now, I will retweet some people's job postings, or some people's looking for jobs tweets and people will retweet it themselves.
I'm just trying to, I guess, be that bridge, or I guess, middleman. I don’t know, I can't come up with a better term, but I've just tried to be that person that helps because it's like, everybody's kind of been there. Like, you're looking for a job and you're doing your absolute best and you're stuck with whatever information you have. Information, or resources you have and it's like, if I can make this thing so that people can of latch onto it and use that, then maybe a lot more people can get in contact with somebody who can offer them an opportunity. But that's pretty much it.
MANDY: That's awesome. I used to use the Greater Than Code account to do a lot of that—amplify the voices of others—and I used to be on Mondays, I would go and fill a buffer queue of just content that I found on the internet that I could retweet others. Ever since my daughter got “laid off the school,” that's been a little more difficult, but I'm hoping that in the near future, I can start that up again and do the same thing with the #GreaterThanCode hashtag.
But what you're doing, it's not easy work and it takes time to sit there, look, curate, put all that stuff together, and then amplify it out and get people to notice it, and engage with posts and it’s hard work. So thank you for trying to be that bridge and trying to use your network for good. I think that was awesome and part of the reason I wanted to get you on the show was because you've been doing it for a really long time and you keep up with it and it's amazing.
CHAD: Yes. Thank you, thank you. There's a few things that I want to do like, I would like to reach out to more employers and it’s just always an awareness thing. I just definitely like to reach out to more employers and be like, “Hey, there are candidates here who are tweeting on Twitter and they're in this hashtag, you can look through that.”
I kind of do it, but I do it like – so I was thinking about it the other day and to be honest, I actually did this way before I actually officially started the hashtag. When I first got on Twitter, or at least when I first got on tech Twitter, what I would do is I'd be doing the Twitter thing and just kind of oh, this person's interesting so I'd make a reply and have maybe a small conversation. And then I would see somebody who's like, “Hey, I'm looking for work,” and I was like, “Hey, I passed the thread that's talking about all of these jobs.” So I’d just link it to them and I was like, “Hey, hopefully, they'll get something out of it,” and I just did that.
That was just something that just came to be naturally like sometimes I'll be on Reddit and they'll be like, “Oh there was some job posts here. I'll just link it to this person, they're looking for somebody,” and I guess, it makes sense that I ended up making a hashtag to do that in a more official capacity as opposed to one off.
But what I definitely want to do is just to reach out to people, or to more people actually who have positions and I probably should reach out directly to the people who I'm retweeting who’s saying that they're looking for people and link people, especially people who I've already retweeted and be like, “Hey there's a candidate here,” and just stuff like that. That's something I want to do.
There are a few organizations that talk about jobs on Twitter a lot and I want to reach out to them and just ask them if they could use the hashtag. I tend not to mess with them too much because they're out trying to make money and so on and so forth, and it feels kind of weird. I don't want to retweet their stuff. I don't know what their marketing plan is. But I just want to reach out to them and be like, “Hey I'm doing this thing” because I don't have any numbers on who benefits from the hashtag. It's all in hopes of type thing. So I just want it to be a little bit more direct with, “Hey employers, there's actually people here that you can look at.”
So that's pretty much the direction that I'm hoping to go in while obviously, also, actually adding opportunities and people who are looking for options. But hopefully, people start doing it on their own, which is the ultimate goal is that I don't have to curate it myself because everybody understands that it exists. But for now, I don't mind doing that work.
MANDY: So I love the fact that you're a connector in that sense. That's what I consider myself and what I would do before actually being a host/panelist on the show. I feel like you should really hook up with this person and talk about this thing because do you know this person? And then I've had so many people come back from conversations with all the people that I've hooked up on podcasts and they're like, “So-and-so is like my new best internet friend now, thank you so much for introducing us.”
[chuckles]
I love being able to take people and being like, “You like this, you like this, do you two know each other?” and forging relationships like that. That's one of my greatest superpowers I feel so it seems like you're in the same boat, which is really cool.
CHAD: Yeah. I would definitely say that I've been doing that for some time more in an unofficial capacity. It's more like, “Oh, this person needs something. I know somebody who can help with that.” So I go, “Hey, this person needs so-and-so,” and I just bring them together.
I haven't been doing it too much of late. Well, I guess, I have because of the hashtag, but I haven't been doing it too much lately because I feel like the tables have turned; I'm the person that's in need more often than not. But it's definitely something I would definitely like to do more. Again, obviously I'm doing it with the hashtag, but it's definitely like, I've always been like that even as a kid. I've just always been the person who will just help just for helping’s sake.
I'm not necessarily trying to like, “Oh, I'm going to help you so you can help me.” Like, no. “You need something. I think I can help you with that. What can we do?” I don't know, I like working to benefit people. I feel good doing that. You know what I mean? You hear people like, “Hey, things really worked out because of what you did,” and I'm just like, “Hey, I'm happy I could help.” I've always been like that since I was a kid and I intend on continuing to do that professionally.
I guess, now that you bring it up, I'm like, “I really should think about it more actively” because I do it very passively. It's usually, I have a friend who’s looking for a specific job and I will just be minding my own business on Twitter and then I'll see a job that looks like something he wants and then I'll just send it to him. [laughs] He'll give me his reply and he'll be like, “Oh, thanks for thinking about me.” It's like, “Yeah, no problem. I just want to help.” I've always been that person.
MANDO: I'm really glad you said that because I've been hearing you talk about how much you get out of this in addition to everything else that other folks get out sparked this question in my head, which was that have you thought about doing this professionally? Because there are a lot of people who get paid very well to do this kind of stuff very poorly and so, I wonder [laughs] if someone who knows someone who does it well and actually has a love for doing this kind of stuff, if you thought about making this an actual full-time job.
I just went through a hiring process and we just hired an engineer over here. I would gladly engage with recruiters that I knew were doing the work that you're trying to do as opposed to folks that are just downloading whatever they can off of Indeed, or other resume sites and tossing them in my face with little to no filtering.
CHAD: I actually have never thought of it as something professional to do only because I don't know, because I always viewed each event that happened where I'm helping somebody as “Hey, I helped that person.” I never viewed it as a group of, “I can do this professionally.” I don't know, like it's never really crossed my mind literally until you mentioned it. I don't know, it would be interesting. I would love for my career to be – to be honest, I don't even know what my career should look like at this point.
[laughter]
I'm just all over the place. I just like being here. [laughs] I just literally enjoy being here. Like I said, I haven't really thought about it professionally. Actually, literally after this, I'll probably give it some thought, but I'm going to continue doing this regardless. Even if, say for instance, I don't think about it as doing it as a job where I get paid, but definitely just because I did something that just feels good to me and I get to help other people, I do get the benefit of feeling good that I helped somebody else, I'm going to continue to do it. But I never even thought of it as something that you make money off but.
MANDO: A lot of people super do. [laughs] I cannot stress that enough. A lot of people super do and it is my experience that very, very few of them are worth what you end up paying them.
CHAD: Yeah. [laughs] I understand.
JOHN: You were talking about connecting with other organizations on Twitter around hiring that made me think about Diversify Tech. We had the founder, Veni Kunche, on the show last year, I think it was and she's been doing fantastic work over there. That was the first organization that came to mind when you were talking about reaching out, so they do good stuff.
CHAD: Yes. I was definitely thinking about reaching out to them especially because they do a lot of work on Twitter specifically. So right now, the way I think about it, the hashtag obviously lives on Twitter, but it's mainly focused for the Twitter community only because at the time, I was just like, “Hey, people on Twitter are posting these things, I should make some space to put all of these things on Twitter.” Obviously, it doesn't necessarily have to be. Could end up being an entire organization, an entire company, or something like that. But specifically, because they do so much work on Twitter already, I definitely want to reach out to them.
MANDY: That’s cool.
So I want to go back to the thing we were talking about with reading your bio about comparing eSports to software engineering. Can you tell us more about that?
CHAD: Yeah. So it's been something that I've been thinking about for a while. I say eSports athletes, I don't want to say professionally, but I compete playing fighting games. I've been doing that for about 11 years now. Pretty much the way I view it is when Street Fighter IV officially released on consoles, which was, I think February 9th. It was sometime in February 2009, that's when I kind of view my “eSports career” starting because I've been playing fighting games because of that. I played fighting games a lot longer before that, but when I started taking them seriously and competitively.
During that time, I was in school for software engineering at Nova Southeastern University and what I have found, that I especially kind of feel this now, is my abilities as a software engineer and as a competitive fighting game player tend to complement each other. I haven’t had, I don't want to say official, but I haven't sat down and wrote this out, or have a thesis.
But I find that there's a lot of comparison to fighting games and to making software so much so that I've been playing fighting games for a while and I would consider myself, if we're going to use the same terminology as software engineering, a senior fighting game here.
MANDO: Love it.
[laughter]
CHAD: As funny as it is, when I have conversations with people and what they would consider a senior software engineer, it's like I do more, or less the same things in fighting games. For instance, a question of tooling—and you can definitely chime in because I'm not going to pretend that I'm the most knowledgeable in the industry, especially from actual experience standpoint.
But from my understanding for a senior engineer, they understand various tools, they understand when to use them, what situations to use them in, when not to use them, how to tie things together, teaching other people how to do these things, they advocate for their project that's a little bit out of the fighting game. I guess, not really. But I guess the thing is that same thought process, the using the various tooling, is how I would—I'm looking literally back at my system just to think.
[chuckles]
But it's the how I play fighting games at this point like, I have tooling in my head. For instance, I'll be playing a match against a type of player and I'm like, “Okay, this type of player is so on and so forth. This generally works on this type of player. So let me apply this,” and so, “Okay, it's working,” or, “Oh, it's not working. Let me make some adjustments here.” I just feel like it's the same type of – I can't speak directly on that, but it feels so much like the same type of decisions except with software tools.
When do you use MySQL? When do you use Mongo? Obviously, you don't have an opponent. You could make a construct of what an opponent is if you want to keep that same type of thought process. But you use tools for specific situations and then you make adjustments based on the way the situation changes, maybe based on your features that the user wants, or based on what you've been finding has been successful, or you want to maybe add a feature, or so-and-so.
I just feel like the thought process is similar. Even the way you use basic tools in programming variables, functions and so on and so forth and how you don't even necessarily think about them, but you obviously use them because you have to. You do the same thing with fighting games. In fighting games, our primitives is we call them normal where it’s you literally press the button and you do nothing else and an attack comes out. You know what I mean? So you can view them as primitives for, I guess, programming fighting games. I don't have a better term [laughs] to make the comparison, but I don't know.
It's like for me, as a fighting game player and as a software engineer, I feel like there's a huge comparison. I'm still growing as a software engineer, but I'm actually getting to the point where I'm trying to look at my fighting game career, or my growth in fighting games and try to compare them to my growth in software engineering and see oh, where did I have issues here and how did I solve them? But that's just my thing like, I just feel like there's a comparison there that I definitely would like to explore a lot more, especially since obviously I'm in both industries, you know what I mean? But that's kind of why I make that comparison.
JOHN: Yeah. I was thinking you could think of it okay, the opponent is a right heavy database load that needs to scale 10x and we're going to attack it with sharded Mongo and RabbitMQ. [laughs]
CHAD: Right, and then how does that work? Because it's about the feedback, right?
JOHN: Yeah.
CHAD: It's the same thing in fighting games; it's about the feedback. I don't want to say it's more important than fighting games, but the thing is, a lot of people in fighting games, they have their strategy and they use it and it either works, or it doesn't work and they live and die by the strategy. But a lot of the times, it's you start with one thing because that's what you know and then you get feedback from the opponent, you know what I mean? You're generally trying to make the feedback favorable for you, but at the end of the day, it's just you leveraging the feedback from the opponent.
It's the same thing—in fact, it's extremely stressed in software engineering that you do get feedback from your users, or get feedback from wherever from either directly from your users, or say, for instance, there is some issue with your implementation, you have logs and so on and so forth. So it's like, what do you do with all of this information and like I said, I just feel like there is a comparison there that is really interesting.
Again, I don't necessarily have this as a thesis, or anything. It’s—I’ve been saying this a lot—something I definitely want to explore, but it's just really interesting to me. I still play fighting games. It's been years. I played two different Street Fighters and I've used the same mindset and I still have the same comparisons. I feel like there's something there that's worth exploring.
MANDO: Yeah, man. Just like what you were saying, Mike Tyson had a famous quote, “Everyone's got a plan till they get punched in the face,” and that's what you're talking about exactly with the fighting games and what John was talking about with the [laughs] heavy database load in an application.
I come from the technical operations world where we absolutely view all kinds of things in adversarial terms everything from malicious users to external and internal systems to, on our very worst days, other developers and engineers. [laughs] It is through no fault, but you have to be careful to make sure that someone can't accidentally do something bad to a production database because no one's and everyone makes mistakes.
Going back to what you were saying about drawing the connections between being a senior engineer and a senior fighting game expert, which I love that idea. In both cases, you build up this experience, this learned experience over time to where you learn.
The reason that I don't want you to have production database access isn't because I want to keep things away from you, it's because nobody's perfect and I'm not perfect, which is why I don't have it either. It's too easy to make these kinds of mistakes, but you have to balance that with your ability to actually get your job done. Like, don't tell me I can't have database access when I need database access to get this stuff done.
I imagine this the same way in fighting games. You want to win so you have to do stuff. You can't just sit there crouching in the back the whole time waiting, you know what I mean?
CHAD: I'm literally trying to formulate a scenario, but trying to form it in a way where I can actually explain it without using terminology and just going over everybody's head. So a similar situation would be in fighting games is that you would play a specific range so that you can go in and out of the opponent's range, but they can't attack you. I don't know if this is actually a good scenario—the only other thing that they could do is jump and in essence – or jump at you and so, you're holding this range to force these two options.
In your scenario, it's more like oh, this is to make sure that things don't happen. Bad things don't happen in a project. This is more okay, I know that if I'm too close, they can do more, or less anything they want to me so I'm going to hold this range so that they can and then I'm just going to leave them with these two options that I can control. This is not necessarily [inaudible], right? [laughs]
MANDO: No, it's 100% perfect, man. It's the same exact idea of me giving you production database access, but I only give it to you with a read-only user, or with certain CPU quotas, or something like that. So I'm making sure that what you can do is constrained in ways, like you said, that I can control and it's not only just to be defensive, it's to make sure that you get, I don't know, the most positive outcome of the situation.
CHAD: Right.
MANDO: Which, in a fighting game, is to win.
CHAD: Right. Like – [overtalk]
MANDO: And in my case, is to not get paged in the middle of the night.
CHAD: Right, yes. In fighting games, the goal is to one, the whole thing is to generally avoid getting hit. But if you can get hit, you at least know where and you can deal with it. This is more from a defensive scenario; I can come up with offensive scenarios, too. I just lose it trying to keep it in line with the same thought process.
MANDO: For sure.
CHAD: But it's like, I personally have not been in that situation that you described in terms of a production database. But the fact that I could come up with a scenario that is similar to something you described and they're completely, I don't want to say, obviously it's not completely, but it's different realms. It's just something interesting to me and then again, obviously I'm still learning, but I'm not learning.
I'm more of an expert in this thing. So I think that using my knowledge here to make the comparison to what I would say need to learn, or need to understand, or just how to approach a problem. I don't know. It's all jumbled in my head, but it's just fun. It’s just something fun that I want to explore more. I’ve been saying explore more a lot.
JOHN: Yeah. It’d make a great series of blog posts.
CHAD: Yes. I've been thinking of that, or making videos because then especially since fighting games is a very visual thing. I've been streaming recently, so it's just like, I can actually play the game and then maybe I can make a video on the game a little bit and then make some comparisons to basic ideas in software development.
It's something that I really wanted to play with very recently, especially because I still play the game and I enjoy it, but sometimes, it's frustrating because the internet is internet, right? But it’s something I just want to explore, something that’s really fun for me.
MANDO: So what are you playing right now, specifically? What are you competing in?
CHAD: So I play Street Fighter V. I don't compete too much anymore mainly just because there aren't as many active communities. So I live in Jamaica and there aren’t that many communities, not necessarily for eSports in general, but specifically for Street Fighter. So I still watch a lot of events on Twitch and I watch a lot of match videos on YouTube, but I'll play the game here and there and then obviously, I'm still trying to grow as an engineer.
I spend a lot of time doing that, but that, I would say a Street Fighter V. There are a few other fighting games that I'm interested in. Street Fighter V, it's being phased out. Eventually, a new version of that game will come out and for Street Fighter specifically, a lot of the times when they release a new game, it's fairly different from the previous one. So you take your fundamental tools and then you build on that with what the game gives you. But that's what I'm playing right now.
When I say I'm a fighting game player, I mainly play Street Fighter. There's some people who play a variety of fighting games and it's extremely difficult because a lot of fighting games are very different. The intricate decisions that you make are very different like, just how you approach the opponent is very different. But that's mainly what I've been focusing on for right now.
I'm hoping to get back into it once things settle down bit more—obviously, the pandemic put a damper on all manner of physical events. So once we are able to get back together when it's more safe, I'm really hoping to take part in that.
MANDO: Yeah. That was going to be my next question was how many of these competitions happen online versus having to have to be in-person because of response times and refresh rates? I've known a couple of people throughout my life who do this competitive gaming and the idea of trying to do it over the internet would just make them gasp like, “Oh, never. Never.” [laughs]
CHAD: Right. It's gotten significantly better than 10 years prior. 10 years prior, I won't say it was a nightmare, but it was pretty close. It's gotten better and I'm not going to pretend that, at the very least, the game that I play Street Fighter V is perfect. There are other fighting games where they've made significant strides in making the online experience better.
Funny enough, there's a project that recently, what I mean by recently within the last 2 years, got open sourced called GGPO. It stands for Good Game Peace Out. It means absolutely nothing to nobody; it’s just everybody's just used GGPO. But the creator is somebody who used to run the largest fighting game event. He's more of an advisory person now, but he used to run the largest fighting game event in the world.
He created, they call it Netcode. It's an unofficial term for just how the network works in terms of dealing with multiple players, but he created a system where generally, when you have two video games, I don't want to say generally, but for the most part, a lot of video games would try to keep the game as synced as possible. So if one of the two systems—within fighting, it's usually two systems. If one of the two systems went out of sync, then the other one would immediately stop what it's doing and try to sync up with the other system.
So this person, I don't remember his name. He has a twin brother. We call them the Canon brothers. I don't remember which one did it. Either way, he created a system where the idea was instead of keeping both systems synced all the time, making that the main thing that the network does, is we'll have both video feeds play on their own. We still would do some syncing here and there. But what we will do is just ensure that – how do I describe it? Say for instance, you would have the one video feed being specifically on a specific frame.
For people who don't know anything about video is that to get video, you just literally redraw images over a period of time and you get motion from that and we, in fighting games, use that specifically to understand how fast things are, what are our options, and so on and so forth. So in fighting games, it’s generally 60 frames per second that we use.
Say for instance, the video feed for one device is on frame two and the video feed for another device is on frame three. Like, the devices are out of sync, but what they will do is for the device that's ahead, they will say, “Okay, this is what happened from the device behind,” and they call it rollback. They call it rollback Netcode and they will roll ahead device back to what the behind device was. The idea is to keep the video feeds as fluid as possible, because timing is a big deal for fighting games.
So he did all of this work and it became a really, really popular option for net play, but he owned the rights to it at the time and he had owned the rights for 15, maybe not 15 years but for a long period of time and he recently opened sourced it. So it's something that I'm hoping that more game developers will be able to pick up on it and use it in their fighting games because otherwise, they would have to do one of two things.
They'd obviously have to get the licensing from him and use it in their game and he would provide technical support on how to implement it, or they would have to come up with their own thing and a lot of the times—in fact, funny enough, Street Fighter V is a famous example of this—is they won't get the implementation just quite right and then it just makes it a bad experience for the players.
But again, I guess, going back to the conversation about online fighting games, it's been getting better. Like I said, that's one option. There's a company called NetherRealm Studios for people who, if you remember Mortal Combat, they're the company that works with that, makes Mortal Combat. They themselves have developed, I don't know too much about that personally, but their Netcode—I use air quotes—is “exceptional.”
One of the big challenges is playing somebody from across the United States. So California to New York would be a good example. That's usually a horrible time for both people, but with both, GGPO and Mortal Combat, their Netcode is so good that that actually can happen.
I'm sorry if I'm sounding super technical, but there's another game that got rereleased recently, Guilty Gear Strive, where the Netcode is so good that people are playing cross continents. Now it's reasonable for them. Whereas, if you left the state, or if you started playing as somebody from the East Coast to the Midwest, it wasn't even practical. It just didn't make sense. So there's been great strides in that.
Especially because of the pandemic, a lot of events have been online. As a community, we've transitioned fairly well into doing a lot of online events. There's a lot of games that have been running online events and a lot of people who run very famous offline events have now transitioned to running good online events until the time that we can actually get back together. It's been an interesting and tough time, but I feel like everybody has stepped up to meet the challenge.
MANDO: Yeah. No, it looks like it's Tony and I was just like reading through the Read Me for GGPO and I don't know a thing about this thing, but if what the Read Me says is true, it is super, super cool.
CHAD: Yeah.
MANDO: It uses input prediction and speculative execution to send inputs to the lagging side, or the non-lagging side to mimic what the lagging side would normally be sending over.
CHAD: Right.
MANDO: So the person who isn't lagging, to them it just feels like they're still playing and then it does the same thing to the other side. So [chuckles] even though you may not necessarily be playing each other, it still feels as though you're playing and not hanging and trying to do the sync like you were describing.
CHAD: Right, and it does that until both sides get information about the specific frame and what happened and so – [overtalk]
MANDO: What actually happened, right.
CHAD: Yeah, or what actually happened and then it would like, “Okay, this is what actually most people were trying to do.” It's really interesting. Well, I think I still have the project on my machine. Funny enough, something that I actually really wanted to do. I'm not allowed to say that because I’m, to be quite honest, outside of the explanation. I'm lost from a technical point of what exactly is going on, but I'm hoping somebody is maintaining the project. I haven't seen anybody do anything with it, maybe even extending it. To be honest, I would love to go into it. But for the moment, it's way out of my wheelhouse. [chuckles]
Because I think it's really important, you know what I mean and I would definitely love to see more game developers use it and if it kind of comes down to me doing something, you know.
[laughter]
CHAD: I just think it's a really important utility, at the very least, for fighting games because I've heard of other people trying to use it for other applications as well. It was obviously made specifically for fighting games.
MANDO: Right.
CHAD: But I just want to see the project continue and want to see more people using it. I don't know if it needs to be fleshed out because it was fleshed out during its development for an extended period of time, but I just definitely would like to see it leveraged more in fighting games. If nothing else, for my own sake, because I hate playing bad matches.
[laughter]
JOHN: So I think now is the time of the show where we do what we call reflections, which is basically each of us are going to talk about the things that we are going to take away from this conversation—maybe new ideas to think about, or just interesting points that have been made today.
For me, it's definitely just the tiny little act that you started with this hashtag; just connecting a couple people and just making this little thing and now it's gotten bigger and bigger and you're putting the effort into it to make it bigger and all those things. But just people have gotten jobs based on what you've done, undoubtedly. It seems inevitable even if you don't have numbers on it. It's such a simple act of just noticing two people that should be connected and could be connected and making that simple. It's a retweet, or it's a little DM, or whatever it is, sometimes those small acts can have such big consequences.
So it's wonderful to see that you noticed that that was a thing that could happen and that you could make happen and that you're continuing to put your effort into it just to make it bigger and bigger and be even more impactful.
MANDY: For me, I also go back to the beginning of the conversation when I mentioned that we had the Greater Than Code Twitter handle and how I used to be super diligent about amplifying others, putting others content out there and then I stopped. I'm going to make that my back-to-school goal is to come back and get that done.
So listeners, stay tuned. There's going to be some new content on Twitter. Follow us if you aren't already and also, make the effort to do the same thing. Do some simple retweets for others, amplify others. If you've got an audience, somebody else might not and just that simple act, as John said, can really help others. So be more cognizant and do that sometimes.
MANDO: Yeah, it's great. Or the way that Chad, you took this thing that you love, you spent a lot of time, a fair amount of your life devoting to becoming an expert at fighting games and then taking that and being able to draw comparisons and make connections between that and the stuff that you do every day.
When you were describing these kinds of connections, the idea that popped into my mind was there's someone, or someone's out there right now who grew up playing fighting game and they're super, super, super deep into it like, talking about all the stuff that you were talking about. Talking about NetCode, talking about hit boxes and refresh rate, all that stuff, normal. And then at the same time, they might be trying to break into the software engineering world and they're an expert over here and not over here.
So hearing you talk about these connections and what if this in the fighting world could be reflected in the software engineering world? That might be just the kind of stuff that they need to hear so they can make those connections, those same types of connections in their minds and bring that experience from one realm into another, into the professional realm.
It just got me thinking about all the different ways like you hear people often say things like, “Well, I don't have anything to blog about. I don't have anything to make a talk, or a presentation app,” and it's just not true. It's just like, there's so many people in the world who need this kind of content and how John was saying, this kind of content can make a material difference in someone's life and then that little bit starts a chain reaction. It's like a snowball going down a hill and you get someone who is able to start working now as a software engineer and by the end of their career, imagine all of the money and all of the stuff they've been able to do for themselves and their family and their friends and their loved ones, all because of something that you thought was some dumb blog post, or getting too technical in a podcast about stuff, you know what I mean?
Like, it's important, it matters, and we need it and we need more of it. So thanks. I guess, this part was my way of saying thanks for coming in and talking about this stuff, but also, encouraging other folks, myself included, to not be afraid to talk about things, or just a connection in your mind because it's not just you, it's other people as well.
CHAD: My reflection is one about making the whole connector person. I didn't even know it was something that could be done in a professional sense. Like I said, I do it because I'm helping people. That's the only thing that's in my mind about it. It's like, “Oh, this person needs something. I can potentially help them get it done,” and that's all that was in my head.
So just having that as an option, as hey, you can actually make money doing this. There's that and to be honest, the validation that making the comparison to fighting games and all the technicalities of fighting games and software development as a discipline, there is that connection and it's something worth talking about and bringing it to other people and is potentially interesting. Obviously, I'm at least half decent at playing fighting games.
[laughter]
So I can talk about that and I'm still growing as a software engineer so it's almost like I have a foundation. It's like, I haven't made that journey yet, but I have a roadmap and I can potentially draw that same map and then give it to other people and they may be able to potentially leverage it for themselves, which again, I'm helping. You know what I mean? [laughs]
MANDO: Yeah, man. That's how it works, brother. That's how it works.
CHAD: Well, yeah, that's definitely – I don't know. I'm really happy about at least that kind of validation, if nothing else. So thank you very much.
MANDY: Well, Chad, it's been wonderful talking to you.
MANDO: Thanks for coming on, man. It's been great.
MANDY: Yeah. Thank you for so much for coming on this show and thank you to our listeners. So we'll see you all next week.
Special Guest: Chad Stewart.