The Great Google Privacy Policy Consolidation

A friend of mine asked recently:

Hey Chris –

I have a question and figured you might be a good person to ask – this is regarding the Google privacy policy.

I do not have a gmail or google + or youtube account. Do I need to do anything for privacy protection, then? I do use google as a search engine for documents and images. I also use youtube.com, but just as an anonymous user without an account. Should I try to erase my browsing history? I do that anyway with my isp, but since I don’t have an official google account, do I need to worry about any of this stuff?

Thanks, Chris!

Ironically, this was on Facebook, but it’s still good to at least be concerned about privacy, right? I figured the reply I gave them was blog-worthy, so I treated it as my first draft, re-worked it a bit, added some more thoughts, and embellished.

Here’s what I said:

Ultra-short answer:

We’re screwed no matter what we do, so don’t worry about it too much.

OK, maaaaybe “screwed no matter what” is overstating it a bit, but I don’t think so. We really have very little recourse or power over how information about us is used. I suppose I could rephrase it, “We’re at their mercy no matter what.” and be slightly more accurate, but I suspect it’s just semantics at that point.

Why do I say this?

What meaning is there in a privacy policy? A privacy policy is basically a token offering of transparency, intended to show that the web site is acting in good faith to try to make it known what they will do or not do with information that you give to them.

How do you know if they act according to policy? Generally, you don’t. It’s possible you might catch them slipping up if they do something really dumb. What then? They issue a [lame] apology, the news media forgets the whole thing in a day or two.

What recourse do you have if the violate their own policy? I dunno, maybe sue them?

They can change the policy at any time to whatever they want it to be, but they already have whatever information you’ve given them, and it’s fairly reasonable to assume that they always will have it. It’s not good enough to have an acceptable policy now, if they can change it to an unacceptable policy later.

Mind you, that information you provide to them is not just the explicit, deliberate information you give purposefully, such as your user profile information. It’s also information you unconsciously provide, that they can gather from your actions on the site, such as you have a tendency to click on links that look like they might take you to pictures of boobs, or whatever. We betray ourselves constantly by doing and being ourselves and being observable.

A privacy policy is only as good as the integrity of the issuer. Policies change over time, usually without as much notice or forewarning as Google has given. When they do change, I’m always reminded of the scene in Empire Strikes Back when Darth Vader tells Lando Calrissian that he’s changing the deal.

Darth Vader: Calrissian. Take the princess and the Wookiee to my ship.
Lando: You said they’d be left at the city under my supervision!
Darth Vader: I am altering the deal. Pray I don’t alter it any further.

A privacy policy isn’t a contract. It therefore isn’t binding.

Even if a policy were binding, that policy can become null and void if the company gets acquired by another company, particularly if they go bankrupt, or if the company is forced by legal proceedings to divulge information. When a company gets split up and its assets become the property of its creditors, those assets include information about you, the user. The creditor isn’t bound by the policy, and is beholden to its investors to maximize the value of the assets it recovered from the bankruptcy. Chances are, that means your information is going to get used in ways you probably wouldn’t like if you knew about it or could do something to prevent it. Your only real hope is that the creditor cares about public opinion about it. Which, it might realize it does, but only after the fact, when it is too late to prevent the harm that violating your trust has caused.

Privacy policies also do nothing to protect you against external abuse of the service, ie “hacking”. If the service experiences a data breach, your data is being used in ways you don’t want, but the policy does nothing to prevent this or protect you. You might be able to sue, if you have the time and a good lawyer, and, if they were hacked due to willful negligence, you might even prevail in finding them liable for damages, although most likely, their Terms of Service that you agreed almost certainly indemnified them. But even if you win, and are awarded damages, that still doesn’t redact the information that’s now out there.

All of this background is pretty far afield from the specific question about Google’s privacy policy consolidation. But I think it’s the most germane thing to say about the matter, because, ultimately, privacy policies are pretty useless, meaningless things.

I’m not suggesting that Google doesn’t follow their privacy policy, or that their policy is bad, I’m just saying that policies are like promises that corporations make at their convenience, and change as suits them. So, not really promises.

Now, keeping that in mind… let’s talk about Google.

Short answer:

  • If you do not have any google accounts, you are relatively safe, and the policy changes don’t really change anything for you.
  • If you do have accounts with google, and are not logged in, you are relatively safe, as long as you always remember to log out whenever you don’t want your usage of google to be tied to an identity that you use.
  • What you do when you’re not logged in, won’t be explicitly connected to your google identity.
  • However, that’s not to say that your activity can’t be traced to your identity with a little effort. Your activity will assuredly be logged, and, combined with other information, that your computer or browser reveal about you, such as your IP address, geo-location, cookie information, your browser “fingerprint”, usage patterns, analyzing your online friends and contacts, the way you misspell words, your writing style, could all potentially be used to identify you even if you’re not giving away your identity explicitly by being logged in.
  • Google (as with any web site) can still track what visitors do when they are not logged in, but these behaviors are not explicitly tied to an identity. It’s not difficult to infer an identity of an anonymous web visitor using various techniques, given enough collected information to establish behavior patterns.
  • In fact, most web sites (including this one) use a Google product called Analytics to help them accumulate stats about the use of the site. This sort of information is pretty harmless, it just gives visitor counts, search terms used that lead someone to your site, what time of day people visit, how long they stay, where in the world they are visiting from, and that sort of thing. I wouldn’t call myself an expert, but I don’t see much potential harm in this sort of information being collected. Still, there are concerns, since other web sites using Analytics effectively multiplies Google’s reach.
  • If you use the Google Chrome web browser, or an Android phone, they absolutely do track usage, anonymously or not, and even if they don’t care who you are, specifically, they’re getting a pretty good picture of it anyway. Google most likely will not do anything with it beyond help advertisers find you so they can sell you things that you’re more likely to want to buy. That’s not to say that they couldn’t decide to use the information in other ways, if they wanted to, though. Some people in the know have said that the entire point of Chrome and Android are to gather information about their users for google’s gain.

One of the main things that people are concerned about is that their google search queries, youtube viewing history and favorites, which they had long thought were private, would be linked to your identity, and that this link would be made public through Google’s new social features.

Google has always made search trend data (aggregated statistics about supposedly-private search terms) public. That’s how we knew during the 90’s that everyone was searching for Britney Spears, remember?

