The Modern .NET Show

Episode 87 - Learning C# by Developing Games with Unity with Harrison Ferrone

Embedded Player

Episode 87 - Learning C# by Developing Games with Unity with Harrison Ferrone
The .NET Core Podcast

Episode 87 - Learning C# by Developing Games with Unity with Harrison Ferrone

Supporting The Show

If this episode was interesting or useful to you, please consider supporting the show with one of the above options.

Episode Transcription

Hello everyone and welcome to THE .NET Core Podcast. An award-winning podcast where we reach into the core of the .NET technology stack and, with the help of the .NET community, present you with the information that you need in order to grok the many moving parts of one of the biggest cross-platform, multi-application frameworks on the planet.

I am your host, Jamie “GaProgMan” Taylor. In this episode I talked with Harrison Ferrone about the extremely low barrier to entry that Unity and other modern video games engines have, how you don’t need to have any programming experience in order to get started, and his book Learning C# by Developing Games with Unity 2021.

Along the way, we discussed how programming classes should really have a reading list which contains both theory books and fictional novels - one of Harrison’s suggestions is to have William Gibson’s Neuromancer as required reading for programming classes. We also discuss the idea that almost anyone can be a programmer, as we’re already doing in on a daily basis; as Harrison says:

Take in input; make a decision; perform an action

- Harrison

So let’s sit back, open up a terminal, type in dotnet new podcast and let the show begin.

The following is a machine transcription, as such there may be subtle errors. If you would like to help to fix this transcription, please see this GitHub repository

Jamie

So Harrison, my friend is really good to have you on the show. My goodness. Thank you ever so much for spending part of your morning, my evening talking to the folks because, you know, it’s always fun to talk to other developers. And and I feel like we’re gonna have a great time talking today

Harrison

I do too. Thanks for having me on, Jamie. It’s gonna be a good time. It’s my first podcast. So I’ve never I’ve never I think this is my first podcast. I don’t think I’ve ever done this before.

Jamie

Hopefully, we can, we can sort of guide you into it very easily. Just very gently. And that’s it. And that’s all it is. Right? It’s just two developers having a chat about .NET based stuff. And that’s what I really like about this show. So yeah, welcome to the show. And thanks for being on the show. My goodness.

Harrison

Thank you.

Jamie

Okay, so wwuld you mind giving the the audience a bit of a maybe an elevator pitch about Harrison, who he is what he does? A little bit, maybe about your background? Maybe? That kind of thing, just so that everybody knows who you are? What you doing? All that kind of stuff?

Harrison

Yeah, of course. So I started out as an English major, I am now a software developer. So between then and here, there’s been some bootcamps, I went back to school for game programming and design, worked at a few startups. And then I kind of transitioned into iOS, just to pay the bills and figured out that I really love Swift and making apps like that. So you know, took that as far as I wanted to take it, and then sort of started to sort of strike out on my own and start teaching, which I found I actually liked more. So I’ve worked at Microsoft, I’ve worked at Pricewaterhouse Coopers. I have courses on Pluralsight and LinkedIn. This is my first foray into writing a book, or the first foray into a book series, I should say. And most of the time I kind of just write or make things and figure out how to… I build stuff to learn, and then I teach it. That’s kind of what makes you know, what makes my brain go, “oh, this is a good time.”

Jamie

That’s pretty cool. I have to admit that when I graduated from university - 2008 - there were no computer programming jobs in my area. Because of obviously the you know, the credit crunch and stuff like that, right. And so I went and did teacher training, right? So I got the training to do high school mathematics, I can actually hear right now can actually hear friend of the show. Paul, from codeshare.co.uk, actually complaining about the fact that I’m saying I used to be a teacher. Because he sends me a text, every couple of episodes, he sends me a text and goes, “you talked about being a teacher again.”

Harrison

Yes, I did. Part of my identity. I’m a teacher. No that was the same, that was the same sort of thing for me, when I got out of my game design program. I was in Chicago, and they had just gone through a huge downsizing in the industry. And they were really only… I want to say like Midway Games had closed, which was the big hitter. And there was there were a couple like high voltages in the suburbs, and NetherRealm is downtown - the people who make Mortal Kombat. But you know, the program only, you know, there’s, there’s not enough jobs for the people that graduate. So I kind of just went into iOS. I was like, “oh, this is great. I’ll do some of this. And I’ll do Unity the on the side.” And I ended up teaching unity anyway. So it all works out.

Jamie

Mm hmm. Absolutely. And what I really love about teaching is it sort of lights up part of my brain when I can, when I can… it’s less about, “here’s some knowledge I’m going to give to you.” And is more about when you, I mean I do obviously share the knowledge, but is when when you can look at the other person and it just clicks. And they get that eyes wide open that

Harrison

Oh, yeah.

Jamie

“Oh my goodness, I get this now. It’s totally makes sense.” And that moment is just amazing. To me.

Harrison

Those are the best things like, those are the messages that I save on LinkedIn or you know, on our on email or something, when I get somebody that reads a book or, you know, does a course and they’re like, “wow, I thought I knew all this. And like it just sank in,” and I was like, “that’s fantastic.”

Jamie

It is, it is the best. I don’t get that these days, but hopefully soon, I’m gonna be I’m gonna be helping out some students at a local college.

Harrison

Oh.

Jamie

Offering some advice and stuff. So hopefully I’ll start getting that again. But who can say right, this is me publicly saying it before I’ve actually announced it to the kids at the college that are good at helping them out. So you heard it here first folks, absolutely. Coming soon.

So there was something that I found on your - so obviously you’ve said it earlier, you’ve read some books, you’ve done some PluralSight courses. There’s something I found on your PluralSight bio that I just want to call I just want to ask you.

Harrison

I think I know what it is.

Jamie

It’s a line that says ,“Harrison has continually wondered why Neuromancer isn’t on more game development core syllabuses.”

Harrison

I think it’s syllabi like octopi or octopus.

Jamie

That makes sense, yeah.

Harrison

But yeah, so I put that in there every - I always every time I write something for copy, I always put something in that’s like, I know that it’s for a certain like people like me, like like minded like, like interested people. And I, you know, it’s kind of like a radar. It’s like a, you know, it’s something in the code that kind of just gets gets tripped over. And you know, you’re with somebody that is with it.

But yeah, I love William Gibson, and Neuromancer is my favorite sci fi book. But I, I had this conversation when I first went to one of my intermediate game level classes, and that teacher was really awesome. And he’s always giving us things to read that weren’t programming related. He’s like, “you need to go, go read this, go read that. Like, it’s awesome, whatever, it might be old, it might be new.” And I was, I talked to him, I was like, “this is a really good idea. Because this is the stuff that most likely that the people who are responsible for the technology we have now are inspired by.” So why wouldn’t you go look at this, like, it’s like looking at source code, like go look at what inspired people, like, you know, Steve Jobs, or Steve Jobs, or whoever, like, it could be anybody. But the people that are responsible for our technological point, you know, history, most likely read that book, and books like it, and they were, you know, their minds were blown. And they were like, “God, where, how could I make this happen? Like, where where would I fit in? And what could I do to like, make this a reality?” Because like, at that point, there was no such thing as like a console cowboy, like virtual reality wasn’t a thing. That was all made up. And it turns out like it’s pretty close. It’s pretty close to like wearing an Oculus.

