Just a Little Insight Into My World of DIY Auto Repair (and How it Relates to Myst)

I have a 2001 Volkswagen Golf GTI (which probably shouldn’t be called a GTI, but it’s what I’ve got). For about 6 months the central locking couldn’t unlock the hatch and I had to use the key isntead. I recently replaced the hatch and that didn’t fix the problem, so I developed one of my obsessive episodes and spent some time dismantling two lock mechanisms in an attempt to find the problem. I finally figured it out and made a video about it.


I assumed the problem was electrical because Golf’s have all sorts of electrical problems, especially around the hatch. That’s why I figured the new hatch would solve it (I needed to replace it because of rust). Unfortunately the part that was broken was also the only part that I needed to bring over from the old hatch…the lock. I was fortunate to have the lock from the new hatch to play with, but because the missing part was just a tiny ball bearing I didn’t noticed it fall out while I was taking it apart.

The reason that I was able to figure this out is that I assumed everything was there for a reason. I had initially dismissed the notch where the missing bearing was supposed to go as a remnant of a design change or some such thing. When I changed my thinking and decided that it MUST serve a purpose, suddenly the solution was pretty close to bleeding obvious. That reminded me about Myst.

One problem with raising kids on video games is that most games are arbitrary. It is common for people to say “I’m not sure where I’m supposed to go next” or “I’m not sure what weapon I’m supposed to use on this guy”. The player’s aren’t trying to reason about the mechanics of the universe, they are trying to figure out what the developer was thinking. The real world is not like this, because nature is a machine not a consciousness. Myst is special in that rather than trying to work out what the DEVELOPER was thinking they are trying to figure out what the fictional character who built the machines was thinking. In a sense these are the same thing, but they are very different in one important respect: the player and the builder are following the same rules.

When approaching a puzzle in Myst, you are best off thinking like an engineer. The machines are designed to obey the laws of physics and perform certain tasks. The player’s job is to work out what tasks those are and how the machine does them. This can be done through pure natural reasoning, and that makes it a wonderful learning exercise. It helps us develop very useful skills for tackling everyday problems, like say fixing a broken lock. In my experience, very few games work this way. While many puzzle games are about understanding mechanisms (and are skill-building in their own right), very few of them ask you to start from something that has already been built and understand it in an abstract and value-laden way. The closest thing I can think of is Antichamber, though that is once again a slightly different kind of puzzle solving.

Fixing cars is hard. I need a sandwich.

Posted in Uncategorized | Leave a comment

Damn all this Clarksoning and Unclarksoning

http://i1.mirror.co.uk/incoming/article3523295.ece/alternates/s615/Jeremy-Clarkson-with-Paddington.jpgOver the last few years the BBC show Top Gear has been one of the most popular shows on television, both because and in spite of increasing levels of controversy. First they insulted the germans and nobody cared. Then they insulted the Spanish and the Spanish cared. Then they insulted Asians and everyone cared. Then the Argentineans decided that Top Gear must have insulted them and the crew cared because they were being mobbed by hundreds of people throwing rocks. But now, for you Clarkson the show is over.

A little over a week ago Jeremy Clarkson punched a fellow employee in the mouth because there was no hot food after a day of shooting. This put the BBC in an impossible position. On the one hand they cannot tolerate physical altercations in the workplace, especially over what is effectively a nothing issue. On the other, the dynamic between Jeremy Clarkson, James May and Richard Hammond is what makes TG beloved around the world. In fact, a man dressed as The Stig drove a rented tank to the BBC in London just to deliver a million signature “Save Clarkson” petition. I signed this petition, but I did so knowing that I was playing the role of a huge Top Gear fan. If I had been on the BBC’s disciplinary committee I would have done the same thing they did: fired Clarkson.

As you can see, Clarkson and Columbo are virtually identical in every way.

As you can see, Clarkson and Columbo are virtually identical in every way.

