tag:blogger.com,1999:blog-14400339884694928712024-02-20T05:35:53.114-08:00Codex: Adeptus AnalogousExcrubulenthttp://www.blogger.com/profile/10854664566763570671noreply@blogger.comBlogger11125tag:blogger.com,1999:blog-1440033988469492871.post-36234660471344607362018-06-07T22:34:00.002-07:002018-06-08T00:27:09.961-07:00I'm Not Dead; I Feel HappyCool, so... hey blog. It's been what, five years? Yeah, good. You? Good. Ready for some more personal shit? Also, casual swearing.<br />
<br />
Way back then I wrote <a href="https://codexadeptusanalogous.blogspot.com/2013/04/self-medication.html" target="_blank">this little gem of drug-induced crazy</a> where I proclaimed that I would be able to write a whole bunch more, then wrote <a href="https://codexadeptusanalogous.blogspot.com/2013/11/game-designation.html" target="_blank">one more extremely pretentious thing</a> then promptly went utterly silent. I could blame kids but they were really only a catalyst for what was to come.<br />
<a name='more'></a><br />
It turns out I don't have ADD, or at least I don't think so. What I have is oxygen-deprivation-induced brain-damage, aka sleep apnoea.<br />
<br />
What does that mean? First of all, it's infinitely less sexy than ADD. Sleep apnoea doesn't have any songs that I know of, much less <a href="https://www.youtube.com/watch?v=fB3kNJrcoGM" target="_blank">songs that represent the Red Bull brand</a>. It also means I don't breathe properly at night, so I wake up tired, generally cantankerous and unable to focus. It can <i>look</i> like ADD if you ignore the crushing tiredness, constant headaches and irritation. Thanks to a lifetime of being told that <i>this is normal</i> and my problems were <i>my fault for not trying hard enough</i>, I was well prepared to ignore all those symptoms and accept the doctrine that my constant failure to achieve anything was evidence of poor character. Give it up for the Protestant work ethic!<br />
<br />
So the drugs that I thought were treating ADD were actually just amping up my body and giving me hyperfocus, masking the real problem which was that my whole brain was crying for an out.<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://i.imgur.com/qLocud7.gif" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="281" data-original-width="500" src="https://i.imgur.com/qLocud7.gif" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Yes, I shoehorned that phrase in just so I could include this gif. Look at Donald go, what a goddamn beautiful performer. Actually, watching it on loop, they're all amazing; even the unconscious single-scene actor is nailing it. </td></tr>
</tbody></table>
<br />
After about two days straight of the drugs my body would crash HARD and I would lose my focus again, and I wouldn't recover enough to try again for another couple of days. So I'd realistically get about 2 days of productivity per week, and then the pain would return with a vengeance. I stopped the drugs.<br />
<br />
Then some years went by, and eventually I went, "Y'know what? I'm utterly fucking sick of being tired all the time." I went to the doctor, who sent me to get a sleep study done. Contrary to what I'd heard previously, you don't have to wait months for an appointment to spend a night away from home in a cage, naked, bright lights on you, suspended by ECG cables. You can just go to the chemist, they wire you up and you go home and sleep. I did that, they got the results back, I hired a CPAP machine, and suddenly I felt awake, possibly for the first time in my life. Then I bought my own machine because it was worth the money, MANY TIMES OVER.<br />
<br />
In fact for the first two months or so I had this weird feeling where I had energy in the morning, and by the end of the day I was utterly physically wrecked. I also had an eye-twitch. I think my body and my metabolism had to catch up because they weren't used to supplying the amount of energy I could now use in a day. I had been used to doing one chore in a day, then crashing because that was all I had in me. Now I could just keep going all day; little irritations didn't get to me; the typical daily hurdles of trying to get stuff done wouldn't enrage me and take all the wind out of my sails. I could play videogames without losing my shit.<br />
<br />
So that's great, all fixed, right? Yeah, nah, mate. Gotta work out those kinks, y'know? Like... don't forget to change the filter, or your treatment will slowly degrade until you're back at square zero. And you won't notice because you've taken on a bunch of stressful crap that you thought you could handle now and you're so used to the life-long tiredness that it doesn't register as abnormal until you've lost months of your life to zombie-like shuffling.<br />
<br />
That phase only lasted about 2 to 3 years - which is fine; I'm FINE with that; FINE - I've learned to keep the machine maintained semi-sufficiently, and I've bought some alternative fittings for the machine that work a lot better than the stock ones, and now I'm finally seeing a decent run of uninterrupted productivity. Maybe I'll finally get my game prototypes to a state where I can submit them to publishers, and maybe I'll finally release that one game mod I'm actually proud of. Also, I have a bunch of unpublished blog posts and ideas and I feel like putting them out there.<br />
<br />
Oh, also my other blog where I put my portfolio apparently stopped working when I wasn't paying attention. It was reliant on a plugin supplied by a third party, and they stopped supplying it once Unity started supporting HTML5, making their work redundant. I'll put something together sometime soon. We'll see.Excrubulenthttp://www.blogger.com/profile/10854664566763570671noreply@blogger.com0tag:blogger.com,1999:blog-1440033988469492871.post-84053588861026555112013-11-20T06:30:00.000-08:002015-02-10T14:01:30.110-08:00Game Designation<div>
<br />
I've decided to offer my definition for the word "game" to the greater internet, for scrutiny.<br />
<br />
This is such a contentious debate and it's been built up as this unattainable holy grail to one day know what a Game Truly Is as if it's quantum physics or something. I think the main reason people have this problem is that they create their definitions not to understand more deeply, but rather to support their own ideas of what things are games and what things aren't. To that end, they start creating lists of features games need, like win conditions, challenge, blah, blah, blah. A <i>difficulty curve!?</i> Ugh.<br />
<br />
The result is a muddy debate and definitions that can't be used in place of the word itself, which defeats the point of having definitions. You should be able to remove the word and insert its definition without changing the meaning of the sentence.<br />
<br />
I'm not covering all the definitions for the word, just the one that describes a type of activity. There are other meanings, but this is the one of interest.<br />
<br />
So, here's my definition:<br />
<br />
<h4>
Game (n): an inconsequential, voluntary activity with arbitrary rules. </h4>
<br />
Let's break that down.<br />
<br />
<h4>
Rules</h4>
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhNzXtzM93dR7-Kf6uimRRsPMrfRrqQEvIs3OIwfSWSnfADfibYMGYGItSqwggzCIFbKjV5bUDG2lmyrd_WXD9ICvT3MSq0hAwSLOM88jlIPEkUF1BaapFQBmjsth7AvmOJ75Lc1320vu9a/s1600/tumblr_lp2tplKVwb1qe3aixo1_400.gif" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhNzXtzM93dR7-Kf6uimRRsPMrfRrqQEvIs3OIwfSWSnfADfibYMGYGItSqwggzCIFbKjV5bUDG2lmyrd_WXD9ICvT3MSq0hAwSLOM88jlIPEkUF1BaapFQBmjsth7AvmOJ75Lc1320vu9a/s1600/tumblr_lp2tplKVwb1qe3aixo1_400.gif" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">None of that.</td></tr>
</tbody></table>
<br />
"First guy to die loses." That sort of thing. This particular example is known as a lose condition.<br />
<br />
<a name='more'></a><br />
<h4>
Arbitrary</h4>
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjAq-Ta1a1JXBRGVxNH6FQQaVo7H6dZePejqyOUK5x9QWUd_03RX1Fyfz-6o0_3EGybPOZUZzBqBNN1XPL8Epo4QaRRUciKmsrfO3CpltZxO-plqKdK5-q7UIdNj0cMKymRf8ujZ4bt4fZy/s1600/arbitrary.gif" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjAq-Ta1a1JXBRGVxNH6FQQaVo7H6dZePejqyOUK5x9QWUd_03RX1Fyfz-6o0_3EGybPOZUZzBqBNN1XPL8Epo4QaRRUciKmsrfO3CpltZxO-plqKdK5-q7UIdNj0cMKymRf8ujZ4bt4fZy/s1600/arbitrary.gif" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Musical notes are apparently code for "getting messed up".</td></tr>
</tbody></table>
<br />
Arbitrary as opposed to ontological. "First guy to die loses," for example is a fairly ontological rule, flowing from the nature of combat. "First person to reach the finish line lives," is arbitrary, assuming of course that the finish line is just a line and not for example a weapon.<br />
<br />
<h4>
Activity</h4>
<br />
You do stuff in a game. I don't think I really need to break this down, do I? It's the object on which the rest of the definition hangs. I couldn't think of anything that had all the other attributes of being a game but failed for being passive. However, games are activities, so this word has to be here.<br />
<br />
<h4>
Voluntary</h4>
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhJgwdwbx7s6fY6YfSVMRWtZh2zuXjNDOIU2iZTAe_9zVf_qnVJYTz0aJk3cJ2LSeRY-HTuokHaLgi15kPAoF4pYvfj-Kw2gqrmakFqnMXZmWZvDSw9Mxqc31HwEoNiqzWpqK7jHvnq6nye/s1600/3798344.png.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img alt="" border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhJgwdwbx7s6fY6YfSVMRWtZh2zuXjNDOIU2iZTAe_9zVf_qnVJYTz0aJk3cJ2LSeRY-HTuokHaLgi15kPAoF4pYvfj-Kw2gqrmakFqnMXZmWZvDSw9Mxqc31HwEoNiqzWpqK7jHvnq6nye/s1600/3798344.png.jpg" title="" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Start running. You'll know when to stop.</td></tr>
</tbody></table>
<br />
Participation is optional. "We must race to the finish line or they will kill us all," might be a game for <i>somebody</i>, but not really for the combatants; for them it's survival. "Let's take turns drinking shots and stamping on this land-mine; first guy to die wins," is voluntary. Anyone who doesn't want to play has the opportunity to leave. Now.<br />
<br /></div>
<div>
<h4>
Inconsequential</h4>
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjdl9EdDK1c8ij2L-hTA6vMumwYBIjKwXHebyBOkNkJtCiB7MMm6dF8GOKBQ-2yiLrzhEcW2KkT6enXDmBb5ke2zZYKIg8wgkFWxL4-bXYkC4mLGn5zQXZaNLDVZ6t56FKkaPTap1jEuGGg/s1600/article-1258364-01568E9600000578-457_468x340.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjdl9EdDK1c8ij2L-hTA6vMumwYBIjKwXHebyBOkNkJtCiB7MMm6dF8GOKBQ-2yiLrzhEcW2KkT6enXDmBb5ke2zZYKIg8wgkFWxL4-bXYkC4mLGn5zQXZaNLDVZ6t56FKkaPTap1jEuGGg/s1600/article-1258364-01568E9600000578-457_468x340.jpg" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Oh no! Their number is bigger than our number! They have too much number!</td></tr>
</tbody></table>
<br />
It doesn't actually matter what the outcome of the game is. This really does invalidate every example used so far. Even in landmine-roulette, where you could safely assume that every player will die in the end and the winner is just the first dead as judged by a high-speed camera, it certainly matters <i>whether</i> the game ends.<br />
<br />
However, we could take the death-race and make it inconsequential if the race itself is considered one thing, and the reward another. Then you win the race by crossing the finish line first, which is both inconsequential and arbitrary. If we assume the participation is voluntary then it's a game. Your reward might be a ticket on the last spaceship to evacuate a doomed world. This is the story behind the classic arcade racer <i>P.O.D</i>.<br />
<br />
In <i>P.O.D</i>, the competition is characterised by unrestrained murder. People are killed in the course of the race all the time. However, the outcome of the race is about who gets across the line, not who dies in the process. Dying before you reach the finish line is more of an ontological failure state than an arbitrary one, but whether you died or were just too slow doesn't affect the outcome.<br />
<br />
<h4>
The Implications</h4>
<br />
Let's look at some examples and see how they hold up to this definition. In no particular order:<br />
<br />
<h4>
Stock-Market</h4>
<span style="color: red;"><span style="font-size: large;">✘</span></span> FAIL: Consequential<br />
<br />
The stock-market isn't a game according to this definition because its operation and outcome involve the transfer of actual property, as may be inferred by the word "market" in its title.<br />
<br />
<h4>
Darwinian Evolution</h4>
<span style="color: red;"><span style="font-size: large;">✘</span></span> FAIL: Consequential, mandatory and ontological.<br />
<br />
You have to participate. Refusing to participate is simply a form of fail-state. It matters because it is about survival. It is ontological because it's just a description of what happens when organisms either succeed or fail at reproduction. There's nothing arbitrary about the rules.<br />
<br />
<h4>
Horse-Racing</h4>
<span style="color: lime;"><span style="font-size: large;">✔</span></span> PASS<br />
<br />
Remember, this is about the race itself, not about...<br />
<br />
<h4>
Gambling</h4>
<span style="color: red;"><span style="font-size: large;">✘</span></span> FAIL: Consequential.<br />
<br />
See: Stock-Market. You can break slot machines down into the (crappy) game part, and the gambling part. In theory it's possible to play the game part without any money riding on it, but that would reveal the mind-numbing boredom of the game itself.<br />
<br />
<h4>
Reading A Book</h4>
<span style="color: red;"><span style="font-size: large;">✘</span></span> FAIL: Ontological<br />
<br />
The only thing you have to do in order to read a book is look at the words and absorb them. There are no other rules. You don't have to read in a particular order; you don't even have to comprehend the meaning. Either you read it, or you don't. That's all there is to it. There is not a single arbitrary rule to be found. You could argue that a novel is intended to be read front-to-back, so
reading the last chapter first is breaking an arbitrary rule, but you're still reading the book.</div>
<div>
<br /></div>
<div>
<h4>
Writing a Book</h4>
</div>
<div>
<span style="color: red;"><span style="font-size: large;">✘</span></span> FAIL: Ontological</div>
<div>
<br /></div>
<div>
Whilst it appears that there are arbitrary rules about how to write, in the end the rules that govern creative expression are simply conventions. There is no reason you have to follow them. They're only guides to help you understand what your audience is likely to expect, and how to make or break those expectations.</div>
<div>
<br />
<div>
<h4>
Walking</h4>
</div>
<div>
<span style="color: red;"><span style="font-size: large;">✘</span></span> FAIL: Ontological</div>
<div>
<br />
Stop listing fundamental activities as game candidates.</div>
<br />
<h4>
<i>Choose Your Own Adventure</i> Books</h4>
<span style="color: lime;"><span style="font-size: large;">✔</span></span> PASS<br />
<br />
There is a right and a wrong way to read these books, as defined by explicit rules. You can read them out of order, but then you're just reading a book. See: Reading a Book.<br />
<br /></div>
<div>
<h4>
Make-Believe</h4>
</div>
<div>
<span style="color: lime;"><span style="font-size: large;">✔</span></span> PASS</div>
<div>
</div>
<div>
<br />
Playing cops & robbers or throwing a tea-party with no actual tea are activities that pass the test. There's no real outcome or challenge, but that doesn't matter. You're defining arbitrary rules to govern the activity, and therefore it's a game.</div>
<br />
<div>
<h4>
Roller-Coaster</h4>
</div>
<div>
<span style="color: red;"><span style="font-size: large;">✘</span></span> FAIL: Ontological </div>
<div>
</div>
<div>
<br />
There's a roller-coaster there, and you would like to ride it. You do so. Your interaction is not governed by arbitrary rules. The only way you can ride the rollercoaster is to get on and ride. The only way you can do it safely is to follow the safety rules. Arbitrary rule count: 0. This is just a fancy version of taking a walk or watching a presentation.<br />
<br />
<h4>
Joyriding in Cars</h4>
</div>
<div>
<span style="color: red;"><span style="font-size: large;">✘</span></span> FAIL: No rules<br />
<br />
"Have dangerous fun" just doesn't count. If you're trying to see how close you can doughnut around that lamp post without totalling your car, then you're playing a game, but that's not really necessary to joyride.<br />
<br /></div>
<h4>
Hunting a Serial Killer</h4>
<span style="color: red;"><span style="font-size: large;">✘</span></span> FAIL: Ontological and consequential<br />
<br />
If you don't catch them, bad things will happen. Either you find them or not. It's not about how. You could say that certain laws like due process are arbitrary and govern how you need to do things, but I'd say those laws exist to protect people, so they're not arbitrary.<br />
<br />
<h4>
Stringing the Cops Along with a Series of Elaborate Murders</h4>
<span style="color: lime;"><span style="font-size: large;">✔</span></span> PASS<br />
<br />
Okay, this requires an assumption, first and foremost, that the lives of yourself and your victims are of absolutely no consequence to you, because you're a sociopath. Then, this whole exercise becomes just a game to you. You volunteered for it and the rules governing how you string the cops along are arbitrary. Hooray!<br />
<br />
<h4>
Physical Education Class</h4>
<span style="color: red;"><span style="font-size: large;">✘</span></span> FAIL: Mandatory<br />
<br />
You might play games as part of PE, but the class itself is just a task that you're made to do. In fact, if you don't make any effort to affect the outcome of the games, I'd say you're not even really playing. You're just shuffling around the field pretending to play to get your credit.<br />
<br />
<h4>
<i>The Game</i></h4>
<span style="color: red;"><span style="font-size: large;">✘</span></span> FAIL: Mandatory<br />
<br />
The rules of <i>The Game</i> are as follows:<br />
1) Everybody is playing <i>The Game</i>.<br />
2) You lose <i>The Game</i> when you think about <i>The Game</i>.<br />
<br />
I always found it infuriating that people insisted that "everybody is playing" just because it's in the rules, as if the simple act of inventing the rules made them true. At any rate, according to my definition, either <i>The Game</i> is incorrectly named, or not everybody is playing. I'd be more than happy to remove Rule 1 anyway, since as an exploration of what does or does not constitute a game, it works equally well if you have to opt-in. I'm certainly not playing <i>The Game</i>.<br />
<br />
<h4>
Mathematical Games<i> </i>(eg: <i>Conway's Game of Life</i>)<i><br /></i></h4>
<span style="color: lime;"><span style="font-size: large;">✔</span></span> PASS<br />
<br />
At first I thought this would fail because it's passive, but then I realised that the activity part of the game is in the setup.<br />
<br />
<div>
<h4>
Exploration-Based Digital Interactive Experiences (eg: <i>Dear Esther</i>, <i>The Stanley Parable</i>)</h4>
<span style="color: lime;"><span style="font-size: large;">✔</span></span> PASS<br />
<br />
There have been a lot of people complaining that these titles "aren't really games". Most of the arguments center around the lack of challenge and the lack of real agency. It
doesn't matter that there's no challenge or win-state. It doesn't even
matter that you can't affect the outcome. That's not in the
definition. The thing that separates this from a roller-coaster is that
the rules governing it are completely arbitrary. Can your avatar fly?
Press buttons? Walk through walls? Move at all? It's all arbitrary. Therefore: game.<br />
<br />
<h4>
So That's What This was All About!</h4>
<br />
No, I didn't come up with this definition solely in response to the "Is <i>Dear Esther/The Stanley Parable</i> a game?" debate, but it did inspire me to write down my thoughts. I didn't engineer my definition to arrive at this point, but I like that these titles pass my definition, because they intuitively feel like games to me.<br />
<br />
You may also want to know whether I liked them. I found them both to be thought-provoking, and <i>The Stanley Parable</i> in particular was hilarious and awesome. Yes, I liked them both. I also find it interesting that most of these interactive experience style games that focus on storytelling through exploration have so far been made in the Source Engine; the same engine where many of Valve's games epitomised this technique. Just an observation.</div>
Excrubulenthttp://www.blogger.com/profile/10854664566763570671noreply@blogger.com0tag:blogger.com,1999:blog-1440033988469492871.post-1366315002828825152013-04-23T18:59:00.000-07:002018-06-07T22:38:25.625-07:00Self-Medication<span style="font-family: inherit;">Update 8/6.2018: This post is not at all accurate. <a href="https://codexadeptusanalogous.blogspot.com/2018/06/im-not-dead-i-feel-happy.html" target="_blank">See this post for what I think is actually going on</a>.</span><br />
<br />
<span style="font-family: inherit;">Let me be upfront: I am totally <i>tweaking </i>right now. Like, on drugs.</span><br />
<span style="font-family: inherit;"><br /></span>
<span style="font-family: inherit;">I was diagnosed with ADD quite a few years ago, although I was already out of high-school and halfway through an unsuccessful attempt at an engineering degree when it happened. It didn't do me any good at the time, though, because I didn't go through any effective treatment. There was neurofeedback therapy, which was not offered to adults at the place I went to, and medication, which I was offered at the drop of a hat on my first appointment with a psychiatrist without a whole lot of discussion, explanation or qualification. I said no. Then I tried an unproven, ineffective treatment, then forgot about the whole thing, because ADD. </span><br />
<br />
<a name='more'></a><span style="font-family: inherit;">Anyway, here I am years later, at 29, and I'm on my third day trialing Ritalin. I reached a point where I decided that, no matter how scary it may be to dose myself with a mind-altering substance, the alternative - continuing to beat my brains out against the Cliffs of Achievement in spite of mounting evidence that it was futile - was a whole lot scarier. The difference is really quite astounding. I've written a quick list of things that I should totally do now that my brain works:</span><br />
<br />
<ul>
<li><span style="font-family: inherit;">Write a bunch of blog posts about WHATFACKINGEVAR BECAUSE I CAN<br /> </span></li>
<li><span style="font-family: inherit;">Make some BLEEPADURNINGMONIES</span></li>
</ul>
<div>
<ul>
<li><span style="font-family: inherit;">learn a bunch of new stuff REALLY FAST</span></li>
</ul>
<ul><ul>
<li><span style="font-family: inherit;">GEETAR</span></li>
</ul>
</ul>
<ul><ul>
<li><span style="font-family: inherit;">RUSHIN</span></li>
</ul>
</ul>
<ul><ul>
<li><span style="font-family: inherit;">PERKUR</span></li>
</ul>
</ul>
<ul><ul>
<li><span style="font-family: inherit;">DRINKIN</span></li>
</ul>
</ul>
<ul><ul>
<li><span style="font-family: inherit;">GOTOSTACKEXCHANGELEEEEEEERN</span></li>
</ul>
</ul>
<ul>
<li><span style="font-family: inherit;">Get in touch with people I miss</span></li>
</ul>
<ul><ul>
<li><span style="font-family: inherit;">realise that I actually do miss people sometimes</span></li>
</ul>
</ul>
<ul><ul>
<li><span style="font-family: inherit;">Spend more quality time with the missus</span></li>
</ul>
</ul>
<ul>
<li><span style="font-family: inherit;">Code for FUN</span></li>
</ul>
<ul><ul>
<li><span style="font-family: inherit;">Prime number stuff, and that website that I forget what it is (oh yeah, Euler Project)</span></li>
</ul>
</ul>
<ul><ul>
<li><span style="font-family: inherit;">Make a sudoku puzzle game, and then a sudoku solver</span></li>
</ul>
</ul>
<ul><ul><ul>
<li><span style="font-family: inherit;">Make the sudoku solver more intelligent, harder, better, faster, stronger</span></li>
</ul>
</ul>
</ul>
<ul><ul><ul><ul>
<li><span style="font-family: inherit;">WHAT DOES THAT EVEN MEAN </span></li>
</ul>
</ul>
</ul>
</ul>
<span style="font-family: inherit;"><a href="https://williamfiesterman.blogspot.com.au/2011/08/screaming-red-man-01.html">
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://i.imgur.com/SN6ftA3.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="https://i.imgur.com/SN6ftA3.jpg"></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Did I mention I'm totally tweaking right now?</td></tr>
</tbody></table>
</a></span>
</div>
<div>
<span style="font-family: inherit;">So first of all, the mind-altering substance. I feel like I've responded pretty well to the drugs, because I can <i>feel</i> the difference. Thoughts are flowing a lot more easily, and they don't slip away before I can act on them. More noticeable is that the <i>anxiety</i> of feeling like the thought will slip away is gone, because I feel like I can call up the thought I want <i>when I want it</i>. I don't have to wait for happenstance or compulsion to bring the thoughts back.</span></div>
<div>
<span style="font-family: inherit;"><br /></span></div>
<div>
<span style="font-family: inherit;">Hence the DRINKIN thing. It seems like a weird thing to want to learn about. I mean, you just have a drink. Maybe you do some research into how different drinks are best consumed, and... drink some. Done, right? Except that I always worried that I would somehow be susceptible to getting addicted. I mean, what if alcohol somehow managed to soothe the pain of not being able to think properly? Would I accept that over actually trying to fix the problem? I don't feel like that's going to be a problem anymore, and I want to learn about what's out there and what I like.</span></div>
<div>
<span style="font-family: inherit;"><br /></span></div>
<div>
<span style="font-family: inherit;">In fact, when I'm on my medication, I feel like I do when I'm in the car, and I've got music playing. Those two things together seem to give my brain the stimulation it needs to rise up out of the mire and actually work, and the thoughts just start to flow. I've been reading <i>Driven to Distraction</i>, which is all about adult ADD, and a lot of people who have it report being able to do their best thinking in the car.</span></div>
<div>
<span style="font-family: inherit;"><br /></span>
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://4.bp.blogspot.com/_XMONFQXYfCo/TJLHJ1NAu9I/AAAAAAAAAak/cHheNVTuc-U/s1600/Screaming-Driver-794.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="https://4.bp.blogspot.com/_XMONFQXYfCo/TJLHJ1NAu9I/AAAAAAAAAak/cHheNVTuc-U/s1600/Screaming-Driver-794.jpg" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">IT CALMS ME DOWN</td></tr>
</tbody></table>
<span style="font-family: inherit;"><br /></span></div>
<div>
<span style="font-family: inherit;">So self-medication, as I've known for a while, is essentially the reason I play so many games. Unlike a lot of others, I don't just get in the car and drive, I play computer games. I was talking to a friend about this a few months ago, and she asked, "But is it really medication, or is it just an escape?" Well, I guess that depends. If the thing you're medicating is the inability to get things done, then yeah, it's not a very effective method, unless the thing you need done is <i>gaming</i>, which it seldom really is. There are jobs where gaming is what you need to do, but they're not actually any fun, <a href="http://trenchescomic.com/">according to reports</a>.</span></div>
<div>
<span style="font-family: inherit;"><br /></span></div>
<div>
<span style="font-family: inherit;">But if the purpose of the medication is simply to get the fog to clear, then games are excellent for someone with ADD. Unfortunately they also prevent you from concurrently doing the things you might need to be doing, but that's just a side-effect. The primary effect is still working. So what's the purpose of medicating the lack of concentration if you can't actually <i>use</i> the concentration on anything?</span></div>
<div>
<span style="font-family: inherit;"><br /></span></div>
<div>
<span style="font-family: inherit;">The thing is, it might be only indirectly visible from the outside, but from the inside, not being able to hang onto your thoughts is <i>maddening</i>. Given the choice between trying to get things done while flailing around inside a haze hoping you fall onto a train of thought that might take you somewhere useful before you fall off, or not trying to do anything but at least having <i>control over your own mind</i>, I'll take option two any day of the week.</span></div>
<div>
<span style="font-family: inherit;"><br /></span></div>
<div>
<span style="font-family: inherit;">Which is another reason why addiction was a worrisome prospect for me. If I'd discovered speed or cocaine, which apparently have similar effects to Ritalin, and are closely chemically related, and they had this effect on me? Would I have been able to give them up? Would I have wanted to? I don't know, but I'm glad I've found a supplier who operates under a modicum of legal accountability.</span></div>
<div>
</div>
<div>
</div>
<div>
</div>
<div>
</div>
Excrubulenthttp://www.blogger.com/profile/10854664566763570671noreply@blogger.com0tag:blogger.com,1999:blog-1440033988469492871.post-28170157664726595842012-08-01T07:27:00.000-07:002013-11-25T01:12:53.276-08:00Things Wot I Did With ComputersSo I've put my portfolio online, it's available at this place:<br />
<br />
<a href="http://centreforexcrubulence.blogspot.com.au/" target="_blank">centreforexcrubulence.blogspot.com.au</a><br />
<br />
Prospective admirers may now witness my programming aptitude. There are interactive demos and everything!Excrubulenthttp://www.blogger.com/profile/10854664566763570671noreply@blogger.com0tag:blogger.com,1999:blog-1440033988469492871.post-1783972495791135122012-01-10T19:42:00.000-08:002012-01-11T16:41:09.931-08:00How to simply send simple instructions back to the User Interface thread in C#. SIMPLY.After a few insane months where I had no time to give to this blog, I'm back with my first ever how-to. All of the non-programming readers, which to date has also been all of the readers, may decide to switch off at this point. Go ahead; I can't stop you, but let me preface the tutorial with a few reader-friendly notes. If you just came here for the answer, there are helpful headings that you can scroll down for.<br />
<a name='more'></a><br />
<br />
<b><span style="font-size: large;">First, some Ranting</span></b><br />
There are a lot of how-tos and posts on the internet on this subject, and it's little wonder, because almost none of them provide the pants-first-then-shoes-simple answer in a way that remotely approaches readability. The answerers either assume that you're "one of them" and give the answer in jargon that they refuse to define, or they assume that you know nothing at all and so give you half an hour or more of reading material to get you up to speed with everything you could conceivably require on the subject, within which the answer you actually want is buried within layers and layers of context that universally defy the tried-and-true technique of scanning the crap you don't need for the one piece of information you do, just like this sentence.<br />
<br />
The reasoning that I've seen for this behaviour is simple: Either you're one of us, or you're not. Either you already know the jargon and just need a fellow code-ninja to give you a hint, or you don't understand the jargon, in which case you need to LEARN SOMETHING, you ignorant buffoon. Giving YOU the answer in plain language is like giving a katana to a three-year-old: sure, it's possible to put that kind of power into your hands, but I'm not irresponsible enough to do it.<br />
<br />
Poppycock.<br />
<br />
There is a simple way to do this task, because it's a very common task. The people who designed the UI (user interface) framework that you're trying to program with know that it's a common task, and they've made it really easy by not requiring you to know how to do it from scratch.<br />
<br />
<br />
<b><span style="font-size: x-large;">Here's the answer if you understand the question and are just looking for the magic words to use in C#</span><span style="font-size: large;"> </span></b><br />
<br />
<b><span style="font-size: large;">Using GTK# Windows</span></b><br />
It might be the same using GTK+, but I haven't tried. The benefit of using GTK is that it should work on Windows, MacOS and Linux.<br />
<br />
<span style="font-family: "Courier New",Courier,monospace;">using Gtk;</span><br />
<br />
<span style="font-family: "Courier New",Courier,monospace;">/*...*/</span><br />
<br />
<span style="font-family: "Courier New",Courier,monospace;">Gtk.Application.Invoke(delegate</span><br />
<span style="font-family: "Courier New",Courier,monospace;">{</span><br />
<span style="font-family: "Courier New",Courier,monospace;"> /*code for the UI thread*/</span><span style="font-family: "Courier New",Courier,monospace;"></span><br />
<span style="font-family: "Courier New",Courier,monospace;">});</span><br />
<br />
<br />
<b><span style="font-size: large;">Using Windows Forms</span></b><br />
This is the most complex example, because Windows Forms are picky and need the delegate to be of System.Delegate type. I don't know why.<br />
<br />
<span style="font-family: "Courier New",Courier,monospace;">using System.Windows.Forms;</span><br />
<br />
<span style="font-family: "Courier New",Courier,monospace;">/*...*/</span><br />
<br />
<span style="font-family: "Courier New",Courier,monospace;">public delegate void myDelegate();</span><br />
<span style="font-family: "Courier New",Courier,monospace;">public delegate void myDelegateWithParameters(int x);</span><br />
<br />
<span style="font-family: "Courier New",Courier,monospace;">public void FunctionA()</span><br />
<span style="font-family: "Courier New",Courier,monospace;">{</span><br />
<span style="font-family: "Courier New",Courier,monospace;"> this.Invoke(new myDelegate(this.FunctionX));</span><br />
<br />
<span style="font-family: "Courier New",Courier,monospace;"> int a = 0;</span><br />
<span style="font-family: "Courier New",Courier,monospace;"> this.Invoke(new myDelegateWithParameters(this.FunctionY),</span><br />
<span style="font-family: "Courier New",Courier,monospace;"> new object[] { a });</span><br />
<span style="font-family: "Courier New",Courier,monospace;">}</span><br />
<br />
<span style="font-family: "Courier New",Courier,monospace;">public void FunctionX()</span><br />
<span style="font-family: "Courier New",Courier,monospace;">{</span><br />
<span style="font-family: "Courier New",Courier,monospace;"> /*code for the UI thread*/</span><br />
<span style="font-family: "Courier New",Courier,monospace;">}</span><br />
<br />
<span style="font-family: "Courier New",Courier,monospace;">public void FunctionY(int x)</span><br />
<span style="font-family: "Courier New",Courier,monospace;">{</span><br />
<span style="font-family: "Courier New",Courier,monospace;"> /*code for the UI thread*/</span><span style="font-family: "Courier New",Courier,monospace;"></span><br />
<span style="font-family: "Courier New",Courier,monospace;">}</span><br />
<br />
<br />
<b><span style="font-size: large;">Using Android Activities (with Mono for Android)</span></b><br />
<span style="font-family: "Courier New",Courier,monospace;">using Android.App</span><br />
<br />
<span style="font-family: "Courier New",Courier,monospace;">/*...*/</span><br />
<br />
<span style="font-family: "Courier New",Courier,monospace;">this.RunOnUiThread(delegate</span><br />
<span style="font-family: "Courier New",Courier,monospace;">{</span><br />
<span style="font-family: "Courier New",Courier,monospace;"> /*code for the UI thread*/</span><br />
<span style="font-family: "Courier New",Courier,monospace;">});</span><br />
<br />
<br />
<b><span style="font-size: x-large;">Further Questions</span></b><br />
Maybe you're a coding newbie for whom that was a little dense. Here are some explanations for you, <span style="font-size: small;">in approximate order of importance.</span><br />
<br />
<br />
<b><span style="font-size: large;">What is "this"?</span></b><br />
You may have noticed in the code above that I used "this.something" in a few places. "this" refers to where we currently are. If you type in "this." in your development environment, you should get a list of everything that's possible in the current context. It's a very, very useful feature.<br />
<br />
After I found the Windows Forms example, I saw that "this.Invoke" was the key magical phrase that would fix everything. So in my Android UI code I typed in "this." and then scrolled down the list looking for something likely. "RunOnUiThread" was a pretty good bet, so I tried it.<br />
<br />
Guess what?<br />
<br />
IT DID EVERYTHING I NEEDED WITH ABSOLUTELY NO FUSS, ALL WITHOUT LECTURING ME ON HOW TO INITIALISE A THREADPOOL OR PROPERLY MAINTAIN A TASK QUEUE.<br />
<br />
For this I was grateful, and a little upset that I'd spent two days googling for the answer without coming across it. Not ONCE. The lesson I learned was that if you think there's a key phrase that will be useful but you don't know what it is, try "this." and see what pops up.<br />
<br />
In all of the examples, "this." can be removed and the code will still work. I'm leaving it in there, though, so you can see how the code was made. I for one wish to thank Guest_frankg* for unnecessarily leaving "this." in his own code snippet on a <a href="http://www.dreamincode.net/forums/topic/35616-cross-thread-communication-in-c%23/">three-year-old forum post</a> so I could follow his example.<br />
<br />
<br />
<b><span style="font-size: large;">Why are there delegates everywhere?</span></b><br />
A delegate is something that acts like both a function and a variable. That means you can take a delegate, which contains code like a function, and you can pass it to another function as if it were a variable. If you're familiar with pointers to functions or callback routines, it's helpful to know that both of those things are essentially the same as delegates, otherwise just ignore this sentence.<br />
<br />
In the Windows example, I created a delegate, gave it a name, and then pointed it towards an existing function.<br />
<br />
In the Android and GTK# examples, I made a delegate and defined what it stood for right there on the spot, so I never needed to give it a name. That's called an Anonymous Method. Let's look at it again.<br />
<br />
<span style="font-family: "Courier New",Courier,monospace;">this.RunOnUiThread(delegate</span><br />
<span style="font-family: "Courier New",Courier,monospace;">{</span><br />
<span style="font-family: "Courier New",Courier,monospace;"> /*code for the UI thread*/</span><br />
<span style="font-family: "Courier New",Courier,monospace;">}); </span><br />
<div style="font-family: inherit;">
<br />
It looks convoluted with all the brackets and syntax everywhere, but it's actually fairly simple. The delegate is a function, so it has braces that contain code. But it's also behaving like a variable, so it sits inside the parentheses of the RunOnUiThread function. So there's an example of a delegate behaving like a function and a variable at the same time.<br />
<br />
<br />
<b><span style="font-size: large;">Why would I want to send code back to the User Interface thread?</span></b></div>
Threads
allow programs to run code in parallel. A common use of threads is to
allow programs to run time-consuming code in the background while the
user interface remains available and responsive to the user. The
background thread often needs to update the user interface on its
progress. It's not allowed to update the user interface directly,
because it will conflict with the main UI thread, and that will cause
the program to hang and/or crash. Either way, it's bad.<br />
<br />
So
methods like Invoke(delegate) and RunOnUiThread(delegate) exist to
automatically manage the UI thread for you. When you give them a
delegate, they will place that delegate on a queue that the main UI
thread will get around to when it's good and ready. Because the UI
thread's entire existence consists of waiting around for things to
respond to, it's pretty good at handling these requests in a timely
manner.<br />
<br />
<br />
<b><span style="font-size: large;">Huzzah! What could possibly go wrong?</span></b><br />
Quite a lot, actually. As in the rest of life, with great power comes great responsibility, and these are fairly powerful commands. Using these functions means you're messing about with multithreaded applications, and they're a different beast to single-threaded applications.<br />
<br />
You should research multithreading and events & delegates. Events & delegates are fairly straightforward to use once you understand them, but with multithreading there are a lot of dos and don'ts, and unless you start with some idea of what's going on, you'll waste a lot of time trying to figure it out.<br />
<br />
If you know enough about coding to get yourself into trouble, then
hopefully this post is enough to help you make the code that you
want to make.<br />
<br />
If you're a veteran
coder who sees a problem with anything in this post, then I'm sure you
don't need me to encourage you to leave a comment about it.<br />
<br />
<br />
<b><span style="font-size: x-large;">If you're scared of programming you can start reading again now.</span></b><br />
However, I do have a bit more ranting to do on the subject of programming tutorials. One of the reasons that they defy attempts to scan them for relevant details is that they are written in much the same way programs are written.<br />
<br />
I've always thought that good programmers would also be good communicators, because they're used to declaring everything and leaving no room for assumptions. Computers need that, because they won't infer anything. Good coders know precisely what they have and have not said.<br />
<br />
However, programmers are also used to having perfect attention from their audience. Computers read absolutely every character that's written and they don't forget any of it. A computer has no concept of how one thing that's said can be more or less relevant than anything else. Headings are not useful to them.<br />
<br />
A person, of course, is different. They will tune out when you're boring them, and they'll forget about the little details you're needing them to remember. They need headings and they don't need you to explain every single detail. They need you to have a sense of perspective when you're writing and not waste their time with information that isn't important.<br />
<br />
And if all of the information is important? Break it down. That's why you're the teacher. They don't know how to break it down yet, which is why they're reading your tutorial. Too many tutorials that I've seen are just walls of text and code without any identifiable entry-points for the average reader.<br />
<br />
If you're going to write tutorials for coding, you need to know how to code, obviously. What appears to be less obvious, though, is that you also need to know how to communicate with people, and that's a very different skill. <br />
<br />
<span style="font-size: x-large;"><span style="font-size: small;"> </span></span><br />
<span style="font-family: "Courier New",Courier,monospace;"> </span>Excrubulenthttp://www.blogger.com/profile/10854664566763570671noreply@blogger.com2tag:blogger.com,1999:blog-1440033988469492871.post-16707106571990924342011-05-27T02:54:00.000-07:002011-06-03T20:12:18.709-07:00Let the Stupid Rats Die. For Science. You Monster.Clear-headedness under pressure. It's a skill that should come in handy if I ever find myself in a life-or-death situation where I need to keep my wits about me to survive. Am I driving a FWD, RWD or 4WD car? That will be key to knowing how to regain control of the vehicle and not slide off the cliff into the canyon below. Will water extinguish this fire, or cause an explosion? Should I put my hands out to stop my fall, attempt to roll with it or take the full force of the fall on my stomach so as protect my head?<br />
<br />
That last one is a real situation I found myself in where I did indeed take the fall on my stomach. With a metal bar acting as the delivery system. I couldn't roll with the fall and putting my hands out would have catapulted me off a ledge and onto my head. The stomach option was very painful, but I take pride in the notion that it was actually the smart choice. The details mattered. In the best games, the details matter, because then my decisions have meaning, and I have a chance to develop this crucial survival trait that I may need some day.<br />
<a name='more'></a><br />
<b><span style="font-size: large;">Portal 2 is Well-Designed</span></b> <br />
I've played through Portal 2's single-player campaign, and the co-operative campaign with my wife, and I've just played through the single-player again with the developer's commentary enabled. The game's developers, Valve, are big into testing-based design. That means that they get a bunch of playtesters to go through their game and they observe where the testers get stuck, what's fun for them, what's frustrating, and what just goes completely ignored.<br />
<br />
It's a great tool in game design. I remember wandering around old Doom levels for ages just trying to find the right key-card or door. It was that sort of thing that made me give up the game after a while. Test-based design, when utilised well, does wonders to correct problems like this. Valve in particular is pretty good at pointing you in the right direction so you don't get lost in levels that are essentially linear. Of course, this is a little too frequently expressed in the form of an arrow painted on the wall, literally pointing you in the right direction. Baby steps. At least they're addressing the issue.<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://images2.wikia.nocookie.net/__cb20110207014325/apscience/images/2/24/150px-Overlay_scrawlings_arrow01.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="http://images2.wikia.nocookie.net/__cb20110207014325/apscience/images/2/24/150px-Overlay_scrawlings_arrow01.png" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Just like this one.</td></tr>
</tbody></table><br />
Portal 2 has been tested and honed to a tee, and the "drawing arrows on walls" problem is ameliorated somewhat by the fact that the entire setting places the player in a metaphor as a rat in a maze, with an omnipotent, indifferent scientist observing and manipulating their every move. The controlling AI, GLaDOS, can reconfigure the entire facility to reroute you to where she wants you to be, so the sense of being railroaded into a particular course is perfectly sensible, and not at all immersion-breaking. <br />
<br />
<b><span style="font-size: large;">Reconfigure the Phlebotinum Field!</span></b><br />
Anyway, this all brings me to the developer's comment that inspired this post (don't worry, no spoilers):<br />
<blockquote><i>In this excursion funnel ride, playtesters would often end up shooting the wrong Portal at the critical moment and killing themselves. This ruined the moment for players who often didn't quite understand why their excursion funnel hadn't been redirected. As a solution, we now detect when the player places the wrong portal in hopes of saving themselves. We help them out by moving their other portal under the excursion funnel source. This effectively makes this section foolproof by allowing the player to shoot either portal to save themselves.</i></blockquote>You don't really need to know what an excursion funnel is. Replace every instance of the term with "[<a href="http://www.google.com.au/search?q=phlebotinum">phlebotinum</a>]" and the quote can still be understood enough to get the gist. Basically, [phlebotinum] is needed to succeed. The player has control of two portals and to correctly succeed, they must use the correct portal to manipulate the [phlebotinum]. If they use the incorrect portal the [phlebotinum] disappears and they fail. Incorrectly.<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://images3.wikia.nocookie.net/__cb20100630211625/half-life/en/images/1/13/Funnel_inside.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="225" src="http://images3.wikia.nocookie.net/__cb20100630211625/half-life/en/images/1/13/Funnel_inside.jpg" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Okay, fine, this is an excursion funnel.</td></tr>
</tbody></table><br />
The thing is, the [phlebotinum] can be anything. It can be a "hard-light bridge", paint, the player, a box, even the player's point-of-view. It's often a slightly more abstract concept like velocity or rotation. Usually several of these must be manipulated at once. This is the essence of the game - manipulate thing with portal placement. The excursion funnel is just the newest addition to the roster of things that can be manipulated.<br />
<br />
Throughout the entire game the player is trained to solve puzzles by placing portals. One lesson they should have learned by this point, very near the end of the game, is that if they shoot the wrong portal at the wrong moment it can ruin their day. I developed a habit of making a quick mental note every time I placed a portal: "Orange portal is at [phlebotinum] source; therefore blue portal delivers [phlebotinum] to destination." "Orange portal has been placed at [phlebotinum] destination; therefore blue portal must be placed at [phlebotinum] source." "Blue portal is at point A; orange portal is at [phlebotinum] source; [phlebotinum] is now at point A; move orange portal to [phlebotinum] destination." It can get quite complicated if you're not on the ball.<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://www.wired.com/images/article/magazine/1510/pl_games1_630.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="http://www.wired.com/images/article/magazine/1510/pl_games1_630.jpg" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">I was going to link to a video, but this is more succinct.</td></tr>
</tbody></table><b><span style="font-size: large;">It was All a Dream</span> </b><br />
The situation that the developer is describing is a tense, time-pressured escape where any mistake means death. The antagonist is yelling at you, distracting you with hilarious one-liners and trying to mash you to death with crusher panels. If ever there was a moment that this skill I've developed should pay off it's right now. So I remember that I've got the orange portal at the [phlebotinum]'s renewable source, and wherever I need to use the [phlebotinum] I just place a blue portal. I can't get back to the source anymore, so I keep my finger off the orange portal button. If that orange portal moves, I lose the [phlebotinum] and I'm dead. With this strategy, the solution is completely turnkey. Place blue for [phlebotinum], repeat as needed. If I remember my rule, I'll succeed. This is a detail that matters.<br />
<br />
So I got through that section myself without any problems (surprise surprise), and I thought it was because I'd done it right. Now the developers are telling me that they rigged it. There was only one place to put a portal at that moment, and it didn't matter which one. So in fact the only thing I could've done wrong was <i>nothing at all</i>. I have no idea if I got it right the first time I played, so the intrinsic reinforcement of success that test gave me was in fact false. They didn't want to ruin the flow of the moment, so they removed all meaning from it instead.<br />
<br />
Now, a friend of mine who is very experienced at running <a href="http://en.wikipedia.org/wiki/Role-playing_game_%28pen_and_paper%29">tabletop role-playing games</a> says that he does that sort of thing all the time, and the developers using this trick isn't really the problem. Their mistake was telling me about it. The thing is, there's a difference between using sleight-of-hand in a computer game and using it in a live situation. There's a rule among magicians that you should never repeat a trick for an audience, because they'll get a chance to analyse the trick and figure it out, which will ruin it for both of you. In a computer game, the audience has infinite do-overs. Even if the devs hadn't revealed that trick, it would've been noticed by someone at some point. Also, you don't get do-overs in a live situation, so you need the tricks. A ruined moment is ruined forever; it can never be fixed.<br />
<br />
<b><span style="font-size: small;"><span style="font-size: large;">So What's the Problem?</span> </span></b><br />
<span style="font-size: small;">I'll tell you what the problem is: I'm playing a puzzle game.</span> If a moment in the game is dressed up and presented even as a trivial puzzle, I expect it to be an actual puzzle, with some kind of potential for failure. When <a href="http://www.escapistmagazine.com/videos/view/zero-punctuation/3153-Portal-2">Yahtzee reviewed Portal 2</a>, he bemoaned the fact that instead of being a puzzle game with a really good story framework, it was instead an interactive story with some puzzles thrown in because, well, it's supposed to be a puzzle game.<br />
<br />
What I've described here is only a single example of the developers placing story and accessibility above the actual puzzles in this game. They've done a lot of things right, like removing time or dexterity dependent puzzles from the game, thus allowing the main story to be experienced by a broader spectrum of players. That's a good thing, because it's certainly a fun ride, one that's helped my wife to get into the first-person genre a bit more, for which I am eternally grateful.<br />
<br />
The thing is, this is near the end of the game. I can't imagine a player who would be critically discouraged by a minor setback at this point, so audience members wouldn't be lost here. In the developer's words, they just didn't want to "ruin the moment". Okay, sure, it's a good moment, but it's only ruined for people who made a mistake, and since there's a 50-50 chance of getting it right even if you've left your brain at the door, those people are almost certainly in the minority.<br />
<br />
<b><span style="font-size: large;">I Do Not Understand How They Could Not Understand</span> </b><br />
But here's the real infuriator for me - apparently the moment was doubly ruined for players who "often didn't quite understand why their [phlebotinum] hadn't been redirected." Seriously? They didn't get it? <i>Often?</i><i> </i>They've been playing this game for 6 or 7 hours <i>if they're good at it.</i> I can guarantee you that if they're still confused about why they failed, it took them a lot longer than that to get here, and they should be made to relive their stupid, pointless death over and over until they do understand.<br />
<br />
Don't get me wrong here; I'm not saying that stupid people should be punished. Far from it. If you've made it this far, you're obviously not stupid enough for this lesson to be beyond you. If you've made it this far but somehow managed to avoid such a fundamental piece of understanding, then you are clearly complicit in your own ignorance. This is supposed to be a puzzle game, and while it is inevitably beyond the infirm of mind, one of its primary functions should be to cure the lazy of mind.<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="http://i238.photobucket.com/albums/ff278/l2yno/StupidStupidRatCreatures.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://i238.photobucket.com/albums/ff278/l2yno/StupidStupidRatCreatures.jpg" /></a></div><br />
This is the reason that I believe that test-based design can't solve all our gaming ills. When I heard that quote, I realised why the game was so easy. It seems that Valve really lost perspective in their pursuit of a smooth and enjoyable experience for all their test subjects. If the worst players are given veto power over anything that's too difficult for them, then the whole game will be brought down to their level. Looking back over my time with Portal 2 I realise that it wasn't satisfying at all, because I had learned very little.<br />
<br />
One of GLaDOS's many foibles is her incessant compulsion to test, and test, and test. Apparently she's doing science, but it's never really explained what kind of science she's doing. If they're just testing the portal device, they don't really need to put humans through a deadly gauntlet. The tests seem more suited to psychological research, but even then it's never really revealed what it's all about. It's kind of a subtle running joke throughout the whole story. I find it ironic, then, that Valve has failed to learn the moral of their own story by literally testing to a fault. If there's one thing that we can learn from Portal 2, it's that GLaDOS would make a poor game designer.<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://www.vivaboo.com/wp-content/uploads/2010/08/Bloukrans-Bridge-South-Africa-World%E2%80%99s-Highest-Bungy-Jump-1.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="300" src="http://www.vivaboo.com/wp-content/uploads/2010/08/Bloukrans-Bridge-South-Africa-World%E2%80%99s-Highest-Bungy-Jump-1.jpg" width="400" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">This is a jump.<br />
Because I needed something to separate the article from the epilogue.</td></tr>
</tbody></table><br />
<span style="font-size: x-small;"><b><span style="font-size: small;">Post Scripting</span></b></span><br />
<span style="font-size: x-small;">Hopefully when Valve releases their new DLC for the game in the middle of the year there'll be some stuff in there for the hardcore puzzlers. But if not, I'm okay with that. If there's one thing that putting my ideas out on the internet for all to see has done for me in this case is to make it clear to me what I want: I want to make their game better. It's for people like me that Valve helped pioneer the release of developer tools to their gaming audience. I'm gonna use the free Portal 2 Authoring Tools to make hard puzzles, and I'm gonna try to make them right.</span><br />
<br />
<span style="font-size: x-small;">The solutions will all be applications of well-known Portal mechanics in clever and complex ways, requiring some real head-scratching to pull off. One thing I'm not going to do is require (spoiler warning) <a href="http://www.youtube.com/watch?v=UjApKHyEGTc">silly</a>, <a href="http://www.youtube.com/watch?v=oNH0s_Dv38Q">elaborate</a>, <a href="http://www.youtube.com/watch?v=-h8x40fbpd0&NR">esoteric</a>, <a href="http://www.youtube.com/watch?v=CoBY81_XK-E">glitch-exploity</a>, <a href="http://www.youtube.com/watch?v=W1U5RUVENNE">waste-of-damn-time</a> tricks to make it through the levels, like some user-made maps.</span><br />
<br />
<span style="font-size: x-small;">There's a <a href="http://contest.thinkingwithportals.com/">map contest</a> being held at the moment, and I'm doing a level design class at college in the trimester after this one. Maybe I can get credit for this.</span><br />
<br />
<span style="font-size: x-small;"><span style="font-size: small;"><b>Hang on a Second...</b></span></span><br />
<span style="font-size: x-small;">I've just had another thought. The physics in first-person games have been developed around games in which navigating the environment was secondary to the challenge at hand. In fact, if you missed a ledge while attempting to defeat the invading horde of evil things then it was a cheap death, and it detracted from the game. So a bunch of helper physics were written into early FPS games to reduce this problem. The most obvious one allows the player to alter their trajectory mid-jump. Obviously this is absurd, but you can see why they did it. Unfortunately, it's exactly that kind of physics that has made it into the Portal franchise without a whole lot of modification or even thought, and it's allowed a lot of cheap tricks to bypass the real puzzles at hand. You could argue that these tricks require a lot more skill than the original puzzle, and in fact they wouldn't occur to you the first time you tried the game, but I wonder if the same physics would've been implemented if they were made from the ground-up for a physics-puzzler like Portal. My guess is not. </span>Excrubulenthttp://www.blogger.com/profile/10854664566763570671noreply@blogger.com16tag:blogger.com,1999:blog-1440033988469492871.post-70077414872312449342011-04-01T04:46:00.000-07:002011-04-01T04:55:10.349-07:00A Narrow Window 2: Narrow HarderThis is expected to be read in the context of the post immediately preceding this one: <a href="http://codexadeptusanalogous.blogspot.com/2011/03/narrow-window.html">A Narrow Window</a>.<br />
<a name='more'></a><br />
So, I'd written that post, and then, not more than a week or two later I saw NFS:Shift 2 being released on Steam. Here's an excerpt from the write-up:<br />
<span class="Apple-style-span" style="border-collapse: separate; color: black; font-family: Times; font-size: small; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"><span class="Apple-style-span" style="color: #b0aeac; font-family: Arial,Helvetica,sans-serif; font-size: 14px; line-height: 21px;"></span></span><br />
<h2 style="background-image: url(http://cdn.store.steampowered.com/public/images/v5/maincol_gradient_rule.png); background-position: 0% 100%; background-repeat: no-repeat no-repeat; color: white; font-size: 14px; font-weight: bold; height: 26px; margin-bottom: 6px; margin-left: 0px; margin-right: 0px; margin-top: 18px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">Key Features:</h2><ul style="color: #898a8c; list-style-type: square; margin-bottom: 0px; margin-left: 16px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"><li style="margin-bottom: 8px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"><b style="color: #b0aeac; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">Next Level of Immersion</b><span class="Apple-converted-space"> </span>- Experience visceral first-person racing like never before. The all-new helmet cam recreates realistic driver head movements that deliver an unparalleled sensation of speed: lean and tilt into the apex of corners, feel the impact of every scrape, bump, and crash, experience true in-cockpit vibrations, and more.</li>
<li style="margin-bottom: 8px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"><b style="color: #b0aeac; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;">Other Stuff that was Considered Less Important and Didn't Get the First Bullet Point </b><span class="Apple-converted-space"></span>- Because really, it's all about the Helmet Cam.</li>
</ul><br />
The advertising for the game says that the Helmet Cam is all-important. It's their flagship, first-bullet-point feature. I find this rather depressing, and if you don't know why, you obviously haven't read <a href="http://codexadeptusanalogous.blogspot.com/2011/03/narrow-window.html">A Narrow Window</a>. Seriously, go read it. It's really very sensitive; quite interesting and humane.<br />
<br />
Also, I don't get why they're saying that the Helmet Cam is "all-new". Do they not realise that it was also the flagship feature of the first game? Maybe they're saying that it's been completely redone so now it's all new because none of it is the same as the first game. I don't know, maybe they just didn't bother to check their facts. They are advertisers, after all.<br />
<br />
Just in case you think I'm making this up, or if you want more pretty pictures like in my last post, you can visit <a href="http://store.steampowered.com/app/47920/?snr=1_4_4__103">NFS:Shift 2's Steam page here</a>.Excrubulenthttp://www.blogger.com/profile/10854664566763570671noreply@blogger.com1tag:blogger.com,1999:blog-1440033988469492871.post-22382946304534086152011-03-15T09:17:00.000-07:002011-09-18T21:36:04.697-07:00A Narrow WindowThe medium is always a limiting factor. Otherwise it would be not so much the medium as the actual, and that's decidedly not what computer games are.<br />
<br />
I'm going to talk about the limitations of viewing the world through the narrow window that is the computer monitor<sup><i>a</i></sup>. At first it seems like this is a trait that computer games have in common with film, but film has had many decades of experience to overcome this limitation with tricks that are invalid for a game, because they rely on absolute control over the camera. These tricks have made their way to computer games in the form of cutscenes, but as games develop and mature, I think we'll see less reliance on cut & pasting from that other medium.<br />
<br />
In most computer games, control over the camera is given to the player, and that means a serious rethinking of its application. In a film, the camera is a tool for the creator, but in a game, the camera is a tool for the audience. How that tool can be used will have an enormous impact on the experience of the game.<br />
<br />
Some games allow you to move the camera independently of the player avatar, some allow you to select first or third person views, some allow you to look through security cameras, at least one that I know of uses security cameras exclusively, some use only top-down views, and some allow you to view the world from any conceivable angle. The choice of viewpoint is important enough that First Person Shooter and Third Person Shooter are two separate genres, with very different playstyles. It’s clearly a big deal.<br />
<br />
<a name='more'></a>Now, this post was actually prompted by and relates directly to my sister’s question about realism, and I chose it because it’s such a wonderfully paradoxical issue. In particular, I want to talk about driving games and the important differences between Cockpit Cam, Hood Cam and Bumper Cam. Chase Cam is another issue entirely. Don’t even get me started on Chase Cam. Actually, I should probably start with Chase Cam.<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi2WQS9yGrPEzkRqodwWSjB3PMvm_LbcZo33xatVYL8GsvReqFeq3tb3ywmQX83btew-6OH7nBhDssGGtzxV3xm3Uix44OP12ol8GcSzigRTxbsPQk12oZ8dczB1gf6ffZQtcPJ19FtAgXC/s1600/Daytona+Chase+Cam.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi2WQS9yGrPEzkRqodwWSjB3PMvm_LbcZo33xatVYL8GsvReqFeq3tb3ywmQX83btew-6OH7nBhDssGGtzxV3xm3Uix44OP12ol8GcSzigRTxbsPQk12oZ8dczB1gf6ffZQtcPJ19FtAgXC/s1600/Daytona+Chase+Cam.jpg" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Daytona USA's Chase Cam, c.1995</td></tr>
</tbody></table>
The first driving game I played that presented a choice of camera angles was Daytona USA. I was an indeterminate quantum of young at the time, and my immediate reflex was to go for the camera angle that gave me the most awareness of the space around my car. This was the Chase Cam. The narrow field of view that a monitor provides is a very claustrophobic one, so most people instinctively go for this view, but there are two main problems with it:<br />
<br />
1) Parallax error. The viewpoint is physically removed from the car and so invalidates the natural assumption that our brain makes, which is that an object that is getting larger and moving to the left or right in our vision will pass us to the left or right respectively. An object that is getting larger but otherwise staying more or less stationary is a potential danger, because it is on a collision course. Not so with the Chase Cam. An object that appears to be on a collision course will pass just behind the car, and an object that looks like it will pass in front may actually hit the car. In racing it's important to judge a car's movement precisely, so parallax can cause crucial misunderstandings. A good camera view should be somewhere on the car.<br />
<br />
2) Floaty Cam. The camera is invariably programmed to behave like an object separate from the car. It's floaty and disconnected, so there's no way of knowing exactly where the nose of the car is pointed. Combine this with the parallax problem, and the Chase Cam puts a glass ceiling on your driving performance in any game.<br />
<br />
So, what’s the most Realistic camera angle? Obviously, as the driver of the vehicle, the most Realistic is the Cockpit Cam. Obviously. The camera is in the same place as your head would be if you were Really driving the car, and more modern games have taken the next step of shifting the camera Realistically with the g-forces in the car. This is capital-r Realism. It’s also a load of capital-r cRap.<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://www.operationsports.com/images/u/media/1210893502-media.jpeg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="360" src="http://www.operationsports.com/images/u/media/1210893502-media.jpeg" width="640" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">GRID's Cockpit Cam, a typical specimen.</td></tr>
</tbody></table>
The first thing I notice in Cockpit Cam is that the useful viewing area, the car’s windscreen, fills less than half of the already limited space of my computer monitor, and that my immersion is not improved. Good money was paid for that relatively large piece of screen real-estate, and I’m not going to waste 60 or 70 percent of it on the dash board, side-columns and roof, which serve no greater function than to inform me that I am driving a car<sup><i>b</i></sup>. After buying, installing and playing a game whose sole premise is the acquisition and driving of cars, I am ready to call that information redundant.<br />
<br />
Then come the Realistic head movements. The game wants to hammer home the idea that I’m in a Real car going around Real corners. Every time I turn the wheel, the camera turns slightly towards the inside of the corner, because a Real driver would turn their head. Unfortunately, I was using the middle of the screen as my gauge of where the nose of the car was pointing, and that is now useless. Even more bloody Realistic, the camera's position will shift slightly towards the outside of corners, because a Real driver would be straining against Real g-forces. You know what else a Real driver would have? Real g-forces.<br />
<br />
A real driver can feel the car move beneath them. Every bump, vibration and slip of the tyres is conveyed through the driver’s physical connection to their car. They are literally driving by the seat of their pants. Even then, real drivers are trained to keep their head position as static as possible to keep their concept of the car’s physical position well-calibrated with their line-of-sight. They also have the orientation of the seat and steering wheel as concrete information on the direction the car is pointing. Turning their real head doesn't upset this because they have something called proprioception, which basically means that after a lifetime of practice they know how far their head is turning.<br />
<br />
I may have force-feedback from my steering wheel, but it's nothing like feeling real g-forces. I have to accurately gauge the movement of the car by visual information alone, without the benefit of peripheral vision, and the game designer wants to shift my eyes around every time the car does any manoeuvring at all. This is not helpful.<br />
<br />
It's made worse by games like GRID that want to give you extra reward for using the more Realistic Cockpit Cam to the exclusion of all others, praising you for your superior skills. Thankfully, I found that this reward wasn't so much that missing out on it hampered my progress significantly. <br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://i155.photobucket.com/albums/s300/vsubaru/gt5hoodcam.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="302" src="http://i155.photobucket.com/albums/s300/vsubaru/gt5hoodcam.jpg" width="640" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">GT5 in Hood Cam mode.</td></tr>
</tbody></table>
The Hood Cam and Bumper Cam, on the other hand, have the handy fiction of representing actual cameras bolted to the car, so they tend to be locked in place. When I discovered that these views had this property, I was married to them. Every time the rear wheels slip, or the nose shifts, or some n00b rams you, your eyes instantly know about it, and the feeling of connection to the car is palpable. The nose is always pointing to the middle of the frame, and if the car is drifting, you instinctively know at what angle. I can't tell you how useful this one feature is.<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgbwxqxgjY7mDYU_K11dXkktoFu7MWisutVrEj-PWi64zngYrxYwxgNqXpCiWJR7md_XvOMFBbmdKNGb432OEB4rhWnJSCEK_dIr9rnRcAC-ZBg2v8xejYeKpTCCYoN8lSDmfyb4po6UVfo/s1600/carmageddon1.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgbwxqxgjY7mDYU_K11dXkktoFu7MWisutVrEj-PWi64zngYrxYwxgNqXpCiWJR7md_XvOMFBbmdKNGb432OEB4rhWnJSCEK_dIr9rnRcAC-ZBg2v8xejYeKpTCCYoN8lSDmfyb4po6UVfo/s1600/carmageddon1.jpg" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Tactical switches to Chase Cam made Carmageddon a much more playable game.</td></tr>
</tbody></table>
The only time I've really deviated from this policy since was in Carmageddon, where insane flips would leave you hopelessly disoriented if you stuck to Hood Cam. Fortunately, there were only two views, Hood and Chase, and pressing C would toggle between them. I would frequently flip back and forth depending on exactly which view was the most useful in the moment. I would do it so often that the first question an onlooker would ask was always, "Is that camera switching automatically?" as opposed to the more obvious, "Why are you murdering people?" Most modern games have multiple views, so cycling between them for this effect isn't very practical. One game that I own, perhaps GRID or one of its predecessors, deserves a special mention for allowing you to restrict the cycle to only the views that you want to use. Unfortunately, this is such an esoteric and obscure feature that it's unlikely to get picked up by future games.<br />
<br />
For a long time I used the Bumper Cam, mainly because it was ultra close to the road, right in front of the steering wheels, and that gave me a good feel for what the car was doing. Also, not rendering the hood was a perceived benefit in an age where I had to wring every last polygon out of my graphics card to achieve playable frame rates. Then I realised that I would be able to see the road ahead, and especially the traffic, better, if I used the Hood Cam. A few extra feet of altitude makes a pretty big difference.<sup><i>c</i></sup><br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container"><tbody>
<tr></tr>
<tr><td style="text-align: center;"><a href="http://ps3media.ign.com/ps3/image/article/113/1137411/need-for-speed-shift-2-unleashed-20101130052338605.jpg" style="margin-left: auto; margin-right: auto;"><img border="0" height="360" src="http://ps3media.ign.com/ps3/image/article/113/1137411/need-for-speed-shift-2-unleashed-20101130052338605.jpg" width="640" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">NFS:Shift's version of the Cockpit Cam is the worst offender I have yet seen. Just... no.</td></tr>
</tbody></table>
I've heard rumblings that Need for Speed: Shift has done wonders with their "Helmet Cam", pictured above. Helmet Cam apparently has all new levels of spit and polish to make you feel like you're Really in the driver's seat, like it's all Really happening. I've read that the driver gasps just before an imminent collision, and that the view becomes distorted for a moment afterwards, just so Realistically. Yeah. Right. Is the driver's head also bolted to the hood, to provide maximum field of view and minimum sway? This I doubt. The image above suggests that the figures I mentioned regarding lost viewing area are significantly inflated in this case and... is that view tilted? Yes. Like, 15 degrees from the look of it. Good Lord, people, I'm not a cyborg, I can't compensate for this rubbish. Like many new driving games I haven't played this one, because I'm not made of money, but I'd still be willing to lay some on the line and predict that NFS:Shift's Helmet Cam will not rock my world. <br />
<br />
Hood Cam strikes the right balance, I find. The fact that the view is locked to the car, and that it provides the full field of view afforded by a computer screen, helps to compensate for the limitations imposed by the fact that I'm sitting at home in front of affordable hardware, attempting to drive a car that isn't actually real. Using Cockpit Cam is not realistic when you look at it like this - it's actually a handicap. I honestly believe that racing in the real world would be easier than racing a virtual car using Cockpit Cam, if only I could overcome this pesky mortal fear.<br />
<br />
<span style="font-size: x-small;"><i><sup>a</sup> If you're a console gamer, you could call it the TV, but that would not not invalidate my choice of terms. The TV is being used to monitor the output from what is essentially a slimmed-down and glamourized computer. It is a computer monitor in this application.<br />
<br />
<sup>b</sup> Even more was spent for a screen in the infinitely preferable 16:10 aspect ratio rather than the hideous and far less useful 16:9, which is the cheaper and more populous alternative due, I am sure, to nothing more than the diabolical economics of advertising. Not marketing mind you; advertising. I look forward to the day when 1080p is no longer an important consideration in buying a good monitor, although I'm sure advertisers will find other ways to abuse established standards. On a further side-note, if I had only a small, cheap & nasty screen to view the world through, I would be even less inclined to waste its meagre space.<br />
<br />
<sup>c</sup> The only drawback I've ever noticed from the Hood Cam, except for the lack of peripheral vision, surfaced about two nights ago while I was playing DIRT 2. The trees on the side of the road were casting intermittent shadows on my hood, and the flickering was causing a significant problem for my eyes. I fixed the problem by changing my livery to one with a black hood rather than a white one, which was the first time I'd ever found a practical use for visual customisation. Also, I noticed that as mud accumulated on the hood it changed its reflective properties to be less specular and more diffuse. I'm sure this is something that programmers and texture artists have worked hard on, and that goes unnoticed the vast majority of the time. Still, it's the sort of thing that would look really bad if it wasn't done right, so it's not wasted effort. I felt special for noticing it.</i></span>Excrubulenthttp://www.blogger.com/profile/10854664566763570671noreply@blogger.com4tag:blogger.com,1999:blog-1440033988469492871.post-26033967517241685332011-03-03T00:51:00.000-08:002011-03-15T09:31:19.192-07:00Bad RealityI was going to spend this post talking about Tetris, and the glories of the physics minutiae to be discovered therein, but then I got asked such a mind-meltingly st00pid question that I had to nip it in the bud before it became an infestation. My sister, who is so profoundly ignorant of computer gaming that she requires even the most basic and obvious elements to be spelt out ad nauseum, wants to know how realistic a computer game can be before it stops being fun.<br />
<br />
That's an interesting question, and at first my smart-ass answer was, "It's the same as in film, or books, or any other media that attempts to mimic real-world things. If you're attempting to convey an experience, how much do you change reality for the sake of improving that experience?" But then I realised that that was way too Zen and glossed over all the points that the question was capable of raising, so I decided not to mention it but instead make a genuine attempt at an answer.<br />
<br />
The question implies that realism is a problematic thing in and of itself, which is only partially true. Also, there are different kinds of reality warping, for different reasons: abstraction or omission to remove unnecessary detail and reduce scope; added convenience to prevent frustration; unavoidable technical limitations, both in terms of computing power and the limited interface; artistic license, otherwise known as stylisation; and of course, Bad Writing. Each of these points is capable of becoming their own post, as I've discovered from the 2,000-odd words that I cut out from the middle of this post, but the question my sister asked me was to do with Bad Writing, so I'm going to stick with that for now.<br />
<br />
<a name='more'></a>Take the example from Test Drive Unlimited 2. You pick up missions from people on the side of the road, whose locations are marked on the map until the mission expires. Their trust in you is utterly unexplained, they ask you to perform some paltry task, like driving them to a meeting on time, and then bewilderingly proceed to pay you thousands for it.<br />
<br />
The reason for this is obvious from a gameplay perspective: the missions are different to standard racing, so they provide some variation in the challenges you're given, and they need to pay thousands because otherwise they wouldn't be worth your time. Your money is in the realms of thousands and millions and racing pays very well, so the game can't reward these tasks realistically because nobody would play them and they'd be wasted work. So if the tasks and the rewards can't be altered, why not fix this with a liberal application of Writing?<br />
<br />
First of all, to explain why these people are asking you to perform these tasks, just say that there's some agency, which may comprise of nothing more complicated than a guy called Steve. Steve knows people, and if those people want a job done fast, they call him. He then lets you know where the current jobs are available on the map, so if you're nearby, you can go find them. If the job expires, that's because one of Steve's other agents beat you to it. Easy write-up; no plot holes. This is unexplained, so you can imagine Steve's existence in place of the silence.<br />
<br />
The tasks themselves, however, are explained, and stupidly. No-one would pay you that much for such simple work, unless there were a lot at stake. There are a few basic kinds of tasks, which I'll rationalise in turn:<br />
<br />
1) Time Attack - This whiny guy needs to get to a meeting fast, and he doesn't care about anything else. The only difference between this challenge and a Time Trial race with traffic is that you don't have to follow a specific route, and it's a pass/fail test, rather than ranked.<br />
<br />
Better Explanation - It could have been left out of the game entirely, but if you need an explanation, he has an urgent delivery to make to a drug lord, and if he doesn't make it, he's a dead man.<br />
<br />
2) Driving - This whiny guy or girl wants to be somewhere urgently, but if you crash, you will incur their displeasure, and if you crash enough, they'll ask to be let out, and you will get nothing.<br />
<br />
Better Explanation - This time you're driving the drug lord, so they won't risk death just to get to their destination, because no-one's threatening them.<br />
<br />
3) Jolt - This whiny girl gets carsick, so she wants a smooth ride home, but she doesn't care how long it takes. <br />
<br />
Better Explanation - It's obviously a drug lord's lab technician who is manufacturing an illegal substance, and needs a consignment of a highly volatile chemical. Too much vibration at once, and it will be ruined. Perhaps it will explode; let the reader decide.<br />
<br />
4) Tail: This whiny guy is concerned that his girlfriend is cheating, so he wants you to tail her to see where she's going. Don't get too close or too far away. Also, the girlfriend always turns out to be cheating.<br />
<br />
Better Explanation: Another drug lord is concerned that one of his lieutenants is a snitch, or a Judas, and he wants to know. Follow the snitch/Judas. And for goodness sake, allow them to be innocent once in a while. Sure, you'll have to animate and voice act a few more seconds of content, but at least I would have a reason not to skip the cutscene, even if it's just to see the outcome of a virtual coin toss.<br />
<br />
5) Adrenaline: This badass dude, who is somehow also very whiny, is unwell, and he wants you to thrill him with awesome driving. Stunts like jumps, drifting and near misses are his cup of tea, and you need to perform them in quick succession to satisfy him.<br />
<br />
Better Explanation: There's a recalcitrant snitch that the drug lord needs to extract information from. One of their favourite methods is to lock the snitch in the back of a car and get the driver to drive fast and dangerously until the poor sod breaks, soils himself, and decides that he'd rather tell them everything than die like this.<br />
<br />
6) Speed Limit: This less badass, but equally whiny, dude is unwell to a lesser extent, and only requires that you maintain a particular minimum speed for a certain length of time. If you drop below this speed, you have a short amount of time to reach the limit again before you fail. <br />
<br />
Better Explanation: You're transporting a drug lord through a rival's neighbourhood, and if you go too slow, he'll be recognised and attacked.<br />
<br />
7) Driving Convoy: This girl needs her car to be taken to the mechanic's but doesn't have the time to do it herself. <i>She'll pay you anywhere from $10,000 to $65,000 on delivery, but damage reduces the fee.</i><br />
<br />
Better Explanation: The cars are stolen by a white collar criminal, Steve is the fence, and you're delivering the car to the mechanic who will clean it. The buyer and the thief never meet, so there's deniability. You're taking the risk of being found with the car, so you get the highest fee.<br />
<br />
8) Package (from the first game, but excluded from the sequel): This guy needs you to deliver a package of undisclosed contents within a short period of time, and if you get pulled over by the cops, you pay for the lost package yourself.<br />
<br />
Better Explanation: This one is actually fine. You're just left to assume that it contains the copious amounts of drugs that the many aforementioned drug lords must be selling to stay in business and pay your exorbitant fees.<br />
<br />
I think that's all of them. Do you see how every single one could be adequately explained by the judicious invocation of crime? This is why so many street racing games assume a culture of criminal behaviour that underpins all of the action. It's the obvious explanation.<br />
<br />
But Test Drive Unlimited won't be having any of that. It has to be different; upbeat; something for the whole family. You do races for a reality TV show, some of which take place amongst traffic, and somehow it's all perfectly legitimate. You don't live a life of crime, whining and bad attitude, you live a life of parties, whining and excess, and there are absolutely no illicit drugs or their attendant infrastructures anywhere to be seen.<br />
<br />
The sentence in italics above is probably the best clue that this wasn't what the game's writers originally had in mind. Why create this challenge? It makes no sense, except in the stolen car scenario for which it is a perfect fit. If I had to explain it, I would say that the fault for the game's Bad Writing lies with the producers. They wanted the game to be different, and they wanted it to have the lowest possible age rating, so they could sell as many copies as possible. But once this decision was made, there was no way to go back and change the challenges into something plausible, so they just said that you were giving people lifts and delivering their cars to the mechanic, left the prices as they were, and hoped people wouldn't mind.<br />
<br />
And I don't really mind. This case of Bad Writing doesn't change the game at all, and I can turn off the whiny voices. It's not like anyone says anything actually useful to you. And as for the stories they tell you about what you're doing? I simply choose to believe that they're lying, and that my role in the whole expensive charade is to pretend to be a gullible, pliable fool.Excrubulenthttp://www.blogger.com/profile/10854664566763570671noreply@blogger.com7tag:blogger.com,1999:blog-1440033988469492871.post-25877075456965955422011-02-12T22:07:00.000-08:002011-03-15T09:32:20.431-07:00Exercise RestraintIt's not a quality that's typically required when playing computer games, but restraint is occasionally important. Like when you're playing a stealth game, and you think, "Yeah, I can take out that thug who's just walked into the room, even though I haven't taken the time to think it through properly. What's the worst that could bangsplatohnoimdead?"<br />
<br />
Or when you're playing a platformer and you just can't be bothered waiting 5 seconds for that moving platform to go away and come back <i>again</i>, so you take a chance and try jumping to reach it and fall to your death and no it wasn't really worth it because now you have to do the whole level again.<br />
<br />
Okay, so maybe restraint is required a lot. In fact, it's probably required anywhere that there exists a risk that can be taken for little tangible reward beyond simple convenience. It's certainly not emphasised in many games that I've come across, not like it is in Test Drive Unlimited 2 (TDU2<sup>1</sup>).<br />
<br />
<a name='more'></a>TDU2 was released yesterday... or, wait, no. Five days ago. I've been playing it a lot, and the time's been a bit of a blur. Having played a lot of the first game with its myriad problems, and the beta with its myriad betaness, I had some reservations about how it would turn out, but I'm happy to report that the final release of TDU2 has addressed every single one. The game is very well made, and the series is innovative to boot. It's not perfect, obviously, but I'm not going to nitpick, because this isn't a review.<br />
<br />
If you're not familiar with the series, it's an open-world racing game set on Oahu, and the sequel contains both Oahu and the Spanish party island of Ibiza. It's got realistic racing and was, I think, the first big racing title where you can drive around with hundreds of other online drivers in the same arena with you. If you encounter another player, you can challenge them to an impromptu race then and there, and wager in-game money on your success.<br />
<br />
Anyway, apart from the usual races, real-estate moguling and plastic surgery to occupy your ostentatious time, there are a number of missions that you can do for NPCs<sup>2</sup> who are distributed around the island, waiting hitch-hiker style to solicit someone for an extravagantly over-priced driving-related errand. Presumably they identify you through some invisible middle-man who vouches for your honest character, or something. I can't think of another justification for them to entrust you with the keys to their million-dollar supercar and offer you money to deliver it to their mechanic. I also can't imagine how busy they must be, and in what lucrative venture, to justify paying you 60,000USD for 10 minutes' work, but I'm not asking any questions<sup>3</sup>. I'm curious what the mechanic is getting paid; at some point it would become less hassle and money to just buy a new supercar every 30,000km. I dunno, maybe it's a tax thing.<br />
<br />
So you take their car and their foolish trust and you start out on your journey. The car is extremely powerful, so you have some trouble getting going in a straight line without the wheels spinning madly in first gear. Once you do get moving, you're soon cruising at 300kph down a narrow country road, and you encounter traffic. The result is predictable: smash car; lose money. The fee that you'll be paid on completion of the task goes down with every collision, and if it reaches zero then the mission is forfeit. Driving off-road produces the same effect. There's no time limit imposed on you, so you restart the challenge and decide to take it slow.<br />
<br />
After a minute or two you realise that this is taking too long - you've got 34km still to cover and you've barely made it out of town. This mission will take ages, and this is boring, which is not what driving a million-dollar supercar should be. So you speed up. Pretty soon you're weaving in and out of traffic like a madman, but you forget to keep an eye on the minimap. You don't see the turn coming up until after you've been wrapped around a forest, at which point it's too late to react. <br />
<br />
In most races and game modes, it wouldn't matter. Damage is cosmetic only, for some very good gameplay-related reasons, so you shrug off head-on collisions, and you tear across grass and gravel without a second thought. In this mode, that attitude doesn't cut it, unless you don't mind failing, or at least not being paid very much. The only way to complete the mission without scratching the car is to change the way you're driving. You have to be defensive.<br />
<br />
Defensive is of course a relative term here - it's not even in the same ball-park as a truly safe driving style - but this is completely different to how I've been trained to think about virtual driving; any caution is more than I'm used to. You have to watch your speed, and keep an eye on blind corners and hills. Sometimes you have to slow down and wait behind traffic until the other side of the road is clear, then overtake. Extreme high speed is only sustainable on freeways, and even then if you don't get into the habit of slowing down when you spot a clump of cars or a blind hill, I can guarantee it will ruin your day sooner or later.<br />
<br />
And as I mentioned, there is no time limit. You could drive at 70kph for the whole 35km trip, but that would be half an hour of drudgery, so you've got to compromise somewhere. These missions are the most well-paid of any of the side-of-the-road challenges, so they're worth conquering. The only enemy you really face in this challenge is your own impatience, and how much you're willing to risk damage or failure just for a few extra minutes. And let's face it - real-world time is valuable, and you don't want to waste that time in a computer game driving at the speed limit.<br />
<br />
My approach is that I will not accept anything less than a perfect run. I was doing one delivery, and I rounded a 90-degree corner and was too eager in second gear. The car spun out and the wheels hit dirt. I lost maybe $50 of my $12,000 fee, so it wasn't really worth restarting for the money. But I wanted to beat it. Getting $11,950 was not victory, especially when I only had myself to blame. I restarted. Eventually I got the hang of controlling the car around tight corners, and being patient enough to hit the brakes if it looked like it might go the shape of the pear.<br />
<br />
A lot of people might find this kind of challenge too frustrating, or worse, boring. I find it helps me to suspend disbelief and allow myself to get drawn into the world. This is actually how I might drive in the real world if I wasn't concerned about money or the law. Or, you know, human life. It's a very refreshing feeling to have in a computer game, and the more a game forces me to think differently about what I'm doing, the more I can learn from it. The reward for doing this challenge quickly is entirely intrinsic, and I find it far more satisfying than just getting a "ding" with a first place icon at the end of a race.<br />
<br />
That's not to mention the people who want a lift,<sup>4</sup> but complain of carsickness. Again, no time limit. You have to keep the "jolt" meter from filling up, which is essentially a cumulative g-force meter that goes down slowly over time. The harder you corner, brake, and bounce the car, the more sick they feel, until they've had enough and you fail the mission. I don't know if they blow chunks - I didn't think to intentionally fail the mission just to see what would happen. It's another challenge that forces you to look at the road and your driving style from a whole different perspective, and is only boring if you're not interested in learning something from it.<br />
<br />
<br />
<span style="font-size: x-small;"><sup>1</sup> Yes, gaming publications of the multiverse, I'm defining my terms. I'm not just throwing around MOBA or BAA or MMORGSTSG or whatever supposedly ubiquitous acronym I've come up with this month. Incidentally, try Googling BAA to find out what it stands for. Does it mainly stand for B-word Associations of Australia? I actually thought it would return onomatopoeia, but there was none on the first page.</span><br />
<br />
<span style="font-size: x-small;"><sup>2</sup> Oh, just Google it. NPC is in fact a ubiquitous term, and it existed long before computer games made </span><span style="font-size: x-small;">it popular.<sup> </sup></span><br />
<br />
<span style="font-size: x-small;"><sup>3</sup> The guys from the first game who asked you to take a package from A to B with a tight deadline and ABSOLUTELY NO COPS are another entity of whom no questions were ever asked, and are conspicuously absent from the sequel. Perhaps it was thought that on an island populated mostly by young adults furnished with more luxury, money and spare time than they could possibly know what to do with, those packages would be understood to contain only one thing: streamers. Dirty, filthy, party streamers.</span><br />
<br />
<span style="font-size: x-small;"><sup>4</sup> For 3,000USD. Seriously, I think cabs are cheaper. In fact, I think helicopters are cheaper.</span>Excrubulenthttp://www.blogger.com/profile/10854664566763570671noreply@blogger.com12tag:blogger.com,1999:blog-1440033988469492871.post-74539488830659180182011-02-08T20:19:00.000-08:002011-02-12T21:06:23.190-08:00I'm not doing this because I love you.This is for me.<br />
<br />
This is going to be about gaming, physics, pedantry and anything else I feel like. I'm setting these expectations early, so that I have some direction, but I refuse to avoid anything just because it might alienate my audience because, well, read the title. Expect non-sequitirialism, digressionistic tendencies and general self-indulgence, because that's what I'm here to do.<br />
<br />
I've also noticed that in general games reviews tend to sideline one of the chief things that I play games for: physics. Yeah, physics. And I'm not talking about the bullet point feature that appeared on the back of the box of every shooter for three years after Half-Life 2 was released, although I do love me some Havoc Physics, to be sure. I'm talking about the back-end of the movement system that is a part of every game with even the slightest physical analogy to the real world. Half-Life 1 has physics, WoW has physics, the original Mario Bros. has physics. Even Tetris has physics.<br />
<br />
Now, one of my passions is the vehicle simulation genre, where physics is basically the be-all and end-all. There's very little gameplay in there besides manipulating a virtual physical object into another virtual physical position using a complex series of inputs, and I love it. I'm currently studying a bachelor of Games Programming, and part of the reason I chose the course, apart from my enjoyment of all things both technical and creative, is because I was assured that game physics is a job that is given mainly to programmers.<br />
<br />
Physics is also the reason for the title of the blog - it's about games, specifically from the point of view of someone who is passionate about their more analogue aspects. Most simulator enthusiasts focus on a single genre, like car racing or helicopter piloting, or even a single game, like Orbiter, X-Plane or Live for Speed. I'm going to be talking about game physics in general, with a healthy dose of simulators included.<br />
<br />
Or not. It's really all up to me, which is the way it should be.Excrubulenthttp://www.blogger.com/profile/10854664566763570671noreply@blogger.com20