Project Unearth Part 4: Enclosed Solids

By Shamus Posted Monday Jul 7, 2014

Filed under: Programming 64 comments

Last time I promised we’d be dealing with rendering performance problems. Lies. We’re going to backtrack instead. I skimmed a lot of concepts back in part 2, and I think we need to talk about stencil shadows in more detail before we can proceed.

I’ve gone over this before, but polygons have front and back faces. Typically, the back face isn’t drawn. If I’m staring at a wall in (say) Doom 3:

unearth_backface1.jpg

In the real world, if I pass through the wallHow? and turn around, I’d find myself looking at the back side of this blue wall. But in a videogame…

unearth_backface2.jpg

…I just look back into the level. The back side of the blue wall (and indeed, of all the walls) isn’t drawn. It would be a waste to do so, since you’d never see it during the normal course of play. Similarly, if you stuck your head inside a Minecraft cube, you wouldn’t find your head in a box. Instead, you would find yourself outside the world looking in, as with the Doom image above.

Let’s go back to the horrible MS Paint diagram I was using before:

Continue reading ⟩⟩ “Project Unearth Part 4: Enclosed Solids”

 


 

Misc.

By Shamus Posted Monday Jul 7, 2014

Filed under: Notices 78 comments

A few announcements:

1) Annotations are “fixed”.

By annotations I mean these thingsHi there!. And by “fixed” I mean they work for me in both IE and Chrome. Wait. I don’t have Firefox installed? Since when? Odd. I always have a version of Firefox installed. And unusedBecause as much as I worry about dystopian mega-corps of the future, I just… like Chrome slightly more, ok?.

Let me know in the comments if annotations are still malfunctioning.

2) No Spoiler Warning this week.

Josh is pretty sure our next session will be our final visit to Skyrim. Sure, we could pad out the season with sidequests and DLC, but I think we’ve all had our say and we’re starting to suffer from Bethesda fatigue. It’s time to move on.

But we don’t want to wrap up the season unless the whole cast is there. Rutskarn and Mumbles couldn’t make it this week, so we put the whole thing off. It might take a few tries to make it happen.

3) No Diecast this week.

With just Josh, Chris, and myself, we didn’t have a lot to talk about. The mailbag was kind of empty. (Except for questions for Rutskarn.) We hadn’t been playing much in the way of games, or at least not anything we’re ready to talk about. So a Diecast would have been an hour of Josh talking about Dark Souls while Chris and I tried to change the subject.

We’ve got content this week (coding and my Escapist column) but not the usual multimedia content. Just text. I’m sure we’ll pull through somehow.

 


 

Patreon Update

By Shamus Posted Sunday Jul 6, 2014

Filed under: Personal 71 comments

My Patreon campaign has completed its first month. Some people wanted to know how it went. So let’s talk about that. First, the disclaimer:

I want to stress that none of this is an attempt to pressure you to give. I would much rather you read without giving than feel guilted into leaving. I do this because I like to make content and you're here because you like the content, but neither one of us is under any particular obligation. Having said that, we're going to talk money using real numbers so if you're not comfortable with that then you'll probably want to skip the rest of this…

Continue reading ⟩⟩ “Patreon Update”

 


 

Skyrim EP51: The Peace Talks Were Successful!

By Shamus Posted Friday Jul 4, 2014

Filed under: Spoiler Warning 100 comments


Link (YouTube)

“So Catburt, even though the dragon Parthanblarg has lived in Skyrim for thousands of years without causing trouble, and even though he’s been indispensable in our efforts to save the world, and even though he’s been pretty trusting of us so far, he needs to die. And even though you’re nominally his friend and we’ve been retconned as ‘dragon hunters’, we’re asking YOU to do it.”

It is shocking how quickly this game will shift between great ambition and utter stupidity. Without even noticing. Without even pausing for a breath.

I can’t even wrap my head around how silly it is to have all of the great leaders of Skyrim hike to and from the mountaintop, with no escort, during wartime, all at once, through bears and trolls and allegedly bad weather, on foot. Frankly, I kind of think the Thalmor blew it here. Just one assassination would have caused the whole thing to backfire and make the war that much bloodier.

A few weeks ago we were talking about our favorite seasons of Spoiler Warning. For the record: This is my new favorite episode. Especially the end.

Catburt is a horrible son of a bitch, and I love him for it. He is absolutely the hero Skyrim deserves.

 


 

Skyrim EP50: Learn to Fight Fair!

By Shamus Posted Thursday Jul 3, 2014

Filed under: Spoiler Warning 92 comments


Link (YouTube)

Man, I’m so glad that Josh broke the combat system so we don’t have to waste a third of every episode on pointless battles. That sure is a timesaver.

 


 

Got a minute? Can you help me with my website?

By Shamus Posted Thursday Jul 3, 2014

Filed under: Notices 99 comments

EDIT II:Thanks to Roger Hà¥gensen, the old system has been replaced with a new one that should fail gracefully (and not cover the screen in boxes) if Javascript fails for some reason. It also doesn’t conflict with the comment editing plugin. And it looks a little nicer. Also, each post now has its own numbering, instead of the first post having annotations 1, 2, 3 and the next post having 4, 5, 6. That was… awkward.

So, solid improvements all around. Thanks to Roger Hà¥gensen for the help.

EDIT: It looks like the problem wasn’t the Javascript after all. I turned off the JS “minification” option and it started working for me. However, as an admin my page loads with some extra crapAn admin bar and logout buttons and such. that might skew my results. So I’ve commented on a fresh browser window, left a comment, and annotations seem to be working.

