Showing posts with label computers. Show all posts
Showing posts with label computers. Show all posts

Q: Game quality on a variety of systems?

Taking advantage of asking me anything, Steve says:
If one writes a book, the reader gets exactly what the writer put across. Doesn't matter what format they read it in - it's basically the same experience.

But with video games, everyone’s machines are different, from ancient to cutting edge. With all the variables of OS, RAM, video cards, and everything else thrown in as well. Which have changed since you began the project and will have changed again by the time it comes out.

So my question is, how do you design a product that will have the best quality when played on such a wide spectrum of equipment? Is there some kind of statistical system requirement formula for reaching the greatest number of gamers? Or do you just go for the best game you can design, and hope people’s computers will catch up to it in time?

Note that this is uniquely a PC problem. Console games also benefit in that if a game works on one XBox, it works on all of them the same (basically).

So it's certainly a trick. Although we do try to keep things optimized as we go, we're generally more focused on getting the game working first, and then getting it working fast.

Most of our developer boxes are semi-high end for this reason. If the developer's build of the game starts slowing down on a computer, it's usually easier to upgrade the computer than to slow down development while we figure out how to optimize whatever's slowing things down.

Though some optimizations do occur as development goes along. If we toss ten NPCs into a scene, and everybody's machines slow down, that's something we need to figure out (especially if we know we're going to need more than ten NPCs in our scenes!).

That only talks around your question though. To answer it more directly:

Step #1: Get the game playable. Period.

Step #2: Figure out what configuration of machine, level, and graphics quality things start to slow down.

Step #3: Figure out what's causing the slowdown and fix those spots. For example, if 10 NPCs is slowing down a scene, is it slowing the scene down because there are too many polygons? Too many light sources and lighting calculations? Too many shadows? Transparency? These things can be fixed globally to improve the game on all systems (for example by creating NPC models with fewer polygons).

Step #4: Identify features that can be scaled based on the user's system specs. For example, maybe there are three levels of NPC models: high, medium, and low. And each level has a different polygon count. These features then go into Game Options for the user to adjust the graphics to the quality/speed balance they are willing to put up with.

Then we run the game on various systems to determine our recommend system specs (which can run the game with all options turned up and no slow down) and our minimum system specs. Large developers have QA departments to do this for them. A small-to-midsize developer like inXile can do some QA, but also benefits hugely from public alpha and beta testing. The more folks we have banging at the game, the better the final product will be.

Of course we aim for the lowest system specs we can, so that as many people as possible can play the game. But there's always a certain threshold at which the work required to optimize the game cannot be justified by the number of customers we gain with those optimizations.

On Torment, we benefit from using Obsidian's technology for Pillars of Eternity, which lets us create high quality backgrounds without requiring more power from the system. That doesn't mean everything can be at a higher quality (NPCs and light sources still require a fair amount of processing power), but it gives us a lot more leeway than if we were making the game entirely in 3D.

Sorry for the hugely long answer, but I'm glad you asked the question. Among other things, this is why we can never give a straight answer when people ask us what our target system specs are going to be. The answer is invariably, "As low as we can make them."


Got a question? Ask me anything.

A Free, Easy Backup Plan

You need to backup your stuff. Not because your computer might get stolen or your house might burn down. But because your hard drive WILL fail within a couple of years. Someone in your house WILL, somehow, put a virus on your machine. You WILL accidentally-but-permanently delete your work in progress.

I am the most tech savvy, obsessively careful person I know, yet all three of these things have happened to me. They'll get you too.

I'm also supremely lazy. So if my backup plan requires any maintenance from me, it just won't happen. Here's how I do it then.

You guys know about Dropbox, right? You can store 2 GB for free online with very little work. That's not enough to keep all your pictures and music, but it's more than enough to protect your writing.

Make an account and download the app to your computer. That's it. After that, Dropbox will auto-upload anything you put into the special Dropbox folder, anytime it changes.

"But wait," you say, "Don't I have to manually copy my stuff into that folder as I work?"

Well, yeah. One solution is to work directly within the Dropbox folder, but you don't want to do that (especially since Dropbox can sync two ways -- if somebody hacked into Dropbox, or you had multiple computers linked up, you might lose everything accidentally again). The other solution is this:

Create Synchronicity is this nice little program that will automatically copy files from anywhere to anywhere, on a schedule. It's free, lightweight, versatile, and smart enough to only copy files that actually changed.

Just install it on your machine and set up a profile to copy your important files wherever you want them -- an external hard drive, another computer on the network, or (in this case) your Dropbox folder. Schedule it to run once a day and bam, you never have to think about protecting your work again.

Is this helpful to you? What's your backup plan?

Controlling the Internetz

Original picture by HeyGabe, creative commons.
The internet is a beautiful, wonderful thing. I mean, without it, I'd be stuck alone out here, still waiting for my hard copy of Writer's Market to show up so I could send letters to agents asking if it was okay to query them my fictional novel.

But it's kind of a time suck, yeah?

I can't say I've solved that, but here are a couple of things I've found that have helped me tremendously:

1) Take an internet sabbath.
Some people say you should unplug for a couple weeks or a month. Maybe that's right for you. To me, a month-long break just means 600 e-mails I'll have to slog through when I come back online.

But one day a week? I can totally do that. I have been for nearly a year now. It's not always easy, but it definitely reminds me that I don't have to be All Online, All The Time.

2) Study (and limit) your internet usage.
There are lots of browser extensions that can help tell you how much time you waste spend on certain sites, and can also limit your usage.

