Brian Crick

Sanity Check, Part 2

Since her vacation is nearly over, I guess it’s time to evaluate my progress keeping things together while Marie is away. This will, by necessity, be fiercely dry.

To recap: in the past, I’ve noticed a tendency to become slightly unstable when the following triggers are present (I’m not sure which are important):

  1. Marie is away…
  2. …and unreachable via phone, IM, etc.
  3. I’ve started working in a new environment…
  4. …with new people.
  5. It’s early fall.

Said instability has, in the past, manifested itself in the following ways:

  1. General confusion.
  2. Vague feelings of being unable to keep friendships alive.
  3. Inventing memories about hurting a friend, and then being distracted or incapacitated by guilt over said memories.

So. As for the current situation, triggers (1), (3), and (5) are present. It just so happens that my company moved offices recently, and I have just now started coming in to work at the new place.

However, only result (b) has actually happened. And maybe a little bit of (a), but only very little. I am presently regarding the insecure feelings I have with massive amounts of suspicion, and am confident that my concerns lack any real factual support.

As for (c), said friends I’ve worried about have historically had consistent physical characteristics; I have therefore identified a couple potential candidates for the person I’d be obsessing over now. Thankfully though, this has not actually happened, and my perception of my relationships with said candidates has appeared perfectly normal in the last few days, as far as I can tell.

To sum up, this has largely been a non-event. I credit:

  • Being aware, for the first time, that problems were likely to arise;
  • Frequent contact with Marie;
  • Frequent breaks to stop and think about past experiences with Marie (this is not something I naturally do);
  • Going into this while genuinely happy with my social life and life in general (unlike previous episodes);
  • The distinct possibility that nothing bad was likely to happen anyway, despite my stressing out about it.

So, that’s a very long-winded way of saying: yay, nothing happened. πŸ™‚

Looking forward to seeing Marie again tomorrow.

Basic

Found this picture while cleaning the other day.

So here’s the start of my amazing career as a computer programmer. You can see most of a latch-hook duck that I was working on in the foreground; that’s not so much different than making pixel art, when you think about it.

This picture is kind of freaking me out. Sure, everything is so horribly dated, with an awful 70s couch in one corner and a barely visible open-reel player in the other. And I don’t see old pictures of myself often; I didn’t think we had any at all around here.

But mostly, I’m thinking about the Basic programming book that came with the computer I’m sitting in front of. It’s sitting on top of the grey box behind me; you can see the blue spine with white and black stripes on top. Presumably, I had been reading this book around the time this picture was taken. Given the position of the television and non-avocado carpet, I actually suspect I had gone through it or had already finished it a year or three before the picture was taken. I’m not a good judge of age; I was 6 or 7 when I started and I’m not sure how old I am in the picture.

I can’t believe I read that book. No, really. I don’t mean, I think it’s incredible that I read it. I mean, I’m doubting that I did. It’s almost 150 pages long. It’s written for people completely unfamiliar with programming, but it’s not exactly written for kids. While illustrated, it’s got fewer pictures than the programming book I’m reading now.

But I did learn Basic around this time, John has no memory of teaching it to me, my parents didn’t know how to program this particular computer, and I can’t find any evidence out there of a different, more beginner-y type book that would have come with the computer. Though I do remember typing in programs verbatim from computer magazines, which itself was a good way to learn.

So most of my knowledge must have come from that book.

In many ways, that’s kind of an anachronism. I’m having trouble imagining what the modern equivalent of that would be. Computers don’t come with programming books anymore, much less languages to program in. I suppose a motivated kindergartner could do HTML & Javascript, but they’d have to go looking for instructional material. That’s really different than stumbling across a book that was bundled with the computer you’ve got, a machine that wasn’t really bought so anybody in the house could learn programming.

Though I guess I can’t really complain that modern kindergartners don’t have access to spontaneous, unexpected avenues to learn new things. That’s what web surfing is for. πŸ™‚

Reticulating Splines

Well, this is very Hollywood OS.

I’ve been working on map generation for Tinselfly, and have been having some trouble with that. And last night, I wasn’t just having trouble with my code; I was having trouble figuring out how to even begin debugging my code.

The world here is made of a bunch of triangles, and I wasn’t sure I was creating them all properly. So after an hour or two of slogging through my debugger and inspecting properties for my objects, I thought I’d just add some debugging information directly to the game world. So all the text you’re seeing, that’s information about what order my triangles were created in, what their unique IDs are, and which other triangles they’re adjacent to.

As you move around, the text moves too. Because the text is, after all, part of the game right now.

It looks like overkill, but it’s been immensely helpful.