Jamie

Absolutely, absolutely. I have to say I, I have read Neuromancer and some of the William Gibson books. They not necessarily for me, but I love the cyberpunk genre of storytelling, this whole idea of like a, a tech noir, cyber punky “stick it to the man” sort of idea, I love that.

Harrison

It somehow goes together like the detective noir and high tech, but low brow in the gutter, kind of Blade Runner sort of thing. And it looks good together. For some reason, it all kind of just was made to fit.

Jamie

Absolutely.

Harrison

You know, and I was like, “oh, great. This is wonderful.”

Jamie

Absolutely. And I feel like it’s like a probably like a natural progression. For things like like you say film noir detective stories, right? A 10 years in the future. We’ll be we’ll be watching CSI, CSI

Harrison

Immerse? Yeah, when it comes to your living room?

Jamie

Absolutely. Right. But I love the idea of looking at the source code for the ideas, right? Because if you look at Star Trek is an example. Right? You look at some of the things that they came up with for The Next Generation just tablets, they could tap and reach to guess what, it’s all there literally in front of me, right?

Harrison

Yeah, the only thing we don’t have is the like, body scanner. And that’s already I would even say that, like their AR devices now that are doing part of that. They don’t do the diagnostics, but they do the imaging from a device that you can like, you know, scan somebody with, so they’re pretty close.

Jamie

Mm hmm.

Harrison

Like I would you know, the tablets I think are easier than trying to image a body, but we’re rolling in the right direction.

Jamie

Absolutely, absolutely. So I wonder what, what’s being released as part of science fiction now that people will be using it about 30-40 years? Who can say right?

Harrison

I don’t know

Jamie

Maybe it really will be the eye phone, right? Something that’s in like on Futurama, right?

Harrison

Yeah, it’s the eye… or like, yeah, there was an episode of Black Mirror that had everybody records everything they see. And it’s sort of open unless you you know, kind of put it in a in a private cloud. I was like," that’s probably there or like altered carbon," which, you know, Netflix is about 20 years too late. But I mean, it’s like that was that I think the the data storage will be the next thing where we can pack more and more into a smaller and smaller, you know, piece of storage. And then that’ll that’ll, that’s the natural progression. We can’t go bigger anymore. We’re gonna go way smaller.

Jamie

Totally. I mean, I was looking at - what was it - I was looking at a four terabyte SD card the other day.

Harrison

WHAT?!

Jamie

Like, that’s just… just what have you got the needs to be stored in that form factor atfour terabytes, right?

Harrison

Right, like isn’t all the music in the world like two terabytes? I thought you could have so like, as much you could listen to a year of music… I read something silly somewhere where it’s like he could listen to, you know, a year on and never see it listen to the same song. And it would only fill like a terabyte or two.

Jamie

Yeah

Harrison

I’m sure that’s the wrong quote. Someone can write in and tell me the real one. But wow, that’s a lot of that’s a lot of data.

Jamie

Yep.

Harrison

What could you possibly have. “I need a four terabyte,” walk into Best Buy and, “I need a four terabyte SSD.” and they’re like, “What? Why? What are you doing? I want to know what you’re doing? Because it sounds cool. If you need that much.”

Jamie

Yeah. Yeah. Oh, my goodness. Yeah, I like that idea of looking at like, like, reading reading books and stories around the thing that you’re studying. And to figure out, like, the the, almost like the human side of it, right? Because we could spend forever reading, you know, C# in Depth by Jon Skeet or Code Complete. And “all” you’re learning is like, it’s important knowledge, and I’m going “all” in bunny quotes. Right. But “all” you’re learning is like, the way to build better software for other developers and the compiler. Whereas really, we’re building software for people to use not for computers to read through, not for other people, right?

Harrison

Yeah, you have to have Yeah, I think that’s an important, that’s actually, that’s a good point. That’s, I think that’s why I put that little line in my bio, because it the the course syllabus, while you might not have, you know, a course on it, you know, people should start teaching this sort of thing in programming, not just in games, but in like, you know, computer science, like, you should have a reading list that’s like technical and non technical, and teachers should, their professors or whoever should kind of think back to what they want, like, what they learned and take a historical kind of approach and be like this stuff is, you know, mind blowing, and it had a real effect that we enjoy today, if you don’t think so you’re, you’re crazy. Because, you know, those kinds of those kinds of books like, are responsible for that spark, like you said, that makes you put all that knowledge, that technical knowledge that you absorb from textbooks, into something real into a real product. Without that you’re just no syntax, we have something I get asked all the time, like, why like, it’s just syntax, you can look it up. It’s the concepts, no one, you know, no one cares if you can memorize how to do this stuff. The hard part is, can you build a system or an application that has an architecture that’s flexible and scalable, and doesn’t take hours and hours to make a tiny change? And if everyone is like, wow, that’s, you know, it works. It’s a beautiful system? And like, that’s the hard part.

Jamie

Yeah, it’s like, you know, authors will use spellcheck and grammar check, it might be like one of the many steps that they take to ensure that everything is correct, but they will do spell check and grammar check inside of their word processor, because that’s a tool that is available to them. So they don’t have to necessarily remember all of the rules around spelling and grammar, just because there are tools and other people in the way to help you sort of grok that correctly, and make sure that everything is right. Yeah. And which is why you know, people who, you know, friends who have, say dyslexia or, or problems like that, they can also author books, because, you know, it doesn’t want to, I don’t want to reduce it, but to a certain extent, a heck of nobody goes again, it doesn’t matter. Because you can still you can still write your ideas down and have the computer or have another person help you with the spelling and the grammar and all that.

Harrison

It’s not a limiter on your intent. There, those kinds of things are to help people not to, not to exclude, I mean, I, I have terrible I, I had to learn how to I had to relearn how to write for technical audiences when I went to work at Microsoft, because, like I said, I have an English degree. So how I write, I write more like you would read a book. And I struggle, you know, to have to kind of pare that down into, you know, you got to get to the point, you can make it you know, enjoyable but this is this is real, like factual technical information that you need to get across, and it needs to be the right way. So I have editors, you know, I get edited, I get edited to the max every page and it’s okay.

Jamie

Yeah, totally is. And you know, as you were saying, right, the reason that we call it syntax in physical, human spoken languages, and syntax in programming languages, is because it’s essentially the same right? It doesn’t matter how you spell the word color, as long as it fits correctly in the

Harrison

it still make the same meaning in your brain. Everyone says the following Oh, right. I think of an apple.

Jamie

Absolutely. Yeah. And so yeah, it’s like you say it’s just learning syntax. But the difficult part is taking the abstract concept of, I want a website that does X, Y and Zed and turning it into the things

Harrison

into an actual website that does X y&z Yeah. Right.

Jamie