The fascinating thing about all this is that it is one of very few situations in filmed media where a single person is truly irreplaceable. We can always get a new James Bond, American Idol will still be plenty popular without Simon Cowell and you wouldn’t notice if they swapped out a Simpsons voice actor. On Top Gear, anybody replacing Clarkson is going to represent “the person who replaced Clarkson”, not themselves. It’s the same thing with Columbo: anybody trying to play him now would just be seen as “not Peter Falk”. I think this is partly because the TG trio built that show together (this is to say nothing of the people behind the scenes) and even if you found somebody who filled the same role as Clarkson, the dynamic can never be equal in the audiences eyes. Time and history build relationships in ways that nothing else can, and we are talking about 3 people who have travelled around the world and had incredible experiences together which we have shared in. By the time we get that with a new presenter, May and Hammond will be retiring.

Since the event, I’ve been wondering over the past week about the moment when it happened. Not the whole thing, but just the third of a second when Clarkson’s fist contacted Tymon’s face. Was he thinking about food at that moment, or was he thinking “oh god, what have I just done”? Was he thinking about his fellow employees who might lose the best job IN THE WORLD? What about the massive dynasty that is Top Gear, which is suffering injuries that will take much longer to heal than Tymon’s? Did he, in that moment, genuinely believe that he was powerful enough to get away with this? I’ve always believed that underneath his persona there was a fairly decent person (he is far too intelligent to completely believe most of the things he says), but even if that’s true was it the human being Clarkson or the TV Star that occupied his body in that moment?

This highlights something that we don’t often think about: individual actions in very small periods of time are often just as important as grand strategy and policy, particularly in a social environment where one deviant act can leave us permanently shamed. In this case a cantankerous old man after a long day did something inexcusable in a fraction of a second, forever altering the lives of millions of people.

At the very least he could have waited until they put those three hyper cars around the track. Inconsiderate.


Shameless plug


Posted in Uncategorized | Leave a comment

A Q&A on Programming

I was recently put in contact via email with a high school student who was doing a projecting exploring various careers including game programming. He emailed me a set of questions and I responded with the level of depth I found nessecary. I thought some interesting topics were touched upon, so I’m reposting my response here. Do you think I got anything wrong?

Hi! I’m happy to help. However, I should make 2 things clear:

A: I consider myself a game designer who programs out of necessity. Those are two very different jobs.

B: I am not currently employed in the video game industry BUT I have over 1000 hours of game programming experience, I have attended GDC several times, I attended and aced a course on Game Development at university, I have completed many game jams, I’ve read many books on game development, have an extensive knowledge of video game history and I’ve followed the inner workings on the games industry for over a decade. With that as context, I shall answer your questions.

1. What do you find most challenging about Game Programming?

Programming can be great fun, but the exciting eureka moments tend to punctuate long stretches of implementation and bug hunting. Some people don’t mind this, but I tend to be impatient and get frustrated. This is especially true when something looks like it works and I start wondering if the problem lies in somebody else’s code (some tools that I have used have excellent documentation, others give you very little guidance about how they are supposed to work), So on the whole, I would say that staying patient and calm, even when something is taking three times longer than you expect, is my biggest challenge in programming.

2. What are the most helpful classes in college/university to prepare for Game Programming?

The most straightforward path is a computer science degree with an emphasis on graphics courses. However, there is always a shortage of people with strong math skills in the games industry so if you focused on those or even took a double major that would pretty much guarantee you a job and give you better long term prospects. Also, do stuff on the side like game jams. You want to understand how the game development process works before you get chucked in at the deep end in a real job.

3. What qualities do you think are important in an individual in Game Programming?

Patience, focus, communication skills and creativity. Any one of those on its own will go a long way, but if you don’t have, or can’t develop, at least two I wouldn’t peg you as a programmer. Also, a willingness to occasionally work until 4 in the morning. Deadlines are not optional in the games industry.

4. What is the greatest benefit in doing Game Programming as a career?

You get to make games! Also, it’s a very secure industry to work in. Studios shut down all the time, but once you get in you will always be able to find work.

5. How many hours do you work on Game Programming in a week?

Sometimes forty, sometimes none.

6. Describe the working conditions for someone working in Game


This is a sticky topic right now. A decade ago it was a horrible job. The last three months (and sometimes longer!) of development were basically hell, with eighteen hour days and people sleeping at the office. The video game industry has a very high burnout rate. Fortunately there have been some successful lawsuits and people are aware of the problem. Things have gotten better, but how much better depends on the individual studio. Of course, if you successfully go indie you get to dictate your own working conditions…provided you don’t overscope your project which everybody always does the first few times.

7. What programming languages are required to attain a job in Game