* * *

1993. SimCity 2000 has just come out. I’m sitting in a computer lab, working on a 3d vector-graphic tank game in Turbo Pascal, a little like BattleZone.

Sure, it’s just primitive vector graphics, but it takes an insane amount of preparation to get a 16mhz computer to do this, in a programming language designed for learning, not for efficiency. Before you can draw a single graphic, you need to create a bunch of tables that the program can look at, so instead of solving complex, but common math problems every frame, it can just look up the solutions in a table.

Creating these tables takes the program a couple minutes. To make the wait a little more tolerable, I add in some messages about what the program is doing and how far it’s gotten. Some of the messages are useful. Some of them are not; they’re just silly, nerdy technobabble. Like the ‘reticulating splines…’ message in SimCity.

A not-so-nerdy friend of mine walks in and sees my program running. While he’s not as into programming as I am, he immediately picks up on the fact that this technobabble isn’t what it seems to be. He accuses me of trying to make my stuff look more involved than it really is, and walks out.

It isn’t a playful jab. He’s sincerely disappointed.

I’m mortified. Because he’s right. Sure, there really is some complicated math going on here, and getting this to work was no small feat. I want people to know that. Even the simple act of drawing a single line on the screen requires custom code that I’m proud of having implemented on my own.

But my status messages should have communicated exactly what I needed to know; no more, no less. I strip the messages out. They weren’t in my program for more than fifteen minutes.

But for years after this, I’ll be very nervous when talking to non-technical people about programming tasks. I’ll be very careful to choose words and phrases that are clear rather than impressive.

* * *

The moment I saw that globe with those numbers floating around it, I started to worry that this was more about making me feel proud about doing something complex, and less about solving a problem.

However, my problem with Tinselfly right now is all about spatial relationsips. It makes sense for my debugging information to be presented in a graphical way, rather than the text-only debugging screens I’m used to.

I kind of like silly, overproduced computer interfaces in movies. I sometimes think those computers might be fun to use.

Though in reality, overproduced interfaces just get in the way a lot of the time. You’ve got to have exactly as much interface as you need. And sometimes, just sometimes, what you need is a bunch of transparent numbers swirling around a colorful sphere. Which is kind of cool.

Anger Mismanagement

Time for some just-before-bed rambling, though I think the danger of posting something I’ll regret is minimal.

Been feeling kind of cranky for the last day or so. (I won’t get into the why; that’s a separate issue that I should deal with, since my tendency is not to deal with such things at all.)

But anyway, what I wanted to talk about was my propensity to try to capitalize on that sort of thing.

Like many people, I’m more productive — far more productive, and creative, and willing to stay up late working on things — when upset. Wired recently did a piece on how this may have worked wonders for Apple. And I’d definitely say my output the last day and a half has been pretty great.

I don’t like that this happens. Thankfully, I’ve stopped going out of my way to willfully upset myself for the sake of increased creativity… but I’m wondering if capitalizing on being angry when it organically happens is just as bad. It makes me value being upset. It might serve as a disincentive to, say, repair the situation that’s causing this.

See, I knew this was going to happen. I knew yesterday morning that, at some point yesterday afternoon, something was likely to happen that would make me cranky.

So while I’m confident that I’m not, by my own actions, getting myself into a heightened emotional state anymore, I may still, by inaction, be willfully allowing this to happen, and continue.

Maybe.

Just something to think about for a while.

Fun with Windows

I’ve recently started reading two new blogs: indie game news, and official Windows 8 design stuff.

It updates rather infrequently, but in many ways, I find the Windows 8 blog more interesting than the games one. More to the point, I find UI design & programming more interesting than game design & programming.

I suppose this says a lot about me, even though it’s already been said: I’d rather work on apps than games. Not that I find game design unworthy of my time in an absolute sense; it’s just a sort of consolation prize in some respects.

Still, I’ve managed to get Tinselfly back at a reasonable trickle, and have even been working on my board game a bit.

With the way work-work has been going, I’m clearly not going to have something ready to submit to this year’s Independent Games Festival. (I’m not at all stressy about that, but that’s another post.)

However, I’ve recently discovered Windows Gadgets, those little things like clocks and news feeds that sit on your desktop.

I don’t generally use my desktop. I get grumpy if there are more than a couple files on it at any given time (which, for the record, there are now).

Also, I don’t generally use the two monitors I’ve got. When I do, it’s great, but generally, I just use the nice big external one. So I put a few gadgets on my usually-empty laptop monitor in the hopes that they’ll help with my productivity somewhat.