Yeah. The difficult bit is the conversion process, not the typing process, right. Yeah. Yeah, I agree. I agree. So, okay, with that being said, because we were talking a lot about learning and teaching and C sharp and, and languages and grammar. Let’s talk a little bit about the book that you’ve written. The Learning C sharp by developing games in Unity. Now, I’ll say for full disclosure, I have read the I believe it was the 2020 edition. And I know you’ve got a 2021 edition out. So let’s talk about the book and then maybe talk about what the differences are. Right? If I just want to learn unity, am I getting the latest 1am I getting? The previous one? I mean, now that’s

Harrison

totally fair. Yeah, so this series I took over at the fourth edition. And basically, what I wanted to do with the book is, you know, teach a step by step way of learning the C sharp language, and we could make a console app, you know, it wouldn’t, that would, that’s how I learned how to do it. But you know, it’s, there’s a lot you can do in Unity. For low, I say low cost, and I mean, low cost in, you know, the burden of how much you need to know, you can do a lot with very little know how, and then you can build it into something really cool and unity, which is why I chose to write that book this way. But basically, the the whole idea of the book series is just to learn how to program from scratch, unity, and C Sharp are incidental tools. They just happen to go together very well. And I like how they go together. But yeah, the book takes you from zero programming knowledge, all the way to in this new edition, we have a new chapter, a new monster chapter on handling data. So text XML, and JSON, how to basically work with your file system, and how to serialize and deserialize objects. So that’s the new content. And I’m building out, you know, the last edition, the one you read kind of ended with, you know, an intermediate level, look at syntax. So we kind of got into, I think it ended it like, well, let’s use, you know, what’s a hash set? When would you use that? What’s a queue? Things of that nature, where they’re a little more specialized, but you already kind of know what they’re doing, because they’re collection types. And I got a lot of good feedback that was like, This is great, but I want more of the intermediate level stuff. I said, Okay, well, in that case, I don’t want to pour more syntax on you, because at this point, I’ve showed you how to read the documentation. So you can figure that out. But I’ll show you how to do more with what you’ve learned, which is why the data, the data chapter came about, and I picked that to add to the new edition.

Jamie

Okay, so they see you, you said there, it’s all about starting with, I’m not going to use your words, but the the extremely low barrier to entry that unity provides, right? Because you mean, you can Sperling like the first chapter of the book, but you can literally fire up the Unity editor, I suppose, is drag some stuff on the screen. And hey, guess what, you’ve got a game world. And you haven’t actually written a single line of code, right?

Harrison

Absolutely. It’s the visual. The nice thing about unity is that, and I mean, unreal does this too, but I’m just game engines in general that have a visual graphical user interface. A lot of it is drag and drop now, like you can make unity games without programming now, like they have a system in unity that you can, it’s totally without programming. But yeah, you can totally you could just be a designer, never touch code, and just build really awesome worlds in Unity if you want it. We do a bit of both, I show you how to kind of make a little you know, unreal tournament style arena. That’s, you know, you kind of run around and you know, there’s some things to hide behind. And there’s a platform to jump off and kind of just reminded me of, you know, when when I was a kid playing, you know, going over to someone’s house and playing for player you had to you had to grab enough kids in your neighborhood to have a full game and y’all go over. I was like, I’ll just make the prototype, you know, something like that. That’d be a good time, like Banjo Kazooie it’ll just be fun. Yeah, right. Yeah. And then the end you have a totally playable game, right? Like a prototype. It’s super fun.

Jamie

Yeah, I do like that. So this is a leading question because of what we’ve already said. And because like as I have read the book, but I don’t need to know an easy shop. Do I go again?

Harrison

Absolutely not. This is for this is. This is for everyone. I do. I do have a little caveat. In the beginning of the book where you know, you kind of have to cover you have to manage expectations. But it really is for everybody, you can come in at zero, you can come in at 50, I’ve had even a few people who have messaged me who have been like, I’m a practicing, you know, C sharp and unity developer. And like, you know, this was great, because there were a few things like I didn’t know, or I didn’t know, you could do this so easily. Great. Like, that’s fantastic. But primarily, it’s for total beginners who just want to get on the train, and learn how to program and learn how to build something that’s in their head. And it’s, it’s fun, you know, it’s the whole point of the book is that we all like human brains already function like this. It’s not, it’s not a big jump, I think there’s a lot of stigma around like, well, you have to be a certain kind of person, to be a programmer. Everyone is naturally a programmer, if you cross the street, and you look left, and you look right, and you make a decision based on if a car is coming or not, you are a probe and then take an action based on that analysis. You’re a programmer. That is literally a conditional statements. So it’s the whole point is to relate, or translate these things that we do every day. And sort of say, Look, this is the same thing. You just have to write it the way it needs to be written, but it’s built the same as you think it is.

Jamie

Yeah, totally. I like that. And I like the fact that the you’re building something that you can immediately see, right? So when I when I was at uni, we did C sharp and dotnet. But it was like, Okay, so here is console dot write line. Hello World. Yep, there’s 12 lines around it. But you don’t need to know about that yet. All you need to know about it’s console. WriteLine. And naturally, someone in the room says, What’s using System meat? Or was a nice, right.

Harrison

And we’re Why is it what is the key? Like, oh, that’s yeah, all the output in the console? Yeah, is off putting if that’s your first experience, that’s, like I said, that’s how I learned to you get a console app that’s black with white writing. And that’s what comes out and you make a text game. Or something like that, like, you know, this is, I think this is much more fun. And from the people that I’ve talked to that, that have read it in different levels of, you know, programming skill, everyone has said, Well, yeah, this is, this is a better way to learn, because it’s more engaging. You put something on the screen, you put a cube on the screen, and it moves. Oh, wow, that’s great. In four lines of code, how did you do that? This is wonderful.

Jamie

Absolutely. I remember, we did, we, we did a module sort of like a single semester class on OpenGL with with C sharp, and the amount of and it wasn’t a lot of effort, but the amount of effort that we were required to put in, in C Sharp and dotnet to draw a screen a screen. Yeah, and show a square, right? And then it was like, Okay, I’ve got my square. It’s a single is like a sample I got full lines, right? Not even call it in. Right now. I want to color it in. Oh, geez. Now we’re gonna like GL jail. Oh,

Harrison

yeah. You got to find all the vectors that are inside the line and change their pixel color. You know, yeah, no, you it’s, once you once you go through this book, you’ll understand a little more of how much work goes into engines like Unity, and unreal, and any kind of engine that hides this kind of thing. Any compiler, anything that does this for you, is doing a monster job. But it’s not. It’s not little, it’s a it’s a big task to get to make it so accessible for us.

Jamie

Yep. And it’s not like it’s, you know, sometimes I’m worried about magic and Wizardry. But this is reducing that complexity, right? And it’s allowing you to build something now, because one of the things that I say, to junior devs, when they especially the junior devs, who get really excited and argue about we should use this technology, we should use that technology. I say to them, the box doesn’t care how you did it, just that you did it doesn’t matter doesn’t matter spent six weeks writing your own library, just to draw a box on the screen that when they when they click it, somehow they get money. Or if you do NPM install or pip install or new get Add Source or whatever it doesn’t doesn’t matter.