What’s new is their integration of search with their new “Google+” identity service. Social search is supposed to help you find stuff that’s more relevant to you by telling you what your friends +1’d. This is great until you discover that one of your friends has some disturbing interests, and that gets you to wondering what interests you have that others might find disturbing. Anything you publicly +1 is visible to the internet at large as something you “liked”. There is a natural inclination to interpret a +1 or Like as endorsement, regardless of whether you actually agreed with it, or laughed at it, or hated it, or just thought it was interesting. It’s disturbing to most people to think that others viewing might jump to conclusions about who you are, based on the things you +1.

If you don’t like this, there are other search engines you can use, such as duckduckgo, which promise not to track you at all. Again, this is nothing more than a promise, and you really don’t know whether they do or not.

Google isn’t the only one who does this, of course. Facebook has infected virtually the entire internet, allowing you to “log in with facebook”, or “Like” anything and everything. This information is shared with your friends, with Facebook and Facebook’s partners, with the site who’s content you Liked or logged in to view. People “liking” stuff and sharing links with each other is how word spreads around and content “goes viral”. This is great if it makes you famous or puts public pressure on someone doing something we don’t like. But when it’s you doing something perfectly within your rights, and the public doesn’t like it, you can feel oppressed or threatened. Worse things than that can happen, too. You can lose your job, get arrested, lose friends. Your whole life can be ruined.

And for all that, it may be that this new social aspect of web searching is more useful than it is harmful, that on the balance it is a net good, albeit with risks and drawbacks. One benefit of public social search is that it makes it easier for you to find content that is relevant to you, and to share that content with your friends. Content your friends like is very likely to be of interest to you, so weighting a search result that has been “+1’d by someone you know” makes a great deal of sense. And, as long as the friend +1’d it knowing that their +1 would be used as a recommendation this way, it’s all well and good.

Webmasters are always clamoring for better rankings in Google’s search engine so they can get more traffic as a result. As unscrupulous sites learn to game the system, through exploiting principles of SEO to attract traffic “undeservedly” by not providing what that traffic is really looking for, thereby wasting eveybody’s time in order to reap ad revenue, Google continually has worked to refine PageRank to keep its results relevant and keep spam down. Social bookmarking is merely the next iteration in that arms race. The countermeasure, of course, is also already here: advertising campaigns which bribe you into liking or +1-ing pages in order to get points, a discount, a chance at a prize. And so it goes.

Another potential problem is that your favorite service may end up being acquired by one of the behemoths. Yahoo! loves to do this and usually screws their users in various ways. Google does to, but is usually better about preserving the quality and value of user experience. All the big players play this acquisition game to some extent. So, if you think you’re safer using a smaller web site that promises they’ll never sell you out to third parties, remember the promise is only as good as their word, and only good as long as they exist as themselves, and tomorrow they could change their mind, get acquired, or get served a subpoena. It could happen to DuckDuckGo just as well as it could happen to anyone.

Why the consolidation? What’s the problem?

I think that consolidating privacy policies and making them more consistent across the services that google offers is generally a good idea and makes sense. Over the years Google has amassed a considerable number of online services, and tying them together rather than having dozens of separate policies and keeping information about how you use each service separate doesn’t make a great deal of sense.

I think it’s to Google’s credit that they’ve been forthcoming about the changes and actively promoted what they are doing, to keep things as transparent as possible. Google does listen to user feedback and tries to do the right thing, although of course not everyone agrees that they always do.

Nevertheless, it is understandably disturbing is the concentration of the information those services collect about you, and what can happen when information from an account you created to shield your identity via pseudonym catches up with you and is linked with your “true” identity.

If you have a persona on one service that is very different from your “normal” self, it can be embarrassing or damaging for people who know you in one world to suddenly find out that you also live in another world as well. There are legitimate needs people have to compartmentalize their lives in this way, and it shouldn’t be google’s place to judge or to decide for them.

I really don’t think that they do judge, but they do seem to be deciding a bit, by linking services this way. If you thought me@gmail.com and me@youtube.com were separate, that’s probably a misconception that you bear responsibility for; you could have created separate accounts, myemailforveryseriousbusiness@gmail.com, and ilikewatchingfunnyvids@youtube.com. It’d become a pain to log out of one and into another each time you wanted to visit a site, but at least you’d have your e-life compartmentalized.

The concern with this consolidation is that, now there’s potential for inadvertant slips of information, now that your email usage data is tied to your youtube usage data and potentially becomes visible to everyone with a Plus account whom you’ve ever added to a circle, or even the public at large. Now the company you’ve emailed about a job you wanted knows you enjoy watching videos of cats doing cute things, or that you’re an ardent environmentalist, or a gun nut, or think recreational drugs should be legalized, or that you oppose war. Oops. People are really more worried about being judged by others, not just by Google.

What do do?

Anonymity

Be anonymous as much as you can. That means don’t log in. When you do need to log in, use https and other encrypted protocols as much as possible (sftp, ssh, etc.) Https is a good idea even for general browsing when you’re not logged in. Use Tor. Encrypt your email.

Unfortunately, so much of the web now depends on you being logged in, or identifying yourself somehow. To access content, to share it with your friends, to comment, to purchase. Sooner or later, you’re going to need to log in.

Pseudonyms:

A simple solution to this is to use pseudonyms. Use myrealname@gmail.com for official business, and iloveporn@gmail.com for your nasty business. Don’t mix the two up, and don’t let your porn-loving pals know what your real name is. Have as many pseudonyms as you think you need, to keep distinct your various identities separate and segregated to whatever communities you choose to use that identity for.

Is it possible to somehow establish that there is a link between the user of your pseudonym account to your other account, or to your real identity? Sure. But that’s more something a private detective or law enforcement official might try to do, not something Google’s terribly interested in doing. Although, if Google wanted to, it’d be terribly trivial for them to do that.

Is it possible to screw up and accidentally send that email to Boss@work.com from the iloveporn account? You better believe it. Be careful.

A pseudonym is something you’d use for relative anonymity, but where you still need an identity that persists over long term, so that other users of a community can have some sense of “knowing” who you are.

Throw-away accounts

If you’re more worried about your activities being traced or tied to you in any way at all, it makes sense to create and dump accounts for specific, short-term purposes. Throw-away accounts can help a little by compartmentalizing information about you and keeping the amount of information gathered on any single account to a minimum. Each time you start over fresh with a new account, it’s as though you’ve thrown away your past information, so long as it cannot be tied to your real identity(-ies), or your other throw-away accounts.

