Link (YouTube) |
Josh is discovering an inordinate supply of haunted furniture. For the record, I have yet to see a single physics glitch or take damage from scenery. (Deliberately hostile items excluded.)
What episode was this again?
Link (YouTube) |
Josh is discovering an inordinate supply of haunted furniture. For the record, I have yet to see a single physics glitch or take damage from scenery. (Deliberately hostile items excluded.)
What episode was this again?
I’m still working on the project. The stuff I’m working on now is a little boring and would mostly be a re-hash of stuff I’ve discussed before. So rather than do that, let’s talk about data structures.
![]() |
Remember the little red cube. We’ll see him again later.
When a programmer sits down to write some software, the question comes, “How will I represent this problem in code?” This is actually one of my favorite parts of the job. (Or hobby, in this case. Unless you’re hiring? Do you want to fund development of this project? It has no gameplay, no plan, no support, and it doesn’t even work yet. Let me know if you’re interested!) If I need to store a historically important date like August 24, 1971, then there’s a lot of ways I could do it. I could store it as a text string: “August 24, 1971”. But then it would be hard to do math on it. (Say, to calculate how long it’s been between then and now.) I could store it as a group of three integers: 8, 24, and 1971. I could store it as the number of seconds elapsed since January 1, 1970: 51,840,000. The latter is great for doing math (and is actually how most systems store time internally) but it means you have to do a messy conversion when you want to display the date to the end user. Because if you display a date as 51,840,000 then the end user will find you and burn your house down.
What method will be fast? What will take up the least memory? What will make for clear, readable code? These are questions that programmers love to ponder before coming up with the wrong answer and making a mess of things.
Which brings us back to the problem of storing large tables of data.
![]() |
We look at this and see a table. But internally, computers don’t “do” tables. They’re not really into 2-dimensional kind of stuff. Computer memory is a long, long line of values. If you’ve got four gigabytes of RAM, then you’ve got four billion little memory addresses in a single row, and it’s up to the programmer to make sense out of them.
Continue reading 〉〉 “Project Octant 9: Data Structures”
Link (YouTube) |
The headache stabbed me in the brain. And then I wrote a novel. Sounds about right.
Let’s see: Goofy puzzles. Occasionally awkward dialog. A wall between story and gameplay. A seemingly boring jerk for a protagonist. Repetitive foes. Terrible lip sync. Checkpoint saves.
We’ve accused Alan Wake of all of these, and I don’t think we’re wrong. But I think all of those problems are even worse in Silent Hill 2, which I still regard as one of the more powerful games I’ve experienced. I’m still gnawing on this, and I can’t speak for the rest of the cast, but I suspect that if the game had connected with me on an emotional level (dread, sorrow, anger, whatever) then I wouldn’t be focusing on these problems.
Link (YouTube) |
“As I approached the Spoiler Warning I saw it was covered in dark shadows. The shadows blocked out the light so I could only see darkness and shadows. It was terrifying. After gathering up some batteries and watching half an hour of crappy television, I approached the darkness and drew near to the edges of the dark shadows that blocked out the light, making things darker and spookier.”
So let’s talk about data structures. I’ve mentioned way back at the start of the project that there are certain costs to using an octree. An octree will make interfacing with ALL blocks a hundred times faster but make dealing with a specific block several times slower. I’m curious how…
Hang on. My program has been behaving oddly recently. It’s like it will suddenly stop building new blocks and I’ll end up stuck on this island floating in empty space. I’ve got the program set to aim for 60fps, and if one thing starts eating too much CPU then the block-building gets choked off. Let’s see where these CPU cycles are going.
I add a little benchmarking loop. Right now there are just five systems running:
Continue reading 〉〉 “Project Octant Part 8: The Time-Hole”
Now that we have a world based entirely around the idea of cubes, you know what we need? Slopes. This is something that’s been on my mind for ages. I’ve run around the Minecraft landscape and wondered, “What would this look like if the cubes could slope to form beveled outlines?”
![]() |
Slopes aren’t really a foreign idea to an octree-based world. Minecraft has steps, which are basically slopes for the purposes of blocking light (they don’t) and collision. I want to take this one further and make slopes a part of the natural landscape. Like a lot of the stuff with this project, I’m not sure how well this will work out.
The trick here will be that the software needs to be able to look at a landscape and figure out which blocks should be turned into ramps, which ones should be turned into corners, which ones should remain cubes, and which way the slopes should face.
First, I need to set some parameters:
Continue reading 〉〉 “Project Octant Part 7:Slopes”
Link (YouTube) |
And the (very late) final episode of the week. Fortunately, it’s completely topical and we don’t spend fifteen minutes driving cars into trees.
It seems like a simple question, but it turns out everyone has a different idea of right and wrong in the digital world.
What lessons can we learn from the abrupt demise of this once-impressive games studio?
A game about the ghost of an underwater football player who travels through time to save the world from a tick that controls kaiju satan. Really.
Finally, the age-old debate has been settled.
An interesting but technically dense talk about gaming technology. I translate it for the non-coders.
A look back at Star Trek, from the Original Series to the Abrams Reboot.
Lists of 'best games ever' are dumb and annoying. But like a self-loathing hipster I made one anyway.
A novel-sized analysis of the Mass Effect series that explains where it all went wrong. Spoiler: It was long before the ending.
This series began as a cheap little 2D overhead game and grew into the most profitable entertainment product ever made. I have a love / hate relationship with the series.
The product of fandom run unchecked, this novel began as a short story and grew into something of a cult hit.