For Firefox, I used Mind the Time to track how much time I spend and where, and once I know that, I use LeechBlock to cut off my usage after a certain time. Safari and Chrome have a similar extension (that I've never used, but it looks solid) called WasteNoTime.

They're not perfect, but these things definitely help me pay attention to why I'm on the computer.

Do you manage your time? How do you do it?

A Tale of Two Johns


This is an old story from the computer game world, but there are lessons here for everyone, even writers.

In 1990, id Software was formed by two men: John Carmack and John Romero. Over the next 6 years, id redefined PC gaming and the first-person shooter genre with games like Wolfenstein 3D, Doom, and Quake. Romero is even credited with coining the term "deathmatch."

(If you have no idea what I'm talking about to this point, here's the summary: Carmack and Romero made really good games; they were kind of a big deal).

The PC gaming world was theirs. Carmack licensed the Quake engine to multiple game developers -- including Valve, who used it to make the even more groundbreaking Half Life. Professional gaming took off with QuakeCon. Everyone wanted to be id.

(Translation: They made lots of money).

But after Quake hit the shelves in 1996, Romero quit (actually he was fired, but he was going to quit anyway). His plans were ambitious, and he felt Carmack and the others were stifling him. Carmack, meanwhile, felt that Romero wasn't realistic.

(The two Johns parted ways).

Carmack -- the technical powerhouse of id -- pushed the envelope with Quake II and Quake III: Arena. Good games, well-received, and very, very pretty. But where they pushed things technically, their general design stayed the same. To the point where Quake III was little more than a deathmatch arena with no substance.

(Carmack's games were technically beautiful, but not very compelling).

Photo Credit: Michael Heilemann
Romero's company released this ad
months before Christmas.
Romero, meanwhile, now had the freedom to be as ambitious as he wanted. He proudly announced his masterpiece, Daikatana, would hit the shelves by Christmas the next year. They would use the Quake engine, so the technical aspect would be taken care of, leaving him and his designers only to design.

(Romero thought he didn't need Carmack's technical expertise).

Christmas came and went with no Daikatana. Carmack had released Quake II by then, and Romero realized his masterpiece looked dated. He grabbed the new engine, not realizing it was so different from the one he knew it would require an entire rewrite of his precious game.

(Romero realized technology mattered. He tried to catch up and failed, badly).

Three years later, Daikatana had become a joke. It was made worse when the game was released with outdated graphics, crappy AI, and unforgivable loading times.

(Romero's game was super late, ugly, and impossible to play).

Carmack thought that technical expertise made a game. Romero thought it was creativity and design. The truth is both are necessary to make a quality game.

It's the same in writing (told you there was a lesson). Technical expertise -- your skill with prose, structure, and grammar -- can make for a well-written story, but one that is thoroughly boring to read.

Creative design -- compelling plot, characters, and conflict -- can create a brilliant story, but if the technical aspects aren't there, it will be an unreadable mess.

Don't sacrifice one for the other. You need both to succeed.

Answers (and...nothing, just answers)!

Susan Kaye Quinn asks: Katniss or Hermione?

Cool as Katniss is, I think she'd be a bit too crazy for me. Plus I gotta go with the book girl, even if she is a bit pretentious about it. Hermione.

maine character says: Your bio says you were a software engineer. Which OS do you prefer, what software do you use for your writing, and can you hack me a ticket to the Super Bowl?
I was a software engineer. I've worked on every OS that matters (okay, that's not true; I've never worked on Haiku, for example). Mac OS is the prettiest and most fun to use. Linux is the cheapest and most versatile. But Windows always wins out as a compromise between price and pretty.

For writing, I'm content with my archaic combination of MS Word, Notepad, and actual paper (the latter usually for maps).

And lastly, if by "hack" you mean "sell you one I got off of e-Bay," then sure!

Matthew MacNish asks: Have you seen Eden of the East? It's an Anime my daughter got me into recently.
I have not. Though the premise looks interesting. Is it good and can I (legally) stream it online?

Myrna Foster asks: Do you raise any of your own food?
Um, sort of. We share land with our friend who is much better at the whole growing-stuff-to-eat-it thing. The only food I really use from our yard is holy basil which, honestly, looks and acts exactly like a weed, except delicious.

Erik Winter asks: What about your day-to-day will change if Air Pirates becomes a massive success?
Is it sad that I think about this all the time? I want to say, "Very little." Taking care of all these halflings is more than a full-time job already, and I can't/don't want to step it down much. On the other hand, the internet has proven AWESOME for connecting with people, and a lot of the halflings will start school in the next year or two. We'll see. I'll work on a "regular" success first though, and build up from there.

"Anonymous" asks: Where are you taking your wife on your date next week?
I'm thinking Coach's Pizza, where maybe we can watch season 2 of The LXD. Sound good, Beautiful?

Boy that's going to be awkward if you're not who I think you are.

K. Marie Criddle asks: Of all the Joss Whedon ladies out there, which one would frighten you the most if you crossed her the wrong way?

This lady:

Why Aren't You Linking Yet?

It is 2011. The internet as we know it is old. It's older than the Matrix and Star Wars Special Edition. It was born in a time when Michael Keaton was still Batman, Joe Montana was a 49er, and people freaked out because Mortal Kombat was too bloody.

So why are people still writing comments like they've never seen a link before?
Great post! And did you hear they're casting white actors for Akira? I know, right! I blogged about it here:
How many people, do you think, will select that link, copy it, and paste it into their address bar so they can read your post? I'll give you a hint: the nearest integer rhymes with 'hero.'

Look, I know HTML is ugly and non-intuitive, but it's not hard either, and it'll make your comments a lot less ugly than that URL up there. Here's how it works.

We'll start with bold and italics, cuz they're easy. Whatever you want formatted gets stuck between a start tag and an end tag. For example: "I <b>love</b> cookie dough!" becomes "I love cookie dough!" Tags always look the same: angle brackets around the tag name (b for bold, i for italics, etc), and an extra '/' in the end tag.

I see your eyes glazing over. Stop it! This isn't hard, and you'll look smarter and get more clicks to your blog. Keep going!

Links work the same way: their tag pair is <a></a>, but you have to add an attribute to tell it where the link goes. That's what the ugly 'href' thing is about.*

Let's fix the comment above. In the comment box, I type this:
Great post! And did you hear <a href="">they're casting white actors for Akira</a>? I know, right!
It looks just as ugly as the first one, right? Except when the comment is posted, it'll look like this: 
Great post! And did you hear they're casting white actors for Akira? I know, right!

There, was that so hard? Nearly every comment system allows these basic HTML tags. And look! One person actually clicked on the link. Now you can get that warm fuzzy feeling that comes every time your visitor stats go up.

Oh, don't know how to check those either? Well, poop.

* If it helps, 'a' is short for anchor and 'href' stands for hyperlink reference. I'm sure it made lots of sense at the time.

Patching e-books

Apparently, Amazon has been wirelessly updating error-ridden books, and it raises the obvious question: Should e-book patching even be a thing?

I'm torn. I mean, technology-wise, I think this is great, though I can see the potential abuses all too clearly.

Patching is not a new thing. Computer games have been doing it even longer than George Lucas.* Even print books get the occasional story-tweaking revision. So let's not pretend this is some new, infuriating thing that Big Publishing is doing to us. The difference now, though, is that eBooks can be patched immediately -- even automatically without the user's consent.

I'm going to say auto-patching is a Bad Idea because of Potential Abuse #1: Tweaking the story. Imagine a writer with Lucas Syndrome, endlessly fiddling with his masterpiece. You're halfway through his novel when a character references something that never happened -- except it did happen, in the revised version that got pushed to your device after you started reading.

Even without auto-patching, I fear this abuse. We'd all be arguing over whether Han or Greedo shot first, only to find out we were reading different versions.

Computer games show us Potential Abuse #2: Publishing the novel before it's done. In November, 1999, me and my fellow game developers were working 80+ hours/week to get our game finished before Christmas. We were close, but it was buggy -- critical cutscenes didn't play, others crashed the game, memory leaks made the game unplayable after an hour or so, important characters would kill the player for no reason, etc.

It sounds unplayable, and for some people it was, but they released it anyway. If we brought up a bug at status meetings, we were invariably told, "We'll fix that in the patch."

Don't get me wrong, we made a dang good game, but if you play it without that patch, I pity you. And I fear a world where authors release rough drafts of a novel for quick sales, knowing they can always "fix it in a patch."

That said, I think abuse would be the exception. I think most authors, if they updated their novels at all, would only make small changes. I say that because most film directors don't make controversial changes every time a new video format is released. Most game developers release playable games, using patches for bugs they couldn't have foreseen.

If it actually works that way, it could give e-books more value. We all know the things e-books can't do (can't loan, can't resell, DRM, etc), but print books can't be updated to make themselves better. You'd have to buy another copy for that. Mostly, I think this would be a good thing.

What do you think?

* Apparently, the term 'patching' is from the old punch-card days of computers, when a bug fix had to be literally patched onto the cards.

Web Design Tips for the Cheap, Lazy, or HTML-Challenged

Everyone says you need a professional-looking website, but a professional setup and design can cost hundreds of dollars and a monthly hosting fee. If your website is making you money (for example, by selling books), that can be worth it. Otherwise, you want something that's both Free and Good Enough.

Whenever I tweak things on this site, I have four goals, many of them conflicting: (1) Make my blog nice to read/look at, (2) Differentiate it from every other blog out there, (3) Rarely mess with the template (HTML, CSS, and other scary acronyms), and (4) Spend little or no money. If that sounds good to you, read on.

Blogger is my favorite. It's relatively reliable and gives me a decent amount of control (though those qualifiers are important). You could also go with, LiveJournal, or many others.

None of them give you total control, of course. For that, you'd have to buy your own webhost and deal with your own technical setup and issues, which defies goals (3) and (4).

As far as free templates go, Blogger has only 27 (at the moment). is better with 148. But since there are a few more than 175 blogs out there, your blog will very likely look exactly like someone else's. That's why you customize the crap out of it:
  1. Get a custom background. Especially if you're good with a camera/live somewhere pretty.
  2. Make a custom header. Free fonts and your local Paint program can surprise you. Photoshop and a little design sense is even better.
  3. Tweak the heck out of it. Blogger, for example, lets you change the format, fonts, sizes, and colors of almost every little thing. Take advantage of it.
Fancy fonts and wacky colors will definitely make your blog unique, but don't go crazy. Everyone's screen and color resolution is different (some folks are even reading you on their phones!). The text needs to be big enough and plain enough to be readable. And the text color should contrast as strongly as possible with the background.

Here's where I tell you to use dark text on a light background. I know people disagree with this, but white-on-black burns my retinas like those creepy Jesus illusions. I won't say don't do it, but at least think twice before you do.

People come to your blog for two reasons: (1) to read your latest update or (2) to find specific information about you/your blog. Every blog makes the former easy -- it's right there in the middle. It's your job to make the latter easy to find.

Static pages are a good place to put professional stuff. The kind of stuff agents come looking for. Pages put that info right at the top (usually), give you space to write as much info as you need/want, and keep that stuff (which is usually old news to your regular readers) from cluttering your sidebar.

The sidebar is the second place for it. People like to throw everything they can think of in their sidebars, and that's okay, but know this: Visitors will not scroll down past the first screen unless they are looking for something specific. (I will entertain arguments on this only if you've read my blog footer or clicked on the Carpe Editio flag down there. I'll bet money none of you have (until now, of course -- now you're curious...).)

Think about what you want readers to see, and put that on top.

Free hosts insert their brand everywhere. Search bars on the top, mandatory attributions in the footer, and of course the domain name. You can usually get rid of this stuff, but it requires either messing with the template or paying money.

But often, it's not hard either. Removing the Blogger search bar is a single line of CSS, for example, and a custom domain name costs only $10-15 per year. It's up to you whether that's worth it.

Many of you already have beautiful blogs (I know, I've seen them). So tell me what decisions have gone into your blog? What other tips would you offer?

Converting from MS Word to Plain Text

Nearly every agent out there wants sample pages--sometimes multiple chapters--pasted in the body of an e-mail. Unfortunately, not all e-mail programs handle fancy text the same. What looks beautiful in your Word doc, and even in your e-mail draft, may come out unreadable on an agent's screen.

The answer is plain text, but converting to it is not always as simple as copy/paste. You can try telling your e-mail program to use only Plain Text, or you can copy from Word and paste into a txt file, but you still might get text with no paragraph breaks or questions marks where there should be quotation marks.

Hopefully this post will help you get past that.

Before you follow any of these steps, go into your Word doc and select "Save As...". These steps will make your beautiful Word doc plain, and you still want the pretty version to send when agents ask for your full MS.

Plus, we're working with global find/replace, which is easy to screw up.

Also, keep in mind I have Word 2010. I'm fairly certain all features mentioned here exist in older versions of Word, but they might not be where I say they are. If yours works differently, please say so in the comments.

If you let Word do your paragraph indents (which you should, it's easier), then converting straight to plain text will not only remove the indents but leave you with one giant block of text. You need paragraph breaks. Here's how:
  1. Find/Replace (Ctrl-H).
  2. Click "More >>" and look for Special or Special Characters.
  3. Put the cursor in the Find box, and choose the Paragraph Mark special character. It should enter "^p" into the Find box.
  4. In the Replace box, put two Paragraph Marks: ^p^p.
  5. Click Replace All.
Now you should have an extra line between every single paragraph. When you paste it into plain text, the automatic line indent should go away (if it doesn't, it means you're manually spacing/tabbing your paragraphs; see the next section). You should be left with text that looks like every blog you've ever read.

You might want to skim through it to make sure there aren't too many line breaks anywhere. For example, I had to remove some of the extra lines around my chapter headings, because it was just too much.

Some folks manually space their paragraphs. That's okay, but it might not paste the way you want it to. Tabs and spaces aren't the same width in every font. In some cases, tab is treated as a single space, making your manual indents all but disappear.

To fix that, follow the Find/Replace procedure for paragraph breaks above, but instead of a paragraph mark, choose the Tab Character (^t) and leave the Replace box empty.

This is tricky. Special formatting usually disappears in a straight conversion. Sometimes that's okay (your chapter titles don't need to be in bold), but sometimes that italicized emphasis can change the entire meaning of a sentence (i.e. "You did?" vs "You did?").

The official way to represent emphasis in plain text is with the underscore (e.g. "_You_ did?"), though you can tweak these steps to suit your needs:
  1. Find/Replace (Ctrl-H).
  2. With the cursor still in the Find box, click Format-->Font.... Under Font Style choose Italic (or whichever style you are searching for), then click OK.
  3. Put the cursor in the Replace box, and select the Special Character "Find What Text". It should enter "^&" in the Replace box.
  4. Put underscores on either side of that character: _^&_.
  5. If you also want to remove the italics (pasting to plain text will do that for you, but there may be other reasons to do this in the Word doc), then with the cursor still in the Replace box, click Format-->Font.... Under Font Style choose Regular, and click OK.
  6. Click Replace All.
Now all italicized words and phrases should have underscores around them. But if there's a sentence where the spaces weren't in italics (you can't see it, but Word knows), it could change from: "I hate you!" to "_I_ _hate_ _you_!" To fix this, do another Find/Replace:
  1. In the Find box, type: "_ _" (underscore space underscore).
  2. Click "No Formatting", since you're not looking for italics anymore.
  3. In the Replace box, type a single space.
  4. Click Replace All.

By default, Word converts a lot of otherwise normal characters to special ones. The special ones look pretty, but they don't always work when pasted into plain text.
  • Quotation marks are converted into fancy quotes (“ ”, also called smart quotes or curly quotes) which in plain text sometimes come out as boxes, question marks, or other things. Apostrophes and single quotes are converted the same way.
  • A double-hyphen (--) is converted into an em-dash (—) or an en-dash (–). In plain text, this sometimes is converted back into a single hyphen.
  • Three periods in a row (...) are converted to a single ellipsis character (…). In plain text, this can come out as boxes or question marks, or as a very compressed ellipsis character ().
I recommend you stop Word from doing all of these. To do that:
  1. Go to AutoCorrect Options (in 2010, File-->Options-->Proofing; in older versions, it's in the Tools menu).
  2. Go to the "AutoFormat As You Type" tab.
  3. Uncheck the options you want it to stop (e.g. "Straight quotes" with "smart quotes", Hyphens with dash, etc).
  4. For the ellipsis, you may have to go to the AutoCorrect tab. Under "Replace text as you type," remove the entry for the ellipsis.
If you already have these special characters in your MS, you can use Find/Replace to get rid of them. Copy/paste one of the fancy characters into the Find box, then Replace it with the regular one.

Phew! Did I miss anything? Get anything wrong? Let me know in the comments.

Answers the Second: Randomness and Torture

Matthew Rush asks: Would you rather be Jirayah (Pervy Sage) or Kabuto (the dork with the glasses)?

I can't say I approve of Jiraiya's choice of hobbies or Kabuto's choice of employer, though they are both pretty powerful. But any way I look at it, Jiraiya's got one thing going for him that Kabuto doesn't. Sage Mode:

Susan Kaye Quinn asks: Favored platform: Mac or PC?

I would love a Mac. Thank you for offering.

Every time I buy a new computer, I have to make this decision, and it always comes down to the same thing: Macs are expensive, and PCs have all the open source software I want.

Preferred literary success: Bestseller or Hugo?

Oy. Fine, if I have to choose, I go with the one that gets more readers: bestseller.

Apocalypse: Super virus or sentient computers?

Neither. The world is destroyed by robot pirates and zombie ninjas (also dinosaurs).

Awesomeness: Star Wars or Lord of the Rings?

For the purposes of this exercise, we will pretend George Lucas stopped fiddling with Star Wars in 1983. With that in mind, the most awesome trilogy ever is ISTHATSAMUELL.JACKSONINANICKFURYMOVIEZOMGITIS!!!

Caped Guy: Batman or Superman?

Batman, hands down. Did you know he has a file on every superhero's weakness, just in case he ever has to fight them? The guy's a genius.

Asea asks: What's your favorite local food?

Market food: fried pork and bananas, dim sum and pork dumplings, chicken satay, rotee, fried potatoes... (Hm, just got a Mary Poppin's song stuck in my head).

If your characters (from your various WIPs) were caught in a zombie apocalypse, would they make it?

Heh. Hagai would be the first to go, though Sam and Ren might last a while (good fighters, and I bet the zombies would have a hard time storming their airship). Suriya, on the other hand, should have no problem. She has a tendency to blow things up when she's mad.

Do you ever make up your own board/card games? How about twists to existing ones? Do you play games in combination (e.g. you play Monopoly, and the profits from it fund expansion in Puerto Rico)?

Before I focused my creative energies on getting published, I designed games all the time. As for twisting existing ones, we don't do it often (I tend to assume the game balancers did their job well), but we do it to our most familiar games. We've played Settlers with a blind setup (i.e. flip the numbers over after you place your settlements) or with a 12-sided die, and we once played Ticket to Ride: World Domination, in which we combined a board of regular TtR and TtR:Europe. I don't like Monopoly much, but I love your combination example. Sounds like it would be fun for a tournament or a gaming marathon.

Thanks again for your questions and for putting up with my answers. Don't forget our special guest artist on Friday!

Writer Tips for MS Word (and to a Lesser Extent, Open Office)

There's lots of great novel-writing software out there, but chances are good you don't use it. Chances are, like everyone else in the industry, you use MS Word. But how do you use this thing -- designed for 10-page essays and well-outlined reports -- to keep track of 100,000 semi-organized words? How do you critique someone's novel so it won't be hard to find your notes or make use of them? Here's what I do. (Note: screenshots are from Office 2010, but all these features are available at least as far back as Office XP. Probably farther.)

Also known as the Navigation Pane, this useful feature allows you to see all headings and sub-headings in your document at a glance. It appears on the left as an outline structure. You can click on any heading, and Word will automatically take you to that spot in your document. Also it will highlight the section where the cursor is at the moment, so you don't have to wonder which chapter you're in.

Unfortunately Word doesn't do this for you automatically. You have to tell it what your headings and sub-headings are. To do that, select a line of text, right-click, and choose "Paragraph...". Then look for a drop-box called Outline Level. In that box, "Body Text" is any text you do NOT want to show up in the Document Map. "Level 1" is for top-level headings, "Level 2" for sub-headings, and so on.

I use Level 1 for my chapter titles and Level 2 for each scene (enlarge the picture above to see what that looks like), but you can use it however you want. If you get tired of manually selecting outline levels, you can use Styles.

In the toolbar on top, MS Word has a number of styles preset for you -- a list or drop-box with selections like 'Normal', 'Heading 1', 'Heading 2', etc. These are a quick and easy way to use consistent formatting throughout your document.

You probably won't want to use Word's default styles, but it's not hard to set up you're own. If you use them for the months (or years) it takes to write your novel, it's time well spent. Decide on a font, typeface (bold, italic, etc.), and an Outline Level, then save it as a new style. (I forget how it works in Office XP, but 2010 lets you select text, right-click, and choose "Save Selection as a New Quick Style...").

This is my favorite feature of MS Word. Anywhere in the text, you can hit Ctrl-Alt-M (in Open Office, Ctrl-Alt-N) to add a note or comment in the margin.

I love it because it lets you type anything you want without screwing up the formatting or word count of the manuscript AND it's really easy to scroll through without missing a single note. (Open Office actually keeps track of Notes in the Navigation Pane, so it's even easier).

They're great for critiquing other people's manuscripts or just for making notes to yourself that you don't want to forget. In the screenshot, I've used it to record comments people made when Natalie workshopped my prologue. I also use it when I'm revising my own stuff and get stuck on something. Rather than sit there for an hour trying to think of a better phrase than "She ran", I'll add a note that I don't like it and come back to it later.

A quick note on Open Office. It's open-source software designed to do everything MS Office can do, but for free. That's a major plus, and if you're low on cash or want to go legal, you should check it out.

But even though it costs over $200 less than Microsoft, I'm hesitant to recommend it. Some of the things that bothered me (they might not bother you, so pay attention):
  • Open Office lost outline levels when opening or saving from Word Doc format.
  • Bulleted lists and outlines didn't play nice when swapped between OO and Word.
  • For the life of me, I could not get OO to save my manuscript in RTF without totally screwing up the formatting. (This one made me particularly mad as an agent asked for my full in RTF format).
  • OO's thesaurus sucks.
  • This has nothing to do with novels, but MS Office has a nice feature that allows you to compress all pictures in a document or PowerPoint slideshow (meaning it reduces the size and resolution to what is actually displayed), thus significantly reducing the size of your document. Open Office doesn't do this, and as far as I can tell has no plans to.
  • Numerous minor, mostly-cosmetic annoyances (many to do with Notes and Track Changes) that I would normally put up with if they were the only problems.
Now back to our regularly scheduled post.

Last one, then I'm out. You know how to use Track Changes, right? No? Man, it's the best way to do line edits. Turn the feature on (it's in Tools or Review or something) and then make any changes you want to your buddy's manuscript. Your changes will show up in a different color, making them easy to spot. Deletions will either be struckout or put in a Note on the side, so all the original text is still there. And of course you can add your own Notes to explain why you're making the change.

When your friend goes through the changes, they can cycle through each change individually, accepting or rejecting each one (so you don't have to manually make the changes if you don't want to). Optionally you can choose to accept or reject all changes at once.

So that's how I use Word. What program do you use for writing? If you use Word too, are there any features I neglected to mention that you find useful? (Maybe I don't know about them!).

Quitting While You're Ahead

My favorite computer game genre by far is graphic adventure. These are the games where you're given a character with a story, and where exploration and puzzle-solving is what will win. Reflexes, practice, and endless hours on the XP treadmill won't help--just persistence and a clever mind. Classic examples of the genre include the King's Quest and Space Quest series, Indiana Jones and the Fate of Atlantis, and (my very favorite) the Monkey Island games.

But adventure games can be frustrating. You might walk around the same screens, looking at the same objects, trying out the same inventory items over and over wondering why you can't GET THE DANG PIRATE TO GIVE YOU HIS FREAKING GOLD TOOTH!

Or something.

Then after banging your head against the wall for an hour, you'll close the game because you have to pick your kids up from school, but when you get back... you don't want to play. Because you know when you do, you'll have that same puzzle staring you in the face, mocking you.*

Does this sound like writing yet? It does to me. I'll get stuck on a plot point, staring at it for an hour, then have to close the manuscript because the baby is crying and the boys are killing each other and my wife needs to buy food (I offer to, but you know)... and when it's all over I dread going back. I dread seeing that cursor just blinking, blinking, saying, "What are you gonna write now, big fancy pants writer, huh? HUH?"

So here's what you do. It's totally non-intuitive, but it works. When you're at a part you're really excited about, don't write it. Stop and save it for next time.

I mean, obviously don't stop if you have another hour free to write. But whenever you are done, try to stop in some place where you know what happens next. Not only will you have the motivation to sit down and write next time, but you'll also have momentum to keep writing after the exciting part.

This won't solve everything. You'll still need persistence many times (I was stuck on that stupid gold tooth for a week), but some days it just might help you get your butt in that chair when you otherwise wouldn't want to.

And if you need a little gold, give the blond-bearded pirate some bubblegum. His tooth will come right out.

* And you don't want to cheat, because then you can't brag that you figured out the game by yourself, even though it took you five years** to beat it and nobody cares anymore.

** NEVER happened.

Parents, Talk to Your Kids About Malware

I fix a lot of computers. I'm kind of the unofficial tech support for the Chiang Mai missionary community,* and the number one problem I find when people complain their computer is slow or broken is malware.

What is malware? I'm glad you asked.

Malware is any malicious software that infiltrates your system without your consent. For example:
  • VIRUSES that copy themselves, infecting any system they come in contact with.
  • SPYWARE that secretly collects data about you and your computer, sending it to its host via the internet.
  • ADWARE that displays pop-up ads and other advertisements where there shouldn't be any.
  • TROJANS that pretend to be useful software while secretly hacking your system.
Scary, yeah? At best, malware is annoying, making you wonder what happened to your previously-state-of-the-art computer. At worst, it's the first step to identity theft and serious data loss.

With the worst types of malware, you can't tell without scanning software. But some are more obvious than others. Any of the following symptoms might be a sign of infection:
  1. Pop-up ads where there shouldn't be any (on your bank's website, on this blog, etc.).
  2. Your home page (i.e. the first web page that you see when you open your browser) is a page you don't know and never set as your home page.
  3. You do a search on Google and it redirects you to some other engine's search results.
  4. You receive error messages from programs you don't know and never installed. (I once saw a message suggesting I install an "anti-anti-virus" program. At first I thought it was a stupid typo, but no. It meant exactly what it said.)
  5. You try to uninstall a program or search bar, but it comes right back.

Most malware is easy to take care of. Unfortunately, I don't know of any one program that can catch them all. If your computer's infected really bad, you might need two or three different programs to get rid of it all. Don't worry, they're all free.
  • ClamWin: an open-source anti-virus program. Provides no real-time protection, but gets automatic updates and scheduled scans.
  • Spybot: designed to kill most spyware and adware. Provides some real-time browser protection. Can provide real-time system protection, but I find this more annoying than helpful. Mostly I use this program to scan a computer I think is already infected.
  • Ad-Aware: a smart program designed to kill malware. Provides real-time protection and automatic updates. There are pro versions, but the free version is usually good enough.
  • Avast!: I haven't used this one myself, but like Ad-Aware it has a free version designed for viruses and spyware.
There are also plenty of good pay-for programs (Symantec and McAfee's are usually good, for example). But understand that any program with real-time protection will take up some of your computer's RAM, possibly slowing things down on older computers. Just something to keep in mind.

So you've cleaned up your computer, now how do you keep it from getting infected again? That, really, is what this post is about.

  1. Get an anti-malware program with real-time protection. Although, as I said above, if your computer is older or doesn't have much RAM, you may not want to do this.
  2. Scan your computer regularly. Like once a week. You don't have to watch the scan, just be notified of any bad results.
  3. Be careful what you download. Don't accept attachments from strangers. Don't open executable attachments (.exe files usually) from anyone ever. Don't download from sketchy sites, or if you do, scan the file first.
  4. Be careful what you install. Don't install something if you don't know what it does or why you need to install it. And for God's sake, READ THE INSTALLATION MESSAGES. Some adware will warn you -- even ask you -- before installing itself so that it can be legal, and you know what? It is.
  5. Pirates. Do you download pirated music, books, or games? I won't tell you not to,** but if you download pirated stuff and your computer gets infected, it's your own dang fault. More malware comes via pirated software than any other means.
  6. Talk to your kids about malware. No joke. The worst computers I see are almost always the result of a parent who knows little about computers combined with a teenager who thinks they know a lot. If your kids download pirated software, but think they don't need to scan it because "they know what they're doing," your computer is probably already infected.
  7. Don't share your computer. Buy a cheap, second-hand computer for your kids. When they complain it's too slow and can't play the latest games, tell them to buy their own.
  8. Restrict admin privileges. On Windows machines, a user is considered either an 'Administrator' or not. Administrators can install software and change system settings, and therefore have permission to (unknowingly) install malware. My kids don't get Administrator privileges on the computers I buy for them, mainly because I don't want to have to fix them. If they want something installed, they ask me.

I hope this is helpful to someone out there. Getting rid of malware may not be as critical as backing up your data, but it can save you some headaches and maybe even protect your identity online. Have you had a nasty experience with malware? How did you take care of it?

* Which is weird to me, actually. When I lived in San Diego, everybody knew how to do what I do.

** I should, but I feel weird saying that when I live in a country where I couldn't buy a legitimate copy of MS Office even if I wanted to.

Jonathan Coulton, Code Monkey

This is easily my favorite Johnathan Coulton song. Probably because I can identify so strongly with it. It's also a pretty good AMV to go with it.

Google Mini-Rant and Follow-Up Language Tips

I normally love Google, but this Google Buzz thing is bugging me. The problem, as I see it, is that Google signed me up for a social network and started sending my updates to people (that I may or may not actually know, but whom I've e-mailed at some point) without my permission. That's a Bad Thing.

Now I'm not a big privacy nut or anything. But I am a simplify-my-life nut.* I get requests for random social networks all the time, and I refuse them for a reason. Google just skirted around that by not asking me, and then making it ridiculously hard to opt-out of. Thanks a lot, Google. Screw you, too.

* Which is to say I'm a supporter of it. It doesn't mean I'm good at it.

*deep breath*

Okay, enough of that. How about some random tips on fictional languages that didn't fit in last week's post? Sound good? (I swear this will be the last post on foreign languages. At least for a while. Maybe...

Does slang count?)

MAKE IT READABLE. Even if the reader doesn't understand a word, they will still try to mentally pronounce it. It's frustrating if they can't. Wykkh'ztqaff may look very alien and fantastic, but it'll drive the reader nuts trying to say it -- even in their mind. This is especially true for names!

USE LATIN WITH CAUTION. My method last week involved stealing words from real-life languages and mashing them to hide the source. If you use this method, you should know that Latin and some of its siblings (Spanish, French, and Italian, for example) are so familiar to English speakers that it's very difficult to hide them as a source. (Assuming you want to. See parenthetical below for a counterexample to this tip.)

Take the magical words and phrases from Harry Potter, for example. Their origins are obvious (flagrante enchants objects to burn, gemino duplicates objects, lumos makes light, etc, etc, etc). It works in Harry Potter because it's set in the real world, more specifically Europe. It makes sense that their magical language has the same roots as their spoken language (it also makes it easier to remember what each magic word does). But can you imagine Gandalf the Grey using these same words and claiming they were the ancient language of the Valar?

"The dark fire will not avail you, flame of Udûn. I am a servant of the Secret Fire, wielder of the flame of Anor... Incendio!"

(Matt Heppe noted in last week's comments that he intentionally used Romanian (a Latin-based language) to give the language a sense of familiarity for English readers. That's definitely a good reason to use Latin. I think, as with anything in writing, intentionality is key.)

WHAT ABOUT ALIEN LANGUAGES IN SCI-FI? It would be a little odd if an alien language sounded like one or more of our Earth languages, wouldn't it? Aliens could be their own post, but off the top of my head I'd say don't use language as we understand it at all. Aliens can speak in hisses, purrs, scents, flashes of color, x-rays, gamma rays, frequencies too low for the human ear to hear... Get creative. Though if you do use a spoken alien language, see the first tip at the top. (There's nothing wrong with spoken alien languages, even if they do sound like ours. I just want to encourage genre writers to stretch their creativity and be intentional about their choices.)

Anyone got any other tips on made-up languages? Do you know any fantasy languages done particularly well? Particularly poorly?

What's Your Backup Plan?

Yes, I mean the title literally.

Until a few years ago, I never really thought about backing up my stuff, not at home. Part of it was that I had nothing worth backing up; I didn't write much, my music was on CDs, my pictures were on glossy paper, etc. My strongest backup method was to put things I thought were important onto a CD every so often -- which, because it was troublesome and I'm lazy, turned out to be once every 6-12 months.

So when my hard drive failed, I lost months of stuff -- pictures of my friend's Karen village wedding, my son's ultrasound pics, a month's work from my novel... It was a Bad Day. I made a resolution then, and I encourage you to do it now. If your hard drive failed completely, to the point where even recovery services could do nothing, what would you lose?

And what are you going to do about it?

It's not just hard drive failure. Theft, fire, and viruses are all possibilities too. But hard drive failure is the most likely. You may never get robbed and your house may never burn down, but unless you buy a new computer every year or two, your hard drive WILL fail someday.

Go ahead. Prove me wrong.

So as I said, I'm lazy. I needed a backup plan I could set up once and forget. I'm also cheap and well-aware of the strength of the open source community. I found a program called DeltaCopy, which is basically a Windows wrapper around an old, powerful Unix program. It's free, it's fast, and it works with Windows Scheduler so I don't have to think about it.*

Now my files gets backed up whenever my computer is idle and the kid's computer upstairs is on. The backup is usually current to within a day. And every month I copy the upstairs backup to an external hard drive which I keep locked away.**

So if my hard drive fails, I've got the upstairs copy that's a day old. If my house gets robbed, I've got the locked up copy that's a month old.

If my house burns down, I'm kinda screwed. But I figure it'd have to be a magical fire to burn down both floors of my brick-and-concrete house before I can get my laptop out. And I'm not aware of any wizards who want to destroy my stuff.

I've also started e-mailing chapters to my alpha reader (despite the fact that she lives in the same house and uses the same computer) because it's convenient and can be used as yet another backup for my most important documents.

If you don't have a backup plan, stop whatever you're doing and make one. At least save your work and your pictures -- whatever's important to you. It doesn't have to cost much. A little research can find free online storage, or software like DeltaCopy. External hard drives aren't that expensive, and apparently Windows 7 has some kind of backup scheme as well.

And just in case anyone is still being lazy about this, anyone have more horror stories of stuff they lost because they didn't back up?

* Well, usually. Sometimes it has some way-cryptic errors, like "writefd_unbuffered failed to write 4 bytes" which technically can mean lots of things but in my experience only means "the disk is full."

** Said copies are very fast because only files that have been changed since the last backup are copied. Still, it's a good idea to do a clean backup every once in a while.

A Tale of Two Johns

This is an old story from the computer game world, but there are lessons here for everyone, even writers.

In 1990, id Software was formed by two men: John Carmack and John Romero. Over the next six years, id redefined PC gaming and the first-person shooter genre with games like Wolfenstein 3D, Doom, and Quake. Romero is even credited with coining the term "deathmatch."

(If you have no idea what I'm talking about to this point, here's the summary: Carmack and Romero made really good games; they were kind of a big deal).

The PC gaming world was theirs. Carmack licensed the Quake engine to multiple game developers--including Valve, who used it to make the even more groundbreaking Half Life. Professional gaming began to take off with QuakeCon. Everyone wanted to be id.

(Translation: They made lots of money).

But after Quake hit the shelves in 1996, Romero was fired, though he was going to quit anyway. His plans were ambitious, and he felt Carmack and the others were stifling him. Carmack, meanwhile, felt that Romero wasn't realistic.

(The two Johns parted ways).

Carmack--the technical powerhouse of id--pushed the technical envelope with Quake II and Quake III: Arena. Good games, well-received, and very, very pretty. But where they pushed things technically, their general design stayed the same. To the point where Quake III was little more than a deathmatch arena with no substance.

(Carmack's games were technically beautiful, but not very compelling).

Romero, meanwhile, now had the freedom to be as ambitious as he wanted. He proudly announced his masterpiece, Daikatana, would hit the shelves by Christmas the next year. They would use the Quake engine, so the technical aspect would be taken care of, leaving him and his designers only to design.

(Romero thought he didn't need Carmack's technical expertise).

Christmas, 1997 came and went with no Daikatana. Carmack had released Quake II by then, and Romero realized Daikatana was technically behind. He grabbed the new engine, not realizing at the time that it was so different from the one he knew it would require an entire rewrite of his precious game.

(Realizing his mistake, Romero tried to catch up technically and failed, badly).

By the year 2000, Daikatana had become a joke. It was made worse when the game was released with outdated graphics, crappy AI, and unforgivable loading times.

(Romero's game was super late, ugly, and impossible to play).

There's lot of morals that can be drawn from all this, but I'm going to pull one for us writers.

Carmack's technical expertise is your skill with prose, structure, and grammar. Without it, nobody will put up with your story long enough to see its brilliance.

Romero's creativity is your plot, characters, and conflict. Your prose might be beautiful, but without this nobody will care.

You need both to succeed.

Self-Promotion (Repost)

(My laptop is nearly fried; my internet connectivity is limited and I have to resort to the touchpad because I can't plug in my mouse. Consequently, working at the computer is less fun than normal. Plus I understand there's some kind of holiday going on.

All of that meant to say: (1) I'm reposting, here are my excuses, and (2) I'm getting a new computer soon (yay!)).

Reposted from November, 2008 (though probably new to you).

I hate the idea of self-promotion. Who doesn't? Who wants to be that kid who says, "Hey, everybody! Look at me!!" Okay, fine, well I never wanted to be that kid. Now I find myself on the outskirts of an industry that requires it.

So I've been researching self-promotion a little. One thing I've discovered is that I've already been doing it. I mean, the missionary "industry" revolves around self-promotion just as much as the publishing one does. Perhaps more so.

How you promote yourself depends, apparently, on how much money, time, and morals you have. If you have a lot of money, hire a publicist. If you have a lot of time, build a website, make profiles on social networking sites, and spend time on other people's blogs, the social net, forums, etc. - all the while linking back to your website. If you're low on morals, this time can also be spent comment spamming and writing fake reviews.

It's like this. Let's measure the amount of time and money invested in self-promotion with what we'll call your Publicity Quotient. The more you invest in self-promotion, the higher your PQ (low morals increase your PQ slightly, with an increased risk of drastically lowering it when you're found out; high morals, sadly, do nothing). With that in mind, take a look at this completely unscientific, made-up chart:

Not terribly mathematical, I know. But beyond the general guideline that the more you put in, the more you'll get out, publicity is largely luck and magic - becoming a breakout bestseller even more so.

Also, anyone who tells you how to promote yourself, without mentioning in the same breath that you need a product worth promoting, is taking you in. If your book sucks, you can sell copies with publicity but it won't do you much good in the long run (see low morals).

That's my take on the whole thing, anyway. I plan on doing self-promotion the same way I've been doing it. I'll provide places for people to get hooked in, I'll get the word out with a non-spamming announcement, and most importantly I'll try to be genuine. That means leaving comments because I have something to say, not because I have something to link to. It means making profiles on social networks that I'm actually a part of (sorry, MySpace, guess that means you're out).

And it means trusting others to do the reviewing and word-of-mouth advertising for me. If it doesn't happen, it just means I need to write a better book next time.

And when that doesn't work, I'll upgrade my spambot.

Free Stuff

I have a theory that for any given thing I want to do on the computer, somebody has written a free program for it. As it turns out, that's pretty close to the truth. Admittedly, the free software isn't always as powerful or intuitive or functional as the pay version, but it's rare that I need more than the basics. In most cases, I'd rather have the basics for free than a couple of extra features for hundreds of dollars.

Here's a list of some of the free software I have on my machine, most of which I use on a regular basis. I bet you can find something here you can use.*
  • AdAware/SpyBot - After cleaning spyware from nearly a hundred machines, I now install these two together by default. I've yet to find a piece of spyware that one of these won't catch.
  • Buddi - Budget software. Not as good as Quicken, but infinitely cheaper.
  • Skype - Free video phone via the internet. Surprisingly good quality even from Thailand to Mexico.
  • ZipGenius - I got tired of Window's lame "compressed folder" nonsense. I need something that can handle zip files like zip files, as well as jar, gz, rar, tar, war, and z files, without telling me my trial period is over. ZipGenius is the best program I've found for this yet.
  • PrimoPDF - I know Macs deal in PDF by default, but Windows doesn't (unless you pay $450 for Adobe's solution!). This program fixes that. I love PDF. It means I can send a query package to MattyDub across the Pacific and he prints it exactly like it's supposed to be.
  • DeltaCopy - A reliable backup program capable of scheduled, incremental backups.
  • FileZilla - An FTP program that doesn't complain about being a trial version and supports drag-and-drop.
  • SketchUp - A 3-D modeling program that's easy to learn and fun to use. I designed my house with this.
  • Audacity - High quality recording/sound-editing software.
  • Metapad - A slightly better alternative to Window's notepad.
  • NetBeans - For programmers. A free, feature-full IDE for Java programming.
The following programs are also free and seem very promising, though I haven't yet used them myself. I think it's only a matter of time.
  • OpenOffice - Microsoft Office for free. And better. As soon as my copy of MS Word (2002) becomes useless, I'm switching to this.
  • yWriter - Novel writing software, created by an experienced programmer/novelist. I haven't switched over yet, because I have a system and it works, but I get closer with every project.
  • Picasa - Photo organization software. I've seen it in action, and it's a lot better than my "name the directories with dates and hope that's good enough" method of organization. I just haven't taken the time to load all my photos into it yet.
  • Avidemux - Video-editing software. For when Windows Movie Maker just isn't good enough.
  • Clam AV - I have my own anti-virus solution for now, but this is the best free one I've seen.
What about you? Anything you like better than what's on this list? What other free software do you use?

* Unfortunately, while these are all available for Windows, some are not available for the Mac. I love Macs, but the open source movement doesn't always extend that far. That was actually one of the reasons I chose a Windows machine the last time I had the choice.

Keeping Up With the Internet

Depending on how you count, there are over a hundred social networking sites out there and God only knows how many blogs. It's impossible to keep up with everything, even if you cut out all the crap you don't care about.

My own personal slice consists of 57 blogs, 23 Twitterers, and 244 Facebook friends (at current count). I interact in these venues as well, writing tweets, commenting on Facebook and blogs, as well as updating two blogs of my own.

I don't have the time to do all this, of course. I've got five kids and a novel to write. I want to share with you a couple of tools that have made my life simpler and (if you haven't already found similar tools) can maybe make yours simpler too.
  1. Google Reader. In the year 2009, you have to have some kind of RSS reader (similarly, if you have a website, you have to have a feed - I'm looking at you, Homestar!). I like Google Reader because (a) it checks the feeds automatically, (b) it feels like Gmail, and (c) I heart Google - they may be the New Evil, but they know how to do a GUI.
  2. Twitterfox. I started using Twitter while looking for a way to update my Facebook status and Gmail status at the same time.* I stayed there because it connected me to certain friends and the cost in time to use it was small - but only after I found Twitterfox. There are about a thousand ways to read and send Twitter updates, but I like this one because (a) it's a Firefox extension, so I don't have to open another app to use it and (b) it's quiet and unobtrusive (once you tell it not to pop-up a window).
  3. I like status updates. They're quick and informative. It started when some friends wrote Gmail statuses that started with "is" (as in "Adam Heine is..."). Facebook was doing the same thing when I got there. When I got around to Twitter, I found myself writing 3 separate updates to separate groups of friends. is a solution to that. Now I can write a single update (sent through Gmail chat even) that automatically gets sent to wherever I want.*
If these tools don't do it for you, I bet you can find some tools that do. Examine your internet surfing for areas of redundancy or wasted effort (e.g. manually checking 10-20 blogs to see if they've updated yet), then look for tools that solve it. If you look hard enough, I can almost guarantee someone has written the right tool(s) for you.

* I have found a way to get Twitter to update Gmail, but it still works less than half the time. I'm hoping they fix the problem soon, or figures out a solution. (You hear me, Google Titans? I want you to work with other developers!).