Harrison

Oh, that’s that’s totally right. And that’s why I don’t I don’t I usually don’t answer when people like do you want to use what should I use Unity or which one’s better? Deal. That’s, that’s a non starter. It’s just it’s your preference, your skill set that you’re starting at? And what you’re, if you’re at a company, what the what the project requirements are, at this point, everything’s kind of it’s an Even playing it didn’t used to be, like I learned unity when it was sort of the that was for hobbyists and students and people that were kind of just tinkering, right? This was like 1213 years ago. And, you know, now they’ve, you know, they’re they’re product matching everything that other people can do. So there’s no, there’s no reason to have that discussion. Go with what you want, with what you can with the easiest road. Or if you have some requirements do that. Like, it doesn’t have to be this, you know, it doesn’t have to be the you know, you’re open, you’re going to war and you’re on two sides of the room going on. Never do that. Never go over to the other side.

Jamie

It’s fine. It really doesn’t matter what you use. Right? And, to your point there, there’s a series of videos that I’ve been watching recently, I think I brought this up on another episode. But there’s a series of videos I’ve been watching recently, where a bunch of VFX artists use video game engines, they use unreal, to do visual effects in real time.

Harrison

They get they do post production and CGI.

Jamie

Yeah. Well, this is like this is like production, not post production. There’s one Oh, this guy standing in front of a green screen. And he’s doing his acting away. And the camera is being the camera footage is being fed into a computer that has I believe it’s unreal. And the Unreal Engine is what’s the phrase I’m looking for? Where you, you cut something out, but whatever it is, is taking him out of the green screen and compositing him into the game world. Real time. And then not that just makes video. You know, that’s that’s your video footage, because I don’t write because the real time stuff in a video game is is to a certain extent realistic enough. That pass muster is special effects. Right?

Harrison

Yeah. If you had a if you had a fast enough computer that could handle the input output, why not? Yeah. Last time I heard about that was what is it the district, Neil bloom camp, the guy in district nine. And he made some really cool shorts using Unity. They’re called Adam. And then he used I believe he used something and he used like, CGIAR post production in Unity for a movie he released recently called demonic. Yeah, I haven’t seen it. I haven’t seen the footage of what happened. But it you know, I was reading that, you know, he’s pretty involved. And people are, you know, small or big. You know, film studios and art houses are turning to this kind of technology. Because it’s, it’s, it’s it’s a built in special effects department for you.

Jamie

That you can control roll. Yeah. And I happen to know that the Mandalorian they do it. So they have a they have sets and they have these huge screens, these like panoramic screens, so the actors will act in front of, and it isn’t. The idea is that the footage that they’re acting in front of this being generated on the fly will be replaced. But it gives the director a chance to actually see what it really will look like. Immediately.

Harrison

In the shot.

Jamie

Yeah, so that previous

Harrison

is super cool. I didn’t know the Mandalorian did that. That’s awesome.

Jamie

Yeah, again, I believe that’s a unit That’s unreal, but

Harrison

it’s probably unreal. They’re a little bit ahead. They’ve always been ahead in graphics and rendering. Unity is catching up, you know, they have they have a lot of stuff that like like I said, they they’ve done a lot with film processing and CGI. But that doesn’t surprise me that unreal is a little they’re still that’s kind of their, their their unique selling point above the rest of the competition. So that would make sense. But that shouldn’t that shouldn’t dissuade anyone from using Unity.

Jamie

There’s a there’s another video sorry to keep harping on about this particular subject. But there’s another video I’ve seen same visual effects artists where the they’re doing a Bob Ross challenge. So they have two real time recreates a Bob Ross paint video in front of one of them, you know, one person is doing in Photoshop or Illustrator or something, versus doing it on a tablet. And this is the go and one of the one of the four people is doing it in a video game engine.

Harrison

Oh, yeah, filming that. Because that I want to.

Jamie

Yeah, they’ve done it twice, actually. But yeah. And what he does is he builds the scene, but he spends most of his time building the world around the scene. And then when it comes down to showing it off, he just hits f5 or whatever the button is on Windows to start a unity application. And he runs around in the areas like Okay, so, you know, this is the scene we recreated. But if we turn the camera around, we can see this character is over here. This character is over there. They’re all you know, CG modal sending in a T pose.

Harrison

But yeah, they’re in the ragdoll or no, yeah.

Jamie

But he’s built that whole experience. in less time that it takes Bob Ross to paint a painting Versiv

Harrison

Bob, I would give a lot to have Bob Ross alive to do a show like that, where he’s you where he’s in a VR, like landscape. And when he paints and creates, you know, virtual objects, that would be so wonderful.

Jamie

But yeah, with that bit of, I guess, gushing over with let’s, let’s talk about, okay, so I want to build something in unity, right? And you’ve said earlier on that your, your book is all about, let’s do it with very little programming knowledge that pre exists, right? You said yourself,

Harrison

nothing, you, you need nothing. You can use the free version of Unity, and everything comes with it. So there’s really the book is the only outlay that you need to do. And like, it’s just because, you know, I walk you through how to do a lot of things. But like everything, that’s also why I like this kind of everything is sort of, I want I don’t want to say it’s like equalized, but the barrier to entry and the, like, monetarily and sort of, I don’t know what to say it’s not smart, but like experience, and experience and money. Don’t play a role anymore in this in this industry to get in, like at this level. Like if you just want to learn, it’s free, it’s literally free. You just go do it. But you know, you need you do need some guidance. And that’s where my book comes in. Which is, which is great. But yeah, you need no programming experience. There are no fees with unity at the level we’re using. And everything, you know, there’s no hidden nonsense, so everything works, as it should.

Jamie

Okay, what about 3d Math, then? Because I do know that for a lot of people, math is kind of a sticking point right there. Either. They they maybe don’t know, they feel like they don’t know enough? Or maybe they’re feeling like, Oh, goodness. Now I’ve got a little in algebra or geometry or trigonometry? You know, that kind of thing?

Harrison

Yeah. Okay. So yes, and no, in my book, we only use vector mat, we only use 3d math once. And it’s to detect if your when your player jumps, if they’re already jumping. So we don’t want to be able to just infinitely jump. Right. So it, the only thing we do is we check if we’re touching the ground. And then if yes, go ahead, jump all you want. If we’re in the air, you don’t get to jump again. However, Unity hides a lot of that 3d math in a very, I wouldn’t say easy, but in very sensible containers. And so even the little bit of 3d math that we do in one page, to do this kind of check, we use unities pre built functions. And we literally tell it, what we want to check for, we give it the players object, and we say is this object within point 01, you know, units of the floor. So there’s, there’s nothing that you need to know about that’s like, you don’t have to do anything that you don’t already understand, like conceptually, like, you know that, you know, if the scenario I just described, it sounds sensible you like in Mario, you can’t jump forever, you can only jump when you’re on the ground. And so the whole math thing is, again, a bit of a stigma, I get that I don’t, I am scared of 3d math, I use it a lot, it still kind of is an area where I am not comfortable, because I sort of came up in the era where you were people were still writing their own. And you really don’t need to do that you need to have a conceptual understanding of the 3d world, which we all do. So, for my book, you do not need any 3d math, the one little bit of 3d math that we will do is explained. And we use unities built in functions to do it anyway. So there’s no, there’s no math from scratch in this plug.