I would expect anybody working for me as a full time programmer to know all the major versions of C (C,C# and C++) as well as JavaScript. Fortunately learning additional programming languages above the first generally requires a textbook and about two weeks. However, HR people refuse to understand this so it’s worth trying to find out what languages a studio uses and trying to learn them before applying.

8. If you could meet anyone in game history, who would it be and why?

Fortunately, most major figures in the games industry are still alive, and I HAVE met some of my top picks! John Carmack is somebody I’d like to meet, but I’d probably just feel embarrassed. He is probably the single most important person in game programming. He wrote Doom. There is a great book about him called “Masters of Doom”. I’d also like to meet Gunpei Yokoi but I’m not sure that he spoke English. Also, he IS dead.

9. Describe your perspective on the role of a programmer in the development

of a game.

A lead programmer once told me that he saw his job as being to help the designers solve problems. As a designer I obviously like this answer :). It’s also an attitude that will ingratiate you into the industry. The fact is, however, that the programmer is the only person who could make a game without any help. That was originally how it worked. Of course, that was at a period when the video game industry very nearly died out because of the vast supply of terrible games, so I think our current system has worked much better.

10. Why do you play games, and what kind of games do you play and why?

All kinds of stuff, though I tend to prefer linear-ish single player games. As a designer I want to see as many different types of gameplay as possible, both good and bad. The reason that I like single player games is that they can be more finely honed to deliver a good experience, they actually have definable end, and they are capable of delivering a much wider range of experiences. That last one is my opinion, but I believe that it is objectively true.

11. Why is C++ language more preferred for Game Programming?

These days it isn’t necessarily. For engine programming and other low level work it is the only option (unless you want to work in assembly which you don’t) because it gives you more control and therefore allows you to make your code much more efficient. That strength is also what makes it unsuitable for higher level work. If the scripting and other high level functions are written in sometime like C# then everybody on the team can use them and you don’t need a programmer doing work that the designer would prefer to do themselves anyway. Even for programmers, C# is easier to work with than C++. You have to use the right language for the task at hand.

12. What gaming engines do you use for developing games?

I learned to code using Gamemaker, but like most indie developers I now use Unity. You can use it and release your games for free, and it is both powerful and easy to use. Not quite as easy as GM (which is still a fine learning tool), but infinitely more powerful. It also has excellent documentation, which I’ve already said is very very nice.

13. What motivates you into doing Game Programming as a career/profession?

I like video games and have spent far too much time learning about them to stop now.

14. What types/genres of games are most popular to the gaming community and why?

I don’t think you can answer that question anymore. It used to be “side scrollers yo” and then it was “shooters yo”, but such a wide range of people now play such a wide range of games that really everything has an audience. Are people who play Farmville for 50 hours a week less gamers than people who fire up Counterstrike on the weekends?

15. What do you enjoy most about Game Programming?

The moment when you suddenly figure out how to solve a problem, and the moment either twenty minutes or hours later when you implement it and it works.

Posted in Uncategorized | Leave a comment

Building a Better ATX Case

I recently decided that my computer was powerful enough for pretty much anything I actually do with it. As a PC nerd I still wanted to tweak and fiddle, so I decided to focus on quietness. I like to think that I have particularly sensitive hearing, so that was a nice big complex project to embark on. Since then I’ve read quite a bit of cooling and quietness theory, particularly on the excellent website SilentPCReview.com. There is plenty of debate on the right way to do things, and money = progress, but by doing nothing but switching out a few fans and a cooler(and a tiny bit of undervolting) I’ve managed to make my PC quieter than ambient at full load while simultaneously running ~20 degrees cooler!

This process got me thinking about airflow, which is the second most important element of maintaining a cool PC, the first being contact between the CPU and heatsink. The nearly unbiquitous design for motherboards and computer cases is called ATX and it celebrates its 20th anniversary this year. I’ve read a few articles in which people have complained about it being a dated design over the last few years, but none of them mentioned airflow. Back in 1995, graphics cards didn’t have fans. Often CPUS didn’t either. The Pentium 1, released in 1993, had a Thermal Displacement Power of 8W (some desktop processors have hit a TDP of over 100 in the last few years). Further, HDDs were so loud that they would drown out case fans to some extent, meaning that those fans could be run faster without being noticed. Perhaps most telling of all, Intel originally intended for airflow in an ATX case to go in the opposite direction it does now[1]!