The first thing I did was add a couple of image slide shows. The Pictures folder on my computer consists mostly of random things I’ve grabbed off the web; anything I find interesting, I save locally. But I hardly ever open my Pictures folder to look at this stuff. So now a couple random selections of mine are always visible, and it’s interesting to look at the combinations of things that come up and think about how they might fit together. Good for brainstorming design ideas.

The second thing I added was a simple countdown tool. I was posting countdowns to the Festival on this blog here, and while that was cool and motivating as long as I was looking at my own blog, I kinda forgot about it easily. So I’ve got something right on my own desktop now.

Furthermore, I’ve decided to use it in a more granular way than I was using the Festival countdown; here you can see I’ve given myself five days to get random-map generation working for Tinselfly. I like deadlines. I’m much more productive with a deadline.

I’ll probably also add more countdowns — you can do that — for more long term goals like a playable adventure mode and a release candidate date too.

So.

With any luck, I’ll be posting a new Tinselfly build sometime in the next five days. πŸ™‚

Sanity Check

Sometime in the next month or two, Marie will be taking a trip to London. I’ve been a little stressy about this. I tend to become easily confused when Marie isn’t around. She sort of grounds me in the present; when she’s away, I have a tendency to forget that the last 15 years of my Marie-filled life ever happened.

I have been known to invent memories about having let down my friends in horrible, horrible ways while Marie is out. I have been known to be mostly unable to function because I’m feeling so horrible about these horrible things I didn’t actually do.

But this is all pretty laughable compared to the problems of my mother in law, who’s sitting in my living room right now. She’s a paranoid schizophrenic, who’s not on any medication.

Evil medical students are trying to perform experiments on her. Andrew Lloyd Webber stole all her ideas. Random people are trying to beat her up in her sleep.

It must be awful to live in the world she lives in. I wish I could show her around my world, which is really quite a happy place the vast majority of the time, but I can’t do that.

I suppose it’s good, every now and then, to be reminded that sanity is not a given for all of us, and to be grateful for how sane I am most all of the time.

And I can now stop being all whiny about what will happen to me while Marie is away.

Learning to Walk

Still horribly busy with work-work.

But while I’m waiting for a giant database restore and a giant software install to finish, I thought I’d babble about this, my first foray into absurdly long work weeks.

Now, I know, for some of you, this is nothing remarkable; my impression is that I’m lucky to have been working as a programmer as long as I have and not have had to put in hours like this yet. But this is new to me, so have some rambling thoughts on the subject.

I’m finding it useful to compare this to running. It’s nice and concrete and physical.

Just as I can decide to sprint instead of walk, I’ve trained myself to sort of mentally sprint on command. I will think more clearly, solve problems more quickly, type faster; I will be less likely to lose track of what I’m doing.

It’s a rush.

And just like sprinting, this is not sustainable and will kill my pace in the long run. I will even forget to breathe sometimes. If I start off my day like this, I’ll be a zombie by the afternoon.

So I have to be careful, not just about how many hours I’m working, but how I’m working when I’m sitting at the computer. Which means slowing down a bit.

Until recently, I didn’t really know how to slow down. It’s like I’m sprinting, and when I get tired I just fall over and take a nap. Walking was a skill I didn’t have. Until recently, I didn’t know how to code while tired. When I needed a break, I did something that was different from coding like doodling or playing on the piano.

But I’ve recently learned that — gasp — there’s such a thing as taking a break to write different code. The same way there’s such a thing as moving when not sprinting. To approach the whole act of coding in a different, more deliberate sort of way.

This programming book I’ve been reading has been immensely helpful. Without going into too much technical detail, it’s a sort of cookbook filled with common recipes you can use over and over again, so that programming becomes not so much about brain-hurting problem solving and more about calmly looking for an appropriate looking recipe card. Figuring out which recipe I should be using for any given problem and then following the directions there is something I can do while kind of fried. And I’ll feel refreshed afterwards.

I need to learn more ways to code that require less thinking.

Rose Colored Apples

Played Apples to Apples, among other games, with some friends last night. I hadn’t played said party game in quite some time and had been missing it. In addition to being great fun, it got me thinking about the way we perceive each other.

If you haven’t played the game, it goes like this: there are two kinds of cards, nouns and adjectives. Each player has a hand of noun cards. The players take turns being the Judge. The Judge flips over an adjective card at random and shows it to the other players. The other players then pick noun cards from their hand that they think the Judge will think is described by the adjective. The Judge shuffles all the submitted noun cards, lays them out on the table, and picks the one they think is best. Whoever played the winning noun card gets a point, and keeps the adjective card in front of them as a way of keeping score.