Jamie

Okay, excellent. That’s pretty good. Because I like I like the idea of not having to learn a bunch of formula and learn a bunch of math to be able to do the work, right. Because, like we said at the beginning, this is the whole idea of this is we you know, there’s no there’s no not necessarily a deep end, there’s, you open up unity, you create a scene, throw some 3d objects in there, guess what? You’ve got something started now, right?

Harrison

Yeah, absolutely. Like we do use. So Unity has a physics system that simulates object interaction. And a lot of that does have to do with the 3d map. But again, it’s all hidden behind the physics system. So the only thing that’s shown to you I mean, unless you want to really dig into it, because it is it is available, which is one of the things I love about, you know, you can go as deep as you want. But, you know, everything is very, you know, its own your hand and what you can use, you’re not asked to create anything, like from scratch that they don’t have on already done. For most things.

Jamie

Yeah, like that. Again, it’s, it’s that discussion of it’s not, it’s not really magic, because you can look at like the source and see how you can

Harrison

see behind the curtain, there’s nothing stopping you from from diving into the Unity documentation, you can totally read their source code. But you know, you might not understand it or understand what’s going on. But yeah, it’s not hidden magic.

Jamie

Yeah. Yeah. Whereas, you know, guessing, you know, the problem is that, like you say, if you wrote your own, you’d have to go and literally, like, if you wrote your own game engine, oh, so I would say, you know, I’d question why you’re writing your own game engine. And then once we got past that, I’d be like, Okay, fair enough. You’re writing your own, you’re gonna build your own 3d math engine, you’re gonna build your own physics engine, then you have to go learn, you know, very detailed 3d math and physics, right?

Harrison

Absolutely. Yeah. If you’re doing it, if you’re doing something like that from scratch, you, you would have to be a mathematician. You know, that would have to be your your that would have to be your thing in life. You know, that’s an immunity employs those those people. That’s why we don’t have to do it. Sure. Their underwriting all our math skills?

Jamie

Absolutely. And that’s why I suppose a lot of early video games didn’t really have realistic physics, right? Because they weren’t hiring people who were maths and physics.

Harrison

Yeah, there was. Yeah, like majors or Yeah, people who have who do that, who are not necessarily in the field of game design? Or development? Yeah, it was. Yeah, the math, I would say the math and the technology were not at the same level. There were there were absolutely people who knew the math necessary at the time that like, you know, something like Mario or even like, Doom came out, like, totally could have done it, but they weren’t making games. So, you know, we, as time went on, we were lucky enough, I have to say to, because this, this had to happen. Some people had to migrate, you know, from that academic sort of, sort of industry, or that part of that pool of people. And they had to come over. Because now we like, there’s no other explanation than that. Like, we definitely have those people migrating into games and programming.

Jamie

But it fits, I guess, the same way, if you think of dotnet, right. Don’t know, it takes all the difficult things about or even, you know, JavaScript, modern JavaScript, NPM, Python, those kinds of things. They take the difficult things of creating a TCP IP connection, setting up HTTP envelopes, and verbs and things. And they strip all of that away, all you need to do is to, if you if you’re in NPM, land, maybe using Axios, if you’re in dotnet, and you’re probably using HTTP client, there is there is a thing that wraps up all of that difficulty for you, right, and then manages, maybe manages the retries, and things like that. You don’t have to, you don’t have to build it. And that’s what I like about this, right? Because there is no, okay, there’s another there isn’t a point in building all of that stuff yourself. It goes back to what I said earlier, you’re not solving the problem, right? If my problem if my problem is to send you an HTTP request, I spent three weeks writing an HTTP library, I still haven’t solved the problem, right? Yeah, I’ve got my request.

Harrison

Now, and you, you end up learning that stuff anyway, in your own systems, because we do talk about the concept of like black boxing things in the book a little bit and how you should start thinking in terms of systems and not in terms of lines, individual lines of code. And you, you know, you build up components, especially in unity, you know, you kind of it’s sort of like Legos, like you, you create little blocks, and then you stack them and each block can do something else. And by the end, you have an object that has a lot of complexity. But, you know, they’re, they’re kind of siloed away in their own little block, which is what you want. But yeah, there you learn how to blackbox stuff because you want your own code to work like that, especially if you’re in a team you don’t want to you don’t want to have somebody come ask me to do a tutorial on what you did to learn how to use your tool. You know, we do that in, especially in the data chapter. Like we create a data manager and If you were a client, you know, that was asking for stuff from the Data Manager, we definitely talk about why we’re writing it this way, because we’re writing it to expose just the actions that you want. And you give feedback. Like, that’s, that’s the give and take of good programming systems, right? You give something, you want to take an action, and you get a result. And then you deal with it. So yeah, there’s, you’re absolutely right, there’s no you need to solve the problem. There’s, at this point, there’s no reason unless it’s, that’s like, unless that’s your jam, if you want to build, like, if engine architecture is your thing, I would never say, Oh, you’re wasting your time. Don’t do that. There’s already there’s everyone’s done that for you. But for most of us, like who have other problems to solve, use what’s given and then solve the problems of your, you know, your unique idea. That’s really the point of all of this is to learn how to put your ideas into a product that you can interact with.

Jamie

Sure, sure. I mean, I, there is, there is a project this be going on, I want to say for about 10 years, called handmade hero. I don’t know if you know about this hero, I don’t know what it is. So this is uh, this is I forget the chaps name. I do apologize. But this is a chap, who an hour every day, he live streams building his own video game engine. And he’s been doing it for 10 years. Very cool. Which is that, but that shows you like how Yeah, if it is required, right, 10 years in, and he’s still not finished it then he’s doing it almost every day for an hour.

Harrison

It’s one person. Yeah, that’s nuts. Yeah, I mean, that that kind of thing is why this? I don’t know. It’s not open source. But why this availe wide availability of game engines is such a massive, when you think about it, it’s it’s a massive achievement. It’s a massive undertaking to have gotten this far. And to be able to play with it for free. Like, that’s ridiculous. That, you know, if the medical profession worked like that, you know, it’d be bonkers. But like, it’s this, I would I would even say like, it’s it’s a similar kind of achievement, especially since it’s been around a fraction of the time. Other industries have been around. And they’ve made such leaps and bounds. I mean, most a lot to do with you know, they were in the right point in time where we have the technology to take their take it as far as they want. But yeah, it’s just to sit back and kind of appreciate where we are with that where we can we have choices and game engines, not just one or two, build our own, we have choices. It’s a marketplace.

Jamie

It is is it’s crazy that you could that you can do all of this stuff, because I still remember being a very young teenager 1314 and hearing because I had a PlayStation, right? Yeah. And hearing the net, your Rosie is a thing, you can build your own PlayStation games. If you have a Windows 98 PC, and you buy one of these kits. And if you do really well, Sony will be interested in maybe publish your game. And I’m like, but then to be able to do that you’ve got to write every single line of code yourself.