Nowadays we have graphics cards with massive cooling requirements, and CPUs that demand meaningful air cooling. My Radeon 7970 has a TDP of 250W…before overclocking. While CPUs have gotten generally cooler recently, GPUs have been on an upward trend. Fortunately our heatsink and fan design have improved along with those requirements, and we can get that heat away from the chip quickly and quietly. The problem is that the air then needs to go somewhere. That’s where ATX falls flat corsair-550d-install-3on its face.

This is a picture of the case I have, a Corsair Obsidian 550D. Of course this isn’t mine (I wish that looked so neat), but it’s a very typical setup for newer cases. Air is sucked by two fans in the bottom right and flows through to the top left where another fan blows it out. On the way it needs to collect as much heat as possible and then get out immediately. The problem is that middle bit. In ATX, the CPU sits above the expansion slots which hold (in this example) a pair of very hot graphics cards which can only expel a fraction of the air they process out to the left. This means that any air sucked in is being heated up before it gets to the CPU. It is impossible to reduce the temperature of a chip below the temperature of the air flowing over it. This means that the bottom graphics card is making the card above it hotter, which in turn is making the CPU hotter still. This problem is compounded if, as I do, you have a cooler which blows all of its air upwards rather than flowing as much as possible directly outside. It would be better, though not perfect, if the airflow order were reversed because the CPU has a lower operating temperature than the GPUs, meaning that the air would be cooler moving through the case, even though it would ultimately exit the system at the same temperature. Unfortunately the exhaust fan needs to be higher than the intake fan (because hot air rises), so it is not possible to simply reverse the fans on a standard case. Remember that the original specification had the fans placed in the same places, but with reversed airflow. Then it would have been PSU->CPU->GPU->exhaust, which is a much better order.

I could go on, but I think you get the point. ATX cases have somewhat poor airflow. I’ve started pondering improved case designs that would allow better airflow, giving us more efficient cooling and therefore quieter systems. To that end, I’ve come up with a radical design for a case which is compatible with ATX motherboards. It would work even better if the motherboardwere changed as well, but by keeping it I am able to ensure that this could theoretically be made and sold. Though probably not cheaply.

C:\Users\Adrian\Desktop\Case Design Layout.pngMeet Negative Nelly!

The case layout to the right is a representation of NNs layout as viewed from the front. It is broken into 3 compartments, each of which is partially isolated from the others. The green line on the far right is a standard ATX motherboard. The CPU is housed in compartment A, the GPU in compartment B, and everything else in compartment C.

Note that there are two sets of lines defining the case. The inner lines are actually a tray that sits on roller bearings and can be pulled out to build and modify the PC. This is necessary because the external “shell” must be airtight in order to benefit from the cooling effect of negative pressure. See where the name comes from?

Positive pressure is when the intake fans are blowing more air into the case than is being exhausted, negative pressure is the inverse. Since very few cases are perfectly balanced, all PCs have either positive or negative pressure. There is much debate about which is better, and the argument for negative pressure is as follows:

Noise is caused by more fans running at higher RPMs.

When a fan pulls air, it creates a vacuum behind it which will fill with more air almost instantly.

if the case is exhausting more air than it is pulling in, the vacuum effect will pull air through more quickly without requiring more fans or higher RPMs.

Therefore: Negative pressure = quieter!

I was in this camp until I read an article on the Silverstone website[2] on the topic. As a component manufacturer they have the time and equipment to properly test airflow, so heed their words (unless they are trying to sell you something of course). Additionally, every case I have ever owned came set up for positive pressure, as do laptops, so there seems to be consensus among those who should know. The crux of the problem is that negative pressure does not direct airflow. Just like water and electricity, the air filling the vacuum is going to come from the place which has the easiest access (following the path of least resistance), and in a typical ATX case that place is very close to the exhausting fan. This means that the hot air being expelled is being sucked right back into the case, and not even passing over the components we want to cool!

C:\Users\Adrian\Desktop\Case Design AB.pngThis is the motherboard side of NN[3]. Here you can see the single MASSIVE 400mm case fan exhausting air from the case. Because it’s so big, this fan can pull huge amounts of air at low speeds, meaning very quiet operation. Because the shell housing the fan is airtight, all of the air being sucked in must come from the front of the case where the cool air is. There will be some exchange of air between compartments, but that is unavoidable and not concerning.