If you ever use an account to do something you don’t want traced back to you, use a throw-away account, use it for one thing and one thing only, discontinue using the account as soon as possible, and delete the account if possible once you’re done with it — not that this will delete the data they’ve collected, but it will prevent you from re-using the account again and adding to the data trail, thereby limiting what they can acquire about you with that one account.

If you’re ultra-paranoid, use the account from a public wifi access point, using a clean-installed OS and browser with no special customizations. What are you doing, anyway, issuing death threats?

Yeah, I went there. The assumption generally will be that you’re up to no good if you’re going to that extreme. Not, for example, that you live in Syria or North Korea, and this is what you have to do if you want to live.

Privacy enemies love to brand people who take unusual measures to protect their privacy as deviants who have something to hide, likely pedophiles or terrorists. They don’t think about the French Resistance during World War II, or 1984. Unfortunately, this means that if you are one of the few people who does use a lot of privacy protecting countermeasures, you’re making yourself visible in a way that could arouse suspicion.

The only hope here is to get everyone to adopt privacy technology, which is a decidedly uphill battle. The average person knows little and cares less about how vulnerable their information is, and has a hard time understanding the threat picture or how to protect themselves. Unless privacy security is built in at the protocol and application level, and is thus on for everyone by default, the vast majority of users aren’t going to use it.

Should I delete my history?

Erasing your browsing history won’t really help all that much. If you erase it, you erase YOUR copy of it, and thereby deny access to it for people who have access to your PC, either direct physical access, or through malicious web sites that may be able to exploit a vulnerability to read cookies set by other web sites, view your history or access your saved passwords, or who knows what else.

I find local history useful to bring back something I saw recently and want to go back to for some reason, and it helps me feel like the computer is mine when it “knows” me.

Still, if you’re worried about someone snooping on your PC, erasing your history can be a sensible thing to do.

However, on the server side of the web, there will be a log of your access and what actions you performed through the browser while you are connected to that site, and that isn’t something you can delete. Even if the web site offers you the ability to delete your information, it’s entirely likely that all that does is hide the information from you, while keeping it for the use of the service, for data mining, reselling to third parties, and what have you. When it comes to “removing” data, there’s “remove permissions”, there’s “removing a softlink to an inode”, and there’s “rm -f”. Even if a web service did offer “rm -f”-level deletion of your data at your request, deleting is still legitimately hard — if you expect your data to be purged from all backup tapes and whatnot, forget about it. Ain’t happening.

What do they want from me?

It’s easy, and understandable, to feel paranoid about all of this. As the saying goes “Just because you’re paranoid, don’t mean they’re not after you.” But the inverse is also relevant: Just because they’re not after you, specifically, doesn’t mean you can relax about your paranoia. “They” are after everyone.

Most of it does not have anything to do with you as an individual. I mean, sure it’s possible that a person who has enemies could have this information gathered and used against them, but the world generally is not really that interested in any one person. If you’re a fugitive, or should be if people knew more about what you do with yourself, that’s another matter.

The biggest use of this information is to help target you with advertising that you’re more likely to respond to. Targeted advertising can actually help you — for example by informing you of a product you would like but don’t know about, or by steering discounts your way for things they know you like. I really, *really* hate advertising, but I do actually like it when I want to buy something, start searching for it, and a few days later start getting targeted ads for that thing, offering me discount incentives for it.

I suppose there’s the potential for mind control, brainwashing, and pavlovian conditioning. We are, after all, animals. We don’t like to be controlled or manipulated, and we know we are vulnerable to it. And advertisers want us to spend our money on their stuff. But, the deal is, if they know who you are better, then maybe they can sell you things you actually want and need, and maybe they really don’t care about your private business. As long as the ads aren’t annoying and in your face, I don’t mind them so much, but if they diminish my experience of using a service, I feel it’s my right to block them. They appear on my computer, which after all, I own and control.

But there’s legitimate worry, that this information can be used in ways that harm us, as when insurance companies learn more about who you are and decide you’re more costly to insure or are uninsurable, or if the government starts to suspect that you’re an enemy of the state, or a corporation determines you to be a threat of some kind, and won’t hire you.

Where, then?

Even if you are really worried about Google’s privacy change, and all this general internet privacy paranoia talk has got you thinking about ditching the internet, unplugging entirely from the net is only going to help you so much.

There’s so much information gathered about you and shared by those who gather it that they can pull up a pretty good picture of who you are.

If you have “membership” or “discount” cards with businesses, if you use credit cards, if you utilize financial products from lending institutions, if you tend to respond to surveys, if you file taxes, if you’ve lived in the same place for a while, if you haven’t changed your name recently, they have a lot of info on you already. No matter what you do, it’s possible for people to collect information about you if they can “see” you. Once a bit of information exists about you, sharing that information is trivial. It sticks around forever. And it can be combined with other little bits of information about you from all over the place. And an institution with time on its hands and a lot of resources can amass a staggering amount of information about you.

Scary stuff, but good luck fighting against it.

That’s why I say we’re all screwed no matter what, and not to worry about it too much.

Why do I say don’t worry about it too much? Well, if you want to keep your private stuff private — and there is still stuff that we legitimately ought to want to be able to keep private — at the moment it’s a bit of a losing battle. But, the upside of this is that as more and more stuff that we used to keep private becomes exposed, we’re going to find that we had less to fear.

When I said “good luck fighting against it,” a moment ago, I meant “good luck fighting alone to keep your private stuff private.” That doesn’t mean that we’re all completely powerless.

Once you’re outed, you’ll find that there are lots of people like you. And you have strength in numbers. Thinking about people and their secrets, I find it comforting to think about what the gay community has been able to do in the last 50 years to assert their legitimate right to exist and enjoy the same freedoms everyone else gets. They still struggle for acceptance, but just look at all the progress that has been made.

Live the life you want to live, not the life you’re afraid not to live because of what you think others will think of you, not even people in positions of power, who might abuse that power. The best defense against this sort of abuse, in my opinion, is openness. If lots of people stand up at once and assert their rights, they can win them, keep them, and have them. Bad things can, and, I’m sure, will happen to people, and I don’t mean to justify it or minimize it. But at this point, I think we’re better off standing up for ourselves, fighting back, and asserting our rights than we are trying to hide and exercise those rights unnoticed.

Managing Categories and Tags in WordPress

For the longest time, I’ve paid little attention to the categories and tags on this site. I played with the features a bit, but didn’t really understand them well enough to feel like I knew what to make a category, what to make a tag, how to do it consistently, and so on.