Harrison

Right? I would imagine, yeah, that there because like, I’ve seen the dev kits. Now I can only imagine what a dev kit back then would have been like. Like that would have been nuts.

Jamie

Yeah, it’s a lot of work. It was a it was a custom ID, you had to write the code in C or assembler and use the parallel port on your computer. So yeah, it was it was really crazy stuff. Yeah. Yeah, right, you fast forward to now. And there’s a lot more involved in Unity and Unreal than just File Save As. But yeah, compared comparatively, it’s essentially push a button, fill in some stuff, do a little bit of work, compared to you know, the net, your Rosie or the AED 64 dev kits, and you’ve got a binary that you can then load onto a PlayStation load onto an Xbox, or onto a Nintendo Switch. I guess what? It just works.

Harrison

It’s they really do have a lot of pressure to say the services have come a long way. Like just the idea of being able to cross platform, publish a game is ridiculous. Like, if you had thought of that, when you were writing the base code, you’d been like, No, I want to be saying like, I don’t want my head to explode. You know, and now it’s just component pieces to the service that just set it up for you.

Jamie

Yep, that’s awesome. It is and like I say there’s a lot more involved than just File Save or file export or whatever. But compared to like you say, compared to it’s doable,

Harrison

it’s do more people. Like very few the subset of people that could have done that in 1999 when put what you know if you had a PlayStation is radically smaller than the than the pool of people that can do it now?

Jamie

Oh, absolutely, absolutely. I mean, one of the things that I, every every couple of I say every I would say maybe every year, I go on to gamma sutra and read the, the post mortem for the conversion of Resident Evil two from the police station, which was on two CDs over to the 64. And it was a team of six people that did it. But these people, you know, if you when you read through the the post mortem, they’re like, Yeah, we may not have been at the top of our game, but we’re pretty close to it. Because they wrote, they custom wrote like in an audio compression engine, a video compression engine, and took two CDs, one and a half gigabytes of data and put it onto a, I think it’s a 24 megabit cartridge. So it’s not even, like, I think it was about eight or 16 megabytes. It’s crazy.

Harrison

Every time I see a port that comes out, like, you know, like Final Fantasy on iOS or something, I’m like, How did you do that? That came in for CDs? Is it was this big? Making a big stack hand signal? But it looks huge? Yeah. Like, how did you get that on my phone? It looks better. How did that is magic? Can you can’t see how they did that? How did it tell? Teach me your ways? How did you do this?

Jamie

Yep. Yep, it is. And the fact that we can, we can access, not all of the tools, but the majority of the tools required to get you started on that journey. So most of them are for free. It’s just It’s mind boggling. And, again, compared to how it was in the 90s and the 80s. And maybe even in the early 2000s, it’s comparatively easy it is. I mean, I keep saying if you create a saying you drag and drop some shapes on there, guess what? You vote again? Right?

Harrison

No, it is. And the I mean, the internet is to blame for this in a good way for once, because the community, the world, the global community has allowed people to learn more faster. I think, I do love that unity. And, you know, game engines are so easy to use, but I honestly, I don’t think any of that would be where it is now without like, StackOverflow or some, you know, or like Unity forums, I don’t think people would be creating as much as they do. And as many people as they, you know, as are creating, and especially not the level that people are creating, because there’s, you know, used to have to write in, you know, for like CD ROMs, with, with like, you know, a T course, like at the back of a magazine to get to get even an idea of like, what should I learn? And what order like how do I do this, like that? The idea, the ability to be able to just ask people ask anyone just put it out there and it comes back to you. That’s nuts.

Jamie

Yeah, that’s sort of almost a democratization of knowledge. Right? After this be a question ask away. And I’ll, if I can answer it, I will, if I can’t, someone else will.

Harrison

Right. Yeah. I am always surprised. You know, people think that, especially when I was a new programmer, I would go on, I’d be like, well, you know, I want to ask you a question. I don’t want to bother anybody too important. It’s like, that’s not how it works. You could get anybody can answer you. And they probably will, no matter what they like, you could get someone was it? Oh, well, I was very Microsoft, like, people would be surprised that they would get a response, you know, for something kind of easy. Like, no, it’s, it’s, it’s a question. And I will answer like, it’s, you’re absolutely right, like the democratization of information and the willingness to pass that information on to other people, even if they’re, you know, very, very early beginners.

Jamie

Yeah, I think, I think perhaps it’s something that our industry does, perhaps a little better than, than other industries where, you know, there are stackexchange, stack it Stack Overflow websites for things like medicine and engineering and things like that. But I feel like the development space is a little more open to that, hey, anyone can ask a question and 100% of it. both the good and the bad, right? Because you’ll get to come on and go, Oh, you’re asking a silly question. This is repeated. This is blah, blah, blah, which doesn’t help anyone, right?

Harrison

No, but then you get the people, the moderators who are like, You need to be quiet. Either like either don’t say anything or link them. Like we’re not doing we’re not gonna we’re not doing this. Like they asked a question. They’re entitled to ask a question in a safe space. Yeah, totally.

Jamie

So we talked a little earlier on about the different things that you can do with video game engines, which I mentioned a few artists who are doing things I mentioned, TV shows that are doing stuff with like, prevous and things like that. Have you? Have you ever done anything off piste, I guess, with with again with unity? Or is it just been no build a scene and away we go.

Harrison

No, I did a I did a fair amount in VR. So I am I did my first course actually for Pluralsight was a lot of fun, I did a course on how on like locomotion in virtual environments, because moving is very different. And they’re actually, you know, when I did some research and I had to read, submit like yours, I had to read some medical journals like about physical reactions to like this new paradigm of how you experience you know, digital content, as like, wow, this would make an interesting course, we kind of have to figure out not only how to move in virtual space, but how to keep your physical body happy, and to feed it information or sensory information that it can actually, you know, use and not, you know, get sick, or freak out. So yes, I’ve done some virtual reality, I think that’s, you know, most of the stuff that I like to build, it’s, I like application architecture. So that’s more of my thing, where I try and build better systems for myself to make games. But I know I’ve said as much then but like, I was at Microsoft, I was on the mixed reality development team, so all their AR VR stuff. And I wrote a lot of their documentation that, you know, if you use if you use Microsoft docs, you’ll you’ll see me around. But that’s probably my only sort of sidestep away from traditional games. Most of the time either build unity tools, which is another great thing that I love about you is that you can build editor tools, and I you know, that sort of feeds my system, part of my mind was like, Ooh, I could build a tool, and then I could ship it, and other people can use it. And I built on it, that’s, you know, that’s what that’s what gets me going. I built like a free Fire based database debugger for unity. So you can look, you know, because I, you know, things like that, where you, you know, you’re writing a lot of repeated testing code, you know, that sets an alarm off in our brain are like, Oh, wouldn’t a visualization of this be so much easier if you can just type in your node and see what was there? So that’s, that’s mostly where I’m at with unity.

Jamie

