Game Programming Vexations Part 3: The Dominance of C++

By Shamus Posted Thursday Sep 12, 2019

Filed under: Programming 159 comments

C++ is the main language of game development. This is changing slowly as indies embrace other languages, but in the AAA space C++ is still overwhelmingly dominant. C++ is descended from – and is very similar to – the language C. First created in 1972, C is just one year younger than I am. It was devised for the world of the 1970s. It was targeted at the hardware of the 1970s, and was originally intended for writing operating systems.

This seems crazy, doesn’t it? Writing operating systems for Nixon-era mainframes is so vastly different from building AAA games in 2019 that it’s like we’re using coal-fired steam engines to go to the moon. Sure, the steam engine has been modernized a bit, but there are still conventions built into the language that don’t make a lot of sense in the world of 2019. The fact remains that somewhere underneath all those rocket engines and silver wings is a chugging steam engine.

C++ certainly has language features not available in C. C++ has classes, inheritance, operator overloading, and a bunch of other slick ways of expressing complex solutions in code. Those are nice, but none of those things uniquely address challenges faced in games programming. We could, in an alternate universe, use a different sort of language with a different set of features.

It’s not like this industry is incapable of evolution! Studios have changed game engines, and game engines have changed what graphics API they favorOn the PC side, this boils down to DirectX vs. OpenGL, with third-party candidate Vulkan landing a few recent wins.. Our tools are different, the target hardware is different, the operating systems are different, and the performance challenges have changed numerous times. Rendering technology has gone through at least two major revolutions. First there was the jump from software rendering to using dedicated graphics hardware, and then another jump when we added the ability to program that graphics hardware using shaders. Over the last 30 years we’ve changed every single thing about game development except the language!

Continue reading ⟩⟩ “Game Programming Vexations Part 3: The Dominance of C++”

 


 

Control Part 1: A Nice Surprise

By Shamus Posted Tuesday Sep 10, 2019

Filed under: Retrospectives 114 comments

I should make it clear up front that this isn’t one of my long-form reviews that analyzes the entire plot of a game. This is just a short (by the standards of this site) and spoiler-free review. It’s just three entries long, and you can read all of them without worrying that I’m going to reveal any of the game’s big mysteries or plot-points. These articles will actually reveal less about the story than the trailer.

Over the years I’ve found quite a few games where I was into the gameplay but didn’t like the story. So it’s really surprising when I run into a game that reverses this. Control’s world constantly fascinated me and the story had me hooked from the first few minutes. That’s good, because if I didn’t love the world so much then I never would have put up with this combat.

Let’s start with the good stuff.

Continue reading ⟩⟩ “Control Part 1: A Nice Surprise”

 


 

Diecast #273: The Mailbag Strikes Back

By Shamus Posted Monday Sep 9, 2019

Filed under: Diecast 103 comments

At this point, I’m not sure who to blame. Do we blame listeners who spam us with incessant questions, or do we blame the hosts for encouraging the practice by answering them? I have no idea.

On an unrelated note, the show email is in the header image if you have any questions for us!



Hosts: Paul, Shamus. Episode edited by Issac.
Diecast273

Show notes: Continue reading ⟩⟩ “Diecast #273: The Mailbag Strikes Back”

 


 

Achilles and the Grognard: Over the Hump

By Bob Case Posted Saturday Sep 7, 2019

Filed under: Video Games 143 comments

Achilles: This game is starting to click. We’re over the first hump.

The Grognard: “Hump”?

Achilles: Most RPGs have a hump somewhere around the ten to twenty hour mark. It varies from game to game exactly when. But it’s the point where you get to your first real town, and side quests start buzzing around like mosquitoes. You get overwhelmed, and you feel like you don’t know what you’re supposed to be doing. But then you knock out a couple quests, and then a couple more, and you get over the hump to the real game. Everything before the first hump is basically the tutorial, whether they call it that or not.

The Grognard: Where was this hump? In the game world, I mean.

Achilles: The southern end of the map. Beregost, Nashkel, that area. Once you get back to Beregost after killing whatshisname down in the mines.

The prose in the dream sequences is a bit overwrought, but they were still intriguing during my first playthrough.
The prose in the dream sequences is a bit overwrought, but they were still intriguing during my first playthrough.

The Grognard: That plot point always seemed strange to me. One guy, hiding in the bottom of mine, can “poison” the entire output of said mine. It seems like there would be a host of practical problems with that plan, doesn’t it?

Achilles: It was a little strange, but overall the story is good. It doesn’t get in the way – it’s like a detective story you gradually unravel while doing other things. Not like some RPGs where they’re constantly pestering you and pointing you towards the next thing you’re supposed to do.

Continue reading ⟩⟩ “Achilles and the Grognard: Over the Hump”

 


 

Game Programming Vexations Part 2: The Four Challenges of Game Development

By Shamus Posted Thursday Sep 5, 2019

Filed under: Programming 86 comments

So why do we need a new language for games? Isn’t the world full of languages at this point? Is it really true that in all the dozens of active languages out there, none of them is suitable for making video games?

A year ago Blow gave a talk where he said he didn’t want to use any of the extant languages because they contribute to an ongoing “general insanity” going on in software development. It’s a long and multi-faceted argument, but if I had to boil it down to a soundbite I’d say that there’s a general desire to hide the hardware away behind abstractions and this is making our software slow.

I’m not qualified to support or refute that argument, so if you think Blow is wrong then you’ll have to take it up with him. I’m going to come at the argument from a different angle…

Continue reading ⟩⟩ “Game Programming Vexations Part 2: The Four Challenges of Game Development”

 


 

Patreon UI Problems

By Shamus Posted Wednesday Sep 4, 2019

Filed under: Rants 24 comments

I posted this a week ago, but I did so after a video. A lot of people assumed the text was just a transcript of the videoProbably because I told them that’s what it was. and thus didn’t see this additional rant. So here it is again:

On Patreon, I announced that you can get your name in the credits as one of the reward tiers. The problem is that the Patreon reward system is needlessly obtuse thanks to the vanity of some obnoxious graphic designer. People keep getting confused because they want the $2 reward, but they want to give more than $2. They click on the “Name in the credits” reward tier, and it will LOWER their existing contribution to $2. Ridiculous!

This isn’t a hypothetical. This actually happened. To multiple people. Some of them emailed me for help, but others just shrugged and moved on. This interface design actually cost me a little bitLike, $20 to $30. Not the end of the world, but just enough to be annoying. of support.

Someone is so enamored of their sexy layout that they’re willing to sacrifice usability. It looks like this:

Continue reading ⟩⟩ “Patreon UI Problems”

 


 

This Dumb Industry: What is Vulkan?

By Shamus Posted Tuesday Sep 3, 2019

Filed under: Column 114 comments

Here is the first video in the This Dumb Industry series. As I mentioned before, these videos begin as articles and are then turned into videos. I think this works better than going the other way. This ought to read like a slightly informal variant of my old columns. Or you could just watch the video. Whatever works for you.

Like I mentioned on the last video, I have a Patreon reward tier for people who want their names in the credits. These videos are often produced a week or so ahead of time, so if you signed up in the last 7 days or so then your name probably won’t show up yet.  I just wanted to make it clear that I didn’t forget you, we’re just dealing with normal video-production lag times. If you’re signed up now then you should show up in the next vid.

One final note is that this is obviously a shorter and less detailed version of an article I wrote back in 2016. I wanted to start off this series with something familiar and easy before we try to tackle more challenging topics.

Anyway, on to the article:

Continue reading ⟩⟩ “This Dumb Industry: What is Vulkan?”