So we’re in a state where it works in all cases that I can test. PLEASE let me know if the annotation boxes are stuck open for you. If nobody has any further problems, I’ll call it fixed. Enough. For now.

Original post:

I don’t know anything about javascript. Which means I really should never use it. I mean, that’s a pretty basic rule, right? Don’t copy & paste code you don’t understand.

But the thing is this: I really, REALLY like annotations. I’m talking about the little numbers that pop up in a postLike this one, for example.. I ran into them on the XKCD What-If blog. They’re great for expanding on a side-thought without cluttering up the main body of the article. They’re handy when writing faux-technical articles that require lots of footnotes to save me from Death By Nitpick. They’re great for jokesSince you can hide the punchline..

So I swiped the footnote code from XKCD. It works fine when reading individual posts, but on the front page of my website the pop-out text isn’t properly hidden. (I have NO IDEA what it does to RSS feeds. Not too worried about that. People reading via RSS have already decided they want the words but not the formatting. That’s fine, but it makes sense to design your site for the people who actually visit the site.)

If you read this post by itself, those annotation boxes above will work as intended: They will be hidden until you click the related footnote. If you view the exact same content on the front page, the boxes appear expanded at the outset, and clicking on the footnote does nothing. I am baffled by this problem.

In both cases, the system is driven by this code, which is at the bottom of the HTML:

1
2
3
4
5
6
7
8
9
10
11
      jQuery.noConflict();
      jQuery(function() {
        jQuery(".refbody").hide();
        jQuery(".refnum").click(function(event) {
          jQuery(this.nextSibling).toggle();
          event.stopPropagation();
        });
        jQuery("body").click(function(event) {
          jQuery(".refbody").hide();
        });
      });

I don’t want to give up annotations. Up until now I’ve hacked around the problem by disabling the annotations on the front page. That prevents the “Yellow boxes everywhere!” problem, but it’s confusing and people keep reporting this as a bug.

I’ve consulted the Google Oracle, but finding solutions for specific problems like this is pretty difficult. And I’m not fluent in JS enough to begin to unravel this myself. (The connections between JS and HTML are non-obvious and confusing as hell.) I will say that the JS syntax is deeply alarming to a C programmer. Curly braces INSIDE of parenthesis? Madness! You’ll kill us all!

This is normally a situation where you’d need to suck it up and ask folks at (say) Stack Overflow. But the path of least resistance is to just ask my readers. The output is right in front of you, we have a reproducible example of the problem in action, and the source is freely available.

For the record: The title of this post is one of the most bone-chilling phrases a friend can say to you. The irony is intentional. I am now the Dumb Friend, oblivious but well-meaning, who figures that since they don’t understand the problem, it’ll probably be easyfor someone ELSE to solve.

Still. I’m hoping this turns out to be true, that for one person out there this is trivial to solve. Is it you?

 


 

Skyrim EP49: “Legitimately Obtainable”

By Shamus Posted Wednesday Jul 2, 2014

Filed under: Spoiler Warning 111 comments


Link (YouTube)

So this episode really does highlight one of the questions about power level in the context of an RPGWhatever THAT means. with leveling mechanics. How much is the player responsible for their own fun? If the game presents a system where you can become more powerful, and it’s possible to become so powerful that the game becomes boring, then who bears the blame when that happens? I think it depends on the game and the systems it uses. If most players manage to blunder into a boring state of godlike power, then I think most people would be comfortable putting blame on the designer. But what if that state was only obtainable by following a detailed guide of obscure actions and extensive grinding? I think you could argue that the super-power is not only allowable, but the rightful reward for a player who deliberately sought it out and worked to obtain it.

Even this question presents a sliding scale of blame, when I think it’s even more complex. If there’s some state that the game can have where all combat is trivialized and the normal gameplay systems break down, then context is important. How did the player get the game into that state?

  1. What if it’s the natural result of the given ruleset? (Like leveling up to ridiculous levels in some Final Fantasy games. “Hey, the game didn’t FORCE you to over-level. It just give you a goal and didn’t tell you when to stop pursuing it.”)
  2. What if it’s clearly a loophole in the rules that works around the many obvious efforts to balance and constrain the player’s power? (You could argue that this is the case here in Skyrim. Considering grinding yourself to max level in smithing is long, expensive, and doesn’t produce runaway damage numbers that crash the game.)
  3. What if it’s the result of a glitch or bug? (Like using the environment to clip through walls.)
  4. What if it’s the result of a designer that didn’t want to constrain the player? (The design philosophy of Richard Garriott comes to mind, where he would deliberately design one solution to a problem, but not try to wall off other creative solutions, thus recognizing them as valid even if they trivialized his puzzle.)

There’s no hard line here, but it is clear that at some point the complaint of, “If you do X, the game is trivial” can’t be adequately answered with “Then don’t do X!” There’s a fundamental conflict at work here: The game presents a system and challenges us to overcome it. It exists to create something for us to destroy. If we can’t overcome it, then the game failsAssuming we’re talking about a more traditional game. I know there are lots of examples of games where the only winning move is not to play.. But if we overcome it too easily, the game also fails. But computers are stupid and literal while humans are smart and creative. And the more complex the game is, the more chances there will be for a person to route around the challenge and ruin their own fun, simply by doing what the game asked them to do. (Overcome its systems.)

It’s a tough line for the aspiring game designer to walk. I’m sure this will all get much easier once we manage to build Skynet.