[ About
| Features
| Music
| Pictures
| Software
| Writing
]
(
adam
| aaron
| alyson
| brendan
| claudia
| jakey b
| joe
| john
| jill
| kevan
| kristen
| kris
| mom
| rachel
| rachel 2
| r
| sam
| seth
| sumana
| susanna
| tpm
| ...
)
Crummy: The Site
We fight 'em until we can't.
(4) Tue Jan 24 2012 09:06 CG Author Commentary #9: "Import System":
Last week and this week have some of my favorite Twitter bits (e.g.) because the CDBOEGOACC is finally available in English. Sunday night while working on Loaded Dice I realized that one of the reasons I really like playing around with the BoardGameGeek dataset is it's like a real-life CDBOEGOACC.
The flip side is this chapter doesn't have a lot of plot. But hopefully you're okay
with that because of all the fun mini-stories like the Sea Level game/food. It's supposed to
represent the design phases of a software project, where you're
throwing around a lot of ideas but not much is being produced.
Next week is a set piece, and after that the plot won't let up
until the cliffhanger that ends Part One. Before that happens, I need to get some solid exoludology in to bring in topics that are important later, like Sayable Spice and Ariel's unsuccessful attempts to translate it.
Before beginning the chapter 9 commentary, I want to get something off my chest about the first sighting of the Farang in chapter 1. In that chapter, Ariel compares their antennacles to the oral tentacles of a
"cerebrophage". In the second draft I just out and said "mind
flayer". My writing group said I should change it because readers
might not know what a mind flayer is. ("Did you mean: mind flower?") Taking their advice to heart, I
changed the reference to a made-up reference that nobody will get. Well,
at least we're all in the same boat now!
And here's chapter 9. Vent your egg sacs before reading this commentary:
- This chapter represents the absolute end of the abandoned first
draft. Beyond this point everything is from the second or third draft.
In a questionable move on my part, Ariel gets an Alien computer
before he meets any Alien characters, requiring that I introduce you
to the species with an infodump ("eight-foot monkey-lizards"). Don't
worry, in just a couple weeks, Alien characters will show up and run
off with the whole damn book.
- Speaking of infodumps, I want to do a little infodump of my
own, about the Ip Shkoy. The Ip Shkoy were an ancient civilization of
Aliens, much like the Roman Empire was an ancient civilization of
humans. "Ip Shkoy" is not the native-language name for the
Alien species. I tried to make this abundantly clear, but I've noticed
well-intentioned people calling the Alien species "the Ip Shkoy" or
ascribing to modern Aliens the (frequently pretty awful) opinions of
the Ip Shkoy. Which would be like Curic thinking that Ariel regularly
offers sacrifices to Jupiter Optimus Maximus.
Star Trek has conditioned us to see an ET species as having
a single homogenous culture that never changes, and this sort of
confusion is why they do that on Star Trek. That said, I don't
think this is anyone's fault but my own. If I'd presented modern Alien
society in as much detail as I present the Ip Shkoy, the other
probably wouldn't crowd out the one. It doesn't help that certain
features are shared by both cultures, such as transitive pair bonding (aka polyamory).
- Recapture That Remarkable Taste, the Ip Shkoy remake of
Sayable Spice, is not to be confused with the new William
Gibson anthology, Distrust That Particular Flavor.
Charlene Siph is mentioned again, which gives me a good excuse to
talk about Alien names. The Aliens on the contact mission have all taken human first names, but their surnames are monosyllables which I usually generated by truncating creepy English words ("siphon", "somnolent") to four letters. The impression I want is of someone who's trying to be accommodating but doesn't quite have it down.
This is another detail imported from "Vanilla", one that I'm really
happy with, one that even becomes important to the plot in one
place. And if you like symbolism, check this out: "Ariel Blum" could be an Alien name.
- In the second draft I wrote a whole review of Proty's Big
Escape, but turns out it's a dumb idea to insert one game review
wholesale into another game review. Let me know if you want the
Proty review, and I'll make it the first CG Deleted Scene, even
though it's only five paragraphs long.
Be sure to tune in next Tuesday, when Dana will say, "This application will terminate due to suspected theft or circumvention."
Oh, and you might want to keep an eye on @Tetsuo_Milk.
Image credits: Flickr user krusty, Guillaume Piolle, and Flickr user CoffeeGeek.
<- Last week
Mon Jan 23 2012 11:43 To This Basic Game Hedgehogs Are Added:
I bought a cute game about hedgehogs, Der Igelwettkampf ("The hedgehog contest"), as a Christmas present for my niece. On Der Igelwettkampf's BoardGameGeek page I noticed that it was classified under the game family "Animals: Hedgehogs/Porcupines". I'd thought "Family" was for boring things like grouping together the endless versions of Ticket to Ride, but turns out it's also used to group together all the games about hedgehogs.
The question then arises: what's the best game about hedgehogs? According to BGG it's Igel Ärgern + Tante Tarantel, a double bill in which Tante Tarantel might be doing some of that work because Igel Ärgern on its own is rated a bit lower.
More importantly, what's the worst hedgehog game? Indubitably it's Hedgehog's Revenge, "The GAME where the hedgehog STRIKES BACK!", whose BGG description includes the now-hopefully-immortal saying "To this basic game hedgehogs are added."
At this point I was on a roll... of the dice! I went back to my now-old BGG data dump, sorted the board game families by how many games they contained, and picked out interesting groupings for use in Loaded Dice. We've got Games about animals (most popular: dogs) Game versions of sports (soccer), and Games about countries (the Roman Empire, in a landslide). That page shows the top-rated game and the lowest-rated game, so get ready to load a lot of cover images.
I did a couple other lists, like media tie-ins (champion: Disney) and "families" that are strongly tied to one single game (the 889-strong "Monopoly" family), but I think the three lists I put up are the most interesting.
Bizarre trivia abounds! Did you know that crows are board game gold? The worst game about crows (The Crow and the Pitcher) has a BGG rating of 6.32, which isn't that bad at all. (Longtime fans will remember the median rating is 6.0).
Did you know there are twenty rodeo-themed games? Apparently you didn't, since only one of those games has more than five ratings. How many wargames take place in Switzerland, a country that doesn't fight wars? Only two: Switzerland must be Swallowed and Zürich 1799.
My data is six months old now and it's starting to show some cracks. There are BGG families for Russia and Antarctica which were created after I took my dataset, so they don't show up in the country list even though most of their games are in my data. After getting the Switzerland idea I ran the "What percentage of a country's games are wargames?" test on all countries, but wargames were drastically undercounted. For instance, all but one "Vietnam" game on BGG is a wargame (the exception being Venture Vietnam), but only 35% of those games were classified under a general "Wargames" category.
But, the lists are still a lot of fun and there are some interesting games in there. I'll leave you with the board game equivalent of the dusty World Book Encyclopedia sitting on the shelf at your grandparents' house: Trivial Pursuit - The Year in Review - Questions about 1992, the worst-rated game (3.90) in the 155-strong Trivial Pursuit family. Also available in 1993 flavor!
Sun Jan 22 2012 09:43 Beautiful Soup 4 Benchmark:
This is going to go into the Beautiful Soup 4 documentation, but you might find it interesting. It's my first legitimate benchmark of BS4, and the first benchmark of this stuff I've seen since Ian Bicking's excellent 2008 benchmark.
Ezio Melotti pointed me to a list of the top 10,000 domains worldwide, according to some random source. It looked legit, so I wrote a script to download the homepages of the top 200 domains as served to a desktop web browser. My dataset included many pages written in Chinese, Japanese, Russian, Portuguese, Polish, and German.
For every parser I was interested in, I parsed each homepage and
timed the parse. This gave me 200 numbers for every parser. To
reduce that to a single non-huge number I calculated a mean: how many
kilobytes of real-world HTML the parser could process in a second. I
also noted each parser's success rate: how many of the 200 homepages
it had handled without raising an exception.
Here are the results, ordered by their performance under Python 2.7.
|
|
Python 2.7
|
Python 3.2
|
| Parser |
Speed (KB/s) |
Success rate |
Speed (KB/s) |
Success rate |
| Beautiful Soup 3.2 (SGMLParser) | 211 | 100% | - | - |
| html5lib (BS3 treebuilder) | 253 | 99% | - | - |
| Beautiful Soup 4.0 + lxml | 255 | 100% | 2140 | 96% |
| html5lib (lxml treebuilder) | 270 | 99% | - | - |
| Beautiful Soup 4.0 +
html5lib | 271 | 98% | - | - |
| Beautiful Soup 4.0 + HTMLParser | 299 | 59% | 1705 | 57% |
| html5lib (simpletree treebuilder) | 332 | 100% | - | - |
| HTMLParser | 5194 | 52% | 3918 | 57% |
| lxml | 17925 | 100% | 14258 | 96% |
Note that the "HTMLParser" tests don't actually produce anything. HTMLParser is an event-based parser, so when the HTML is parsed, nothing comes out because I didn't include any handler code. All the other tests build a parse tree in memory.
Another thing to keep in mind about the html5lib results: html5lib is kind of the opposite of BS4. BS4 always builds a tree of Beautiful Soup objects, but you can tell it to generate that tree using html5lib, lxml, or HTMLParser. Whereas html5lib always uses its own parser, but you can tell it to build a tree of lxml objects, a tree of BS3 objects, etc.
The big surprise for me is that on Python 2.7, lxml is the worst choice for a parser to drive BS4. It's a worse choice than html5lib! How did that happen? I have no idea. I was hoping to cash in on the lxml magic (see below), and it's not working. I need to look into this. Notice that html5lib takes a performance hit from using lxml's treebuilder. If the magic's not in the treebuilder and it's not in the parser, where is it?
Unless I can find that magic and exploit it, it remains the case that if you're paying by the minute for computer time, you should use lxml. It's written in C, and on Python 2.7 it builds a parse tree sixty times faster than BS4, three times faster than a pure-Python parser that does absolutely nothing with the data. Even on Python 3, lxml alone is seven times faster than BS4+lxml. I said stuff like this in the BS3 documentation, but I think I need to be more forceful about it in the BS4 docs.
The good news is that Beautiful Soup is 6-8 times faster on Python 3 than it is on Python 2, and even at its slowest, BS4 is noticeably faster than BS3.
The big caveat is that my definition of "success" is pretty minimal. Just because the parser parsed the file without crashing doesn't mean it will give you a useful parse tree.
Another caveat: on Python 3, I couldn't get HTMLParser to take raw bytes as input, so I ran the data through UnicodeDammit first. I counted this time as part of the parse time. This probably explains HTMLParser's slower speed on Python 3 and its higher success rate.
Update: Argh, I found out about this a year ago. The problem is that Unicode, Dammit is incredibly slow in some cases. Here are the results on 2.7 if I take out the prepare_markup methods in the builders for HTMLParser and lxml, and just assume everything's UTF-8:
|
|
Python 2.7
|
Python 3.2
|
| Parser |
Speed (KB/s) |
Success rate |
Speed (KB/s) |
Success rate |
Beautiful Soup 4.0 + lxml | 2287 | 96% | 2600 | 96% |
Beautiful Soup 4.0 + HTMLParser | 2069 | 48% | 1680 | 57% |
That's more like it! The problem is that reliability suffers. Both parsers crash in the 4% of cases where it's not UTF-8 but the encoding is declared in a <meta> tag. And there's an unknown number of cases where the data's not UTF-8 but the conversion doesn't crash, leading to garbled data. But at least now I remember this problem.
Also note that on Python 3.2, getting rid of Unicode, Dammit doesn't matter nearly as much. (It doesn't matter for HTMLParser at all.) Presumably Python 3.2 has better built-in support for encoding autodetection.
(1) Fri Jan 20 2012 17:40 Beautiful Soup 4 Beta 2:
Thanks to some help from Ezio Melotti I've got the Beautiful Soup test suite passing on Python 2.7 and Python 3.2. Here's a tarball containing the original Python 2 module in bs4, plus the same code autoconverted to Python 3.2 in py3k/bs4.
I'm still not sure about the best way to distribute this package, either while it's beta or afterwards. I'll probably end up creating a new project on PyPi, because otherwise people who install programs that easy_install beautifulsoup will crash due to the module's new name. Does that make any sense?
Anyhow, we're almost at the end of this fitfully travelled road. Once I figure out distribution and rewrite the documentation, a) no one should need to use BS3 anymore if they don't want to, and b) it should be possible to get lxml-like performance or html5lib-like flexibility with a Beautiful Soup API, by actually using lxml or html5lib as the underlying parser.
PS: remember, it's now from bs4 import BeautifulSoup.
(1) Tue Jan 17 2012 10:10 CG Author Commentary #8: "They Came For Our Twinkies":
K'chua! Such a useful word. This week, Curic does her part to Keep Austin Weird. Here's the (tiny) Twitter archive from last week.
Some exciting news from the world of commerce: the Constellation Games paperback drops April 17. If you're waiting for the paperback, do yourself a favor and pre-order at the $20 level. Once it's released, the paperback will cost $20 on its own, but if you pre-order, you'll also get a bunch of extras, including three short stories that all pass the Bechdel test.
The seventeenth of April is also the day we serialize chapter 21, "Her". I'm going to keep posting my commentaries once a week along with the serialization, even though a growing number of you will have read the whole book and know how it turns out. Then you'll know how I feel right now!
I'm also thinking of having a celebratory book launch dinner at Hill Country, a famous Austin-area barbecue joint that fortuitiously has a branch in New York City. Let me know if you're interested in attending.
...and we're back from commercial. Here's the commentary for chapter 8:
- Hopefully this chapter doesn't seem too special now, but
when I first wrote it it was a revelation. It was a narrative with a
plot! Curic was an active character and you could see her chemistry
with Ariel as they physically interacted! My writing group indicated
in no uncertain terms that this was the stuff they had been waiting
for.
I wrote a couple more chapters in the old, boring style but it
wasn't long before I gave up and started the second draft, which tried
to make the whole book more like this chapter. To this end I
introduced innovations like the long IM conversations, and
Jenny. Imagine reading up to this point, except Jenny has only been
mentioned once and Curic has only had three lines of dialogue. That
was the first draft.
Because of its importance to the book's history, and also because
it's such a great set piece, I kept coming back to this chapter. Near
the end of the book, I recontextualize it by showing the visit to
Earth from Curic's perspective. And Jenny's remark that the plastic
fractal "looks like Skewer Sue's bracelet" fed, as I hinted a few
weeks ago, into one of the book's most important scenes.
Which almost didn't happen. At this point I'd decided that Jenny
was a big comics nerd and wanted her to reference a kinda bland comic
book character name. My first try was "Titania". Well, the joke was on
me because Titania
is an actual Marvel villain. Sumana says she showed up during Dan Slott's run on
She-Hulk, so that's probably where I got it, but I don't remember
her. Bland, but already taken. Titania was out. Then I came up with
"Skewer Sue", which is not a top-tier name like "Wonder Woman", but is
definitely not bland. Then I decided "why should I deliberately come
up with bland names?" and went with Skewer Sue. Believe me when I
say that if I'd been able to name that character Titania, the
offhand reference would have stayed offhand forever.
...And I can't even tell you all the other things in this chapter
that become important later. Because they're all huge spoilers. But in
one case also because it's quite embarrassing to admit how long I took to realize that I could reuse something. I should have called this chapter "Guns on the Mantelpiece". (Actually, I should have called the second chapter "Guns on the Mantelpiece"; I never liked "Corner Pieces".)
- Jenny's nephew Eduardo does not really show up again, except in the
Twitter feeds and one of the deleted scenes, but if you want to make
your protagonists look good you should show them doing nice things for
kids. Just a little tip I picked up in Sid Meier's screenwriting
class.
Eddie was originally the son of Jenny's brother, James, who never shows up at all. I don't remember why James became Jenny's sister, but when I changed it I de-named the character so as not to use up a "named character" slot in your head.
Actually, rereading this, I notice I didn't give Eddie any
lines. That was kind of sloppy. I'd retcon it by saying he's intensely
shy around Curic, but Curic's account of the day contradicts this! Oh
no.
The star-draw was added in the third draft. There's another
star-draw in chapter 20, but a lot of other stuff is happening in that
scene, and Ariel wasn't actually there for it, so the exposition was
very difficult. Putting a star-draw here takes some of the load off
the chapter 20 scene, and--only later did I realize this was much more
important--shows you a fluid overlay in action. Albeit a two-person
fluid overlay because Jenny and Bai are slackers and Eddie's a little
kid.
- The celebrity voices used for the different ET vocalizers are a tiny import from "Vanilla", in which (among other things) the protagonist was shaken down by an ET who sounded like Garrison Keillor. Now that I write that down, I realize that I've only got one joke about this, because there's a very similar incongruous-voice bit in chapter 21. Maybe I should have declined to import this particular thing from "Vanilla"... it feels like an artifact from a less mature stage of my style.
- The bit where Bai introduces Dana to Curic was added after I sold
the book, at editorial request to get more Dana early in the
story. You'll thank my editor later.
- And I don't know when all of this came together, but I love
Curic's mix of anthropological curiosity, disinclination to tolerate
bullshit, and bizarre opinions on what's bullshit. Her
reactions to Dana, to "Eddie wants to be an astronaut", and to the
revelation that "fuck" is a swear word... she's got all the best
lines. And she does the game reviews! This is the chapter where Curic
came alive for me. Metaphorically.
Stay tuned for the inevitable letdown next Tuesday, when Curic will say, "I did not pee in your sink."
Image credits: (CC) Larry D. Moore and Wikimedia Commons users Solkoll and SeppVei.
<- Last week | Next week ->
(1) Mon Jan 16 2012 10:50 Findings:
My writing life has settled down a bit so I'm finally going to write about Findings, the social reading startup where I worked last summer. This is more an essay about what I see in Findings than an introduction to the site--you can see lots of general introductions linked to from this Findings blog post, including co-founder Steven Johnson's introduction, and the Business Insider article whose title is the perfect elevator pitch, "Findings is GitHub for Ideas".
If what I'm about to say sounds interesting to you, there are development jobs open at Findings right now. Just as a reminder, I myself don't work at Findings anymore, and even when I did, only the foggyheadedest knave would have taken my personal opinions as representative of company policy.
Let me start out with this quote I took from Darwin's The Descent of Man, not because the quote itself proves anything, but because the quote is an important part of my reading of Darwin:
Brehm gives a curious account of the instinctive dread, which his monkeys exhibited, for snakes; but their curiosity was so great that they could not desist from occasionally satiating their horror in a most human fashion, by lifting up the lid of the box in which the snakes were kept. I was so much surprised at his account, that I took a stuffed and coiled-up snake into the monkey-house at the Zoological Gardens, and the excitement thus caused was one of the most curious spectacles which I ever beheld.
If you want to learn about evolutionary biology, read Steven Jay Gould's essays. Darwin's a good writer and he got it basically right, but he didn't know about genes or DNA. I read Darwin to experience the origins of the field. I didn't expect (though perhaps I should have) to encounter endless artifacts of the days of two-fisted Baconian science.
When Charles Darwin needs to figure something out, he carries out an experiment,
no matter how tedious or disturbing. He takes snakes to the zoo, he puts kittens' feet in his mouth, he floats 94 kinds of plants in seawater, he hacks aphids. If someone has the temerity to question his conclusions he's all "Citation needed? I'll give you citations, motherfucker!"
When you read a book, it has an effect on your mind. You're a slightly different person after reading it. You've created something new: a reading of the book: Here's an apropos quote from Alberto Manguel's A History Of Reading, which I read on paper and typed in. Manguel is talking about Petrarch's Secretum:
What Augustine (in Petrarch's imagining) suggests is a new manner of
reading: neither using the book as a prop for thought, nor trusting it
as one would trust the authority of a sage, but taking from it an
idea, a phrase, an image, linking it to another culled from a distant
text preserved in memory, tying the whole together with reflections of
one's own -- producing, in fact, a new text authored by the reader.
Readings are ephemeral. Life goes on, and the memory fades. Ken Macleod's The Star Fraction had a huge influence on me, probably leading to whatever career I now enjoy as an author of fiction, but I read it ten years and 600 books ago, and now I don't remember a damn thing about it.
That's why we dog-ear pages and highlight passages. We're instantiating our reading of the book so we can go back later and approximate the mental state it gave us without re-reading the whole thing. Even if all we got out of a book was "this bit was funny", it's better to have the funny bit at hand than not. Even if you never go back to the highlighted passage, the act of highlighting replays that passage and deepens your initial memory of it.
Liberate your readings
I've been typing in quotes from the paper books I read, like I did with the Manguel. Of course, with an electronic book, you don't have to do this. The act of highlighting creates an electronic record of your reading of the book. When I was in college I read about the first e-ink research coming out of MIT, and I knew that this was the future. Indeed it was the future, because I had to wait ten years for the technology to make it to market. But, sour grapes, we've got ebook readers now.
Ebook readers have big problems, but at this point the problems are mostly political, not technical. For instance, you can highlight passages when reading a book on your Kindle, but because of a deal between Amazon and the publisher, your book's metadata may include restrictions, which the Kindle will obey, on how much you can highlight. And your highlights and notes—the "new text authored by the reader"—are stuck on a website that Amazon didn't put a lot of work into because they don't consider your reading of a book important to their business.
Findings takes advantage of the fact that Amazon is wrong about this. Findings liberates your highlights and makes them searchable and shareable. Your reading of a book is a big part of your relationship with that book, and Findings gives you access to it.
You can also use Findings to take a reading of a web page, creating a record of what would otherwise be an ephemeral activity. I'm not as interested in this feature, but people are using it quite a bit, and my interest does increase as the length of the web page I'm reading approaches the length of a book.
Browse readings
So that's what Findings can do for you personally. Now let me pitch you the network effects. Take a look at this screenshot which shows the Findings global stream:
You can't see the global stream without logging in, which I think is a shame because I think this is what really sells Findings. We have here a stream of little bits of text, like Twitter used to have on their front page. Except here, every bit of text is a quote that someone liked well enough to save. It's very high-quality stuff. At the top you can also see some recently added books, and by clicking on a book you can see someone's condensed reading of the book.
Basically, Findings gives you browsing access to a large library, not of books, but of readings. It's easy to discover new books, people who read books you like, and—this is new—people who read books in ways you like.
There are a ton more useful things I could mention, but they're mostly behind-the-scenes things where Findings makes things "just work" (like consolidating multiple editions of the same text), or they depend on features that haven't been implemented yet. So I'm going to close by mentioning the social signalling feature.
Strut your stuff
One underappreciated feature of paper books is signaling to other people that you are cool. You read books! Fancy books, like Ulysses! You care enough about books to make space for them in your house. You take them on the subway even though they're heavy. Darwin would say it's like the peacock's tail. But if you have an ebook reader, nobody knows how cool you are. You're just a person with an ebook reader.
By letting you publicize your reading of an ebook, Findings reinstates your ability to send those social signals. The downside is that you have to actually read the book. You can't just put a big book on your coffee table: the thing you're sharing is what you got out of the book. (Well, you can fake it, but it's probably about as much work as reading the book legitimately.)
So that's Findings. I don't use it as much as I thought I would, because I'm still trying to draw down my stack of paper books, but when I read a book on my Kindle, it stays read, thanks to Findings.
I mentioned this before, but the last thing I did at Findings was design a web service for them, which they're hopefully working on now. Once the web service launches, you'll be able to write programs that import readings into Findings from non-Kindle sources.
Do it yourself
One final note: If you have a Kindle, connect it to your computer and look on its filesystem. All your highlights are kept in a structured-text file located at documents/My Clippings.txt. This file includes highlights taken from PDF files and other ebooks not recognized by Amazon, which don't get synced to kindle.amazon.com. Even if you don't use Findings, take control of your highlights by backing up this file.
Image credits: McKay Savage, Romana Klee, and André Fincato.
(1) Thu Jan 12 2012 09:17:
My sister talks about her miscarriage.
The only thing worth saying is "I'm sorry." I may think those things. John and I may even say those things to each other. But don't impose beliefs or possibilities or happy thoughts on me.
(8) Tue Jan 10 2012 11:42 Hostile Witness: The Vechs Interview:
Minecraft can be a tough game. The controls are kind of blocky, the
best resources are hidden deep in the map alongside deadly lava
rivers, and the night hosts monsters that will kill you just as soon
as look at you (or, in one case, just
as soon as you look at them). But it's not that tough. All that
terrain is generated by algorithm. It's not like the random number
generator is trying to kill you.
But there's this guy named Vechs who is trying to kill
you. His "Super
Hostile" series of custom Minecraft maps offer challenges that
prohibit or subvert every survival strategy you learned in vanilla
Minecraft. Even in his easier maps you'll find bottomless pits,
world-spanning ceilings that block Minecraft's all-important sunlight,
swarms of monsters pouring from hacked spawners, and TNT in
unfortunate places. Just getting your first tree is a
challenge. Complete a Super Hostile map, and vanilla Minecraft will
seem easy.
But Vechs' maps are not just tough: they're creative, fun to play, and they
look great. Vechs uses landscape features and lighting to grab the
player's attention, direct the flow and pacing of their playthrough,
and give them a spectacular environment to build in once they've
conquered the map.
I've raved about Super Hostile a couple times
before here on NYCB, but with the release of "Spellbound Caves", the
tenth entry in the series, I knew it was time to get
serious. I sat down with Vechs (I assume he was sitting down, anyway)
and interviewed him over minecraftforum.net's private message
feature. My goal was to pick up where
this interview from July 2011 left off, with in-depth questions about his style and his mapmaking wish-list. The interview contains some Minecraft jargon, but anyone with an interest in game design should get something out of it.
Leonard: You play a kind of character on your maps, an
angry trickster god who hates his players and taunts them by writing
things on signs. But clearly you're not actually like that. I've
played maps made by people who really did hate me, who wanted me to
farm cobblestone for an hour or dig through obsidian without a tool,
and I said "screw this" and quit the map. I don't think you'd ever do
that, right? What's the difference between you and the "Vechs" in your maps?
Vechs: It has to do with challenge. There is a difference
between making the player use skill or ingenuity, and making the player
do something tedious. Sometimes a solution to an area can involve
using lots of blocks (Like the player making a cobblestone tube for
them to safely move through.), but these are usually just one option
of many the player can use to conquer an area.
Sometimes the "Vechs character" in my maps is pretty mean, and just
downright spiteful, especially when it comes to traps. In real life,
I'm not like that at all.
In the Obsidian Block interview you say that you
recently graduated from college and are looking for a career as a game
designer or world designer. What did you study in college?
I am a Media Arts major. I studied everything from
digital image editing, video editing, to stage lighting, to writing
scripts and screenplays for movies, and more. I'm glad to have a
diverse background, even though my passion is still game design.
What would be your ideal job? Would you rather
work on a big-budget project with high production values, or an indie
project where you have more creative control?
My first choice would actually be to have my own
studio and bring to life some of the game ideas I have. One idea I've
had for a while, and as far as I know, nobody has ever made a game
like it. I wouldn't mind making it all myself, but that means I would
have to re-learn a lot of programming. I've programmed some text-based
games in C++, but programming is not my main forte.
That said, I also wouldn't mind working for a major company. Like,
for example, Valve. Love those guys.
What other games have you made maps for? You
mention Duke Nukem 3D in the Obsidian Block interview; what
else?
Just off hand: Red Alert, Warcraft II, Warcraft III,
Neverwinter Nights, Total Annihilation, TA:Spring, Terraria, Command
and Conquer (and several sequels), The Elder Scrolls series, and
obviously I'm the world designer for the RPG games I've worked on,
using the XP and VX engines.
Are you currently making maps for any games
other than Minecraft?
At this moment, no, but I have been meaning to make some maps
for Team Fortress 2.
Have you ever heard of ZZT or Megazeux, or am I just incredibly old?
You're old! *grins* I looked them up, and I think my version of that would be the RPG-series of game engines.
There are a lot of memorable set pieces in the
Super Hostile series. Now that you've put out ten maps, would you mind
taking a look back and sharing some of your favorites?
The first 15 minutes on just about any of my maps. I
love that feeling of just starting off and scrambling for resources. I
like the rail station in "Sea of Flame II", and how it goes out in the
area with the huge pillars, and "Spellbound Caves" is just full of nice
vistas and "scripted" events.
Most of my maps feature at least one "death fortress" as an
end-game area. These are intended to be where the player gets to use
all the resources and items he has been collecting through the whole
map. TNT, lava, swords, bow and arrow, even TNT cannons... bring your
whole arsenal and have some fun!
Can you describe the evolution of your design
philosophy over the course of the series?
Try to improve in at least one area every time I make
a new map. Push the Minecraft engine to its limits. Make an awesome
and memorable experience for the player.
What are the biggest challenges in re-balancing
Super Hostile for Minecraft 1.0?
Armor and blocking.
Does 1.0 have anything to do with the fact that
you recently flattened the difficulty levels in your map descriptions, so that
"Sunburn Islands" and "Legendary" are now both considered "Easy"?
Yes and no. I feel that recently I have been drifting
away from the theme of "Super Hostile" and I want to get back to my
roots. Being able to respawn forever, over and over kind of takes the
risk out of a map. Even in "Legendary", unless you really mess up and drop
all the wool in lava or something, you can just set your bed spawn
near an area, and try over and over until you get it right. I think
that's pretty Easy on the player, even if the area you are attempting
is challenging.
Call me nostalgic, but I kind of miss (sometimes) the GAME OVER
screens from older video games. Modern video games, in the name of
convenience, typically feature unlimited lives, save games,
checkpoints, the works. But beating a modern video game, I have to
admit, is much less satisfying than beating some of those old NES
games. You can just bang your head against the game until you get
lucky and get through an area. Heh, man this makes me feel old! "In my
day, we didn't have all those checkpoints! We had three lives! One hit
deaths! And we were happy!" *shakes cane*
Anyway, I do think this is a legitimate point of concern on modern
game design, is risk versus reward. It is possible to make games so
easy that they are very unsatisfying...
I'm an admirer of your ability to create new
genres of map. Have you made experimental Minecraft maps that just
didn't work? What's in your "abandoned projects" folder?
The only thing I've actually stopped on, is "Race for
Wool #3: Common Ground". Because it basically became "Capture the Wool".
Have you ever made maps for a game that
featured scriptable events? If so, do you miss that capability in
Minecraft?
I have used C++ to code some text-based games. I have
also used various scripting languages in the process of making mods or
making my own games with existing engines. You do have some limited
"scripting" ability in Minecraft, using redstone. Check out the
Rumbling Caverns in my tenth map and you will see what I mean. :)
But yes, I would love some even rudimentary scripting in
Minecraft. I believe a while ago, I proposed invisible effector
blocks, that you can place with Creative or MCedit, that modify the
immediate environment around them. Like, an invisible block that makes
monsters not spawn within 50 blocks. Or one that doubles monster
spawning within 50 blocks. Or one that makes it snow. Or one that
makes a ray of sunlight always be shining on that spot. Or one that
makes the temperature freezing so any water turns to ice. Simple stuff
like that. They would show up faintly in Creative mode, but be
invisible while in survival mode.
What would you like to see added
to Minecraft? On your forum thread you mention that
you'd like to add sharks and underwater plants to "Endless Deep". What
else?
Bow enchantments... more mining enchantments, such as
area mining. Check out episodes 04 and 05 of my
Spellbound Caves Dev Commentary.
For bow enchantments, I would like:
- Piercing (Arrows go through monsters and cause damage in a straight line.)
- Toxic (Arrows cause poison.)
- Fire (Arrows ignite enemies.)
- Knockback (Arrows cause knockback.)
- Phantom Spreadshot (In addition to your one normal arrow, you fire out additional ghost arrows (higher ranks provide more) that act like normal arrows, only you cannot pick them up, and they quickly vanish after hitting the ground.)
- Explosive (Arrows cannot be reclaimed and cause a small explosion, could possibly be combined with the fire enchant, so arrows function like ghast projectiles, causing an explosion and leaving fire.)
- Charge Speed (You charge your bow faster.)
- Unbreaking (Your bow lasts longer.)
I think these enchants for bows would make bow combat much, much
more fun. It's currently fairly slow paced, and a bit boring. Imagine
a bow with Toxic, Piercing, and Phantom Spreadshot on it! It would be
so much fun to shoot groups of enemies with a bow like that.
You have a creative relationship with some of
the people who do Let's Play videos of your maps. It's a kind of
relationship I've never seen before: the way people play your maps in
public affects the way you design later maps. How did these
relationships develop?
Very organically. Zisteau agreed to LP my very first
map, "Sea of Flames" version 1.0, and ever since then, he's been
involved in playing my maps, and giving feedback.
There's a very clever trap in "Spellbound Caves",
[location redacted]. It's clever for many reasons, but I'm
asking about it because it doesn't seem to have any triggering
mechanism. I went in afterwards and took the walls apart and couldn't
figure out how it works. What's the secret? Or is there a pressure plate somewhere
that I missed?
I has a seekret. Oh, also, I hate you, die in a fire.
POSTSCRIPT: With my interviewee uncooperative, I had no choice but to load a fresh version of "Spellbound Caves" into an editor to get to the bottom of the mystery. What I found was a trigger that did not shock me to the core of my being. But it is a cool design.
The trigger is a proximity sensor: a shaft behind a wall, with a creeper spawner at the top of the shaft and a pressure plate at the bottom. When the player gets within 16 blocks of the spawner, it activates and spawns a creeper, which drops onto the pressure plate, triggering the trap. The resulting explosion obliterates both creeper and spawner, leaving no trace of the trigger.
And that's what you get with Vechs' maps: MacGyver-like use of everything the game engine provides, to create confounding and unexpected effects. Seriously, game studios: hire this guy. Everyone else: play his maps.
PPS: Hey, people from minecraftforums.net, thanks for coming over. I've written other articles about Minecraft (1 2 3 4), and if you like my stuff, you might want to check out my novel about alien video games.
Tue Jan 10 2012 08:43 CG Author Commentary #7: "Party Creation":
Ariel's Twitter will be pretty quiet this week because the entire
chapter takes place over the course of one day. Your only solace is farmers market quail sausage, and this COMMENTARY:
In this chapter we meet Bai's girlfriend, Dana Light. Sort
of. Dana is the bane of this minimal-spoiler commentary because it's a
bit of a spoiler even to treat her as an important character instead
of a bit of character development for Bai. But she is important--Bai
was defined in terms of Dana, not the other way around, and I found
Dana interesting enough to make her the star of the first bonus story,
"Dana no Chousen."
Chapter 10 will be a very Dana-heavy chapter. If I hadn't been
writing a novel when I came up with the character, that chapter would
have become a standalone short story. Of course, once I had the
character, Dana quickly became important to the story (spoiler!!) and
after selling the book I moved bits from Chapter 10 backwards into
this chapter so as to introduce her earlier.
More on Dana and Dana/Bai in a few weeks when I commentate chapter
10, but for now you might enjoy going back to chapters 3 and 4 and
re-reading the earlier references to her.
- Bai is pretty ditzy when it comes to women, because that was the
only way I could get him into this relationship without making him
stupid or a Love Plus-style otaku. If I was a better writer I
might have come up with a better solution, but I'm at the level I'm
at. However, there are a couple moments later on when Bai is
surprisingly perceptive about Ariel's love life.
The other introduction in this chapter is Sayable
Spice, probably the game most important to the plot. In the
second draft, Ariel talked about Sayable Spice a whole lot, but
it wasn't until chapter 14 that he mentioned that he was working on a
remake. Now Jenny forces Ariel to commit and puts a stop to that
nonsense right quick. Thanks, Jenny.
- When I got rid of Bruce, the character you'll never see, I gave
most of his scenes to Bai. (Eg. it was originally Bruce playing Knockdown Dragout in chapter 4.) I'm pretty sure the scene in the backyard
here is the only Bruce scene I gave to Jenny. Nobody cares!
- This is also the only chapter in which Bizarro Kate has a speaking part. In the second and third drafts, she hooked up with Bruce at this chapter's cookout, and later in the novel they were living together. Hers was a supporting role to begin with, and when I eliminated her major-character boyfriend, she got
cut down to just a walk-on. But I really like the character, and I gave her a chance to shine (ie. be cranky) in "Found Objects", the Jenny story.
- I think Tennis For Two is the only real-life video game I
mention in the novel. There was no other way to get the joke to work.
- The tattoo joke I had to cut from chapter 19 has landed on Twitter. Relive the saga: 1 2 3 4. I don't think I needed to actually present the translation. Oh well.
- Around this time I planned on changing Ariel's Twitter profile image to the duck from the Crispy Duck Games logo, but it didn't look good, so I think I'm/he's going to stick with the pissed-off pony.
- The only other
thing I want to say about this chapter is you see a little bit more of
how old ET video games just aren't as interesting to other people as
they are to Ariel.
Stay tuned for chapter 8, a chapter I think is one of the best in
the book, the chapter that got me to give up on the first draft and
rewrite the entire book to be more like it. The only chapter in which
Jenny will say, "Wait a minute, are you naked?"
Image credits: I got the first image from Flickr user marsmet462, not sure if they put in enough transformative elbow grease to put their own license on it. Second image comes from Sven-S. "☃" Porst .
<- Last week | Next week ->
Mon Jan 09 2012 06:30 Connected Tragedies:
Sumana noticed this. 1, 2.
Sat Jan 07 2012 10:18 Dear Santa: Dinosaurs:
My niece's Christmas stocking project.
Wed Jan 04 2012 11:38 GeekDad Reviews Constellation Games:
Wired's Jonathan Liu got an advance copy and calls it "a perfect blend of aliens, video game geekiness, and modern social media." Other quotes relevant to my interests include "absolutely loved it — it might not be the best book I read in 2011, but it’s certainly in the top 10."
C'mon, folks, do I have to draw you a picture? Because I can't draw very well. I use words instead.
(1) Tue Jan 03 2012 08:49 CG Author Commentary #5: "The Stars My Screensaver":
Yeah, you know it's getting serious now. The microblog archive is up, I'm feeling good and it's time for some commentary:
- The chapter title is one of my favorites, and I'm proud of so many lines in this chapter. I especially like "The
aliens are not a dessert," the Paperwork Reduction Act line I used as last week's teaser, and Curic's unintentional poem about the nebula. I didn't
realize until after I'd sold the book that the odd line breaks I used
for Curic (meant to convey the rhythm of her native language) turn
everything she says on IM into free verse.
- Ariel's older brother Raphael has been mentioned several times
before, but I forgot to talk about him. Because there's not much to
say. He never shows up in the novel except in stories Ariel tells
about when they were kids. But I needed to establish Raph's existence so it's not a big surprise when Ariel pulls out those stories.
In my mind, Raph is now an economist for the IMF or something. His
parents are very proud, Ariel less so.
- The Bureau of Extraterrestrial Affairs first showed up in
"Vanilla". It was presented as less sinister and more farcical, mainly
because the protagonist of "Vanilla" is in a good position to
manipulate the BEA, and Ariel is not.
Want to know something hilarious? In the first version of this
chapter (second draft), BEA agents Krakowski and Fowler didn't even have names. In
his blog, Ariel called them Good Cop and Bad Cop, after their roles in
this initial conversation. My writing group raised an enormous stink
about this, and eventually Ariel made up ridiculous fake cop-show
aliases: Krakowski and Tonsil. But as the second draft progressed and
the BEA agents became essential to the plot, I found it harder and
harder to have a character named "Tonsil" deliver important lines.
Also, I'd never given them personalities. You couldn't tell who was
talking. It was awful. Writing group conversation: "Why do you even
have two of them?" "Well, they're Men in Black, there's always two of
them..."
After completing the second draft I considered a number of ways of
distinguishing the characters, including making Krakowski a woman. That
didn't happen, not least because it would turn Krakowski/Fowler into
Scully/Mulder. But out of that thought process and the Good Cop/Bad Cop thing came the distinction I
went with. (Highlight to reveal spoiler:) Fowler is
everything Ariel hates: a reactionary thug getting by on his charm and
connections. Krakowski is basically the same person as Ariel: an
outsider, a xenophile, smart and driven. But Krakowski and Fowler
have the exact same job.
I'm pretty sure 9/11 didn't happen in this universe (and at this point you might be able to guess why not), but there's a Department of Homeland Security anyway. Go figure.
- One of my favorite feelings when writing is the realization that
you can reuse a detail that earlier was merely incidental. "Limited Nuclear Exchange" is just a random game reference in this chapter, but much later in the book I needed to write a tense conversation between Ariel and Jenny, so I set the conversation during an LNE session and fleshed out the game: a board game, a cross between Twilight Struggle and Twilight Imperium that takes half an hour just to set up and generally ends abruptly with both players losing.
That's a small example, but in a couple chapters there's another
offhand reference that greatly shaped one of the most important scenes
in the book. Watch for it! Specifically, watch for me pointing it out.
- At the end of this chapter you see exactly the thing Krakowski is
afraid of at the beginning: a race to the bottom. Once one country
opens up to the Constellation, the united front crumbles. How long
until the USA acquiesces to the alien anarchists' demands in exchange
for access? Not long at all, considering I need to keep the plot
moving.
And there's the commentary. Stay glued to the proverbial set for chapter 7, when Ariel will say, "Well, her hardware's Chinese..."
Image credits: Gisela Giardino, The United States Department of State, and the East German postal service.
<- Last week Next week ->
(3) Mon Jan 02 2012 19:32 Frances Daily:
We're out of the gate with the first Crummy project of the new year. I spent Christmas in Utah, and while I was there my sister Susanna foisted on me my mother's old Franklin day planner. She's already typed up my mother's Franklin diary from the 80s and 90s, a diary very similar to the weblog she kept from 2001 until she died in 2006, so all that was left of the day planner was an enormous block of calendars.
It's a very detailed calendar that will be useful for family history purposes but quite boring otherwise. Except, at the beginning of each month there was an "index" page on which my mother had written a brief summary of every day of that month. There were index pages from January 1987 to November 1990, with a few sporadic months from later on.
The cumulative effect of these daily summaries was incredibly powerful. This was a time of major upheaval in my family, leading up to (but not ending with) my father's death in 1992. The monthly summaries show my mother trying to keep it together while studying for a graduate degree and raising three kids pretty much on her own. It's inspiring and a bit horrifying.
I've started a Twitter account, @FrancesDaily, which is using Sycorax to reprint the daily summaries 25 years after my mother wrote them. (Here's the RSS feed.) The summary for each day will go up at 4 PM Pacific time. It's a little spotty in January, but once it picks up she doesn't miss many days for the next three years.
I don't know what the effect of the summaries will be when experienced in real time. Probably when I read one I'm going to mentally compare my day against the day Frances had 25 years earlier, and you might want to do the same.
This is a much lower-bandwidth project than Roy's Postcards, but where my father's writing almost never showed any emotion, these summaries pack a lot into just a couple words. Susanna read the index and said "Mom was really hard on herself." So please take entries like "wasted day" as accurate depictions of my mother's mental state, but not necessarily of reality.
A note about the names. I did the thing you frequently see in old journals that have passed through the hands of the journal-writer's descendants, and replaced most of the names with initials. For instance, the January 18 summary, "Mario's Eagle", became "M's Eagle". The Mario mentioned is Mario Canton, one of my dad's Boy Scouts and later a family friend. I initialized most of the names because you don't have the context to know who all these people are, and I think giving each entry an explanation significantly longer than the entry itself would ruin the effect.
In a few cases, making peoples' names into initials was also necessary to protect their privacy. I left a few names intact: mostly my mother's close relatives like her aunt LeJeune ("Jeuney"), her sister Anne, my father, and of course me and my sisters.
Again, that Twitter account is @FrancesDaily. Here's the RSS feed.
(5) Sat Dec 31 2011 12:44 The Crummy.com Review Of Things: 2011 Edition:
Man, too busy even for proper navel-gazing this year. Fortunately I already did a lot of the work for this post, so it's just a matter of... doing a lot more work.
First, the main course: Best of Crummy for 2011! Yeah, the main course is coming first. Because we're all busy.
Twitter update: Every year since my curmudgeonly 2008 post I've dreaded having to write this, but this was the year I started posting to Twitter. Fortunately, I've been able to launder most of my pithy, trite observations through a fictional character.
Reading: My records are a little spotty but I don't think I read more than twenty books this year. Of these, the best was On The Origin Of Species, which is still very readable and holds up pretty well for a biology book written by someone who didn't know about genes.
The Crummy.com Non-Public Domain Book Of The Year is Carrying The Fire: An Astronaut's Journeys by Michael Collins, an incredibly informative biography and which I probably should have read earlier for novel research. At the end of Carrying The Fire Collins says he could write a whole book on the year he spent post-Apollo 11 as Assistant Secretary of State for Public Affairs during the Vietnam War. I would love to read that book.
Writing: On the other hand, I did quite a lot in 2011 to advance the cause of other peoples' reading. I completed, sold, revised and started serialization of Constellation Games. I completed three (almost four, but one needs a rewrite, so three) short stories. And, I worked four months for Findings.
Findings needs its own post, and I should have written that post in October, but in a nutshell, Findings takes the highlights and notes you created when you were reading a book on your Kindle, and copies them outside Amazon's ecosystem so you can share them, search them, and do work with them. For instance, that link I gave earlier to On The Origin of Species was not a useless link to a generic summary or storefront for one of the most famous books ever published; it's a link to my reading of the book, which is useful at least to myself.
With Findings you can also clip from web pages, and the last thing I did there was design a web service for them, so hopefully it can soon be made to work with software and readers other than Kindle. Findings solves a lot of the problems with the Kindle specifically, and with an ebook-based reading style in general. I'll definitely go into more detail later when I don't have a bunch of other aspects of 2011 to go into.
Audio: Best of newly subscribed podcasts: The Famicom Dojo podcast and The Dice Tower.
The Crummy.com Album of the Year is "Princess Ghibli", an album of heavy metal covers of songs from Studio Ghibli movies. The new-to-me runners-up are also Japanese: chiptunes from YMCK and sample-based insanity from Plus-Tech Squeeze Box. Foo Fighters and Tally Hall also maintained their standard of quality with great new albums.
Video: I watch TV with Sumana, so I can't do anything more than echo her recommendations. Breaking Bad shows characters nerds can identify with doing horrible, horrible things. And The Dick Van Dyke Show is probably the most realistically-written sitcom I've ever seen. In web video, Noah Antwiler's "Counter Monkey" series of teenage RPG monologues, and Brad Jones' nostalgically obscene "'80s Dan". In between, the Something Awful translations of GameCenter CX episodes, which this year went from nowhere to having one of the translators get her fan art shown on the show.
Crummy.com Film Of The Year: The Muppets. All other films are disqualified for not being The Muppets. I run a tight ship.
Food: In 2011 a bunch of new restaurants opened up near my house! It was great. The best are Queens Comfort, Pachanga Patterson, and amazing surprise latecomer Butcher Bar, which is so new it doesn't have a proper website yet. Honorable mention to Sugar Freak for fried chicken.
In non-Astoria food: while working at Findings I ate a lot of good lunches from Chelsea Market (#1: quinoa salad from Amy's Bakery), and the burritos from the secret Chipotle were much better than any burrito I've had at any other Chipotle.
Games: Apart from "Minecraft" (Crummy.com Game Of The Year, honorable mention to Vechs' amazingly well-crafted "Super Hostile" series of Minecraft maps), a pretty lean year for video games. I didn't buy a 3DS, or any Wii games for myself. I did buy a lot of games in Humble Indie Bundles, but then didn't get a chance to play most of them.
I rediscovered a love of tactical games like "Frozen Synapse" and the "Tactics Ogre" remake for the PSP. But this was the year I decided I don't like JRPGs. "Radiant Historia" has a lot of really great ideas but the plot was generic and despite a tactical battle system, I only had to come up with new tactics twice. Both failures I place squarely at the feet of JRPG design. I bought two other well-reviewed DS JRPGs and was immediately bored with them. So, probably no more JRPGs for me, until they do more Paper Mario. Those games are hilarious.
Board games fared a lot better, as my gaming group tempered its tried-and-true conservatism with Pat's early-adopter enthusiasm. "7 Wonders", "Alien Frontiers", and "Pandemic" were the big newcomers, with strong supporting players like "Power Grid" and the surprisingly hilarious "Carcassonne: Hunters and Gatherers" (Crummy.com Board Game of the Year Because 7 Wonders Already Won The Spiel Des Jahres, It Can't Win Everything, Geez). "Dominion" and vanilla "Carcassonne" remain strong, "Quarriors" fizzled out early.
Next year: "A Few Acres of Snow", I hope? Also the Kickstarter reward games will really start getting to the table. If you live in New York and want to play board games occasionally, let me know.
And, looking into 2012 more generally: I can promise lots of cool Constellation Games stuff, since I'm already committed to or have already written it. Beautiful Soup 4 will leave beta. (It needs a little work and I need to write new documentation--but please use it now, it's already better than BS3 in my opinion.) There may be more REST stuff, and/or another novel. There will probably be more Month of Kickstarter-type experiments, if not a whole nother MoK. And more currently-secret projects to tantalize you, my friends and readers. Let's keep it going.
Want more? Here's Sumana's year-in-review.
(2) Tue Dec 27 2011 11:31 CG Author Commentary #5: "Let's Play":
After some polite outcry we're back to commentary on Tuesday. I don't
have a lot to say about this chapter, and/or I'm fighting off an artisan seasonal cold,
so this one's relatively short.
I got excited while writing this commentary, because I was going
through my earlier drafts and I remembered that Constellation
Games has deleted scenes! But then I was a little less excited because the deleted scenes don't start until chapter 25. Let's not think about the deleted scenes for a while.
Most of this chapter is new in draft 3. Ariel's dysfunctional
relationship with Reflex Games became more important the further I
went through the second draft, so I had to add an early scene to set
it up.
Also missing from the second draft was a sense of how Crispy Duck
Games came to be. Crispy Duck was always supposed to be important to
the story, but Ariel kept futzing around on side projects until very
late in the book. The idea of remaking CDBOEGOACC games didn't come
up until chapter 14, and the company name wasn't mentioned until
chapter 24! I got rid of one of the side projects (more about this
later) and dramatized the creation of the game studio in a way that
makes it clear that Jenny is involved in the project from the start.
The two new scenes also flesh out some character bits I didn't cover in
the second draft: why Ariel thinks the CDBOEGOACC is a gold mine, why
others disagree or don't care, and why peoples' objections just make
Ariel more determined to prove them wrong.
- The Reflex scene is supposed to be reminiscent of "Mallory", with
the whiteboard gag and the awkward demo.
- Gatekeeper was mentioned near the end of the abandoned
first draft, in a very high-level essay on Farang game design. Around
that time my writing group convinced me I needed to write a story
instead of a bunch of high-level essays. In the second draft I focused
on individual games like Gatekeeper, which let me do exposition
while staying true to Ariel's voice.
You might have noticed that Gatekeeper is very similar to Pong. I wouldn't be surprised if one of the settings on Atari's Video Olympics was equivalent to Gatekeeper. It's such a simple game we considered implementing Gatekeeper for iOS as a subscription bonus, but... no time!
- The breakthrough moment for me in understanding Farang psychology
was writing Curic's lament about half of a person dying and the other
half wanting a refund.
- Ariel's great-uncle Toby is a Tuckerization of my friend Lucian
T. Kahn, but it's also a reference to Tristram Shandy.
Now that Ariel has (limited) ability to translate the CDBOEGOACC I
can dump all my unused ideas for games/hardware into the Twitter feed!
Except that I didn't do that. The stuff you saw last week, the computers
powered by pulsars and so on, was all new material. Almost all the
stuff going forward is also new. I'm not sure why I reused so little.
Partly because the Twitter medium
allows for different kinds of jokes, partly because my leftover material wasn't as good as I'd been imagining, but also because it's fun to come up with this stuff. Every game or piece of hardware is a little SF story, a glimpse into an alien culture.
And there we go. Tune in next Tuesday for the heart-pounding chapter 6, when Ariel will say, "This form is a fake. There's no Paperwork Reduction Act notice."
[Drawing credits: Brandon Eck and NASA.]
<- Last week | Next week ->
(3) Wed Dec 21 2011 11:25 CG Author Commentary #4: "Too Much Information":
I'm experimenting with posting these commentaries on Wednesday to give you time to read the chapter. I don't think a lot of people read these commentaries right now, but feel free to complain if you want it sooner. It's easier for me to put the commentary up on Tuesday along with the Twitter archive, but I think this might be a little better for you.
So! This is where the engine of the novel starts running. We've introduced the human characters and their dynamic, they have a gateway to the Constellation in the form of Curic, and in this chapter we meet the main plot drivers for Part One: the Brain Embryo computer, and the Constellation Database of Electronic Games of a Certain Complexity (hereafter CDBOEGOACC).
Now's a good time to talk a bit about the three bonus stories,
because one of them takes place right after this chapter. "Found
Objects" is a story about Jenny Gallegos and what she does with the reentry foam that the Brain Embryo was packed in. "Dana no Chousen" features Dana Light, a character who's been
mentioned (as Bai's girlfriend) but not introduced. I'm currently
working on "The Time Somn Died", which features a character you
haven't met yet.
If you subscribe at the Bronze level you'll get one story, probably
"Dana". Subscribe at Gold or above and you'll get all three. There's a fourth story, "A Princess of Mars", which I won't have time to finish. But I might do it as a promo later, or write it to be sold separately.
How these happened: after finishing the second draft I realized
that although I'd created a lot of interesting female characters, the
POV is so tight around Ariel that a) the only one who'd gotten the time she deserved was Curic; b) my
novel didn't pass the Bechdel test. I fixed b) with some cheap tricks
which I'll point out when the time comes, but a) left me unsatisfied,
so when it came time to plan bonus material, I decided to write
stories about and from the POV of the women in the story.
Like I said, I'm not done with the stories, but I think this strategy works
really well. Each bonus story presents a part of the world that wasn't
shown in the novel, while recontextualizing what was shown.
And now, random notes on chapter 4:
- As you can see
here, Rachel Chalmers is the one who came up with "Knockdown
Dragout" as the name of the antistrip poker game.
- I hope you enjoyed guest stars L. and Zhenya, because they won't
show up again now that Ariel has quit his job. A couple things about
them, and about Ariel's now-former employer:
- Zhenya is the @Engineer_Evgeny Ariel has been talking to on
Twitter. I think Evgeny is a great name. I was so excited that I had
finally named a character Evgeny, even a minor character. Then I
brought the Evgeny chapter to writing group and a member who'd spent a
lot of time in the former Soviet bloc said "If your name is Evgeny,
everyone calls you Zhenya." It's the same as Eugene/Gene, I
guess.
- L. dismissively refers to his henchmen as "caipiras", which,
according to my former co-worker Guilherme Salgado, means
"hicks". It's the same root as "caipirinha", which by semi-coincidence
also shows up in the novel.
- Salgado also told me that Brazilian software companies commonly
have English names. The Brazilian game company is never named in-story,
because explaining that would take more time than it's worth, but FYI
its name is Tin Soldier Games.
- I wrote a scene where Ariel tells his manager that he's quitting,
but I cut it for two reasons. 1) L. is a perfectly acceptable stand-in
for the manager, so I don't need the extra character. 2) In the third draft I
added a similar but much more interesting scene to the next chapter.
In the book as sold, I had a character named Bruce who
was... kinda dumb and not that interesting. I got rid of him and gave
all his scenes to Bai or Jenny, which improved those scenes
greatly. But one scene I couldn't farm out was a funny bit involving a
tattoo Bruce took from a Constellation design without knowing what it
said. I gave the tattoo to an offscreen character (Martin) and moved
the bit to the Twitter feed. The joke may not work in real time because the payoff isn't until next week, but I can write it off on my creative taxes as a social media experiment.
- The Scorpion is an actual Russian clone of the ZX Spectrum. IIRC
all the human computers in the novel are real or realistic projections
of existing brands (DS Twin, Xbox Forever, PS4). I would have loved to
make up totally new hardware and brands like in "Mallory", but it
would leave you confused.
- The biggest alt-history elements in the story have to do with
space: the abandoned moon base Glavanya and the end of the Shuttle
program post-Columbia. I use these as background throughout the
story, but I could have done without them, and people in writing group
suggested I scrap them. Certainly the book would be tighter if I'd scrapped them, but for me the abandoned base and the long-grounded orbiters
give the story an air of melancholy and longing, especially when
contrasted with the Constellation's capabilities.
In the first chapter I considered mentioning a resurrected Glavanya
crew in Ariel's fantasy, but it seemed disrespectful to put made-up
people alongside the real people who've died doing space
exploration. So whatever happened to that last Glavanya crew, they
did make it back to Earth. And if you've been following the Twitter feed, you've seen that they got to go back to Glavanya.
Tune in next Tuesday for Chapter 5, when Curic will say "I am going to do research on human zombies to prove you wrong."
[Photo credits: BuenosAiresPhotographer.com and NASA.]
<- Last week | Next week ->
Tue Dec 20 2011 09:38 Street Performer Protocol:
As far as I can tell, Kickstarter-style crowdfunding was introduced to the world in John Kelsey and Bruce Schneier's 1998 paper "The Street Performer Protocol". When I first heard about Kickstarter I thought "finally, a site that implements the Street Performer Protocol." Except Kickstarter doesn't implement the SPP.
The SPP funds the creation of public works. "[P]eople would place donations in escrow, to be released to an author in the event that the promised work be put in the public domain." Or whatever--Creative Commons didn't exist in 1998. A Kickstarter user could choose to implement the SPP, but almost nobody does.
They use Kickstarter to fund (say) a book, and then only a few people get to see the book. Or then the book goes on sale. It's cool that the book was made/reprinted, but the world would be a better place if everyone could have a copy. (I hope it's clear that I'm talking about projects with zero marginal cost like texts, not things like ice cream trucks.)
Jason Scott is the big counterexample. He's using Kickstarter to fund his documentaries, which he releases under CC licenses. It's also pretty common to use Kickstarter to fund open source software. Why don't more people do this?
The biggest obstacle to implementing the Street Performer Protocol is that most people don't know about it. But even someone who knows might not want to use it, because the SPP is susceptible to the free rider problem. Why back a project when you can wait for someone else to back it and reap the rewards?
The Rational Street Performer Protocol deals with the free rider problem, but it's an iterative protocol and it's pretty complicated. In real life, people deal with free riders by introducing scarce rewards into the Kickstarter reward tiers. A copy of the work is a very effective reward, so a project runner may rationally decide to keep copies scarce with copyright.
I'm interested in alternatives. Physical copies of music/books are intrinsically scarce, and they make a good choice for that all-important $25-$50 tier, but a lot of people (including me) would generally be happier with an electronic copy because we don't need more physical objects in our lives.
Another possibility is time-limited scarcity: offer backers early electronic access to a work that will made public later. I was really excited about time-limited scarcity back in 2008 when it was just me thinking of crackpot ways to publish my fiction, but after getting some experience with crowdfunding, I'm not so sure. You gotta wait for this stuff anyway. It's been six months since Month of Kickstarter and I'm still getting things in the mail. (Just got a huge copy of Fealty.) If I have to wait for six months anyway, why shouldn't I wait nine months and get it for free? If I'm funding the creation of a work, rather than publication of something that already exists, the wait is even longer. Is a twelve-month wait really that much better than an eighteen-month wait?
I don't have any other ideas right now, but I wanted to write this down as a starting point. I'd really like to see crowdfunding used as a way to ransom works into the commons, but it's hard enough to get your project funded without taking away one of the reward tiers.
BTW, this is another reason why board games make great crowdfunding projects. They're intrinsically scarce. You can make an unauthorized copy of a board game, but it's a huge pain, and it'll probably remain a huge pain for the next five years.
Mon Dec 19 2011 11:39 Month of Crowdfunding:
Hey there. Readers know that I backed a lot of Kickstarter projects this year (182, to be exact), but I've also dabbled in other crowdfunding websites. I mostly use Kickstarter because their site is by far the easiest to use, but my loyalty is to interesting projects, not to the hosting site.
There are a buttload of these sites, so with one exception I'm only going to list the ones I've used. Let me know if you've had good experiences with any others, on the money-raising side or the funding side.
- Kiva is not quite like other crowdfunding sites because a) it's a charity, b) you're making a no-interest loan that gets repaid, and c) despite what the interface implies, the loans have already been made and you're actually loaning to the intermediaries who made those original loans. But, it was the first crowdfunding site I ever used, and I think its easy-to-use design inspired Kickstarter's design.
- I've funded a couple projects on IndieGoGo, but only when I find out about a specific project through some other mechanism, because IndieGoGo makes it even more difficult than Kickstarter does to see all the new projects. Of all these sites, I think IndieGoGo offers the strongest competition to Kickstarter.
- I funded several of the SciFund Challenge projects on Rockethub, but their site is confusing as hell, so I haven't used it apart from that. Bizarre metaphors like "Fuelpad" abound, and neologisms like "Creatives" are used in a way that makes me think the site's run by Jack Donaghy. A lot of this design is explained by the hypothesis that the site was designed to appeal to those who want to start a project (aka Creatives), not to people who want to fund.
- 8-Bit Funding is a video-game-specific crowdfunding site. I haven't used it because I couldn't find any games that I'd be able to play once they were released.
OK, I think that's enough crowdfunding stuff on this weblog for 2011. Notwithstanding that we already have enough, I'm going to post one more entry, about the Street Performer Protocol.
Thu Dec 15 2011 08:47 Hypothesis Confirmed:
I know you're excited about the evidence for the Higgs boson, but I was going through NYCB's 2011 archives for the inevitable year-end "best of" entry, and I noticed something even less amazing.
Earlier this year as part of Loaded Dice I made a list of "Pre-1990 games still greatly in demand". I suggested that someone could make some money reprinting these games. When I reread the NYCB post that linked to that list, I remembered an ongoing but very polite dispute in which two different game companies plan to reprint "Merchant of Venus", having acquired the rights from two different sources. I checked on my "someone should reprint" list, and sure enough, "Merchant of Venus" was #4 on that list.
In fact, four of the top five games on that list were reprinted/remade in 2011, or will be in 2012. The other one is Crokinole, a public domain game that apparently just can't be manufactured cheaply because you have to use SFI-approved Canadian hardwood. Spot checks further down the list turned up other games like "Code 777" that were reprinted recently, and games like "Full Métal Planète" that were recently subject to unauthorized reimplementations. What I'm saying is, that list is marketing gold.
Wed Dec 14 2011 11:54 Programmable Minecraft 3: The Simplest Thing That Could Possibly Work:
In the previous installment of this series I went whole hog and created a simple event-based scripting language for Minecraft objects. Left in the dust were three ideas I had for blocks that let you do more with your existing redstone circuits. These blocks won't blow anyone away, but they would let creators add a lot more polish to their Adventure- and Complete The Monument-genre maps.
This is probably the last entry in this series, so take heart. I had an idea about using Minecraft blocks as placeable opcodes in the event-based scripting language, but... there you have it. That's my idea. And here are three more:
- Recognizer. This is a typed block, sort of like those annoying template classes in C++. When you craft it you add one block/item of your choosing to the recipe, and you get a recognizer for that. So you can get a green wool recognizer, or an iron pickaxe recognizer, or a snow block recognizer, or a snowball recognizer. The recognizer fires a redstone signal whenever it detects the thing it was crafted with. If you hit a snowball recognizer with a snowball, you'll get a redstone pulse. If you place a snow block next to a snow block recognizer, you'll get a steady signal.
With recognizers you can make victory monuments that do something when you place all the wool, and create honor-system lock-and-key puzzles beyond "find a lever and put it here".
- Chat box. I spent so much time in the first installment figuring out ways to get dynamic signs, but much of the time, using signs to convey information is a huge hack. The chat box is a simple alternative to putting random crap on signs when what you really want is to simulate dialogue or a system message.
When you place a chat box, you get to type in a message. When the chat box gets a redstone signal, it broadcasts that message in the chat window. Boxes can burn out (like redstone torches) if triggered constantly.
- Placement dispenser. Craft this from a dispenser and a piston. This is like a dispenser, but it places blocks instead of throwing objects. When a placement dispenser reads a redstone input, it places a block in front of it (vs. the normal dispenser, which throws its contents). If there's already a block in front of the placement dispenser, it acts like a piston.
If you put a bucket of water or lava in the placement dispenser, it will dump out the liquid when it gets a redstone signal. If you put a flint and steel in the placement dispenser, it will light its adjacent block on fire when it gets a redstone signal.
Throwing a block at the placement dispenser is the same as opening up the dispenser and placing the block inside--your block gets stored in one of the dispenser slots and can be placed later. This means you can have a normal dispenser feed a placement dispenser.
I don't think this gives you much on its own, since there's no way for the dispenser to move around, but I really feel a need to make it possible to lay down blocks programatically. And even without movement, you could set up a number of dispensers for cool effects such as creating and lighting a portal when the player steps on a pressure plate.
(2) Tue Dec 13 2011 09:09 CG Author Commentary #3: "Rare Drop":
It's Tuesday, and time for the first subscriber-exclusive chapter of Constellation Games. (Check your spam folder.) Been holding out for a better deal? Here it is: for the rest of December, when you subscribe you get a gift subscription to give to a friend, so you'll have a speculation partner.
Here's the microblog archive for chapter 2, let's get cracking on chapter 3! Sumana requested appropriate pictures to break up the huge wall of commentary text, so I'll be picking some from Wikimedia Commons/Flickr every week. This week's pictures are by Mike Baird and NASA Langley.
- Yay, Curic. The most non-human of the non-human characters. All my characters have problems, but I think Curic's are the best. A bit on her/his (henceforth "her") origin.
In 2007 I wrote a novella called "Vanilla" which laid out the
Constellation universe more or less as you see it in Constellation
Games. I couldn't get the novella published so I left it in the
metaphorical drawer until Simon Carless asked if I wanted to write a
serial novel for GameSetWatch, and then I sucked out all the
worldbuilding for Constellation Games.
I'll mention "Vanilla" several times in this commentary, but here's
what I want to say now. "Vanilla" had a bunch of ET characters and I
was happy with their diverse physical designs, but most of them had
minds similar to human minds, or had adopted human ways of thinking as part of the contact mission. I'd mentioned a species called the
Farang, and implied that they were a big deal, but none showed up in
the story and almost nothing was said about them. I'm pretty sure I
was leaving myself some space to fill in later, so thanks, previous
self.
At the time I was starting the novel I had just read The Origin
Of Consciousness in the Breakdown of the Bicameral Mind, and I
thought it would be cool to write a character with a dual mind. Not as
described in Jayne's book, because I felt like Neal Stephenson had
already gone there, but someone whose brain was dual-booting two
different operating systems. Thus was born Curic, the furry
ocean-predator anthropologist(s).
When I wrote Constellation Games I left space for "Vanilla"
to happen afterwards. If you know what happens in "Vanilla" you can
read between the lines of the novel and see "Vanilla" shaping up. But I dunno if I'm actually going to rewrite it--I had my
chance when we were deciding on bonus material, and I chose to write
new stuff with the CG characters instead. I think that's what you'll
want, and I feel like CG says a lot of what I wanted to say in
"Vanilla", more effectively.
- "You've seen the anarchists in Austin. They couldn't hold a city park." is one of those lines that shifts connotation dramatically between the time you write it and the time it's published.
- Ariel's chat with Bai re: why only certain kinds of ETs go on
television is also addressing a fact about this novel. Most of the ET
characters in Constellation Games are Farang or Aliens, because
those two species are the most human-like, because I need to mostly
write computers that Ariel can physically operate. The twenty other
species on that space station stay mostly in the background, more so
than in "Vanilla".
I'm not really happy with this, but it came out of writing a
relatable story about computers instead of (first draft) accurately
recreating someone's boring retrocomputing weblog.
This is probably obvious, but all the Constellation species
have names taken from different human cultures' terms for "alien" or
"outsider". Later on you'll see Gaijin, Inostransi, etc. Basically, I didn't want to come up with made-up names that you wouldn't remember. I tried
pretty hard to get these right and to not use terms solely intended to
offend, but if I screwed up, let me know and we can probably fix it in
the paperback.
After I wrote "Vanilla" I read a Steven Baxter book (one of the
Manifold series) where humans discover but can't communicate
with an alien species, and name them the Gaijin. Same idea.
This convention was, of course, inspired by the Ferengi from
Star Trek. When I was a kid I read in some behind-the-scenes
book that the Ferengi were named from the Arabic "faranji". What? Who
named them that, in-universe? Was it humans? Why did the Ferengi go
along with it? It can't just be their name in English, because the name
of their home planet is "Ferengenar". That naming convention doesn't
make much sense for Star Trek Ferengi, but it could conceivably happen in a situation like the Constellation contact mission.
- The June 13 blog post is all that remains of a complete review I
wrote of the Sun/Voice 2 RPG (first draft). I spent so much
time coming up with that game's backstory, how the series was Sega's
"edgy" response to the runaway success of Nintendo's Mother series. I
was so sad to cut all that stuff out, but none of it matters. What
matters is Ariel's increasing dissatisfaction with the status quo. And
that's all I needed from the Sun/Voice 2 review. Lesson learned.
- If you buy the Adamantium
Package, the USB key you'll get is a recreation of the
"Constellation Shipping" USB key Curic drop-ships to Ariel at the end
of this chapter. When selling a novel you send out the first three chapters, so I considered it absolutely vital that the third chapter end on this kind of cliffhanger.
That's plenty long for one week's worth of commentary. Tune in next week for chapter 4, when Jenny will say, "We're going to use as little alcohol as possible."
<- Last week | Next week ->
(4) Thu Dec 08 2011 16:48 Programmable Minecraft 2: Redstone Boogaloo:
I think my first post in this series left me too optimistic about how much you could really do for Minecraft map designers without making programming easier. I did come up with three useful blocks, but I'm gonna save them for a brief follow-up, and in this post I'll go ahead and sketch out a ZZT-OOP-like language for Minecraft.
My reasons are fourfold: 1) This level of abstraction is what I really want, not the circuit stuff. 2) it's simpler to interpret a simple scripting language than to simulate an equally complex circuit. 3) Apparently the next big feature in Minecraft is official mod support, which means someone could actually implement this. 4) I think it's more important that people learn how to program than that they learn how to lay out electrical circuits.
So instead of last time's circuit-level Computer block, imagine a software Object block. An object can take the appearance of any other Minecraft block, or it can have a custom bitmap that's loaded from a map-specific resource directory. An object also has a script, which is probably loaded from a file because I really don't want to use Minecraft as an IDE. The script is where the magic happens.
Here's a ZZT-OOP manual. (I think it's a copy of the original manual, it seems very familiar.) ZZT-OOP is extremely primitive, but because it's so primitive it can be explained in a weblog post, and I'm still familiar with it despite not having used it for fifteen years. So let me adapt it to Minecraft and we'll see what happens.
You program an object in ZZT-OOP by defining its response to stimuli. In Minecraft, stimuli might include:
- A {mob} touched me.
- A {mob} hit me in melee.
- I was subjected to an explosion.
- A thrown/fired {object} hit me.
- A placed {block} fell on me. (ie. gravel or sand)
- A {block} was placed next to me.
- A {block} next to me was removed.
- A {mob} entered/left my field of view.
- I was submerged in {liquid}.
- While moving, I ran into a {block}.
- The light level changed above/below a certain amount.
- I received a redstone signal from {direction}.
- A player placed/removed me.
- A player added/removed an object to/from my contents.
- I heard another Object (or myself) broadcast a named stimulus. (see below)
Maybe more. You get the idea. These are the events in the life of an Object.
You can program an object's response to a stimulus as a series of commands. A lot of these can be taken straight from ZZT-OOP:
- Move in {direction}. If you can't move, block until you can.
- Try to move in {direction}, but don't do anything if you can't move.
- Broadcast a named stimulus (see below).
- Change this object's appearance.
- Say something in chat.
- "Zap" this object's response to a particular stimulus, so that it won't respond to that stimulus anymore.
- Restore a previously zapped response.
- Silently self-destruct.
Here's an object that tries to move north whenever it's hit with a snowball:
:hit_with snowball
?n
In ZZT-OOP, {direction} means one of: north, south, east, west, randomly, away from player, towards player, in the direction of current movement, etc. In Minecraft you also have up and down, as well as "along the minecart track", "towards the sun", and perhaps others. In a multiplayer scenario, "player" is ambiguous, so I guess it's the nearest visible player.
Some Minecraft-specific responses to stimuli:
- Rotate to face {direction}.
- Display {text} on {face}, as though this object were a sign.
- Do a fuzzy teleport in {direction}, like an Enderman.
- Emit a redstone pulse in {direction}.
- Start/stop emitting a redstone signal in {direction}.
- Dispense an {item} in {direction}.
- Place a {block} in {direction}.
- Destroy and collect the {block} in {direction}.
- Set a fire in {direction}.
- Explode.
- Spawn a {mob}.
Here's a perimeter trap.
:can_see zombie
"Zombie alert!"
Some bits of ZZT-OOP don't make sense in Minecraft because they assume that the world is relatively small and divided into screens. ZZT-OOP has global flags, and the only conditional you can write is "is this flag set"? I propose replacing the global flags with player flags. This lets you track a player's progress and simulate an RPG's "items too important to keep in your normal inventory". It also works in multiplayer.
Conditional statements: I'm undecided. I can think of three ways to go on this, but explaining them all seems boring. (I'm eliding boring stuff throughout, actually.) So for the time being, I'll follow ZZT-OOP, and allow an if statement to check player flags but nothing else.
Now it's time to talk about named stimuli. A named stimulus is one you give a custom name and send out whenever you want. Instead of giving an object code that's triggered by :can_see creeper, you can give it code that runs when some other object emits :i_am_completely_surrounded_by_obsidian.
In ZZT-OOP, the range of a message is the current screen. But Minecraft doesn't have screens. How far should a message travel? For that matter, on a large map with many objects, how many of those objects should be simulated? This wiki talk page indicates that a redstone circuit stops working if you get more than 281 blocks away. It seems fine to say that that's the maximum range of a message, and that objects further away from that won't have their code run.
Time to take a step back. ZZT-OOP is a very primitive language, but the system I laid out above is good enough to script objects that make adventure maps a lot more interesting. It's also useful when you're just playing around on a vanilla Minecraft map. You can program objects to build bridges, lay rail track, scout ahead to light up areas, or create computational sculpture.
To build one of these Object blocks outside creative mode, you'd need something like the Replicator block from last time. Call it the Assembler. You'd load code from a file on disk, and drop in an appropriate object for each line of code: grey wool for the stimulus :adjacent_to grey_wool, raw porkchop + gunpowder for the command spawn creeper. If your object was capable of destroying blocks, placing blocks, or exploding you'd also need to provide the appropriate tools or materials.
Once you put in the necessary items, the Assembler would output your Object, which you could place and it would go to work. The correspondence between resources and code opens up a whole new type of Minecraft puzzle: that of programming an object to do what you want, given limited resources.
So, there you go. I think this is pretty good. I just ripped off ZZT-OOP, but ZZT and Minecraft have a lot in common, so it works. Another option is to rip off Robotic, Megazeux's scripting language. I don't know Robotic, but it certainly has a more active community than ZZT-OOP. The language doesn't matter a whole lot. Really all you really need from the language is stimulus/response. The fun is in tying the language into the game world so that objects can act on it.
[Part 3]
(1) Tue Dec 06 2011 12:09 CG Author Commentary #2: "Corner Pieces":
It's that time of the week again, the time when the air is filled with the navel-gazing sounds of Constellation Games author commentary. You can read chapter 2 for free, but this is the last week. Subscribe some time this week, or the commentary on stuff you haven't read will become increasingly mysterious.
The microblog archive for chapter 1 is up for those who don't use Twitter. I don't know how readable all that text is, but I also don't know how to design a website anymore. Let me know if you have suggestions. Note that, for your convenience, the tweets are filed under their in-story date, not the real-world date.
I'm trying out a list format for commentary this week. It might look weird, but coming up with segues between completely unrelated things looks weirder.
- The first chapter barely changed between first draft and
publication, but chapter two is the geologic column of the book laid
bare. The Quexx review was present in my abandoned first draft
and didn't change too much. The bike ride to the landing site was in
the original draft, but only as a short bitchy blog post; I dramatized
it in the second draft. Ariel's date postmortem was laid down in the
third draft. And the conversation with Smoke was one of the very last
things I wrote, after selling the book.
- The Quexx review lays out one of my "big idea" goals for
the book: to go past the fictional game designs where the game is just a metaphorical space, past the realistic
alt-history game designs I did in "Mallory", to explore what software
you might write for entertainment if you were a space
alien—someone with a drastically different body, sensory
apparatus, psychology, and culture from a modern human.
I certainly didn't abandon this goal, and hopefully when you read
the whole book you'll say "yeah, there was plenty of that", but it was
originally the central focus of the book, and I had to tone it down in order to end up with a story rather than a Perfect
Vacuum-esque series of game reviews. But if you like that stuff
and want more than you're getting from the book, a lot of the ideas that didn't make it into the novel will be showing up in the Twitter feed.
(I did come up with another solution, which was make one of the
weirder ET games into a MacGuffin. I immediately rejected this idea
because my original conception was "Lucky Wander Boy type crap", a much less sympathetic presentation than "video game as
MacGuffin". I'm glad I didn't do that, but I think it could work. Still not a huge Lucky Wander Boy fan, though.)
- This chapter is also the first we see of Jun-Feng Bai (KThxBai in the June 11 text chat), a character who's
not my favorite. Throughout this commentary I'm probably going to be
saying "I just love this character" over and over. Well, an author has to love their characters to spend so much
time with them. But I don't love Bai as much as the rest. I
originally defined him in terms of another character, and I don't
think he ever escapes that. He has really fun problems. He's the most
science-fictional of the human characters. He's good to have around
when you need some plot to happen but Ariel and Jenny are too emo to
go it alone. But he rarely surprised me.
I dunno if I should even be saying this kind of stuff when you barely know the character at this point, but I'm playing this author-commentary thing by ear.
- This chapter also introduces Smoke, the AI that operates the Ring City space station. I do like
Smoke a lot, so it's a shame you're not gonna see it/them again. Not
in this form, anyway. Smoke's fractal personality was inspired by Jeff
Hawkins' book On Intelligence and Daniel Dennett's
multiple-drafts theory of consciousness, both of which present
intelligence as the interaction of several less-intelligent parts. Not
the first time I came up with an alien based on someone's theory of
consciousness, as you'll see next week.
- While I'm talking about characters who don't show up again: I think the hippie is a pretty good bit character. The kind of character I like to see in other peoples' stories. He's clearly got a whole story of his own, but this isn't it, so you just get a glimpse. Sumana thought he was kind of preachy. Maybe, but he's not an author mouthpiece, just a dude with strong opinions.
- Microblog bonus: last week Ariel mentioned someone named Charlene Siph in his Twitter feed. Charlene Siph is the Constellation's
ambassador to the United Nations. She's going to drift in and out of
the story without ever showing up in person, because Constellation
Games is not a story about people who know ambassadors. Anyway, I figured if you're interested in the Twitter feed you won't mind having a few things explained before they show up in the book.
There we go. Tune in next week for chapter 3, when Ariel will say, "So are you female right now or what?"
<- Last week | Next week ->
Sat Dec 03 2011 20:48 Constellation Games Tech Support + Gift Subscriptions:
Some have had problems buying Constellation Games, problems like "not being able to place an order" or "not being able to have books shipped to the UK". These problems should all be fixed, but let me know if you still have them.
In related news, several people asked to be able to buy gift subscriptions for their friends (one assumes), and now you can go ahead and buy those gift subscriptions. It's a little hacky--you're buying a gift certificate which the recipient redeems--but it should work. Again, let me know if you have any problems. And big thanks to editor Kate Sullivan for doing the server-side work.