Okay, that’s pretty cool. I do like the idea of using this, this this tool, these tools that we have in innovative ways, right? That’s why so we’re recording this just slightly ahead of dotnet COMM And I am I one of the things that I look forward to dotnet. conf and all of the different conventions throughout the year, whether they’re live streamed or in person is seeing the innovative, wonderful things that people are doing with technology that makes you go, Wow, no, you could do that. Right. thought of that? Yeah.

Harrison

Yeah. It’s like using a hammer to build, you know, a better hammer. But you didn’t need it the better hammer, but all of a sudden, that’s 100. Luke without this.

Jamie

Absolutely. You know, that’s, that’s why one of the things I’m really excited about with dotnet. Six is the reduced amount of boilerplate code you have to write, like, top level statements, top level using statements gone. You don’t need to supply a namespace if you don’t need to that console dot write line example. Hello. Well, that talked about earlier. And he’s now literally one line.

Harrison

Yeah, it’s super easy, right? Like you, guys. Yeah, it’s all stripped down. i Yeah, absolutely. I think that’s why I gravitated to Swift. Because when I was starting with C sharp, it was, you wrote iOS apps and Objective C, which was just as kind of aggravating. And then swift came along and was like, we’re gonna strip out all that syntactic noise. And we’re gonna make the syntax chromatic almost grammatically correct. Oh, my goodness. It’s like writing. It’s like writing, you’re writing your this is the first time I’ve written a program and not built one. And I think that’s a great move for C sharp to move towards that simplicity, where you’re, you know, you’re a little bit farther removed from the machine level. And you’re, you’re much closer to how our brains process input and output. I mean, that’s always the goal, right? Like, we’re talking about cyberpunk, like that’s, that’s, essentially the goal of that is to hook it up to your brain so that there’s no, you know, there’s no gap between how you know, a human brain works and how a computer works. So, I’m all for C sharp, when C sharp is sort of moving that way. It’ll make it much easier for people to start learning, as you said, with a console with the console output and you get one line but then you get you Get the USING statements at the top. And in the console app, you get a whole paragraph of output, and then the wait key that’s just waiting for you to input to hit enter. You’re like, wow, what did I do? I have no idea. I have no idea what I just did.

Jamie

Yep. I think I think that part of it from my personal opinion, part of it comes from the fact that programming was a science became an engineering. And, and it sort of along the way, it adopted enterprise practices. And he was like, it fits with C and C++, and all of those sort of low level languages. For people who don’t have a low level is like, close to the hardware, you know, low level of abstraction. Whereas the high level languages like C sharp, like Python, like JavaScript that have lots of abstraction there, but you can strip that away, if you want. These languages are now going, they’re the architects of these languages, and they’re great. But why we don’t need to do that we did that originally, because that’s what everyone else was doing. But if we strip all of that away, and hire people to, to, we can infer a namespace, we can infer a class name, we can infer the USING statements, we strip all of that away, it makes it easier for people to get started. And that’s what I’m all about. More people programming means more voices means more experience, we means a more diverse and inclusive environment. And I’m awfully,

Harrison

absolutely, now there’s, I do talk about this at the beginning of my book, because you like you said, you can infer you know, the the C sharp compiler is fairly smart, like you can at least now like you can, you can leave a lot out, and it’ll fill in the blanks for you. But it is important to know that like, that’s good for starting. But that’s not like you want to move towards making your code explicit. Even if the compiler will do it for you, it makes it more readable to not have to, like, you know, especially if you’re reading somebody else’s code. So like, you know, we can get you’ve already talked to people about clean code on your podcast, it’s, it’s, it’s a big topic, but definitely do discuss these sorts of ideas in in my book, just as sort of like signposts like, maybe keep this in the back of your mind. Like, it’s easy, you can do it. But there, you know, if you want, you know, there is a little bit more intentional way of programming or, you know, we don’t get into design patterns. But you know, at the end, it’s like, well, if you want to go further, you might you know, you’re at the point where you need to start thinking about, you know, system wide architecture, you set things on design patterns, you have all the syntactical and theoretical knowledge to kind of go off and explore, you know, what’s concurrency? How is unity multi threaded? How do I like, Can I can I, how can I manipulate this to my benefit? How can I make the product that I want to make, and that’s really, the end goal of my book is to get you to a place where you can not only find the resources that you need outside of my book, but you can understand them and implement them. Because if I just teach you syntax, it’s not going to do anything. But if I can teach you a little bit about programmatic thinking, that translates to whatever else you do after you finish my talk, which is, which is really the point of all this.

Jamie

Absolutely, yeah, I do like that. Yeah, the, the more people that we can introduce these, these topics and ideas to the more voices we’ll get, and, you know, coupled with Unity has this wonderful idea of, you want to write some C sharp, just create a file, just here it is, and there’s minimal syntax around it. A couple of using statements, couple of methods, you need to know, just throw your code into there, and to a relatively large extent, Unity will handle everything for you. Right? If you don’t do for as long as you don’t write code this horribly inefficient, then everything will just continue to work, right?

Harrison

Sure. Yeah. Mono behavior is the the cure all for everything I know, that’s, you know, it gets as you as the complexity increases, that’s, you know, you can have your own issues. You can bring up your own issues with that as you like, but yeah, they really do allow, like, everything to be dragon droppable or just making like, you just drag your, your, like you said your C sharp script onto a physical onto a cube. And they interact magically, like they reference each other. And that you can, you know, you can impose your will on the virtual cube. Like that’s, that’s, that’s, that’s just nuts. I know I’ve said that a lot. But that That, to me, that concept of being able to do that so easily is mind boggling. The amount of torque that’s that’s hidden under the hood.

Jamie

Absolutely. I I once read a sort of, I don’t want to call it a white paper but more of a report into like a deep On polarization decompile, decompilation, bariga, decompose. He just said twice incorrectly, that D compilation of the Final Fantasy seven engine. And this thing was like 400 pages long. And it just dealt with datatypes. Oh, that’s amazing to read. But if I want to make something that is not similar in scope, but I want to create a battle scene that has RPG elements, create a scene, drag some squares on to represent the good guys, drag, drag some squares on to represent the bad guys throw in, alright, I do have to write the logic but throwing some logic.

Harrison

But that’s really like, that’s one method, you could make that work with one method or two methods take damage and do damage or even you could just have it reference it and do it one method, everyone can take damage. And that’s it.

Jamie

And that’s what I mean, like the, the the complexity of these things is really dropped. And the barrier to entry really has come through the floor, I think, if not, if not on to the film.

Harrison

Oh, I’m sure it’s like the reverse of the glass ceiling, the floor has now dropped several 100 levels, and everything’s like super accessible for the most part. Die like.

Jamie

Yeah, okay, so, um, let’s, let’s help remind the listeners about the book then. I know I said at the top of the show, I know that the episode is named after the book. But what’s that a little bit. Again,

Harrison