The next detail you should note is the line between the case and the CPU, sitting approximately where most mobos have a PCI-e 1x slot. In the actual setup I have here this isn’t actually necessary, but it prevents air from interchanging between compartments A and B. Because many GPU coolers blow their air upwards, this blockage exists to prevent as much GPU air as possible from approaching the CPU. Since it will interfere with some motherboards and GPUs, I would make this panel removable in a retail design (note that it does not need to be airtight).

The reason we don’t need it here is that the GPU cooler I used, to my knowledge, doesn’t actually exist. While impractical in a dual GPU setup (which very few people have or need), what I’ve done is planned a frankly ridiculous tower cooler of the type normally used on CPUs. Weight would be an issue and the contact between the GPU and cooler would have to be perfect in order to fully utilize it. However, it does represent an ideal cooling situation.

The last point of interest is cabling. In the layout picture you can see a thick central line in the removable tray. That houses permanent wiring that connects anything which needs to sit between the three compartments. IO panels inside the case link the sections as required, as well as to a front panel which houses this like headphone and USB ports. Once again, in a retail design this wouldn’t be flexible enough, because it locks the user into certain types of cabling which become obsolete or otherwise insufficient. It would also increase cost substantially. Replacing the panels with holes would allow custom cabling with a minimal impact on airflow, though extension cables may be required for some components. Anything at needs to exit the case (such as video cables) can be sent out a hole in the front as seen in the layout

C:\Users\Adrian\Desktop\Case Design C.pngIn compartment C we have all the remaining gubbins. Because they are connected by cables, we have much more flexibility with respect to their configuration. Starting from the top:

The IO panel is directly connected to the wiring passage in the tray, and has all of the USB ports, headphone cables, and whatever else you might want. A disc drive sits below it, with room to add more if desired.

HDDs are mounted longitudinally, right in the middle where they will get more than enough air. In my experience they need virtually no airflow at all, so this is like Christmas for them! Because they have lots of room to play with, they can be suspended elastically from the middle of the case. This has been demonstrated to reduce drive noise substantially. With a specially designed frame this will be no less convenient than in a typical ATX case. This suspension system is the only reason for the leftmost panel in the tray as seen in the layout, so if it were eliminated that would make installation of components on this side slightly easier.

I am of two minds regarding the power supply. I have put it on little feet so that it can be placed with the intake fan down without compromising air tightness of the shell, but in this drawing I have it upside down. Testing would be required to determine the best method, so I left both in to represent both options.

Some people have commented that they feel this case is too large, since the whole C compartment is unlikely to be filled. While this is also true of the standard ATX case (most people don’t have 5 optical drives and 6 HDDS), it is true that this design contains some wasted space. This could be minimized by reducing the fan to the same height as the motherboard. Since the fan defines the height and width of the case while the depth is actually substanitally lower than a standard case, I believe that the total volume could be made smaller than an ATX while permitting the same number of components and providing much better airflow. That is THE trifecta of improvements in PC design.

The only other point that I should address is the notion that the exhaust fan could be exchanged for an intake fan on the other side, creating a positive pressure case which would move a similar amount of air by pushing it out quickly. There are a few reasons this wouldn’t be as good, but the main one is that airflow from an intake fan is shaped. According to Silverstone[4] (who are admittedly trying to sell us something in this case) air moves outward from the fan, meaning that most of the airflow would be on the edges of the case where it isn’t needed. Further, there is a hole at the hub of the fan which has no airflow at all, again reducing air flow where it is needed most. A negative pressure situation should provide a much smoother distribution of air.

Of course it would still work, and I believe better than a standard ATX case. I just don’t see any reason to do it. So, the PC component industry has given open air cases and computers built into desks. Could Negative Nelly be the next big thing?


  1. http://www.intel.com/support/processors/pentium/sb/cs-011025.htm
  2. http://silverstonetek.com/techtalk_cont.php?tid=wh_positive&area=en
  3. I have left out representation of the removable tray for clarity.
  4. http://silverstonetek.com/techtalk_cont … =wh10_0061
Posted in Uncategorized | Leave a comment