Lessons From the Wasteland

I’ve been knee-deep in Wasteland 2 for the past couple of weeks, and its mechanics are some of the most refreshing (and nostalgic) I’ve experienced in awhile. One thing that has definitely struck out the most to me in terms of game design is:

Sure, the game still has its share of bugs: people facing the wrong direction when pressing up against cover and some odd (and rare) camera glitches to name a small handful, but I’ve yet to find anything that breaks the game and  I’ve still been thoroughly hooked. Why?

To go further into detail for each case:

The specialty item.

The prevalence (and preference) of digital goods has ushered in the need for physical goods to go the way of “specialty” or “custom” appeal. The fashion industry has always taken heed of this marketing tactic and makes its clothes not only a system of exclusiveness but also of “empowering” the individual with the “specialty” that the item might bestow on the wearer. When written down, the idea might seem foolish, but people do it daily, and not only for clothes; consider specialty vinyl records for albums or “designer” furniture and household accessories. 

So why collectibles in games? And why do people like it? The latter can’t easily be verified, but something must be sticking for collectibles to now have become somewhat of a tradition, whether or not they be in-game or in-platform. Andrew Kropff wrote a nice article about game collectibles in general and their implementation and mentions, in particular, that the demographic for collectibles is the ‘completionist gamer’. 

I have certainly fallen prey, to the constant bombardment now of statistics on various platforms, to wanting to ‘complete’ games to their fullest, but usually fall short and / or lose interest. I feel that I keep going back in circles regarding why game designers do this, but it seems obvious to me its done not only for the ‘completionist’ but also others who might be interested and need that one extra push to replay a game. 

Replay-ability is a huge factor in the success of any game title, and if it can garner enough interest to be replayed several volumes over long down the line, then the title will continue to attract attention and, obviously, sales. The inclusion of collectibles is a simple approach to try to garner this attention but must be handled with care: as Andrew points out the internet allows all of us to bypass any kind of heavy difficulty and so the collectibles need only be a small extra effort to gather, instead of being a painstaking, strenuous process. 

And the final question comes into play: are collectibles really fun for games? I think yes. Collectibles smartly tie themselves into the fundamental reward-based system of games and its reassuring and satisfying to feel rewarded for finding something that may seem off the beaten path, the cheery chimes and visual effects, and the potential future loot that might come of searching for these relatively “hard-to-find” items. In other words, collectibles aren’t much different than your average reward-affair except for how they are dressed up. 

Retro Future Robots.

Retro Future Robots.

(Source: iraffiruse, via 990000)

The elegantly designed computer systems of Guardians Of The Galaxy

u3, i3.

For those that know me, it’s kind of a family tradition to use Slackware. If you look at my previous posts, I explored some other distributions and I finally settled on Slack because of it’s vanilla nature and rock-solidness. As a design philosophy, I’m all for it, mostly because it works and if things break, I don’t have to go wading through a plethora of options to make them do what I want. 

Take Ubuntu; I love ‘out of the box’ distributions and OS’ as much as any average person would, but there are things a non-standard user can find really annoying. Ubuntu’s unity desktop isn’t really that fast on your regular laptop platform. Sure, laptops are probably going the way of the trash bin in favor of touch devices, but where there are computers, there are developers for computers, and I still wager that developers would prefer a proper keyboard layout to a touch screen device (at least until we can have some crazy tactile interfaces like in Minority Report)…

I decided unity was too slow and switched to i3; its principal advantage for me was the bliss of being able to switch particular windows to a floating format which some applications absolutely require (gimp, certain preference panes, etc.) Other than that, a tiling format is perfect for a smaller resolution like on a laptop; there’s no time wasted rearranging things and making sure stuff isn’t covering other stuff.

Unfortunately, patching things up in Ubuntu is a lot harder and I assume this is because of the layers of crud sandwiched between the user and the distribution’s gorey details. I’m still struggling to change lightdm’s background, whereas other (read: more transparent) applications allow for quick, easy changes. It’s one of the reasons I like i3 and Openbox so much. 

Some people really like transparency, and it is difficult to program into an application. It’s always easy to hard code some things, or to try to bury details under a mountain of separation layers to enforce the ‘don’t break it’ mentality for the average user. For those that use Fedora or Ubuntu, they know most users will never leave Unity. But I shouldn’t have to change distro’s just to get things to do what I want, and people who go to Xubuntu or Kubuntu just to have a different window manager are either highly ill-informed or missing the point.

There are a lot of nice things that Ubuntu does offer, and in particular it’s a good variety of support and it’s package resources (which are fundamentally Debian APT repositories, with some Ubuntu-centric ones in the mix). There are times I start thinking about making the switch to a cleaner, simpler, less “in my way” distribution that favors customization such as Crunchbang, though, if it wasn’t for the fact that I’d have to spend a whole week setting it up the way I want it from the ground up. 