the book is titled learning C sharp by developing games with Unity 2021. So this is the new edition just because we like to keep things current with the engine, I do try and keep things as C sharp focused as possible. Again, unity is kind of just the fun wrapper. But we do use some unity API’s or features. So we do, you know, keep this current every year. But really, the only thing we use is a little bit of physics and the navigation system to make the enemies look smart with so we don’t have to write, you know, that kind of code that kind of pathfinding code. But other than that, you know, unity, we keep everything pretty agnostic to C sharp. Because that’s it’s not there are plenty of other books, especially from path on how to use the Unity editor and all sorts of fun stuff. Sure, yeah. So learning C sharp by developing games with Unity 2021. It is now available at Amazon. And you can get it from PACs comm as well PAC Katie. Let’s see. I think those are the only two real places you can find it right now. But it is it has an ebook and a print copy. So if you want the digital copy to kind of split screen while you’re working, I find that very helpful. But you know, there’s something to be said for holding the book. So you can get both hands. And yeah, you can always find me I do some editing for Ray Wonderlic website on the Unity team. You find my courses on Pluralsight and LinkedIn learning just search my name, mostly swift and unity. Have some C sharp stuff and a little bit of agile on there just for fun. And I mean, if you have questions, I do answer, you know, technical or just fun questions on Twitter, and Instagram. And we’ll post you’ll post the links, right. I mean, you can look me up there too. But it’s it’s just, let’s see, instance journeymen programmer and Twitter is journeymen coder. Yeah, cool. Always available. Even after you finish reading the book. I have a couple people that I talked to you regularly who, you know, we kind of bounce things off each other because it’s you find like minded people. So it’s not just about selling the book. I do, like hearing about what people build. So if you have something cool or you have a problem, hit me up.

Jamie

Awesome. Awesome. I do know a few people who will be taking part in the game jam using so I should send them your way perhaps so that you can sort of catch up with what they’ve built and how they built it right?

Harrison

Yeah, I got one guy. He’s says Thomas Barrett. I hope he’s listening. He’s great. He read my book. He was really excited about it. He messaged me a bunch and his game jam on unity, the newest Unity game jam. He’s placing third with his single button, click game. It’s really cool. But cool. Yeah, he’s, uh, he’s doing great. So it does happen. You get you got all these ideas, just learn the syntax and start making stuff.

Jamie

That’s it. That’s it. I like that. I’ll have to see if I can track that one down. Maybe you can get a link for the DLL and yeah, because that sounds pretty cool. Because that’s, that’s the thing, right? Just to sort of wrap up this I think you don’t have to build the tool that like if you imagine a woodworker, right. You don’t have to build the chisel and the hammer, and all of the other woodworking tools he’s got by him or in this case, go use them for free. Right. The only limit is your creativity and That’s what I love about these tools

Harrison

is I mean, it’s a natural progression, especially with programming, the better you get, the more complex things you can build, the better you have are, the more you have to learn. Because there’s there’s problems, the better you get. So it’s a self, you know replenishing cycle, you get better, you build something better. And then you get to a new kind of ceiling of a problem. And you’re like, oh, man, now I have to learn about multi threading. Well, okay, now I have to learn about how to, you know, create a system architecture, okay? And it kind of just keeps positively reinforcing itself, which I love because it’s built in. Like, there’s you don’t have to do it on purpose. It just naturally happens.

Jamie

Yep. So same thing with like music, right? Exactly. First thing you may be, you may learn scales, or before that, you may just learn that there are eight keys and a bunch of like half steps between them. But you don’t have to worry about them. Then you learn about the half steps. Then you learn about scales. Then you learn about, like tonality and then you go right, okay, now we’re gonna learn about chords, where we’ve got three of them together, you no longer need to remember c plus, whatever the three notes are that make up the C major chord, right? Right, just need to know where, yeah, right. It’s the C chord. And then, once you’ve done with that, you then move up to, I don’t need to remember how to play the song, or that I don’t need to remember the chords to remember the how to play the song, I just play the song, right? And then you get to the point where you come up with, Oh, my goodness, I’ve got this long improvisational bit, I don’t need to think about what I’m doing. Because there are key parts I have to hit. Same thing with development, right? Like you say, you learn how to do hello world, you learn how to put a box on screen. The next thing you know, you’re building full system architecture, right? Because like you say it’s building, just learn, pile these obstructions on top of each other and you’re good to go.

Harrison

It’s a naturally naturally run into questions that you don’t know the answer to. But you know, enough to figure it out. And that keeps happening. It’ll that’ll never stop. You know. And that’s that’s the beautiful part about it, which is sort of like how, again, like, people are already programmers, we do this in everyday life where we continually learn through interaction and response. And it’s the same thing, which is why you can’t tell me that we’re not all Pro that human brains aren’t programmed or you know, aren’t programming machines, and that we’re not all kind of pre wired to already be good at this. Like it’s not a it’s not a special skill. Everyone can do this, because we’re already built that way.

Jamie

Mm hmm. I agree with you completely. But what I’ll say to you, Harrison, is I’ve had an absolute blast talking with you today. And I am worried about using the rest of your day, because I feel like I could sit and chat with you for the rest of the day.

Harrison

We could we do so we could do things. All right. Well, thank you so much for having me.

Jamie

Yeah, it’s been a it’s been a whale, over time.

If you’re interested in anything that Harrison’s talked about today, all of the links will be in the show notes. So if you’re listening away, don’t worry about having to find a pen and write things down. Just press through on your podcatcher, and it’ll take you through to there’ll be a bit on there with just the links from the show, oryou can click through to the website, there’ll be a transcription of the the discussion with links that we talked about, for things like that. There’ll be a link to Harrison’s book, if you’re interested in buying it. I can say that I read the 2020 version. And it was a definite really good read. I, I was like, “wow, I can actually build a game,” and I’m actually tempted with one of the kids and say, “hey, over the Christmas period of the holidays, why don’t we build something, right?”

Harrison

Yeah, why not?

Jamie

They can mess with the Unity, with the Unity viewer, building the scenes. And if there’s anything that requires code, I can jump in and write the code, right? Let’s see what happens.

Harrison

Yeah, why not build something, see what comes out?

Jamie

Absolutely. And if nothing else, it gets the kids doing something over over the holidays, right? Rather than sitting there and just staring at the TV. But that’s a problem for me to solve, not for the listeners.

But yeah. Thank you ever so much, Harrison. I really enjoyed our chat today.

Harrison

Of course, this was great. Thanks so much.

The above is a machine transcription, as such there may be subtle errors. If you would like to help to fix this transcription, please see this GitHub repository

Wrapping Up

That was my interview with Harrison Ferrone about how easy it is to get started with Unity, and how you can use it to learn C# and .NET - even if you have no programming knowledge or experience - and his book Learning C# by Developing Games with Unity 2021. Be sure to check out the show notes for a bunch of links to some of the stuff that we covered, and full transcription of the interview. The show notes, as always, can be found at dotnetcore.show, and there will be a link directly to them in your podcatcher.

And don’t forget to spread the word, leave a rating or review on your podcatcher of choice - head over to dotnetcore.show/subscribe for ways to do that - reach out via out contact page, and to come back next time for more .NET goodness.

I will see you again real soon. See you later folks.

Follow the show

You can find the show on any of these places