Notacon 9 Game Maker: Crash Course presentation materials for your consumption

Game Maker: Crash Course materials are online, open to the public on Google Docs.

Here’s what you get:

Presentation slides. Be sure to read the notes, there is actual information. More than would fit into the talk itself!

Space Invaders Kit. All you need is Game Maker installed and you can build it yourself! A great way to get started. Includes:

  • starter project file,
  • final project file,
  • final project .exe build,
  • sprite images,
  • sound files.
  • step-by-step instructions for how to do it!
  • project specification document — a good way to start out any project is to document what you want it to be. Follow this as a template for your own designs!

Notacon 9

Notacon 9 weekend is over.

I gave my Game Maker Crash Course talk, which went well. I livecoded Space Invaders using Game Maker 8.1. This was my first-ever livecoding talk, and let me tell you, it’s not easy to talk intelligibly while coding!

I was really anxious about screwing the talk up the night before, but when I got into it I was able to keep my mental focus in both the talk and in the code, and got through enough of it in 90 minutes that I felt like I’d gotten most of the fundamentals across, and took Q&A at that point. The talk went much better than my first go at it at my sneak preview/dress rehearsal, which means the March 10 rehearsal did it’s job admirably — but there was still a lot of things that I glossed over and didn’t explain as fully as I’d intended in my notes and slides.

But I think that actually worked out better (it was more an ad lib to go off script than an error), because I ended up just sticking to the immediate project and didn’t digress into confusing subjunctive sidebars about all the other things one might possibly do in Game Maker with a given type of resource, Event, or Action. I only flubbed a couple times (apart from the intentional errors that I made to demonstrate how the process of building up a project iteratively really looks — building and testing incremental bits of progress toward the final project), and recovered gracefully and kept the talk moving, and I didn’t end up needing my detailed outline notes at all. I’m not sure how well the audio got picked up by the microphone, as I could not really hear myself over the monitors at all while I was speaking, but it will be interesting to see if they can do anything in post-processing to salvage the video.

One of the best things at Notacon this year, and possibly one of the best all time things at Notacon, was the Artemis Starship Bridge Simulator workshop led by Mike Substelny and Tom Robertson. I was very happy that they came to their first Notacon in a roundabout way because of me. When I was working on my proposal for A Game Any Game, I approached Mike and asked him if he would like to help me out with a Game Maker workshop for the weekend. Mike was the instructor who led the intro to game design class at Lorain County Community College, which is what finally got me back into game design and programming, and I thought it would be a lot of fun to work together on a project like this with him. He declined at first, but after thinking about it some more decided to submit his own proposal with Tom, and that’s how that happened. I love seeing my enthusiasm for community events bring in more people and their energy for the things that they are enthusiastic about.

I saw a lot of friends this year, and by that I don’t mean the usual hacker scene personalities; I mean local people who I’ve known for years, but never had seen at Notacon before. Even though I always felt many of them would be into it and enjoy the talks and activities, and many of them were friends or friends of friends with people who went each year. I’m not sure whether my talking about how great it is to be there for the past three years had any influence or not, but it doesn’t really matter.

However, this year’s event was quite a bit smaller than past years, overall. I’m not sure why that is, and it makes me wonder. The same good feelings were there, about being at a great party with brilliant people, and actually in some ways maybe they were stronger than past years, the luminaries and bigger personalities who were missing gave the event a more down to earth and sedate tone and I think maybe allowed those who were there to embiggen themselves a bit to fill out the empty space more than they might have otherwise. I felt like there was something missing for much of the weekend, so many people who’ve been coming for years who weren’t there this year.

A Game Any Game was not as successful as I had hoped, but ever since I submitted the proposal to do it, I had this feeling that it would be difficult to attract participants when there’s so much else to do all weekend long. We had a few people come to the table we were at, to talk and get the software from me, and build a little start of something. And any amount of that to me counts as win. I hadn’t planned on making a game myself, as I’d wanted to be available to help others with their questions as they got acclimated to Game Maker, but with the lack of participants, I ended up working on a game and completed it just before the event ended.

It really isn’t much of a game, in fact it’s really pretty broken in some ways, and the code, if you look at it, it quite rough. As I worked on it, I had the feeling I used to get from drawing margin doodles while sitting around waiting for inspiration to grab me. It was less an attempt at designing something good, and more an experiment, to stretch my legs a bit and do something I hadn’t done with Game Maker before, and so I chose to do a game that used mouse controls. Doing the controls was a little tricky, mainly because I wasn’t sure exactly what I wanted, and I’m not certain that the approach I ended up with is the best, and probably it isn’t, but for the purposes of exploring the mouse functions and doing something with them, it was a good experience. I only spent maybe a total of four hours over the weekend seriously engrossed in building it, and much of the rest of the time I was working on it, it was an aimless, design-less exercise.

So, enough excuse-making, I think I’ve adequately established that this is probably not worth playing, but for posterity I’ll have the .gm81 file water if anyone wants to look at the code, build it, play it, or mess around with it. I don’t plan to develop it further.

I’m planning on getting back into MUST!GET!EGG! in the next week after Ludum Dare. For those who I met this weekend who might be reading this, that will be a more inspired creation and should be a decent game by the time I finish it.

MUST!GET!EGG!

Inspiration strikes in unexpected ways sometimes. This morning while I was listening to the news on the local NPR affiliate, a story came on about an easter egg hunt in Colorado that was canceled this year because the year before, parents were out of control, being aggressive about making sure their precious child got an egg before they were all snatched away by the villainous other children.

I was so appalled by the story that I made the following snarky quip on Facebook:

MUST!GET!EGG! genesis

The imagery was so strong that I knew I just had to work up the idea into a full concept and design, and then build a game. I wrote up a little design document today and I liked it, so I put in a few hours this evening working on it, and it’s still very early but I think this will actually be a decent game when it’s all done, if I can make everything work the way I want it to.

So far it’s very crude, but in less than four hours I had playable characters roughed out. Here’s the shotgun-toting Hunter in action:

MUST!GET!EGG! alpha screenshot

One thing I noticed about this creative process is how satisfying it is to have an angry reaction to a news story and turn it into the inspiration for a creative work. This is how I know that I’m a game designer: when my first response to something is “Make a game out of that.” Doing it in response to something that makes me feel is what makes me an artist.

I also found the game concept itself very satisfying because it’s so inappropriate — it’s hard to get much wronger than having shotgun-toting hunters gunning for bad parents at an easter egg hunt to teach everyone a lesson. If this were done up as anything but a zany pixel-art graphics 2D game, it’d probably be disturbing and controversial. As it is, I suppose in the next few weeks or months if it gets noticed, it may end up generating some controversy, especially if the news media picks up the story of this game as sortof an echo of the original story.

The thing that makes me happy about this project is just how quickly I can work when I have a spark of creativity. My Game Maker craftsmanship continues to improve and I find that I can make things very quickly, which is essential for me. Unlike the experience I had with the Global Game Jam back in January — which was amazing in its own right — tonight I didn’t have to go through the agony of losing work due to a corrupted project file, and having to rebuild everything. I worked quickly, and got results quickly. I can imagine completing a full project like this in maybe <100 hours, which is fantastic.

Every time I pick up Game Maker and build something with it, I get a little more confident, find it a little easier, and learn a little more. It feels great.

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: full Attract Mode completed

Well, there you have it.