Windows managers, though, are interfaces just like anything else, and for some applications productivity is the aim. In a game, not so much, so transparency isn’t really needed, but there is a double-edged sword here: imagine the world of modding. If some games weren’t as open for modding, they may have never relished in the success they had; Half-Life, Unreal, Skyrim: the list goes on for quite a number of titles. What does this mean? It means you’ve given a community the power of replay-ability, to keep using your tool in ways you never thought imaginable, which is a core design principle when it comes to interfaces: you may design for a particular demographic, but a whole slew of others may end up using your product, perhaps not even the one you originally designed for! Ultimately, designing for transparency is a fundamental design principle in the right contexts and I feel the favoring of ‘keeping it safe’ for the average user actually ends up impeding the average user when it comes to something as simple as changing a background…

Grubby Hands on Loading OSs

The “Grand Unified Boot Loader” is pretty cool; albeit non-essential when there are alternatives out there to boot your OS such as LILO, ELILO, reFIND, and so on. I recently had the unfortunate pleasure of trying to get Grub v.2 to work on my Slackware box and didn’t find much help. I’ll try to make this short and sweet:

You have a UEFI / Legacy BIOS bootable system; cool! You can load multiple OS’s no matter how they are configured as long as they are configured correctly; awesome! But the unfortunate requirement of all this is that you can only load them from the BIOS menu; damn!

Why is this?

You cannot mix and match boot configurations inside of a boot loader (generally) so the idea when configuring something like grub and friends is to try to be consistent along with your other partitions. 

Ok, I have a GPT; I can do a legacy install of grub2, can’t I? 

As was my case; it depends entirely on your motherboard. I tried endless configurations to get my Asus Maximus VI Gene to play nice and properly load Grub2 on my GPT partitioned SSD of 250GB but absolutely nothing would work. The answer? Go back to MBR and do a basic legacy boot. My assumption here is that some legacy BIOS boot loaders aren’t configured to look for GPT properly, albeit grub2’s setup with a bios_grub partition and the like is supposed to properly alleviate such a problem.

Alright, well, I don’t mind having one that’s UEFI and the other as MBR; I’ll just use the BIOS because I don’t switch that often.

UEFI is cool, but what benefit do you get? UEFI and GPT go together well thanks to how system designs are going these days; GPT supports higher number of partitions, greater than 2TB in size drives, so forth. If you are a Linux user who likes to separate their directories into separate partitions and go greater than 4 partitions, than maybe GPT is the way to go. Otherwise, if you’re like me where I’m using at max maybe four partitions and my main drive is topped at 250GB, there’s really no advantage to having a GPT formatted drive. If you do end up using GPT, then UEFI seems to the wiser, easier way to go, but you’ll have to make sure you have all your other OS’s and drives configured for UEFI boot or you’ll never get the chainloader to load them properly.

How do I do this?

I don’t care about covering this in Arch-Wiki-like detail, so I’ll just say what I went through:

In my case, grub2 kept linking my EFI listing to the wrong partition (2, which was my root drive) when it should have been linking to 1, my EFI partition. After reissuing the link to the proper place, it worked, but since my other OS’s are installed legacy with an MBR partition table, I had no other choice but to convert my GPT setup to MBR via gdisk (in gdisk, under recovery and transformation menu, there is a command for converting GPT to MBR. If everything is in it’s right place and you have some room at front of the drive you shouldn’t have an issue converting. That said, any of the advice I’m giving here is done at your own discretion and I offer no warrant to it working safely or working at all. That also said, a lot of this information is scattered about in the form of various stack exchange QandA’s as well as Linux distro wiki’s so I thought I’d consolidate the knowledge someplace central in case other people seem to have the same issue. 

A Less-Random Generator

I was going to do a write up involving PRNG’s and randomness in games but I think this article sums up the notion quite nicely (and ending on a simple-enough to understand example of a shuffle bag algorithm implemented in Python.)

Plotted Random Points

Every reader [of the SICP] should ask himself periodically “Toward what end, toward what end?” — but do not ask it too often lest you pass up the fun of programming for the constipation of bittersweet philosophy

Structure and Interpretation of Computer Programs

I don’t think they meant this.

I don’t think they meant this.

Scottish game developer Chris Sawyer originally wanted to create a sequel to his highly successful Transport Tycoon, but after becoming obsessed with roller coasters, he changed the project into RollerCoaster Tycoon. Sawyer wrote RollerCoaster Tycoon in x86 assembly language, which was rare for a game published in the late 1990s. Some functions were written in C for interaction with the Windows operating system.