As often happens, I figured it out “naturally”, by just using the site and over time the purpose became more clear. Then for a long time I just didn’t feel like going through the tedium of going through all the old posts and re-doing everything. I hated feeling like “If I had to do it all over again, I’d do things differently”, though, so eventually I had to do something about it.

I’m here to share the lessons I learned.

Know your purpose, or if you don’t know your purpose, find it

When I started this site, I wasn’t entirely sure what I wanted to use it for. I knew I wanted it to be a site for promoting and blogging my professional activities, but beyond that I wasn’t sure how I wanted to do it. This was something that developed for me over time, as I became more comfortable. At first I was very risk averse about putting up any content at all. Putting my real name up on the web made me feel inhibited and over-cautious. I didn’t want to make a mistake, embarrass myself, offend someone, lose my job, etc.

As time went on, I began to get over these fears, and it allowed me to post more frequently, feel more free about saying what I want to say, and knowing what I wanted to talk about. I surmise that most web sites develop their purpose over time, and refine what they do. I couldn’t have known how to do everything before I started.

Doing it is an essential part of the process of learning how to do it.

This means making mistakes, and you shouldn’t let yourself be inhibited from making them. Learning from them quickly and doing things better is more important. But sometimes lessons take a while to sink in, and when that happens it is not always the best thing to start making changes right away. You don’t have the time and you quickly lose energy if you put yourself through a comprehensive overhaul several times in quick succession. So before doing a drastic overhaul, take time to think about it, and before you do the whole thing, do a small part of it first and see how it works. Iterate a few times until you think it’s just about right. Then do the overhaul.

Categories

Here’s how I think about WordPress Categories: If my WordPress site was a book, the Categories would be the headings I would use for my Table of Contents. This isn’t quite right, but it’s a close enough way of looking at it.

If your site has a relatively narrow purpose, you should have relatively few categories. Categories should be broad. Think of your categories as sorting bins for your posts. Your posts fit into or under them. It’s OK if your posts fit into multiple categories, since there’s often overlap. You can create a hierarchy of categories as well, which can be helpful if you have a number of closely related category topics.

If you find that you are constantly writing posts that fit into the same group of categories, you should think about whether those categories would be better off consolidated into a single, broader category, and perhaps your former categories re-done as Tags.

Tags

Tags are like index keywords that help describe the major ideas that are contained within your post. You should think about the content of your post, and what the main ideas or topics were, and tag appropriately. This is not a SEO game, where you want to try to guess all the variations of words that people search by and include them. So skip the -s/-ing/-ly game.

Tags should be short, single words or phrases of two or three words. Try to avoid redundancy, but some small amount is probably OK. WordPress separates tags with commas, so you don’t have to worry about using spaces. It’s OK to use spaces between words, rather than running words together.

I frequently see tags being misused as a sort of meta-commentary on the content of the post or page. This is witty, entertaining, gives some personality to the site. I’m not sure that it’s helpful, but the occasional humorous tag might be amusing.

Witty tags work when you’re reading at the bottom of a post, or reading the summary or digest of an article before you click to Read More. But the intended way for your readers to use tags is to find other related content on your site that is of interest to them. If you over-do the witty tags, you’re not giving the reader useful ways to find a reason to spend more time reading your site.

How your site’s users use Categories and Tags

How, indeed? You can guess, and you can assume, but the truth is unless you have some system of measuring that can watch your readers behavior while they’re on your site, you don’t have too much of a clue how a site’s users actually use the category and tag features.

With WordPress sites, typically it’s the authors who are doing the tagging and categorizing. Readers merely consume them. Some sites, where there is an element or even an emphasis on user-generated content, give users the capability to creating their own tags and categories. If your site does this, you absolutely need to observe and track your users’ behavior. It’s fascinating, amusing, and will give you a lot of insight.

If you retain sole control the category and tag features, you need to think about what your readers need and how useful you are making your site through these features. If you can, try NOT to have to rely on guessing or “common sense” to tell you this — find ways to observe user behavior (though logging, perhaps), or solicit user feedback, and use that to influence your planning and decisions.

Another useful thing to do is to monitor the way people are searching your site, or the search engine query that brought them to your site. The most common search terms your users used to find you should jump out as terms that you should use for tags, possibly for categories as well. And if you’re advertising your site, or using advertising to generate revenue on your site, knowing what terms users are searching for is crucial to drawing traffic and generating revenue.

WP-Admin and the Category/Tag Renovation

My experience with this was that it could have been faster and less tedious. It’s probably my host more than anything, but it seemed that reloading the post, tag, and category administration pages took longer than I had patience for. Clicking update, then waiting a few seconds for the refresh, times however many posts I updated, adds up.

If I wanted to apply the same changes to multiple posts, there’s no way to do this through the web interface. A “mass action” feature to allow adding/removing the same category or tags to multiple posts at once would be very useful.

I could have attempted to directly manipulate the database through building a custom update query, but I didn’t want to sink time into doing that, didn’t want to run the risk of messing it up, and in any case, it’s probably beyond the capability of most WordPress bloggers, so I don’t recommend it. If you have an absolutely HUGE site that needs hundreds or thousands of changes to be made the same way, look into it. If you’re just dealing with dozens, just do it manually.

The other thing that would have been helpful was some kind of redundant tag merging. It’s not uncommon to apply very similar tags inconsistently over the history of your site.

For example, I used the tags “GameMaker” and “Game Maker” quite a bit. I had a few other GameMaker-related tags, which included a specific version, such as 8.0, 8,1, etc.

My first attempt at merging these was to simply re-name the “Game Maker” tag to match the label of my “GameMaker” tag. This did not merge the tags, though; it just created two identical tag labels, which were still separate as far as my WordPress site was concerned. A reader clicking on the “GameMaker” tag from one of my posts would only find about half of the posts I’ve written about Game Maker. Not good!

In order to fix this, I had to remove the redundant tag from my tagging system. To avoid losing the posts that I wanted to be tagged, though, I had to go through and re-tag those posts with the correct tag. At that point, I had a bunch of posts that had BOTH “GameMaker” tags — the correct one, and the incorrect tag that I’d re-labeled. I still needed to remove the incorrect tag to get rid of the redundancy, but looking at my Posts I couldn’t tell which was the redundant tag! So, I went back to the tag admin page, and changed the label of the incorrect GameMaker tag to “dup”, and then went through my posts and removed the “dup” tag.

