Programming Vexations Part 7: Where Does the Time Go?

By Shamus Posted Thursday Oct 10, 2019

Filed under: Programming 66 comments

Last week I talked about the compiler and what it takes to turn source code into a program. At the end I talked about the apparent problem where the compiler seems to be slowing down in proportion to Moore’s Law, creating a stalemate where faster processors don’t do much to reduce compile times. This naturally leads to the question:

So what is the compiler doing with all those CPU cycles?

There doesn’t seem to be an agreement on this. I can’t even find any proper research on the topic. All of the discussions take the form of repeated platitudes and received wisdom on Stack Overflow.  As far as I can tell, nobody has done the homework to compare the performance of C compilers in the mid-90s with the compilers we’re using todayIf I’m wrong and there is indeed research on the topic, then please drop a link in the comments!.
Continue reading ⟩⟩ “Programming Vexations Part 7: Where Does the Time Go?”

 


 

Control Part 3: Unbalanced by Design

By Shamus Posted Tuesday Oct 8, 2019

Filed under: Retrospectives 119 comments

Last time I whined that there was too much combat in what should be a slow-burn mystery thriller. But that’s not my biggest gripe with the game. My biggest gripe is how the game manages difficulty. For you. 

Death-Based Difficulty is a Terrible Idea. Please Stop. 

Minor nitpick: The game constantly auto-generates these timed Hiss Node missions. The missions fail if you die. So every death creates an announcement that you failed a quest you weren't doing and don't care about. It's weird.
Minor nitpick: The game constantly auto-generates these timed Hiss Node missions. The missions fail if you die. So every death creates an announcement that you failed a quest you weren't doing and don't care about. It's weird.

I should have remembered that Remedy is fond of auto-balancing difficulty based on death. That’s a system where the more guys you kill, the harder the game hits. The more you die, the more foes are nerfed. In racing games we call this “rubber banding”, where the other cars will drive faster if you’re ahead and slower if you’re falling behind. It makes the race exciting and interesting until you spot the cheating, at which point it ruins the entire experienceFor me, anyway. The practice is so common I figure it must be what most people want???

The last chapters of the original Max Payne were an exercise in obsessive save-scumming to compensate for the ridiculous insta-deaths you’ll experience when entering a new room. Once you’ve killed enough mooks without dying, the rest of them are turned into flawless killbots with millisecond reaction times. You’ll open the door and instantly three mooks will snap fire directly at your face for an abrupt and unavoidable trip to the Game Over screen. When this would happen, I’d deliberately charge face-first into the room a few times and let them murder me until the difficulty system had backed off again. 

It wasn’t a very good system.

Continue reading ⟩⟩ “Control Part 3: Unbalanced by Design”

 


 

Diecast #275: Back to School, Kerbal Space Problems, Wendy’s Game

By Shamus Posted Monday Oct 7, 2019

Filed under: Diecast 69 comments


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

Continue reading ⟩⟩ “Diecast #275: Back to School, Kerbal Space Problems, Wendy’s Game”

 


 

Programming Vexations Part 6: The Compiler

By Shamus Posted Thursday Oct 3, 2019

Filed under: Programming 82 comments

In the last entry, I said that waiting for a program to compile is one of the vexations of programming. I’ve spent a lot of time writing about code over the years. I’ve (hopefully) explained things in easy-to-understand terms. With any luck, you’ve learned something along the way. 

The time has come to admit that I’ve been lying to you. Or at least, I haven’t been giving you the full story. After all this time I figure you’re finally old enough to hear the truth.

Vexation #2: Compiling is Not Programming

In the past, I’ve described the process of compiling your program like this:

It really is that simple!
It really is that simple!

You just shove your source code through the magical compile-o-matic and out pops a video game!  

The reality is that it’s not nearly so simple. In the world of C++, the “compiler” isn’t even a single program! The reality is closer to something like this:

Continue reading ⟩⟩ “Programming Vexations Part 6: The Compiler”

 


 

I Was Wrong About Borderlands 3

By Shamus Posted Tuesday Oct 1, 2019

Filed under: Column 100 comments

Like most of my work, this video / article was completed over a week before publication. Below, I brought up a lot of gripes about how the Borderlands 3 loot system works. Then early last week we got a patch to address these problems. I was worried I was going to need to rewrite the video or scrap it entirely. But as luck would have it, Gearbox’s changes were quite small and timid, so the patch didn’t fix my gripes so much as mitigate them very slightly.

Maybe some future patch will fix my concerns, but this seems less like a balance problem and more like a deliberate (although somewhat inexplicable) design decision. I guess we’ll see in the coming weeks. At any rate, to make sense of this we need to jump back a few months.

Back in January of this year – back before Borderlands 3 was announced – I had an article on the Escapist listing 5 reasons why I was worried about the game. Now the game is released and we’ve all had a chance to play it, so I thought it would be good to look at how it turned out in light of my concerns.

You can read the article below, or you can see the video version on YouTube.


Link (YouTube)

Continue reading ⟩⟩ “I Was Wrong About Borderlands 3”

 


 

Diecast #274: Borderlands 3, Mailbag, Raytracing

By Shamus Posted Monday Sep 30, 2019

Filed under: Diecast 51 comments

No, the show wasn’t canceled. We just took a couple of weeks off. Now we’re back and feeling better than ever feeling exactly the same as before except now we’ve forgotten how to run the show. Enjoy!



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

Show notes: Continue reading ⟩⟩ “Diecast #274: Borderlands 3, Mailbag, Raytracing”

 


 

Achilles and the Grognard: Special Guest Appearance

By Bob Case Posted Saturday Sep 28, 2019

Filed under: Video Games 87 comments

The Grognard: Well, we’re finally here. Baldur’s Gate. The city of a thousand sidequests. How is the team holding up?

Wyrm's Crossing, the bridge that finally takes you to Baldur's Gate. Personally, this moment - and the music that went with it - stuck with me.
Wyrm's Crossing, the bridge that finally takes you to Baldur's Gate. Personally, this moment - and the music that went with it - stuck with me.

Achilles: Better than before. Game’s shaping up to finish stronger than it started.

The Grognard: How so?

Achilles: For one thing, the story’s picked up. I’m on the trail of the Iron Throne, and by this point it’s clear that I’m some sort of god or something.

The Grognard: It’s clear? really?

Achilles: Look, this game came out over twenty years ago, and people call it the “Bhaalspawn Saga.” You can’t expect me to go in completely unspoiled. Besides, this crazy old hobo has been practically broadcasting it the whole way.

Continue reading ⟩⟩ “Achilles and the Grognard: Special Guest Appearance”