Hosts: Paul, Shamus. Episode edited by Issac.
Diecast275
Continue reading 〉〉 “Diecast #275: Back to School, Kerbal Space Problems, Wendy’s Game”
Hosts: Paul, Shamus. Episode edited by Issac.
Diecast275
Continue reading 〉〉 “Diecast #275: Back to School, Kerbal Space Problems, Wendy’s Game”
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.
In the past, I’ve described the process of compiling your program like this:

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”
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”
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!
Show notes: Continue reading 〉〉 “Diecast #274: Borderlands 3, Mailbag, Raytracing”
The Grognard: Well, we’re finally here. Baldur’s Gate. The city of a thousand sidequests. How is the team holding up?

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”
One of Jon Blow’s original goals for Jai was to embrace (or perhaps restore) the “joy of programming”. I thought that while we’re waiting for Jai to come out, we could look at this idea and see what it might suggest about future languages.
“Joy of programming” is a pretty nebulous concept, but I interpret it as a desire for an overall reduction in friction and hassle. Not only do friction and hassle eat precious hours you could spend being productive, but they also drain your morale. There’s nothing worse than sitting down at your computer and realizing you’ve got a full day of soul-sucking busywork in front of you. Sure, lots of programming jobs feature this sort of vexation. The thing is, those jobs tend to pay a lot better. If you’re working in games programming then you’re probably making some sort of financial sacrifice in the name of having a “fun” job. If the job isn’t fun, you might as well ditch games and go make productivity software for more money in a city with a lower cost of living.

Just about every job has some sort of support tasks associated with it. You need to clean the kitchen and wash dishes in order to cook foodI guess you could hire someone else to do it, but it still needs to be done., but doing dishes is not cooking. Dishwashing might be part of your job as a cook, but it’s not the point of the job. You don’t cook food because you want to wash dishes, you wash dishes because you want to cook food.
Cleaning your brushes is not painting. Stringing and tuning your guitar is not playing music. Checking spelling and formatting text is not writing a novel. Updating WordPress and sorting out CSS problems is not writing a blog. Putting gas in your car is not delivering pizzas. Those ancillary tasks need to be done and a few people might even enjoy doing them, but they don’t pay the bills. They just enable you to do the thing that does pay the bills. If you can reduce how much of your time is spent on these ancillary tasks, it will be a net win.
I’ll admit that sometimes the line can get really blurry. An artist working on commission might have the following workflow:
Continue reading 〉〉 “Programming Vexations Part 5: The Vexations Begin”
Before getting into the meat of this article, I’m going to revisit a couple previous articles’ content and the updates I’ve made to them. The changes aren’t really significant enough for an entire article on their own, and I’m eager to keep moving forward with this project instead of endlessly revisiting past accomplishments. So first up, there’s a new version of the calculator module. It has cyclic nesting detection nowbrute force by iteration count, but better than nothing and re-factored for clarity. Oh, and I did a couple bug-fixes. Or, not really bugs? The system was functioning as intended, but there was some unintended behavior happening in there that I rooted out. For example, the resource list had double entries for nodes which contained other nodes, but did not themselves appear on the list of nodes to solve. I suppose it made it solve a little slower, so, optimized for performance? I was also hoping to detect negative resource balance (which the first iterationthe one without nesting had) but I haven’t settled on an elegant way to do it, and I’ve been too busy to wallow through a naive implementation.
Just wanted to mention one thing more about the code. You’ll see near the top of the page the following odd line:
DEBUG = False #True #
Which is designed for ease of Ctrl-select and copy paste to quickly toggle the settings. I’m curious if it works in other text editors, but in all the ones I’ve used this lets you toggle in four “key strokes.”how do you define number of strokes with modified key presses?
Latest Version (0.2) here.
The other one was your dose of star-field for the article. Continue reading 〉〉 “Proc-gen IP-Infringement-Ship”
The comments on most sites are a sewer of hate, because we're moderating with the wrong goals in mind.
So what happens when a SOFTWARE engineer tries to review hardware? This. This happens.
Sometimes in-game secrets are fun and sometimes they're lame. Here's why.
My picks for what was important, awesome, or worth talking about in 2011.
I scoured the Steam database to figure out what words were the most commonly used in game titles.
I'm a very casual fan of the series, but I gave Civilization VI a look to see what was up with this nuclear war simulator.
Deus Ex Mankind Divided was a clumsy, tone-deaf allegory that thought it was clever, and it managed to annoy people of all political stripes.
Ever wondered what's in all those quest boxes you've never bothered to read? Get ready: They're more insane than you might expect.
What's wrong with a game being "too videogameish"?
A long-form analysis on one of the greatest horror games ever made.