Tuesday, 25 February 2014

Tales of Blood and Glory: Neuromancer

So I finished reading Neuromancer about a week ago. Wow, it's really good. As I mentioned recently, it's major theme is pushing the relationship between people and technology to uncomfortably intimate. The Ghost in the Shell-like climax of this theme occurs around the climax of the novel's plot-action.

Hardboiled Sci-Fi

Neuromancer is written as a sequel to Gibson's Johnny Mnemonic and Burning Chrome stories, and like those stories it is written in the style of a Hardboiled crime story. This gritty style allows Gibson to create a more realistic Sci-Fi(one of his stated goals) in much the same way that it helped Chandler to invent a more realistic Detective Fiction, based more on wheeling and dealing than on intellectual mind exercises.

Gibson also uses the hardboiled style to further his theme of discomforting human/technological syntheses. For example, his use of Chandlerisms. While Chandler uses these to set to mood through the eyes of the narrator, a man of honor living in a rough world that is wearing away at him, Gibson additionally uses these metaphors to give a view of the world through a technological lens. For example, the book's much-quoted opening line "The sky above the port was the color of television, tuned to a dead channel".

Also worth contrasting are their heroes. While Chandler's heroes are sympathetic for their moral code, Neuromancer's Case is sympathetic more for the Pathos elicited from his dependency on technology(though Johnny Mnemonic, on the other hand, is arguably more of a Chandlerian hero. Does Johnny dying and Molly taking-up with Case have some other message about the death a that type of hero in literature?)

Keeping Focus

Now let's compare Neuromancer with another contemporary Harboiled imitator: Michael Chabon's "The Yiddish Policeman's Union".

If you're ever read Chabon's "A Model World and Other Stories", you know that the man can write one hellova short story. Really, it's a brilliant, brilliant collection--really enjoyable and highly recommended. And Yiddish Policeman's Union is full of that same brilliance: there are so many great little bits. But, as a novel, it just felt seriously flawed to me, and the biggest reason, to my mind, is focus.

Neuromancer has a lot going on. But overall it is a very focused novel. It's got one overarching theme, leaving it free to focus on creating a fast paced roller coaster ride of a high-octane, hi-tech crime story.

Yiddish Policeman's Union, on the other hand, is all over the place. Chabon has so much to say about people, relationships, Judaism, politics, and a lot of it quite profound. And yet, I felt like it was too much, just jumping all over the place. And he's so into symbolism that I remember finding his use of Chandlerisms occasionally distracting from the actual story. As for the plot itself, it moved along quite slowly through most of the novel and when it finally got moving the emphasis became more of this political message Chabon was trying to drive home, rather than on the mystery or the characters. So, overall, lots to love in this novel, but sometimes less is actually more and I can't help feeling that it didn't live up to it's potential. Maybe if Chabon he'd found one central theme to stick to like Gibson in Neuromancer, then we would have gotten a better detective story. Or perhaps, it could have been written as a series of short-stories taking place in the same location.

Sunday, 16 February 2014

Not an Optimization Problem!

It occurred to me the other day that two types of argument that I hear fairly often are actually quite similar: "Which programming language is better for X?" and "Which RPG rule(set) is better for running scenario X?" Let's start off with the former.

Programming Language Preference

Programmers LOVE to talk about which language(or which technology) is better. What's the best language to start out learning? What's the best language to do my project in? Why is the language I designed objectively better than all the rest? Some people will talk to you for HOURS about this, going into the most detailed minutia. And I always feel a little uncomfortable about these conversations, regardless of how good the arguments being made are. I think Jonathan Rasmussen's point in his book "The Agile Samurai" is relevant:

You Pick Your Architecture When You Pick Your Team...A team strong in databases will naturally want to do most of the heavy lifting in SQL, while a team strong in object-oriented design(OO) will want to put all complexity in there... 

The point is that, in practice, there are many valid and effective way to accomplish your engineering task. The problem with these "which language is better" conversations is that they treat the question as an optimization problem: let's look at the problem from every possible perspective and determine which solution is optimal. This sounds very logical, but the truth is that there are many reasonable solutions, and engineering is very much an art, rather than a math exercise to find the solution to.  Pick tech that works for you and then move-on, so you can start worrying about the actual execution of your project, because that's going to make or break it for you regardless of the language you pick.

Rules Preference

It's the same with a lot of rules discussions that I hear. It's not that people aren't making valid points.  It's that they(often times myself) have a tendency to obsess over these rule choices and treat it as an optimization problem. Just pick a system that you like overall and start worrying about your execution!

The rules aren't the alpha and the omega of what makes the game. I'll be honest: whether I run WFRP, or DnD or Cyberpunk 2020, I tend to run the game a certain way.  And the same tends to hold true for other DMs I've played with. There's a lot of artistry and technique to running an RPG beyond the rules, and it's going to make a hell of a lot more difference than what kind of saving throws you chose to use, ascending or descending AC, etc!

So yeah, that's my rant for the day. Figure out what tools work for you in this situation and then get on with it! Get out there and write some great software/run a great game!