It would have been much simpler, easier, and faster, if I could have simply navigated to the tag admin page, selected both the “Game Maker” and “GameMaker” tags, hit a button to merge the two tags, and specified which label I preferred to keep. I hope they include that feature in a future WordPress release.

Conclusion

I’m sure there’s still more room for improvement with the way I’ve done it, but I’ve managed to clean up my categories considerably, and applied tags much more consistently through all of my posts. It took a couple hours, but I hope it is worth it. I see a few benefits worth mentioning:

  • Users will have an easier time finding content that is relevant to their interests or related to something they came to the site to read.
  • It will increase the amount of time users spend using the site.
  • It will decrease the amount of time users waste on the site.
  • Better organization will convey to users that the site is of good quality.

Games and stories

Humans are storytellers, and we do it more or less instinctively, but many of us are not great storytellers. Humans are also game players, and we also do that instinctively, and most of us are at least decent in some game or other.

The use of Story in videogames is a rather deep topic, but suffice it to say that games have done well with minimal story, with trite and clichéd story, and often with just plain bad story. Games do have the potential to deliver great story, and some have.

This article at Ars Technica raises some points that I mostly agree with, in that a game doesn’t need a story to be a great game. But I disagree with it insofar as great stories should only be told through established, proper forms. Reading it prompted the following thoughts in reaction:

Even Chess has an element of story to it: Two kingdoms at war. It’s abstract, but it does have meaning. It’s not really the point of Chess, and it’s easy enough to re-theme the story a particular chess set tells. Understanding the course of a game of chess through the metaphor implied by the significance imparted on the various pieces doesn’t really add any insight to winning strategy, though. Chess is loosely coupled to its story. It’s there for flavor, and there’s some symbolic meaning there, but it’s not very important.

A game like Tic-Tac-Toe has no story at all, right? It’s just an absolutely abstract conflict based in the geometric realities of the grid and the arbitrary significance of orthogonal lines. Well, suppose we take the British name for the game, Noughts and Crosses, and then let’s to a tiny bit further to modify the Noughts so that they’re Crescents. Instantly, we’ve created story: a retelling of the age-old, pointless clash that nobody can win between Christianity and Islam. It’s so slight, it’s almost stupid that this change is all that is needed to convey a story with a moral, yet it’s strangely powerful. And that’s how ingrained story is to games. It’s there because we can’t help ourselves putting it there.

Some attempts at telling a story that is the equal of our finest books, plays, and films through the medium of videogames game end up being a failure, and this ends up hurting both the game and the story. This much is true. I think “So don’t ever do that” is the wrong lesson to take from that. Game design is a rapidly developing art form and it’s entirely likely that new ways of integrating story and game are possible, many of them still over the horizon. We can imagine a lot, but we can’t imagine everything the future will bring. Which is why the future is so fascinating. Closing off an entire branch of game design because it was a bad idea in the past or because past attempts failed is just shortsighted.

If you’re making a game, the first goal is make sure that the game is good. There are a lot of ways to do this, likely infinite.

If you support the game with story elements, it can enhance the game. Game developers should try to make those good, of course, as they should make any element in the game as good as they are able. But they don’t have to be concerned about telling great, serious stories. Stories told through games can be great, though, and it’s fine to aspire and experiment to find what works and what doesn’t, but clearly most games do not require a level of storytelling the equal of a classic novel in order to be great as games. It’s OK for them to aspire to do so, though.

Response to “5 Game Maker Cliches to Avoid”

This is a response to 5 Game Maker Clichés to Avoid. My intent is to provide some counterpoints to consider, not a refutation per se.

“Boxes & Circles Don’t Make Good Characters”

Agreed, but games don’t have to be about characters. Abstract games are a lot of fun, too. Of course, even abstract games need to have good graphics. Better do something really cool with that box if you want players to engage with your game and have a compelling experience.

However, it depends a great deal on what your capabilities and resources are. Good sprite animation is expensive. It takes skill, and time to master that skill. Not everyone has that at their disposal, and it shouldn’t stop someone from doing what they can with what they have. If you do it long enough, you’ll get good enough, or you’ll come into contact with others who have skills to complement yours. Many of them will want to be paid for their work, however. So if you’re not yet to a level where your games are generating revenue, it can be hard to attract a team of talent. And without a team of talent, it can be very hard to develop a game that will attract enough attention to generate any revenue. But if developing a well developed character is too expensive — by which I mean if it’s slowing down your progress or preventing it altogether — I say ditch it until it becomes affordable.

It can certainly add polish to a game to provide a well-designed character, but don’t let character development and emphasis on graphics take focus away from designing a solid core game play. For as long as videogames have been around, there has been an over-emphasis on the importance of graphics. Graphics make the strongest first impression, but it’s even more important to provide responsive, intuitive controls, a balanced system of rules, an appropriate challenge curve that neither frustrates nor bores the player, and an overall experience which compels the player to want to play again and try to do better than their last game. Graphics will oversell a poor game play experience, but players know when they’re having fun and when they can’t put a game down. If your amazing graphics draw more people in, you’d better have something to give them when they show up.

Perhaps the best situation is when your character design fuels and inspires your game play design. If you’re implementing character traits or behaviors, think about how those work within the game, to make them more than just dressing.

“Default Resources”

Changing the load screen and default icons requires a paid license, right? So I imagine that rules out a lot of student and amateur developers right there.

Well, if you’ve paid for the license, and want to be taken seriously, then you want to touch every aspect of the game you produce and make it “yours”. Including making your own icon and load screen.

That said, I’ve never played a game and said “Wow, they had such great progress bars!”

I think it’s a little sad and ironic that GameMakerBlog basically says that the key to making a good Game Maker game is to disguise it so people won’t think it was made with Game Maker. Game Maker is a decent platform for game development, and doesn’t get as much respect or recognition as it really deserves.

Sure, Game Maker has its issues and limitations, but many of these are due to it making compromises necessary in order to realize its strengths. It has a low barrier to entry compared to, say, C++ and OpenGL, but cannot offer the kind of performance that native code in a low level language can. But Game Maker does in fact serve its intended purpose very well, and in the right hands can yield amazing results. “Looks like it was made in Game Maker” really means “by an amateur who doesn’t know what they’re doing” and such a person working with other tools likely often doesn’t even get their code past the compiler.