This is all totally subjective. If I were the Judge and flipped over the adjective scary, people could throw out Ben Stiller or they could throw out Going to the Dentist, and neither of these answers is intrinsically more right than the other. It’s all about my subjective opinion. Given those two options, I’d choose Ben Stiller as the scarier of the two and whoever threw that card out would get the word scary placed in their score pile.

We like to joke that the adjectives in your score pile are somehow descriptive of you as a person. I had radiant, fuzzy and playful in front of me by game’s end. Those seemed to fit me, just as the player next to me seemed to think that the words like hostile in front of him somehow were appropriate to him.

Now, you can chalk all this up to seeing patterns where there are none; people are good at that. But I actually suspect there’s more to it than that. This is a game about knowing other people. And for each of us, ‘knowing’ can mean something different. As for me, when I’m getting to know someone, I find myself focusing on things they sort of find innocently beautiful, or fun, or tasty. I’m less likely to care — and, more importantly, know — what a friend of mine finds scary, or violent, or sexy, or thought provoking. So I’m going to be better at collecting certain kinds of adjectives than others. I don’t know or particularly care what my friends’ political opinions are, so i’m going to have a hard time throwing out the right card for an adjective like corrupt. And this, this not caring about certain adjectives, does without question define me as person.

Sometimes, I’ve been listening to friends describe people I didn’t know, and their choices of what details to include baffled me. This person is good at games. This other person is very passionate. This person is attractive. I would never describe a person using those terms; I simply don’t care, or notice things like that. But other people do, and that’s part of what makes them different as people than me.

So to the extent that other people will focus on different things than me when trying to define themselves and others, I suspect that they will, in fact, tend to collect noticeably different kinds of adjective cards than I will.

And, that’s kind of fascinating, and I suppose that’s another reason to love Apples to Apples, which is already one of my favorite games.

Annoyance

Yesterday, I unsubscribed from the only game design blog I’ve been reading for a while. Mostly because I thought the author was coming off as a bit smug and condescending and it was making me cranky.

I feel kind of bad about this.

Sure, I disagreed with most of what the author had to say, but I frequently enjoy and learn a lot, reading things I disagree withβ€”as long as I think the author isn’t being pushy about their opinions. We all think this industry can be better. We all have different strategies for doing that. But to me, it’s all about exploring possibilities. As soon as someone says anything about how games should be made, or worse, played, I’m gonna tune them out completely.

But there were some good thoughts in this blog, and like I said, I feel kinda bad for bailing. Like I should just put up with the annoyance and bear it for the sake of being exposed to ideas different than my own. Like it makes me a more narrow-minded person for doing this. I know this author doesn’t mean to come off as a jerk. I’ve seen him actively seek out advice for how to sound less jerky.

Then again, who means to come off as a condescending douche? Who wakes up in the morning and decides to write like that? There are lots of bloggers out there, and I don’t see too much nobility in being patient with those who haven’t figured out how to sound approachable yet. I haven’t actually tried very hard to look for warm, friendly game design blogs, but I’m sure they exist. It’s not a blog per se, but Extra Credits is quite good.

I’d love to see more things like that.

Progress

I’ve slowly been updating my web site, adding pages for my projects and web sites and whatnot, and it got me thinking about progress.

Take web sites, for example. It would be tempting to think that, given more experience, I’ll consistently produce better and better work.

It certainly doesn’t feel like this, though. While I love my most recent design, The Peacock’s Paintbrush is still one of my favorites — and one of my first; it was made around ten years ago.

It’s tempting to feel like I haven’t made much progress at all. Which, sometimes I do. I worry that I’m not improving as a designer or a programmer or whatever here.

My output is really more like this:

Kinda random.

But really, it’s not as random as it looks. Experience does not make my work consistently better. It increases the probability that my work will be better.

The quality of my work will tend towards the darker red areas here. Without question, my work experience has made my average better.

However, under the right circumstances, I am still perfectly capable of producing crap. If I don’t get along personally with my client; if I hate the work itself, the work will suffer.

Ten years ago, under the right circumstances, I was perfectly capable of creating amazing things. The Peacock’s Paintbrush was a fascinating challenge. I was excited about getting portfolio pieces out there, and I had just the right amount of creative freedom.

The true measure of my progress is, I suppose, to look at the jobs that I neither love nor hate. The ones I just do because they have to be done. They’ll tend towards that nice dark red stripe, and I’ll forget about them the moment they’re over… but that’s the sort of stuff I should think about, when I’m thinking about what I can reasonably expect to accomplish next.

Copyright © 2017 Brian Crick.