Stolen Pixels #231: The History of Civilization, Part 2

By Shamus Posted Friday Oct 1, 2010

Filed under: Column 106 comments

Here is part 2 of the history of Civilization.

Ok, I was playing on a large map last night and it got to the point where it took the computer so long to process its turn that I actually abandoned the game. A lot of time was wasted hopping around the map and making me watch all these stupid irrelevant battles on the other side of the planet. There’s an option to disable the animated battles, which is only available at the beginning of the game. (And always off by default. And the game doesn’t remember your preferences. So if you’re four hours in and you find yourself watching half a minute of fights you’re not even in, then there’s nothing you can do about it. There’s also no option to show only your own fights. Thank you so much Firaxis.)

But the computer also spends a surprising amount of time simply thinking. It feels like about the same amount of time I spent waiting for turns in Civilization II, which came out in 1996. According to Moore’s Law, processors should have doubled in performance 9 times in the last 14 years. So computers are (very roughly, give or take a power of 2) five hundred and twelve times faster. I can believe that Civ V is more complex than Civ II, but it’s nowhere near hundreds of times more complicated. The simulation is several fold more complex. (Let’s aim high and assume it’s as much as ten times more complex.) That still means the game should be running fifty times faster. Turns should be instant. What is the game doing with all those cycles. (It’s not graphics, since you still get the delay when using the super-fast 2d view. Which is also a great way to crash the game, by the way.)

I’m not accusing the game logic programmers of incompetence. (I save those insults for the dunderhead who designed the interface and left out half the options.) I’m just really curious what’s going on here. My guess is that the combat AI is looking more moves into the future. As people who write programs to play chess have discovered, looking forward through just three or four turns of moves & counter-moves can burn an unbelievable number of CPU cycles. I did notice the game got slower when big wars were going on. This led me to want to make peace between other nations just so I could get back to building my spaceship without having to sit there doing nothing for half a minute between each turn.

 


 

Spoiler Warning 3×10: Fore!

By Shamus Posted Thursday Sep 30, 2010

Filed under: Spoiler Warning 165 comments

Here we are. The big turning point of BioShock. If you’re thinking of playing the game, you might want to give this one a miss.

Hello, person from the future. This space used to have an embed from the video hosting site Viddler. The video is gone now. If you want to find out why and laugh at Viddler in the process, you can read the entire silly story for yourself.

At any rate, the video is gone. Sorry. On the upside, we're gradually re-posting these old videos to YouTube. Check the Spoiler Warning page to see the full index.

Ah screw it. Just watch the dang episode. Also: Vader is Luke’s father, Rosebud is a sled, Hans Gruber kills Dumbledore, you are Darth Revan, and Bruce Willis is a ghost.

 


 

Stolen Pixels #230: The History of Civilization, Part 1

By Shamus Posted Tuesday Sep 28, 2010

Filed under: Column 106 comments

So I’m playing a lot of Civilization V these days. A process which led to the creation of this comic and the loss of a couple of nights of sleep. It’s been a while since I’ve really experienced the Civ bug in full force.

It’s a remarkable game. The game has so many complex systems that work well together, remain roughly balanced, remain consistent, and follow the pseudo-historical premise of the game. It’s a remarkable achievement.

 


 

Comic Press

By Shamus Posted Tuesday Sep 28, 2010

Filed under: Programming 48 comments

EDIT: Whoops. I’d intended to post this after today’s comic. The screenshots are spoiler-ish, so you might want to see today’s comic before reading further.

Some people expressed interest in what I was doing that led to yesterday’s post. I’m not one to miss an opportunity to talk about myself, so let’s do that.

Ever since DM of the Rings CXXXI I’ve used my own software for making comics. It’s 100% homebrew code. It looks thus:

comic_press1.jpg

Ok, I never have the window this small. I usually run it full-screen, so it looks like this:

Continue reading ⟩⟩ “Comic Press”

 


 

Object-Disoriented Programming

By Shamus Posted Monday Sep 27, 2010

Filed under: Programming 185 comments

I program in C++ for a living. I loved doing it in my late 20’s and early 30’s, but over the past few years I’ve gotten fed up with this language and its cryptic aggravating bullshit.

One of the strengths of the language is the way that you can use libraries written by someone else. The language is 31 years old at this point, and odds are good that if there’s something you need your program to do, someone else has already come across the problem, solved it, and put the thing out there for people to use. For example, if you need a really fast algorithm for sorting a big wad ‘o data, or generating high quality pseudo-random numbers, then you don’t need to knock yourself out. Just use what’s already been written. There’s no reason to do it yourself unless you see some flaw in the existing solution and you think you can do better.

Things get tricky when you have a solution that incorporates another solution which incorporates another, and so on. You go and grab a chunk of code for (say) calculating the shortest distance between any two wombats. You think you’re done, but when you try to use it you find out it depends on other files you don’t have. It turns out the shortest-distance stuff incorporated someone else’s code, which was a program designed to differentiate between wombats and hamsters, which in turn used some guy’s 1988 C code to rate things according to how furry they are. Suddenly you’re performing some sort of archaeological data mining, looking for fragments of code written by a teenage Bjarne Stroustrup in 1965 and trying to translate his comments from the original Danish.

Continue reading ⟩⟩ “Object-Disoriented Programming”

 


 

8BITS

By Shamus Posted Saturday Sep 25, 2010

Filed under: Movies 48 comments

So, the whole 2D vs. 3D gaming thing….


Link (YouTube)

Amazing. How does something like this even get made? An incredible amount of work went into this, from a lot of different people. It’s a blend of art from very different mediums. Everything from Pixar 3D to Nintendo 2D. With appropriate music. Voice actors. Sound effects. The YouTube pages says nothing about why this was made or who funded it.

But thanks, whoever you are. I love when the internet dispenses free stuff.

 


 

Experienced Points: Your Favorite Game Sucks

By Shamus Posted Friday Sep 24, 2010

Filed under: Column 80 comments

Looking back, I kind of wish I’d combined this week’s column with last week’s. It’s one of those situations where I had one-and-a-half points to make. A bit big for one column, but too small for two. Ah well.

I suppose I chafe more than most at fanboys because they really hate the work I do here. I prefer to write about stuff that’s broken in games and talk about how gameplay or story could have been done better, because those are interesting conversations. But fanboys simply can’t wrap their heads around this sort of conversational analysis and keep trying to see it as a thumbs up / thumbs down review. A common demand is “YOU NEED TO TALK ABOUT THE GOOD PARTS OF THE GAME.” Which isn’t really true. My goal is to talk about the stuff that interests me, not offer consumer advice. I see that most people leaving comments have already played a game or made their decision not to buy it. We’re just talking about stuff the way friends do.

Ann: Did you see that part of the movie where the hero jumped out of the helicopter and didn’t die because he landed on a bad guy? I thought that was lame.

Bob: Me too.

Carl: YOU NEED TO MENTION HOW AWESOME THE ACTING AND SPECIAL EFFECTS WERE.