So the large number of low quality games made with Game Maker is really a mark of success, after a fashion. After all, if you have a little limited success early on with your first attempt at making a game, it’s more likely you’ll continue to try to get better than. Before you can make a great game, you have to start somewhere, and Game Maker gives move aspiring developers their start than probably any other platform. Learning to do it better will happen in time, but once you’re there, I don’t see anything wrong with showing a little pride and/or gratitude about the tools that helped you get there. Maybe some great games that leave in the placeholder load screen would help enhance Game Maker’s reputation.

“Windowed Mode”

GameMakerBlog claims that making a game in Full Screen is easy and requires only a few lines of code. I would say that setting the game to run in fullscreen mode is easy, but getting that game to look right and perform well at any resolution in fullscreen is not as easy.

It’s possible in Game Maker to force the Display to a resolution the programmer decides the game needs to run at, but a lot of players will not like that. Having the program take over the display settings and change them is jarring and can be alarming, and if it doesn’t reset things back to how they were on exit, is extremely annoying.

Beyond that, if you make the decision to support multiple resolutions, you have a lot more work cut out for you. You must make decisions. How do you handle larger resolutions screens? Show more of the game? How do you size your rooms? Do you just stretch and scale them up for larger size resolution monitors? Do you use a black border? Do you dynamically re-position your HUD and re-position objects and tiles? Do you create static rooms to support every resolution you want the game to be able to play at?

My AutoFullScreen extension helps with the coding for setting the game to run in fullscreen mode and setting up a view sized to the display dimensions, but you will still need to decide what to do with your rooms, and possibly write some functions which change your room sizes on the fly, or else generate static rooms for every room in your game at every resolution.

What players really deserve is customizable settings. And Game Maker does not provide the developer with anything out of the box that you can just drop in to a project and be done with it. I would love it if I could just drop in a generic, skinnable room that provides basic graphics and sound controls, and maybe a set of widgets that allow other configuration settings, like changing the default control mappings, resetting high scores, and so on, a trophy room for achievements, and so on. That would be so nice.

Instead, the developer has to devote resources to building a “Settings” room, and then figuring out code to change all the relevant settings they want the player to be able to customize, and figure out a way to build useful interface widgets that the player can manipulate, then skin it all to make it consistent with the graphical theme of the game’s art design. It’s made even more challenging by the fact that Game Maker has no built-in user controls that you can simply drop into the room and put a little code into. You actually have to create sprites for sliders and buttons and checkboxes, and program them from generic objects. It’s very time consuming compared to what you get with other development environments.

Learning how to do all of this is a great exercise in learning how to program, but it’s such a common task (pretty much EVERY game needs this) that Yoyogames really ought to build in more for the developer to simply use rather than devote their resources to thinking about the problem, designing a solution, trying to figure out everything you need to figure out to do it.

“Pseudo-Companies”

This one I agree with entirely. The trend is emblematic of what young kids do when they get together and work on things. In part, it’s just learning by mimicry of what they see adult-run companies doing. Sometimes maybe it is adults, just trying to get a small design studio established but failing because that’s what happens 99% of the time. But it is annoying that these failed attempts can linger around on web forums and so on. It’s enough to make you wish that Yoyogames would provide a “kiddie pool” for students who are just starting out with learning programming, which they kindof do by providing a “Beginners” discussion board. Of course, message boards have the same policing problems that all discussion boards do.

Beginner questions should relate to questions developers have about using Game Maker, not a “help wanted” board for people looking to collaborate to find each other. One solution would be to provide such a board, and move the discussion there. Set the board up so that posts only remain visible for a set length of time, so that abandoned efforts to start up something don’t clutter the board.

In general, Yoyogames should try to find ways to help real efforts at start a game development studio or team succeed, rather than complain about all the failed efforts, abandoned projects, and people who are “doing it wrong.” Start by identifying what successful design teams have done to get off the ground and self-organized, and provide that information to help everyone, and maybe provide access to tools that will help facilitate that effort.

“Short Stories”

It’s not surprising that typical Game Maker games are small. Up until now Game Maker has not facilitated team development, and a solo developer can only do so much. As well, unless you really know what you’re doing with how you architect your objects and code, Game Maker projects tend to be difficult to scale up into larger games. Since all variables in Game Maker are “public”, there’s no discipline enforced on the developer by the tool to code in ways that keep things organized and manageable. “Spaghetti code” projects tend to result, and this hurts maintainability. Anything that hurts code maintainability will also make it harder for projects to grow beyond a certain point.

Beyond that, if you finish playing a game and feel like it was too short, the game developer has succeeded at leaving the audience wanting more. Sequels are the solution here. For a solo developer to invest a huge amount of time into developing a large game without first putting something out there to get a feel for how well it will be received is not a good idea.

It’s crucial, though, to be able to follow up the teaser with something fresh quickly. Failing that, some kind of level editor or player-moddable game can sustain interest. Unfortunately, Game Maker doesn’t lend itself to creating games that are easily moddable in this way. It’s certainly possible for this type of functionality to be developed, but it requires an advanced level of Game Maker knowledge, and again, a lot of time. Make this easier and put it within reach of Intermediate Game Maker devs, and perhaps we’ll see more of it.

Double Fine Kickstarter, wild success, and getting there first.

The Indie Game Developer scene is abuzz today with the massive success of the Double Fine Adventure project kickstarter, which met its goal of $400,000 in less than a day, and last I checked was heading over $650,000, with no sign of slowing down.

They still have 33 days of fundraising to go.

Holy crap!

To be fair, I’d say it’s somewhat debatable whether the Double Fine Adventure team can be called Indie. I suppose they are, in that they’re not EA, Nintendo, or Capcom, or another major player in the industry.

On the other hand, they’re definitely established people who have a track record, at least as individuals. Team lead Tim Schafer is a 20 year industry veteran, whos first game project leading ended up producing Day of the Tentacle. It’s not like this fundraising success is coming out of a vaccuum.

The question everyone wants to know is: Can I do this?

How repeatable is this? If I could do this, I could quit my job and spend the rest of my life making games, and things would be awesome. So would everyone. Which is why it won’t work. It’ll work for a few, the first few who make it, and who were prepared all along because they worked really hard to be where they were at the right time.

I know right now there’s no way I can do this. If I set up a “me, too” kickstarter, to fund my own game making aspirations, I’d probably raise a nice family of moths in a couple of months. They could fly out of my wallet when I took it out to show people how much money I’d raised.

Maybe I’d be surprised, but I doubt it — I just haven’t produced much of anything yet. It’s unrealistic to have expectations that people would get behind an unknown. I have to work to change that, and it will take time.

