CppCast - Teaching C++ to Game Development Students in the Age of LLMs with Tom Tesch
Episode Date: June 22, 2026Jason and Mathieu are joined by Tom Tesch to discuss teaching C++ to game development students, how LLMs and chatbots are reshaping programming education and assessment, and the lessons that come from... teaching on retro hardware like the NES. News Sourcetrail - interactive source explorer for C++/Java, fork maintained by Peter Most Links The Creature of Wellstown - student NES game discussed in the episode (itch.io) Game Education Case Study Microtalks - Tom Tesch et al. (GDC Vault)
Transcript
Discussion (0)
Welcome to the 408 episode of CBPcast, the first podcast for C++ developers by C++ developers.
I am your host, Jason Turner.
Every fourth episode of C++ Weekly will be a crossover episode of CBPCast.
You can choose to watch the podcast on YouTube or listen in your favorite service.
I'm joined by my co-host, Mathieu Ropère.
How are you doing this week, Matthew?
I'm having a week because I'm forced to work on Mac.
And I hate this so much so far.
I'm hoping it's going to get better as I get into it,
but I'm not going to lie for Mac Mac, Mr.
how do you manage?
I'm just too much of a Windows guy at this point
after so many years in game development.
I can barely right-click.
What is going on?
It has a Unix command line.
It has a Unix command.
It's fine.
I use Macs at home, but for work I use a Windows machine
because it's required.
I would love to work on Macs, actually.
The Linux part are easy,
because that's the one I,
I just have like memory about, but the minute I tried to do graphics stuff, I'm kind of,
agreed.
I've been a Linux user since 1990.
Good gracious.
It's about 1994, mostly.
I've had some Linux box around.
And so very familiar with Linux, Linux command line tools.
And then I wanted to use a Mac.
I bought a Mac.
I'm super excited about it.
I'm like, yes, an actual Unix workstation.
This is going to be amazing.
And then I realized that it's all the BSD versions of,
the tools instead of the Ganoe versions of the tools and everything was completely different.
And I was...
I actually worked with BSD back in the day because the nerd that was my roommate in tech school
was a big BSD guy. So I was not, I'm not too afraid of BSD, but just the whole, I don't know,
people tell me new word, it's Mac is for people who don't have a, you know, that, that,
that thinks you, UX is too hard on Windows. I'm like, I don't get it.
Maybe I'm the boomer who's like, how does that work?
you are yes you're becoming a boomer mattoo that's terrible news that's terrible news my wife is a graphical
designer so we have max at home it's uh it's not well i don't hate them but seriously i don't think
i got to be fair i'm looking at the new macbook neo and i'm wondering if that might be my new
travel laptop because it looks like a good deal yeah i've been considering getting a mac mini
and traveling with that because you have screens everywhere you just have to
they're tiny. You can drop them in your luggage and somebody my size, I can't work on a laptop
on the plane or anything, right? The seats are too small for me to do that. So I might as well
bring a more powerful computer. But it's a idea I'm toying with. Okay, let's go ahead and
introduce our guest for this episode, since he has already introduced himself this week. We
are joined by Tom Tesh. Tom is currently a senior lecturer.
for the Bachelor of Digital Arts and Entertainment at Haust.
I don't know how to pronounce that.
Whole West.
Okay. University of Applied Sciences,
where he is on a mission to inspire the next generation of game developers.
His expertise revolves around teaching C-BOS Plus algorithms
and the core principles of computer science to aspiring game creators.
He combines his broad experience with hardware and software engineering
with his love for retro gaming,
not only guiding aspiring developers through the intricacies of coding,
but also immersing them in the timeless charm of vintage gaming.
Thanks for joining us today, Tom.
You're glad you're having me.
I'm honored to be invited.
I was just telling the story earlier.
Maybe I should tell it now,
but I blame Jason for part of my C++ journey.
I've always been interested in retro computers,
though in my day those computers were just called computers
because, yes, I'm that old.
And I saw this weird guy,
running C++-17 on a Commodore 64 and proving it could make efficient code.
I thought, wow, that seems like an interesting conference.
I should go there.
And so that's the first time I came to a CPP.
I had a little bit of budget.
We don't have a lot of it in public education,
but it was my turn to go to GDC.
And I said, I'd rather not go to GDC.
Can I apply this budget to go to CPPCon instead?
Because I teach programming, it's probably more relevant.
And it's, yeah, it's, it's really, really stoked my, my interest further into C++.
So thank you, Jason.
No problem.
What was your first year then at CVPCon?
I was thinking about it earlier.
I gave it talk last year and the year before that, then the year before it didn't come.
So I think 23 was the first time.
I saw your talk quite a bit after, after it was released.
It just showed up on my YouTube.
on my YouTube feed because it notes you're interested in old stuff, right,
and old computers and running modernist people on a Commodore 64, that seems fine.
I was there that year, and I think it's maybe one of the talk
that showed Godbolt to the rest of the world.
I remember this is the first time I heard about it.
This would be my first time I heard about Godbolt.
And that's how people meet this guy like, hey, why are you named Godbolt?
Like the website?
And he's like, yeah?
Yeah, like the website, yes.
I will, actually, I will not so humbly take credit for that.
Yes, I did introduce the world to compiler explore, the conference world to compiler explore.
I gave a talk at C++ now the year previous to that, and I had a bunch of like, look, these different constructs compile to these different types of assembly, static slide.
And every single person in the room said, how did you get the assembly?
for those functions.
And I'm like, oh, it's just this website that exists, right?
But yeah, I was, that is, and, you know, I'll take credit for, for putting it on stage,
but I will also fully give Matt credit for completely changing the way that all of us work,
basically at this point, right?
For education, it's just such a game changer.
I love how you can lay out code neatly.
I'll take a picture of it to put in my slides and put a Goldbolt link in the comments.
So my students can play around with it, copy and paste.
Also, if I have to fix code, which happens,
I cannot count a number of times that I have a bunch of code
and I took a picture of it and put it in my slides.
And then I don't find the source anymore.
And I have to type it over.
Like some medieval peasant.
Yeah.
Did we mention Godbolt in the last episode?
He's starting to make a bingo card and it's just going to be Godbolt in it for now.
I guess it does come up a lot.
I think we mentioned him over the website.
For the listener, it will already be online when it comes,
but where we are recording it, it's actually not published yet.
It's going to be next week, I think, if I recall the schedule,
or maybe even this week that the previous one will be probably.
And seven days from now is what next.
Yes, exactly.
So, yes, we're recording this on the 11th of May,
but by the magic of editing and publishing,
you will not notice this, the listener.
You might be hearing a cat being very upset
because he's never been fed.
I'm sorry for that.
I did get a comment from a listener from a few months ago,
or the first episode you were on, I believe, Matthew,
and they said that they were driving
and kept thinking they were hearing a cat
and couldn't figure out where the sounds were coming from.
Yes, yes, I'm sorry.
Actually, if you give me two minutes,
I'll handle him so he stops because the rest of the podcast is going to be just humiliating for an error.
Yes, I'm coming. I'm sorry. I'm really sorry.
For those who have been listening to CVV cast for a very long time, you might remember ClickGate,
which happened for like the first maybe two months that I was co-hosting with Rob that I would sit here and fidget with a clicker with a pen.
And I didn't realize it was ending up in the audio.
And we would get comments from people that were complaining about the clicking sound.
and it took a while to realize it was my fidgeting.
That was the problem.
And now for people who are watching the video,
I fidget with something that's rubber,
and it won't make noises.
Never.
I saw you become an experienced podcaster.
I'm new to this, so you get cat sound.
I don't know what else is going to come up later.
We'll figure it out.
It'll be fine.
I'm not worried about it.
All right, should we jump into the news for a moment here?
Well, news, whatever.
Topics to talk about.
these things might be old by the time this episode airs.
But one of the things that I personally missed about not co-hosting CVPcast,
I missed while not co-hosting CVPcast,
was that it kind of forced me to keep up on the news.
And so I just kind of want to force everyone else to keep up on the news.
And so the first thing that I have here,
I don't know if there's a whole lot to talk about.
It's just a link to the GitHub repository for SourceTrail.
and when I saw that this was still being actively maintained from a fork, Peter Most, I guess.
Yeah, Peter Most has been maintaining this fork since forever and making releases.
And Source Trail was like an early, early episode that Rob and I did.
So, well, early in my brain, I guess.
I just, it's nice to me that this project is still being maintained eight years later.
by someone. It's just a GUI for navigating source code for navigating C++ and Java, actually.
I didn't know it, and I'm already a fan to navigate through students' source code. This could be
a great help because they might sometimes have the tendency to overcomplicate things. It's nice.
I wish this existed 10 years ago. Well, it did exist 10 years ago. You just didn't know about it.
I didn't know about it back then.
Yeah.
I wonder how much faster it is than using an IDE
because I don't remember if I mentioned that in the last episode.
Maybe not because I think we recorded it after before.
But I've worked with a real engine recently.
And working with one of those huge projects on MSVC
means that every time you hit F12 to go to location,
you just watch a loading screen for like 10 seconds
and then you hope that it actually goes somewhere.
And then you go back to your old.
of just doing a search by name because it's much faster than trying to do a simple look up.
I think Intellicense just gives up after a certain size.
It's just not as fast.
I know there are plugins.
I don't want to make any publicity to the paid one unless they give me money,
but I know there are options that might make that faster.
So I'm hoping that maybe Salesforce can do that.
But again, maybe at the scale of your student project, it doesn't matter because hopefully you're not turning out like...
No, no.
Not Unreal site.
side. I hope so. It hasn't happened yet. Nothing surprises me. I will never say this will never
happen. You never know with students. Every time you think, oh, this is it. I've seen everything.
Then the year after it, it will be topped by something. So no, I'm not bad. Actually, I mean,
maybe it's more like the kind of thing that would give you great material for lightning talk.
But are you allowed to keep like a hall of fame of the most like insane or or curse stuff
they turn out or is that like technically like maybe a deontological issue or uh i have a repository
and every year every year every year i threaten if anybody does this again i'm going to make a wall of
fame put the code there and your picture right i've been i've been threatening to do that for nine years
and i've never done it because you know i i feel this this is how i might might end up in hr and
and have a discussion with the dean whether this is truly appropriate.
Though I will, I will, I will shame them once their alumni and tell them,
you remember that terrible, terrible code you once wrote?
They will be genuinely annoyed by this.
Maybe if you anonymize it, because they know who made it, but nobody else does.
So I guess I have a collection of really awful code and there's no name with it.
So I couldn't make it.
It's actually good idea for a lightning.
talk. I think it's an amazing idea. It would be it would be hilarious. Yeah, there's there's certainly
things in there. I was just thinking when you when you were saying, you know, in visual studio,
when you press F12, one of the things I discovered last CPPCOM, I was I was studying some source code
and I, given my size, it's hard for me to operate a laptop on a plane and the size, it's not me,
it's the planes who are tiny. I printed out some code to look at and I realized by by studying the code on
paper by the time I landed, I understood the structure of the of the program way better.
Because you can just, oh, go to the definition, right?
You have to know, oh, this isn't this file. And after a while, of course, your brain
captures this information and you understand the code better. And I told myself,
well, I will not use go to definition again. And that that held up for the entire conference
and afterwards I was back to pressing F12 like crazy.
But I'm really convinced that, you know, your brain is lazy and you don't want to go through all the pages again by hand.
And you just remember, oh, that's in that file and that's in that file.
So I think if I ever have to work on a project, I mean, professionally, not like now.
As a teacher, I would certainly print it out and try to study the code like that.
I know it sounds weird.
I mean, I accept this.
When I was younger and worked at a regular company and had free access to laser printers, I would take whatever I wanted to study, be it source code or the technical docs for a piece of hardware that I was working with or something like that.
And I would print it four up double-sided to reduce the amount of pages that I was actually using.
And back then I could read four-up on a standard piece of paper.
I'm not sure if it would be wise today.
I'd probably be doing this with my bifocals, right?
But yeah, I don't know what the limits are here.
Like, how long was that project that you printed out?
It was the C-plus Game Boy Amulator.
Right.
So not that.
I didn't plant out the unit test because those were immense,
but quite a bit of code.
I don't know.
It must have been like 40 or 50 pages or something.
something. And I printed them back and back in front. It worked really well. And yeah,
sometimes every separate file was printed separately. It was it was reasonable. People don't,
well, the university doesn't complain when we print stuff because our department is one of
those in the university that prints the least. Other other departments who do languages and
other stuff print way more than us. So they didn't complain about it.
print anything in this era. I would think everything will be like a tablet or a computer at this point.
That's exactly what happens, right? We don't, exams are online, exercises are online.
Some, I think the math teacher still likes to print out the students still make exams by hand,
so he prints out his exams and he has a couple of hundred students. So it takes, that takes up some paper.
But compared to the average, we're really good on this. Yeah, I guess math makes sense because if you want
student to format math correctly you first have to teach them latex which might take the first
semester just to get that going yeah I don't see that happening it's the first
semester first year they don't know anything yet they're innocent why died so you say
you're teaching right to take us through it a bit what kind of like what kind of
of course you like intro to C++ all of C++ you said he's also like games
related so what's the what's the whole like yeah so so I teach digital arts and
entertainment. That's a bachelor degree. We have six majors. Two of them are related to movies.
One is 3D animation. The other is VFX. So some talk about these. I only teach in the major,
which we call game development, which is most related to programming for games. And also
GSI, which is game sound integration, which is audio related. We're also T-plus. But I don't.
and the GSI students I teach the first years.
I like that group because audio is very specific.
It's a very tiny group every year.
The first two semesters, so the first year,
I do not teach C++.
The very basics are not taught by me.
They're taught by an amazing colleague
who's, let's be honest, more patients than me.
Because the first, we're a public university.
There's no conditions to enter,
except that you have to have finished your,
secondary degree, right?
So you, when you enter, some of them have never programmed.
So it's not a, it's not just a C++ course.
It's a programming course, right?
With C++ as a first language for some of them.
But in the first semester, I teach algorithms,
which funnily enough, I used to do that with,
with a turtle code, but then you realize as soon as you do something
even slightly complicated, you have to introduce this syntaxes.
So I switched to Python for that.
which is like pseudo code that you can run for the simple things we do, right?
Right.
It is, right?
And I think it's beyond that I heard in an interview once say,
a good programmer should know more than one language.
So that's already a second one on their belt.
And it's really for simple things like sort of code.
And then in the second semester, I teach something called computational system fundamentals,
which is the basics, how does a computer work, how does a compiler work,
how does software work, right?
The computer science, basic.
And then I teach a course called programming three and four, which in the second here.
Starting in programming three, we start to do programming.
That's more unique for, let's say unique for C++.
We talk about RAI.
We talk about related concepts like unique and other smart pointers.
We talk about lambdas.
And by the time, the next semester programming for that's the last formal three.
training to get in C++. They have to also write a little game. We assign them a game out of a list of 10 randomly, but they have to design their own little engine as well. So they get a very shitty on purpose SDL engine that's really terrible, right? And they have to fix it. And they have to use software development patterns. And it's a lot of fun. Well, for most of them. Some people really don't like it. I guess it is closer to the reality.
to maybe give you, like, at least at some point
you will have to encounter the fact that you have to work with
an engine on SDK that is clearly like
a thing that the company would like kill
or be factor but never got the time
to do. Exactly. And the
degree is also more, it's
often, well, in one of the other majors
they teach unity and they get C sharp
it's the ND track. And if you say
oh, but we don't do C sharp
at C++, everybody automatically
it's like a false dichotomy. Oh, then you do
Unreal. No, we
show them some Unreal in some of the
courses, right? But it's not an Unreal course because maybe slightly controversial, but Unreal isn't really an example of great C++, especially for teaching. I'm glad somebody else is smiling. Some of the coding guidelines are in direct opposition to the score code guidelines. So, yeah, of course, it's a very useful engine, right? And it's good for making games, but it's not good for teaching good C++.
I think.
No, I haven't read them through, but like I said, I had to work with Unreal recently,
and I probably made a few curses on the internet after that,
because I had to use their array type and their map type,
which do not have anything from the STL API at all.
They're not dropping replacements.
They made a begin and an end at gunpoint because they wanted to do range four.
But if you try to use begging and end for anything else, like an algorithm, for example,
it fails to compile because their iterators,
For example, in debug varieterters are not copyable.
So no algorithm works.
If you want to use iterators with them, what you do is you do dot data and dot data plus size because then you default back to pointers.
And that works.
But they have custom iterators for like, you know, basically do the same thing as Microsoft does with check iterators, right?
Except there's or just a minimum support so that you can do a range for and nothing else.
It's absolutely cursed.
And I always get some weird.
oh, on Twitter, hello, if you're a listener
and also one of the guy who argues with me on Twitter,
you're wrong. Like, there is no
way you should have an API
that is just refuses to
engage with the rest of the STL.
I don't, there's,
like, you would have to go out of your way to
make an iterator that's not copyable.
Why? If you make a custom type and you just don't
make it copy, oh, they put a reference inside it
because they capture reference to the vector to
verify you, to check you're not out of bound, which
everybody teaches you, like, do not
put references in structs, put point
because then you don't make them reassigned.
They can be reassigned.
But, uh, eh?
Yeah, I try to avoid that.
That's the luxury of being a teacher.
I don't teach anything with Unreal so I can avoid it completely.
And when students ask me questions about Unreal, like I tell them, I don't know, go ask another colleague.
And even when I know it, please go.
Yeah.
So, you know, you know, stuff like that.
As a, you know, you're teaching, I don't write a lot of code.
So I tried to all the code I read, I tried it to be as good as possible.
I want to have good habits.
So I want to have, since I'm in the luxury, I don't have to touch Unreal.
I don't.
I try to avoid weird stuff like that.
So yeah, that's most of what I do.
Teaching C++ has not been easy and it's been large language models have actually made it much harder.
The problem is,
The large language models are very good, very good at solving first year problems.
The typical easy problems that you make when you start, it's an if and a for loop and defining a variable and this little framework that we have,
which is in Rapper over SDL and all these things.
The large language models are very good at.
So we can't help the students because they cheat on their homework, which by doing it with an LLM.
And I think it's not only pure cheating.
that at some point they believe they understand it but they don't last year the results for the
programmers it was a slaughter a lot of a lot of people a lot of people failed because they have to
for the programming two cores they can pick whatever game they want from the 16 bit era style
games can be more recent like a celeste or whatnot and they they have to replicate it's a project that they
to work on, but then there's an oral defense of this.
And in the oral defense, you will ask, oh, these three lines of code, what do they do?
Oh, I don't know.
I just got this out of Claude or Chachyp.T or whatever it is they are using.
And of course, you cannot give people great scores for this.
Also, when I talked at GDC, I talked to other educators.
Compared to the US, we fail more people.
Being failed happens in Belgium.
a lot, specifically in games, because some people are 18 years old.
They don't know what to do with their lives, which they like games.
Oh, so there's this cool in Kortchik and they do all some stuff with games.
I'll do that, right?
I always try to tell the parents, look, I like beer.
That doesn't make me a brewer.
That is perfect in Belgium for you.
to say that to your to the parents yes it's probably a necessary condition to be a good
brewer to to enjoy beer right i i don't think you can be a great game programmer if you don't enjoy
games but it's not enough it's a necessary but not in enough condition so failure rates are already
high people are often disappointed by this and and large language models have made it worse
because because people convince themselves they understand something and they don't i was one of the
first teachers to allow for programming three, I have a lab exam, so they get an exercise.
They bring their computers. They can use anything they want, except other humans. They can,
they can use stack overflow, CPP reference, large language model, anything they want. Of course,
I make my exercises specifically, and I test this. Failure rate is about 40%. Of course, there's a
retake. These are people who made it to the second year already. So this is after the slaughter,
the people we stop it after the first year people overestimate what they will be able to do with
AI one of the things i found that that's really easy to stop them with is i don't provide the spec
i just provide them an executable and the the exam is make the same thing and apparently apparently
this is very hard you could of course describe what you want to to a large language model but
that's also a part of a skill and and they they write terrible code
Chat CPT for instance still doesn't know how to get the size of a file,
which you can do easily and uniformly since C++17, it will still do the seek thing.
I recognize it immediately.
It's been trained on so much old and shitty code that it will keep doing that.
It's going to do an if tell, like, yeah, of course, because that's all the examples you find online.
Yeah. And they don't know enough to know to not tell it to not do that.
Well, if they come to class and they pay attention, they will know.
Yeah.
Well, right, right, right.
That's, I'm still kind of fascinating by making your students defend their project with oral arguments.
That is...
Does that seem special to you?
I have not heard anyone else say something like that.
That's the only way we can currently think, because you'll know very fast if somebody wrote it to himself.
Oh, yeah.
Or even if they only partially wrote it, they go.
God help. It's allowed, right?
As long as you understand what you're doing,
that you replace part of your typing with language models,
I think that's what they're for.
A kind of intelligence, but on steroids, right?
As long as it's that you do, but if you think it's going to replace me
and make my homework, that's not going to, that's going to work.
And once you're used to it, you know in a couple of minutes,
oh, he doesn't know what he's talking about or she doesn't know.
Yeah. When I was in tech school and in engineering school,
because I did both. I did a two-year tech school at first, and then I did a three years
engineering school after that in France. Sometimes, mostly group projects, they would ask for you
to do a defense. I guess sometimes just to check if one of the guys had done all the project and the other two
had just put the name on it. Yeah, no, I mean, yes, I agree with you, you will immediately tell if someone
has as any vague idea of what it is. Back in my day, it was mostly like telling the guy that you
tried to do a, you know, like you try to do a solid too by telling yes, you can be in our group
and we all know that you've done nothing. Just pretend you haven't, just pretend you don't say
anything. Do not ask anything. And I remember one time just for an anecdote. We had this group of like
three or four people. And then the fifth one comes up. The kind of type, you know, partied a lot
and did not do anything. And they're like, okay, you can add your name to our project and get the great
with us. Just shut up. Do not say a word during the, during the thing. And of course,
course, he shows up hangover from the day before because engineering school and friends are mostly
about parties. And the teacher goes, oh, so you didn't have too much problems with the Megfile
seeing that it was a big project and we only had a short introduction. And he just like completely
like probably still hung over. Just look at the show like, what's the Megfile? Luckily,
the teacher thought it was a joke because there's no way no one knows what the Megfile is.
So obviously this is just a bit and he just laughed with him and then continued with the question.
And I think that's how he got away with it.
Oh, goodness gracious.
So in my university and my years when I started, you would write your project, right?
Then you would have to bring it in on a floppy disk, you know, and put it into the computer
and run it for the, you know, teaching assistant or whatever.
You know, the professor wasn't generally the one who would do this.
And then, you know, if there was any questions, like you had to know how your project,
was supposed to operate if nothing else, right?
But by the time I was graduating,
all of those first level classes had been moved to auto graders.
So you had upload the source code
and it had to be in a uniform language now at this point, right?
And then it would run the thing.
When I was an undergrad,
officially they didn't teach programming to computer science students.
It was up to you.
You could decide Java, C, C++, whatever you wanted to do it.
whatever you wanted to do at the time.
And then they made it all uniform on Java,
and then I think Python later,
because this auto-grader to reduce the burden
on the people doing grading.
But, no, I had not heard anyone in modern day,
I guess, if you will, say that you had to do
an oral defense of your project,
and I think it sounds like an outstanding idea.
It's the only solution.
I see the other solution I've heard,
I think it was from Amel.
in Toronto, who told me they have again an old school computer class, you know, with fixed desks
and a limited set of software installed and a firewall. The websites can only reach this and this,
probably CPP reference and, you know, but that wouldn't fly because no budget. I wouldn't,
I mean, the laptops, the students by them themselves, right? Having the university here,
buy and maintain computers also, we run out of space.
We have like 1,700 students.
Last year was the first year we didn't grow.
So we were actually, we were very happy with it.
We were celebrating our 20th anniversary.
Birthday, anniversary.
Yeah, for the people listening,
we had a joke about anniversaries and birthdays earlier.
So, yeah, 20 years, we've been growing all the time.
We've used up every room we have.
They're all booked all the time.
So we don't have space to have a computer class.
we don't have budget to buy computers.
So oral examination is the way to go.
It's sometimes tough for the students because some of them are very introverted or even partially on the spectrum.
That happens a lot with programmers, which is fine.
So it's extra tough for them.
But when they apply for a job, it's also part of training, right?
When they apply for a job, this will also help.
The fact that some of our students are on the spectrum also doesn't help for the exercises,
because over the years our exercises have become very well defined.
Because you can't count on, for most of our students, you can't, but for some of our students,
you can't count on, but that's just common sense, right?
You can get this from the context.
They cannot.
So you specify very precisely what you want.
So if you cut and paste this into a large language model,
out will pop a perfect solution.
Right?
So that also doesn't
help. Yeah. Orals
where it's at, that's
that's, uh,
I was, I was pondering your,
you're saying one of the final year projects is
make a binary, make a program that does the same thing as
this binary that we just gave you.
In my experience, the LLMs are,
you know, getting at least
better at reversing binaries.
And then they can operate as plugins
with binary reversing tools like
Geidre.
And yeah, there's probably a day coming very soon where the student might just be able to say,
here's a binary, make a C++ program that does approximately the same thing.
Then still, the last line of defense will be the oral exam.
Because that course programming three used to not have an oral defense.
And next year it will.
So they will come, they will make the lab exam, they'll have half a day.
And then the days following that, each of them will have.
have to come to me, will open their source code, I will discuss it.
Yeah, I'm pretty sure if you open the source code of something made with Gaidra,
we've not any more like understanding the variable names are immediately going to tell you that this makes no sense,
right? Because unless you have access to like the symbol table, the PDPs or whatnot,
like Geiger is pretty good at turning assembly into C++ to some degree, but it just,
it screams like unreadable like without any intent if you don't have variable names and
function names and whatnot.
I have a horror tell you that story that I need to tell.
And Jason is going to love this one.
So I had a student and they had made an okay project, not great but okay.
And so we're going through the oral examination.
They're not doing well.
But I hate that the student has to leave and couldn't answer any question.
So I keep asking questions and the questions keep getting increasingly simple.
right and I run out of ideas and I'm like they're on line 39 there's this keyword
int what does that mean and they come back with oh that means the variable gets
initialized so yeah then you know you haven't written this project yourself you don't even
know what an int is um you all know you are not enough it's very rich and I have somebody who
can answer not a single question but it happens and and I have alarms to thank for this
managed to get without not knowing that what
int does, which by the way, listeners, we all
know this is to fire an interrupt at the CPU
level, but
like, how far do you get
to not
understand what an int is?
Like, how do they get all the way to you?
Like, shouldn't they fail?
That was actually
for an audio student.
Oh, okay. And I teach those
in the first year.
So there's no filter
there yet. So, yeah.
I get the raw and unplugged version, and that's a tiny group.
That's a tiny group.
I enjoy teaching them because it's classes with like 18 students or something.
I know their names.
So nice, while you're teaching, you're just explaining something.
You can talk to someone and say, oh, you, I lost you.
Why?
What did I say that you did not understand?
You can often see it in their eyes.
Yes.
Yes.
And there's must be.
be some number because it's it's like a cutoff over a certain number it just becomes a blur it's
just a wall of faces and and whether you're teaching to them or to a camera it doesn't make any
difference anymore i'm a slightly exaggerating but but but that's that personal touch is gone
a lot of students also get shy about asking questions when they're in a big group because
you have to get over your shyness and say oh i don't understand this right
Yeah, I have a friend who is a math teacher, like classic high school math teacher and middle school math teacher.
And he says, they all say the same thing.
It's like, you lose the personalization after like 20 people per maybe.
Something like that.
At 30, after that, you start dividing people into groups.
Like in your head, you put them in groups and you said, this is group A, B.
And it's like the smart ones, the one that are okay and the one that are struggling or something like that.
Because you have to try to.
You can't basically make personalized content for 30 people, right?
And obviously when you get an amphitheater, then it's completely like you have to make a lecture.
Yes, it's just a lecture and you make slides and you can give small demonstrations.
When I teach small groups, I have notes, what I want to say, but I don't have slides.
I demonstrate everything.
I make notes live with them.
If it's something that they need to know, that's very important.
We make the slides together.
We decide what we're going to put on there.
We save them on their, yeah, that works when you have small groups.
You can't do that.
And if there's 100 people sitting there, then you're doing a talk, right?
How many hours do you have through this semester or whatever in total with your group?
Me, me personally, it depends on the course, of course.
They have about all the courses they have together, which includes mast and algorithm and programming.
And then also they have to learn some 2D and 3D because they have to be able to talk to artists.
But we teach them about between 18 and 18 and 20.
22 hours per week.
Oh, okay.
They are expected for every hour, for every hour of class they get, they are expected to work more or less an hour at home.
For some courses it's more, for some courses it less, but that should, it should average out.
I mean, legally, we should try to get the students into a 40 hours, 40 hours a week, work week.
That's what we're aiming for.
And we have our semesters are 12 weeks,
12 weeks of teaching, couple of weeks of exams,
so two semesters a year.
I've also heard that the semesters are longer in the US.
There's more.
There's a, it depends on the university.
Usually we do two a year with a summer term possibility,
but some universities do three trimesters.
Yeah, we don't, yeah, summer term is not,
if you have to come back and
the summer it's a retake, right? If you fail your exams, you can come and do a retake in August.
There's various reasons. At my university, people would do, they had a pretty strong co-op education
program, so they encouraged people to get a job with, you know, a company that had basically
registered with the university for the stall workout, and you would do like one semester at the company
and then two semesters back at the university. So that meant you were doing like every third
semester, you were probably hitting a summer term, right, and trying to get those classes that
you couldn't get during the regular term because you were at the company, you were at Microsoft
or whatever.
We have schools like that in France, but I think that you alternate once a month or once every
two months between the company and the school.
Basically, you have two options, right?
You have the one when you alternated between the company and teaching and it's all of teaching
on the job.
And there's the one who are just like full, more classic, like classic curriculum, like I think
like Tom teaches.
Yeah.
We have an internship at the very end of the, of the, of the program.
So at the last semester of the bachelor, it's just an internship where they spent four
months in a company.
And we're trying to, we're trying to solve one of the main problems the starting developer
has in the game industry.
And I think Mathieu will agree with me.
If you apply somewhere, the first question they will ask you is, what other commercial
game have you worked on?
Of course, when you're starting out, that's,
an issue, right?
That was an issue for me.
Like, I have my consulting gig, and I tried to apply to some jobs from time to time
when I was in between clients and wondering if this was going to pan out or not.
And I got fresh without someone, without a human calling me back on some, on some, like,
senior programmer application, because I had the audacity to tick the button.
I don't have three years of professional tripolar games in Unreal's and nonsense.
Yes.
So the four months, they work on a real game.
game and a company opens a lot of doors. A lot of them get actually get hired at their internships.
So that's that still works. Well, it's not as good as it used to be. Fortunately, fortunately for us,
the game developers, they know C++ when they get out of here, right, it's low latency stuff.
And a lot of my best students actually realize I really like programming. I like games too,
but the programming I enjoy and when they're, if they're willing to not,
just stick to games, they find jobs very easily.
There's a lot of job opportunities still for the
C++ developers, I think.
Yeah.
If I can give my two cents on this,
I think there is a will disconnect in the game industry of lights.
And like I said, I've experienced this first hand recently,
but I saw it around me too.
There's basically two types of ways people look at jobs,
for like if you want a game programming job, basically.
Some of them, they actually want like an engineer.
you know and at the end of the day like oh do you have X years of experience on engine X Y or Z product
ABC it doesn't matter it's it doesn't matter you can figure out in an interview someone can pick
those details of yes or no and there's the one who are just uh they want like a very specialized
worker like uh like I made a joke on Twitter I call it like modern Fordism but it's kind of the
idea is like I want a guy who's very good at like hitting this this snail on the Unreal Engine
to make gameplay features and and and in no way we think you can make it
I've worked seven years on a custom engine.
What are you talking about?
My last client was in real.
I had barely picked up a real before, and it didn't stop me from like on a three-day consulting
say, hey, you can make your frame like X milliseconds faster by doing X, Y, or Z.
Like, it's absolute nonsense, but I think this is a big disconnect.
I don't know exactly where it stands.
Is it just like, because there's too much filter between the team leads and the,
and the, and the, and the, and the, and your CV.
Like, it has to go through a bunch of.
people who have no idea what the job is about?
Or is it because some companies just have that as a policy that, like, you know, like the team
will only hire.
I've heard that from team leads too, thing like me like, no, don't bother applying if you
don't have professional experience on Unreal.
Some people that I had met, I will not name them, but some people I had met at conferences,
I heard they were working on an interesting game.
And I say, are you looking for programmers?
And we say, yes.
But only if you, only send me a CV if you have worked on a new professional, which I think is
completely insane.
Yeah.
I mean, I agree.
I agree.
It's been a fight here inside the school as well, because our management.
We regularly do surveys with the industry, right?
And while the teachers are usually saying the same thing, we're not, because these
companies are thinking we are doing training for them, but we're not doing training.
We're doing education, which has the side effect of usually training them in some useful skills.
But it's like you say, somebody who is smart and flexible enough, he'll learn unreal.
That's not a problem, right?
And if they're not willing to put in their work, even for interns, sometimes the expectations that companies have are unrealistic.
They also, they're still students, right?
Technically, the internship is part of their education.
It's four months, is that the last semester.
They should be learning stuff on the job.
We also have a pretty bad system in Belgium for internships,
which is something I'm really upset about, but I can't help it.
But my smartest students don't do internships in Belgium.
In Belgium, you are forbidden to pay your interns.
What?
Yes.
Not only can you choose whether you pay them.
That's a couple of countries around us.
Not you are required to pay.
them no you are forbidden to pay them and frankly and they did to be them it wasn't the case back
in my day but it has changed over the years and they kept which which makes 100% sense to me but
you can imagine of course internally we keep track of this but some companies have been using
interns like cheap labor right somebody who's who's half trained already you just throw them in
the room together and and and they can just produce assets that you need and you don't care right it's
It's better than pure AI slop and they don't have anybody to train them or help.
Yeah, it's a nightmare.
But fortunately, this is rare.
But it's a bad system that in Belgium you are not allowed to pay your interns.
It does sound like a system that's set up to encourage corruption or something.
Sweden is a similar thing where you're not supposed to pay the interns,
but that's because the school will pay you.
Like, it's basically a government program.
So, like, if you are part of the official, like, internship program
for your school in Sweden, as I understand it, because I haven't done it myself,
you, like, the company does need to pay you because the state slash the school
will pay the student to be there, basically.
Because someone is footing the bill at the end of the day, right?
It's in that sense.
So, you know, and I guess it's redistributed for company taxes.
I don't know exactly what the economic model,
and we can argue for whether or not this is the best one,
but at least make sure that your guys are paid one way or the other, right?
And companies will not hire you if they're...
I think they can't, if you don't have a partnership,
because obviously you can't be paid.
It's kind of insane that Belgium is completely the opposite.
Why would they do that?
It's terrible.
It used to be that my best students went to the UK,
because in the UK, well, one, there's a lot of work for developers
in game community.
there's a lot of subcontracting, right?
There's a lot of companies there, like where Guy worked.
So my best students would go to the UK.
They were also well-paid there.
The companies took good care of them,
put them up in a little studio and whatnot,
and then Brexit happened.
Oh.
But that's getting fixed now slowly
because the Brits already back into the Erasmus program.
they were out of everything.
But they're already back in the Erasmus program,
which allows travel of students.
But internships is not...
Yeah, can you explain the Erasmus program?
Yeah, the Erasmus program is a European system
that's been invented to promote European cohesion.
And basically it means as a student in a country in Belgium,
you can do one semester in another country.
Okay.
You know, you're a Belgian student and you go for one semester, you go study in Italy.
Italian will go to Ireland for whatever, right?
All the European countries.
And the Brits were also members of this because they were in the EU, but then they left.
They're still out of the EU, but they're back into the Erasmus program.
So that's already one step ahead.
Now if they get the internships back, that will be fine.
But of course, that's a very European problem.
Yeah, I mean, I guess Jason is going to have to...
That's a way.
Eventually, get to have all that stuff.
This is becoming more and more for European podcast.
Yeah, I guess your students who speak French can just cross the border.
Because I just looked up the map, you're actually very close.
You're extremely close to the border.
But I think, yeah, although I don't know how much people in Lille speak any Dutch, if at all.
So I think French would probably be much easier.
Sure. It's a, it's a, we've, we've had some students going to France. Typically, they are, they are French students who study here about, about, about, um, a one third of our students is from abroad. Um, and if they speak French, they managed to find it. We've had a few students who found a job in France only speaking English. There are some, some companies that do it, but they are rare. It was a company in Paris, but, but, but they were, they were very, they were very, they were very
happy they were like officially we've always said we're English speaking inside the
company but we never really did it but now we have this intern who doesn't speak
French so now we have to and the it was a tiny company right I don't know they
had 10 or 12 people and they were super happy with with how it went and the students
still works I think well he he was hired too and somewhere in Paris language is a
barrier working in France you better learn French but there's not work in English you
should from the Netherlands, excuse me, from Belgium, don't move west.
Move east or north, right, if you want to work for an English-speaking country.
Most of the countries.
You're seeing company.
That is what I mean.
Most of the countries have English as a, even in Spain or Poland or whatnot.
France is very strong.
I know.
French.
That's, I've, every company that, you know,
that I am aware of personally, that is based in the Netherlands,
has English as the company's official language,
but they also have a lot of not Dutch speakers moving to the Netherlands.
It's very similar in Sweden.
It's a necessity as well.
Yeah.
They also have QWERTY keyboard in the Netherlands.
Actually in Belgium, we were initially a French country,
purely a French-speaking country.
In Belgium, we also have by default Azerti, right?
Instead of QWERTY, it's,
Yeah, but we recommend our students, yes, it's terrible.
But we recommend our students when they start their studies, buy a QWERTY,
buy a QWERTY laptop.
If you're buying a new one, if you work in any constants worth worldwide, it will be QWERTY.
Quick anecdote.
A while back, I had like one of those fancy keyboard where you could have like none of the keys on it because I thought it was funny because I don't, I never look at the keys, right?
In the blank ones, yes.
Yes, yes.
And of course, my mapping was Azerty.
Every time someone comes to my house, like, oh, yeah, I'm going to play something on the internet well quick, like YouTube was Spotify.
And they try to tap and they go, what the fuck is going on?
Because it's an uncertainty mapping and they can't even look up the key.
I don't know.
It amuses me a lot every time, but maybe I'm very easily amused by the French specificities when my friends and others have to struggle with that.
So we are getting on and towards an hour here.
So we should probably, yeah, start, you know, wrapping up the conversation.
Maybe I'm, I kind of want to bring it back just a little bit to C++ specifically.
And I'm curious as an educator, teaching game programming in C++,
are there features of the language that you wish would either just go away
or things that you really want added or anything like that that you think would make your job easier?
But it depends on how, you know, if I could change the language.
There's two levels to that question.
Do I have a magic wand?
And can I go some legacy stuff, make it go away?
That my students won't need it anymore, then yes.
Right?
Everybody knows about the wrong default.
Stuff should be caused by default.
Class should be final by default.
That will all be convenient.
But that's stuff that can change.
But I'm so looking forward that when every compiler really supports imports to dwell.
This is such a convenience.
Same with, this is also a controversial opinion.
I've never liked Tootsie out.
And I'm so happy we have just a print function now.
You know, what do you write as a first program?
Everybody writes, Hello World.
And then you have to explain already this weird operator, right?
You already have to explain a main function.
Yeah, and this is also kind of like a function call, but it's not really.
It's an operator of lawyer.
That makes that first conversation very complicated, more complicated than it should be.
And then realistically, but I don't think that's going to happen.
If I could make a wish, I wish C++ had a standard library to make some kind of graphical user interface.
That ship has sailed, I think.
Yeah.
During some part of my career, I thought Java, yes, I know, I know.
I mean, you have to make ends of me.
That's fine.
And, you know, and as much as shitty as it is,
but it's nice to have something like, what's it called, swing, right?
You can just make a window and throw some button on it on a canvas
and you can draw something on it.
And it really helps students.
We're very motivated.
Oh, I have a button.
I can make the button do something.
I can draw something.
It goes really fast.
My son is 13.
You know, he's not very excited about Hello World.
If I show him something on the console, he calls that, oh, wow, the computer's in a hacker mode, right?
It's very hard if you do C++ as a first language and your first example is to make an application that when they double-click it, does nothing, right?
It does something.
Yeah, it does something.
But if you do it from the GUI and they open Explorer and they click the program, it just opens a window and closes immediately, right?
Yeah.
It's a program that's very far away from I want to make a program.
Oh, but you can open a command line?
Oh, great.
Now I have to explain another thing that they don't know yet.
So I wish...
That's almost a thing I would like to have a panel on
because I'm starting to keep a record of people
who have had strong opinions about this.
And it's very interesting because I think you and I were both
at CPP North last year.
And I guess you saw Mike Shah's talk about SDLGPU
and his whole point was that I can't teach students anything
if there's no graphics, they'll just lose interest.
and the week after I met Patrice
from the University of Shaboub in Montreal
and I asked him like you teach games and whatnot
that's a yes oh another sponsor of the podcast
we should really start working on sponsorsions anyway
and I asked him the same question he said no that's
absolutely not an issue like people are absolutely fine
with like you know my orc murdering simulator like in text
it's absolutely okay so it's really interesting because I
keep you in completely diverging opinion on what makes, like, stuff enticing enough for students.
This was what would you wish to have, so.
No, I just.
I actually heard a good argument by Daisy Holman.
Daisy Holman, it was a fireside chat.
It wasn't last year, but two years ago at CPPCon, where she argued, oh, but it's not the fact that we don't have a GUI library or nothing.
there are enough we need
Biden has only half has a standard
GUI library but they have an easy way of adding you just type
and whatever yeah you have a you have a convenient back
I'll settle for a good package manager that that's that's
standardized right so like I can I can just type anything
it's like when people tell me when you say oh but you know when they
start out Visual Studio is a very complicated program oh but it's easy with
C make and again my students are just starting
they don't know how to program.
And the solution, the solution to make their difficult C++ go away is to teach them yet
another programming language before they know a first one.
As much as I love, as much as I love C-Make, right?
But it's an advanced solution.
It's not beginner-friendly, I feel, right?
Yeah.
Experience when teaching about it.
I tried to make a rapper a couple years back in Python that would just basically wrap up
like C-MEC plus Conan.
I think I was using C-MEC
at the time. If I were to do it today,
I would probably try to do VC package instead.
And he would basically try to make everything go away
behind the scenes so you don't have to think about it
until you were happy with it.
And then you could click, like, you could type like opt-out
and it would just dump you the generated C-MEC file
and VG package import file,
and then you could just continue maintaining that in the future.
But it never, I don't, I didn't get any interest in that,
so it never went anywhere.
Because I think people will really care about package management
they know what we're doing and the other ones are just like,
I don't know what that is.
Maybe I should revise it again.
We're falling into the engineer trap,
right? It's, oh, there's like six different ways to do
something. This is shitty. I'll make a standard way.
And then you make something great. Now there
are seven ways to do something.
Yeah, that's true, but what's the alternative, right?
You're not going to fix it.
I have no, I have no answer.
I'm, again, Jason asked,
what would you wish?
Yeah, that's fair. That's fair.
That's fair.
You got the magic lamp.
It's your wish and you have to do what you want.
To kind of get us toward a conclusion slowly, Jason, I was curious to hear about your thoughts.
Because we talked about education a lot and you do a lot of training.
And I wonder if you heard some echo there or if it's a completely different experience
when you're teaching people in a professional setting and whatnot.
It's a pretty different experience because those people already have an environment that they need to make sure they're getting up to speed on or whatever.
And I'm not there to teach them how to use their build tools or their QI framework or whatever.
Right.
I'm there to help them, you know, fill in the details in their C++ knowledge.
And they don't use chat GPT to find the answer and then cheat at the test.
Sometimes they do, yes.
But I'm also there.
It's fine.
Because they understand what they do.
Yeah.
Sometimes my job surprises me and that my job is to, um,
Team A has all the CI with all the automated test and all the things working.
And then Team B for some reason doesn't have automated test.
Or Team A has, you know, whatever, commercial tools that they want to use.
And the person on Team B is like, will tell me like during lunch, like, oh, yeah, there's no, I can't get a license for that.
there's no way to get a license for that in the company.
And so I will sometimes in the middle of a corporate workshop make a comment about this
because I've heard these things enough, right?
I'll be like, so everyone has access to the CI server, right?
And someone from Team B will be like, well, actually we don't.
And I'll be like, you need to talk to Bob over here by the end of this class
and make sure you have access to the CI.
Oh, apparently so-and-so in accounting is able to get you the license to the tools that you need, right?
Like anyhow, sometimes that's my job.
And that's why every trainer doubles as a consultant.
Yes, I'm also a consultant.
And there's been times where someone will say, we have this problem.
We just want to have a solution for it.
And I'll be like, where's the whiteboard?
Right?
And then people are taking pictures.
And I'm like, yeah, I've seen, you know, similar issues and similar projects in the past.
But no, I don't, if I have someone who doesn't know C++ plus at all in my class, they are going to be the minority.
They're going to be the person who's moving from Python to C++ to help fill in the gap and whatever, blah, blah, blah, part of this project, right?
And so then my job becomes translator.
Like, okay, you know this.
This is similar to a destructuring with a generator.
Python, whatever, right?
Like, you know this.
You just have to translate these things in your head now.
I also wonder if the motivation is the same.
Like, you know, the mindset is compared from like someone who's getting a professional
training for their company versus like someone who is pretty young and just getting into
academia or getting into like uni and they may or may not know what they want to do or they
may or not want to understand the point of why am I here besides getting a deployment.
I think our job as teachers in purely education is often not as much the passing of information,
but making them enthusiastic about something.
And seeing visible results makes people enthusiastic.
Graphics programming, which is, of course, they have in the third semester,
right, where they write their own ray tracer and rasterizer,
and they make shiny balls, because that's what you always,
Start with...
But the joy you see of people managing to do that and create something visual,
the first time they make a little game and something moves and you press the button.
So you can make a lot of enthusiasm for it.
There are some people who get enthusiastic about Hellworld because they're really motivated.
But that's not a big group.
Although those tend to be my very best students, right?
and they're like, wow, I've compiled my first program, look awesome.
This is, right?
There's a group of, of course, between 18 years old, that's not all of them.
Yeah, no, I understand that you can't write your entire course for the couple nerds in the group.
They are going to be printing like CPU manuals in the next semester, as we were mentioning before.
Because I've done that too, and I kind of like, I've noticed some everything.
Do you know that?
I don't know if they still do it, but if you just email Intel or use.
their website, they will just ship it for free.
I don't know if they still do that.
Really?
Oh, cool.
Yeah, the first time I had my, I think I wanted to joke about it, you mentioned that earlier,
the first time I used like a company internship printer to print like the Intel, like,
IA32 manual, like 66, basically.
And then the friend was like, no, you can just go on Intel website and because, I mean,
they will FedEx it to your door.
And back in the day, getting a print book, like FedEx,
to your door in two days in France
was the most insane experience I ever had
and it was free. I just went on the Intel website
and I'm like, yeah, I kind of like this CPU thing.
Can you send me free printed books by my door?
I don't know if they still do it.
I heard about it somewhere.
Someone mentioned it in a talk, I think,
but my memory eludes me.
And our next podcast will be
covering the news about how Intel has
discontinued that series.
Because too many people.
Yeah, and I guess
there's more many more books now because
Yeah, that's probably, like, the instruction set,
nice, probably three books instead of one or two.
Yeah.
Okay, we should wrap this up if there's any final comments from any way.
Maybe the last one since we talk about, about hardware,
and something I'm really enthusiastic about.
I've given two lightning talks about it and one and one micro talk at GDC.
To help my students, I had this question with Guy Davidson.
or we, the old-timers, had it good, right?
We had shitty computers, so we needed to understand more to do stuff.
And he came back with the answer that I actually wanted to.
He's like, it's easy.
Just take away the shining new computers.
And so I have a course, it's an elective.
It's not for everyone in the third semester,
where they have to make a game for the NES in 6502 assembly.
And I have limited statistical data.
The manuals are all available. We have better manuals now than the developers had back in the day from Nintendo.
We have Visual Studio codes. We'll integrate beautifully with your, you can debug your assembly.
It's all magnificent. You can buy your card so you can test on real hardware because they have to make it turn only real hardware.
I have some data, of course, please mathematicians don't get put angry comments on YouTube.
Yes, it's not fully statistically relevant.
But the students who tend to pick this do better in the programming four course.
Of course, there's a pre-selection effect, right?
Yeah, yeah, self-selection.
But I think there's something to be said about understanding an entire system.
No, no abstraction layers.
These modern consoles and computers, everybody who tells you,
I understand them completely as a liar.
Nobody understands Windows completely and the drivers completely.
And then there's these Intel processors who are,
tremendously complicated, but it's 6502, but it's measly 56 commands, the PPU, and the NES, the students are very
enthusiastic. It's a real console, and they still know some of the games on it. The first lesson,
I actually make them play it a lot, and they have to make a small report, what's your favorite
game? And it cannot be Mario, Mega Man, or Zelda. And then they try some games, and they realize
this is a real console. And then some of the games, they make.
maker amazing. The limited resources also fosters creativity. I had a team this year that made an
animated background, a waterfall during the whole game. You can't do animated backgrounds on the
NES unless you do really weird stuff. And it's called the monster of Wellstown. And so the
player has to escape. And the water is coming up and they have this this wavy effect on everything
they draw for which they have to count cycles and do crazy stuff with interrupts they looked
just a team of four people in 12 weeks four hours a week they managed to do that they're going to
release it on steam they're working on a kickstarter now for it the the levels are procedurally generated
i mean there's a there's a lot we said for these these old computers and and how
how understandable they were right you could understand the whole thing so yeah that's a lot of fun and
And alumni will tell me now, oh, that's that part.
I wouldn't have understood without the retro console.
Now I really understand what the stack is and what a function call is
because they had to do it.
And they will always complain about coding standards,
but then you discover when they have to write assembly,
suddenly they have this whole document that they put together themselves,
that they put it with, no, no, you can't name it like that.
That's what we're going to have.
And this zone in static memory is for that.
And that's all we're going to do it.
And then they hack into Visual Studio code,
where in a plugin to be able to do unit test
because they have too much regression problems.
So yeah, there's very educational.
I'm very enthusiastic about it.
Can they use C++ like Jason did for Commodore
or they forced to use?
No, they're forced to use assembler.
I thought about it, but they'd be messing around too long
to get everything.
And also that there's part of it
the understanding what the assembly is and and what the c plus plus compiler does to protect them
because you know the students students can complain a lot and they will be like oh oh
c plus plus it's so much harder than python look and it's complaining the compiler again
about my variable types and i cannot assign this to this and and it doesn't understand what i mean
and i'm like now you have assembly you can assign anything to anything anything is everything
it's a pointer it's a number it's a character it's a sprite it's sprite data it's texture it's
It's whatever you want it to be, and the assembler will not stop you.
Well, they quickly change their opinion about how evil the C++ compiler is.
You know that?
That's amazing.
Given that Jason is going to force me to end this podcast very soon.
We do need to wrap it up, yes.
Yes.
I'm just going to say, Tom, I think this would be a great talk.
I think maybe not every conference, but like AQ, for example, would be a great venue for that
because it's the kind of like C++ slash C adjacent,
a bit cozy kind of topic that I would get a lot of people interested.
Like, I think you would get a full room.
Which conference is that?
I think ACQ or ACU on C would probably be a very good thing.
I can't make it to.
It's too late now.
It's too late now.
But, you know, like I think there are conferences we would really like a talk like this.
That is not like primarily C++, but kind of is in some roundabout way,
you know, remind people that thinking that C is actually.
closer to the machine is a lie on modern machines
and the whole idea
of having a whole execution
model in your head and things like that
I think you have something there
I have a short talk on GDC
I can send the link to Jason
after this thing it's a 12 minute
talk
found a link to that game that I can also add to the
show notes for this yeah
but I think that could definitely be an hour
just you know as a
as a suggestion
absolutely
anyway
Since we need to wrap up, there is no sponsors unless the one we, unlike the one, I'm sorry, except the one we mentioned inadvertently during the whole talk.
There's no Patreon, but you can still reach out to us because we're always looking for more speakers.
Sorry, speakers, interviewees, both.
We have a small backlog, we would rather like, have a bigger backlog.
You can also tell your friends that you can find us on Spotify or on YouTube or maybe we're on another platform.
I'm not 100%.
Get this wherever you get your podcasts.
I don't know if we have to like it, favorite, share it, or that whole social thing.
works.
Yes.
I had prepared notes and I've touched on nothing.
Yeah, that's all we should go like an extended version.
Once we get a Patreon, maybe we'll get like an extended version for the for the
Patreon with the second half of the interviews.
I shouldn't have been so nervous.
For any potential speakers, I highly recommend it.
There was a lot of fun.
You're both wonderful to talk to.
All right.
Well, dear listeners, see you next month.