The upshot is, if you have already made a name for yourself, and have a lot of friends and contacts in your social networks, and a lot of fans, I’d say it’s probably reasonably repeatable. It’s like having your own personal mini-IPO.

It’s just that there are not a lot of people who can repeat this. There may also be a limited amount of money and fans to go around which will cap the amount of kickstarter success a project can expect to have.

I expect that in the next couple days, anyone who thinks they can pull off the same will try to do so, faster than you can say “meet me at Sutter’s Mill”. The ensuing gold rush will ensure that a lot of projects that haven’t had as much cultivation will be thrown up for the funding public to vote on, and a good number of them will fail to meet expectations. If too much of this happens, public faith in kickstarters could suffer, as projects fail to deliver or churn out Daikatana-level flops. For this reason, I hope that Kickstarter continues to be selective about projects that it backs, and only lets in people who really have their act together.

What it does indicate to me is that the writing is on the wall for publishers and producers. I see this as a good thing, as it should empower creative people to be free to create more and become more diverse in what they produce. On the other hand, there still needs to be some kind of filter on the market to enable the truly good products to be visible in the crowd. Producers and publishers did that, after a fashion, although mainly as a side effect of trying to maximize profits. What will take their place? The social web? Something else?

It will be interesting to see.

Bad Google Chrome 17: What happened to Don’t Be Evil?

I just read this Ars Technica article on the Google Chrome 17 release and was not happy to read the following:

The new Chrome introduces a “preemptive rendering” feature that will automatically begin loading and rendering a page in the background while the user is typing the address in the omnibox (the combined address and search text entry field in Chrome’s navigation toolbar). The preloading will occur in cases when the top match generated by the omnibox’s autocompletion functionality is a site that the user visits frequently.

I bet this is going to piss off a lot of web server admins. Unless the pre-render is coming from Google’s Cache, it’s going to put extra load on web servers. Web server stats will be inflated, giving a distorted picture for ad revenue. I’m sure google’s smart enough to have thought of these things and has it all figured out, but I’d like to know what their answers were.

Google has also added some new security functionality to Chrome. Every time that the user downloads a file, the browser will compare it against a whiltelist of known-good files and publishers. If the file isn’t in the whitelist, its URL will be transmitted to Google’s servers, which will perform an automatic analysis and attempt to guess if the file is malicious based on various factors like the trustworthiness of its source. If the file is deemed a potential risk, the user will receive a warning.

Google says that data collected by the browser for the malware detection feature is only used to flag malicious files and isn’t used for any other purpose. The company will retain the IP address of the user and other metadata for a period of two weeks, at which point all of the data except the URL of the file will be purged from Google’s databases.

I sure hope this can be disabled. For one, whitelisting download files is the first step to a censored net. Secondly, it gives google access to anything you’ve ever downloaded. Your privacy is no a matter between you and the server. Now you have Google acting as a nanny, reading over your shoulder, making sure that what you’re pulling down over your network connection isn’t going to hurt you (but also very likely in time that it isn’t “bad” in any other sense, either).

While they’re “protecting” you now, eventually they’ll get the idea that they should “protect” you from copyright violation, from information the government doesn’t want you to see for whatever reason, and so on. It puts Google in control over how most people access everything on the internet, and is vastly more power than any single entity should be entrusted with, no matter how competent, how corruption-resistant, or how well-intended they are.

I’m sure malware is still a very real problem, but personally I have not had a run-in with Malware on any computer I’ve used in many years. Justifying Google’s right to do this and using malware as a scapegoat is a bit like saying that due to the possibility of terrorism, you have no right to personal privacy or a presumption of innocense.

We need to speak up about this.

ASCIIboros – new attract mode screen

I want ASCIIboros to feel like an authentic old-school arcade game from what I consider to be the golden age, 1978-1984. I feel like this feels about like 1981 or so. Maybe 1983, since I don’t know too many games from 1981 that had scrolling playfields.

Crucial to the arcade game was its Attract Mode, the mode the machine would be in when not being played, designed to attract people’s attention and get them interested in playing, and develop an understanding of the game. Here’s a new screen I developed to help re-create this feeling:

This video just shows the new screen; the title screen and text screen with the “story” aren’t shown here. I haven’t uploaded this version of the game just yet, as the gameplay is identical to the release version that I submitted for Global Game Jam.

Game Jam postmortem++…

I haven’t looked at my Global Game Jam project since the Jam ended, but I wanted to continue development and turn it into a more finished game. Over the weekend, I started.

Rushing and long hours hurt projects. (Duh.)

My intent was to refactor some things that I knew needed to be, but as I got into it, I ended up noticing more bugs that had escaped me during the Jam. Oh, how embarrassing. I’ll embarrass myself further by dishing the details here.

Bugs

  1. I thought I had fixed the Endian-ness of the Byte in the demo level, but as it turns out I didn’t. I fixed it in one place — the Create event — and forgot to make the same correction in the Step event — where the game spends 99.9999% of its time running. So, effectively I had it fixed only for the first 1/30th of a second of the game, and left it broken otherwise.Oops. See how code duplication can hurt you? If I’d refactored properly as I went along, the code would have existed in only one place, and fixing it the first time really would have fixed it.
  2. The victory condition check seemed to be broken. After I fixed the byte so that it was little-endian, I went back and played the level again, and sure enough found it easier (though it’s still difficult and largely luck-based) to get the Byte to output the ASCII character that matches the Clue. Only, something’s still not right… When I go hit the Executor switch, it’s still telling me they’re not matched. What gives?Well, it turns out the font that I picked, Joystix, renders identical glyphs for capitals and lowercase letters, making it a poor choice for my purpose. I might have noticed this if I’d been paying closer attention. The victory condition check actually does work properly, but since you have no way of discerning whether the clue is a capital or lower case letter, when you think you’ve matched it, you actually have just a 50-50 chance of being right.
  3. For some reason the logic switches sometimes get stuck “off”. This took the longest for me to figure out, because I kept looking in the wrong place. It turned out to be due to an improperly written switch statement which had one unhandled case that I didn’t account for.

Causes

So, these bugs really weren’t all that deep. Once found, the bugs were simple to fix. They were just mistakes that are typical of hastily written code that hasn’t been properly tested. Which isn’t to say that I didn’t do testing, just that I wasn’t able to do proper testing. I’m not sure whether to blame myself, the 48 hour structure of a Game Jam event, or Game Maker.

Well, the first two bugs were all me. They were logic errors on my part. I can blame the sleep deprivation and general rush of the Game Jam for contributing to my errors, but I really can’t have expected any tool I could have used to catch them. When I am exhausted, I make errors like this much more frequently than I normally do, and they become far harder for me to catch when I do make them.

I think this is a valid criticism of the Game Jam concept, but it’s also necessary to point out that Game Jam’s primary focus is not on producing quality code, or even quality games. So, to a certain extent, while it’s a valid point to make that building software this way isn’t the best way to do it, that doesn’t really diminish what is good about participating in a Game Jam. It’s foremost about experiencing the fun of building something cool. It’s also about showing that it’s possible to iterate very rapidly in game development. It’s about creativity and learning how to work effectively with small teams and limited resources. While code quality is important, and a development team could choose to make it a focus, it’s clearly an optional part of the weekend. Still, the better projects are more than likely going to be built with better quality code.

The third bug… well, ultimately, it was a user error with how I wrote my switch cases, but the lack of good debug tools in Game Maker do make it harder to find and fix errors. Game Maker really does not have proper testing and debugging features, apart from some very rudimentary variable tracing, and aborting and logging runtime errors, that’s all you get.

Prevention?

For the most part, the way you test in Game Maker is to run the project and try to set up the circumstances that you want to test, and watch closely as it executes and if something unexpected happens, try to infer from the behavior what is happening. If the program doesn’t crash outright when a bug is executed, it’s basically a perception check on the part of the tester to see if they bug is blatant enough to be noticed.

Subtle bugs, or rare occurrences, can be very difficult to detect. On top of that, it’s rather time consuming. And when you fix it, how you confirm that it’s fixed is more of the same trial-error process.

I’m not sure whether it’s possible to do Test Driven Development in the Game Maker environment. It might be, after a fashion. Like, there’s no way to set up a separate test suite project and rapidly have all events pass. But you could implement some functions designed to test your code, and then run them by sticking them into a special test room. It is possible to build yourself a “test room” where your test cases are set up in some defined, controlled manner and you can check each time you build to see if your latest changes to the project have broken any existing functionality. In fact, a good test room is a must with any complex game. But even then the test room will only help you to notice that a test fails, not tell you why it failed.

But even then, you’re probably not going to have total coverage. In some cases, a lot of of a game program’s behavior is actually emergent, rather than explicitly programmed, and I’m not sure how you could write a test routine for something like that.

Can bugs be good for the game development process?

Even if it is possible to reduce defects by using Test Driven Development in Game Maker, I’m not sure how feasible it is. Games are very complicated, and ultimately the real test of a game is how it plays, so to some extent all that time-consuming trial-and-error testing serves a purpose. It’s unlikely that any number of test rooms that you can build are going to be able to set up every single permutation that could possibly come to pass at runtime.

It’s easy to design certain aspects of game software, but designing “fun” into the game is not so easy. Often, what is fun is what surprises us, and what surprises us more than a program behaving in an unexpected manner? I’m sure countless times in the annals of game development, some unexpected program behavior was embraced as a feature or enhancement rather than classified as a bug and removed from the program.

Sometimes, Bug = serendipity

A good example of that from ASCIIboros is the way the player’s bit re-randomizes when you land from a stationary jump. The idea that the player even should carry a bit value around with him was something that came to me fairly late in the weekend. At some point, I realized that most of my bitwise operations required there to be some other value, since you can’t very well do Or, Xor, And, Add, or Sub with just a single value.

And where would that come from? Well, the easiest and most obvious thing to do was to make it a value that the player carries with them. I quickly implemented this, simply assigning a bit value randomly when the Player object is created.

I didn’t think about how the Player would change its bit value at first, but before it really even hit me that this would be useful and even necessary, the solution to this problem presented itself by way of a “bug” that I chose to adopt as a designed feature: When you jump vertically, upon landing the Player’s State Machine re-calls the bit assignment routine, resulting in a re-randomized value. Problem solved. Only, it was never a part of any design process.

I’m not saying that the bug was creative. But encountering this bug presented an opportunity which my creativity recognized, and found useful. Probably 99% of the bugs I fix don’t do this, but once in a while, they do, and sometimes they can be better ideas than the ones you I of deliberately. Now that I’ve adopted it and included it into my design, it’s no longer a bug.

Now, not all types of software projects want to have these kind of “accidental” design innovations come up during development. With game design, I imagine it’s much more allowable, since the game really doesn’t have to meet any specific real-world requirements; a game program’s output is the experience you have when you play the game, and as long as it’s more fun, that’s all that matters.

Of course you were writing business software, getting the output right is a lot more important, and probably needs to be defined in the designed much more carefully and precisely. It’s hard to imagine serendipity making payroll processing better, for example. Even so, if you’re too rigid with requirements and design, I think you’re closing yourself off to possibilities which are worth exploring when it comes time to muck about with code.

There are times when you can know ahead of time exactly what you want the program to do, and there are no questions that need to be answered during programming, or which you couldn’t have thought of ahead of time if you were just really, really smart. But perhaps those times are not as frequent as we might think. Particularly if “we” are Project Managers or Business Analysts.

Programmers are more than just adept at manipulating symbols to perform arcane calculations with mathematical precision. The good ones are often very creative thinkers in their own right. It’s important to recognize those types of developers and allow them freedom and to incorporate their creative process into your project management style.

And it’s not enough to include your programmers in the design phase of your development cycle (which you should be doing anyway). Sometimes design ideas present themselves during the process of building; we should be open to embracing good ideas whenever they present themselves. I’m not saying that all design innovations are going to be discovered through accidental defects in coding, either — oftentimes programmers will have good ideas come to them simply because they’re playing around with pieces of a project, and it’s a lot more stimulating to be playing with building blocks than it is to be looking at a blank design template.

If you haven’t played it yet, now’s as good a time as any to grab the ASCIIboros Demo from the Releases page and try it out. Windows only, sorry:/

Download ASCIIboros

Space Duel

Space Duel was one of my favorite games of the early 80’s. Note the similarity between the title screen of Space Duel, and the title font for my Global Game Jam game ASCIIboros. This is, in fact, an homage. It happened that there was a free font called Baby Blocks that had just the right look, and conveyed the look that I had in mind for the bit registers in the game. A really serendipitous find.

Space Duel Title Screen
ASCIIboros Title Screen” alt=”ASCIIboros title screen” />