We Own Our Art #GDC15

Nathan Vella, host of the 2015 Independent Games Festival, closed out the awards show with a plea to the better side of everyone:

This past year has exposed a lot of hatred and some significant unpleasantness in our industry. As of tonight, there continues to be women, people of color, and lesbian, gay, bisexual, trans, and queer artists who are being trolled, and spammed, and threatened, and doxxed, and hacked, and even driven from their homes.

It’s no longer possible for those of us in this room to ignore or minimize these issues with our industry or these issues with our art.

I know you all believe it. I know you do.

Pause for applause.

But just as this year has exposed all that ugliness, it’s also exposed a new generation of creators and activists who are fighting for video games and video game culture. They’re fighting for us, the independent games community.

I really don’t think they want our gratitude at all. I think they need our support.

I think they need us to work together as a community to show people a new way to engage with each other and play.

So let’s all fight back against this hate the best way we know how: through our games, and through our teams, and through our collaborations.

Let’s make sure our games aren’t embodying any stereotypes or caricatures.

Let’s make sure as a community we are supportive of one another, and we are as welcoming as possible to any and all new voices.

To me, this really gets to the core of what it’s about to be an independent developer.

We don’t have any stock prices to fret over. We don’t have any entrenched political dogmas.

We own our art.

This gives us a real opportunity to be the change that we all want to see in this industry.

And I think that we can change, for the better, together.

We own our art.

Four small words that lay down a huge challenge.

While a number of people think that games are just for fun or for kids or shouldn’t be subject to grown-up criticism, games are important.

They have meaning imbued in them by their designers. The mechanics and aesthetics are communicating something about the world, and since games are interactive, it means the player is not only learning how to play the game but also to interact with the greater world.

While I don’t believe playing violent video games turns innocent children into killers, I do think that if the only interaction they are exposed to is “attack”, then it shouldn’t be surprising that people grow up to have trouble resolving conflicts.

Instead of figuring out how to create solutions to arguments or disagreements, people learn that destroying the opposition is the way to get results.

All that said, violent shooters or games played “just for fun” aren’t bad games. They are thankfully just one facet of the entirety of games, and having a healthy, diverse set of experiences allows for more well-rounded play, which should translate into more well-rounded players.

Now, I’m not saying I think games will bring love and kindness to everyone.

But knowing that there is a game about people who aren’t like me, and learning about the creators who aren’t like me, means I have a chance at learning about them as more than a stereotype, so when I meet people in real life I’m more likely to treat them as human beings worthy of dignity.

We own our art. What we create is our uncompromised vision of what we want to bring out to the world for others to experience.

What kind of vision of the world are you delivering to your players?

GDC 2015 Starts Today

Four years ago, I attended my first and only Game Developers Conference.

While many people find the conference overrated or a pain to travel to, I miss the energy of so many game developers in one place, sharing their passion and experience with each other.

I miss the Independent Games Summit and the AI Summit. I learned quite a bit from the sessions I attended, and I met quite a few game developers I only ever knew online for the first time.

I miss the Expo floor, not only for playing demos of everyone’s games but also to see what new trends and technologies might be coming.

I would love to check out the GDC Education Summit.

I want to see who will win at the Indie Games Festival and how Nathan Vella compares to Andy Schatz as host. I’m sure he’ll be great, and he’ll say inspirational things we’ll all want to write about. No pressure.

I’ll be following this year’s action on Twitter and on Gamasutra, unless anyone has any better recommendations.

While my wife and I are still watching Oscar-nominated films, I’m surprised I haven’t been looking into playing Seumas McNally-nominated games. I’ll fix that now.

Congratulations to all of the finalists for the IGF! I see many of you have a GNU/Linux version of your game, and I’m looking forward to trying them out.

I Just Wanted to Play a Game with my Friends

As someone with a full-time job and trying to work on a business on the side, I find that I don’t play as many games as a game developer probably should. Most of the games I have access to are many, many years old, so I’m a bit out of touch with the latest offerings from major publishers.

Most of the time, though, I don’t seem to miss it. There are plenty of indie and major publisher games that are available that I still haven’t played, so I’ve got quite the backlog to tide me over.

But some friends of mine were playing online regularly, so I thought it would be a good opportunity to spend some quality time with them and also join my first MMO since playing Runescape about a decade or so ago.

Unfortunately, Star Wars: The Old Republic isn’t available for Linux-based systems, and WINE support sounded like I could expect to install the game but not really find it playable.

What follows is basically me whining, so feel free to find a better use of your time.

I booted up Windows for the first time in over a year on my desktop system, and I start downloading the installer, which required setting up an account.

It turns out that it installs a launcher, which then patches itself by downloading for a bit. Soon, I’m able to…

…start retrieving the minimum download.

There is text that pops up to inform me that until the full game is downloaded, I can only play on the starter worlds. Ok, fine by me. I’m new to the game anyway.

Except, how do I start the game? The Play button is grayed out.

Then my system blue screens. I haven’t seen that color in a long time.

After rebooting, I find that the minimum download in progress is at negative 100%. After waiting and hoping it would resume from before, and after searching online for help, I found that rerunning the installer helped. I think it was downloading, but the progress percentage was displaying wrong, and reinstalling the launcher made it display correctly.

Then, I waited almost an hour before it finished downloading the basic client. Hey, the Play button is accessible now!

I texted a friend to ask what server they were playing on, but since they are probably having fun, I didn’t get a response right away, so I chose one that seemed probable, and I started creating a character.

Once the character was created, I had to “activate” the character, then I could play.

I saw a loading screen with some text about the smuggler’s activities when suddenly I was looking at my desktop.

Huh.

So I started the game again, and when I finally got back to that loading screen, it crashed to the desktop without so much as an error message again.

And then again.

So, a couple of hours later, and I still haven’t started the game, let alone been able to join in the fun with my friends.

And the best part?

My friend finally got back to me to say that he doesn’t remember selecting a server. He said they are part of Starfleet, and you can choose between Starfleet, Klingon, or Romulan.

Wait, what? I just spent the entire evening struggling to install and play the wrong game?!

At this point, I’m simultaneously happy that I don’t have to fight with Star Wars: The Old Republic anymore and frustrated that I now get to start the entire download-for-hours-without-playing experience again with Star Trek Online.

I understand that these are huge, expansive games with a lot of content, so I probably should have prepared my computer before the scheduled gaming session, but from what I read online, I’m not alone in needing to find time to play games only to discover that the time is spent downloading updates or patches or otherwise preventing game time from including game play.

For now, I’m going to bed.

Does Your Game Instill a Sense of Wonder?

Alice In Wonderland

I recently came across this fantastic TEDx talk from June 2014 by Mac Barnett, an award-winning author of children’s books. Somehow, he managed to share some behind-the-scenes secrets for crafting experiences without ruining what makes those experiences feel so amazing.

Why a Good Book Is a Secret Door:

He talked about how art or fiction can take us to a place where we simultaneously know that what we are experiencing is not real yet believe it anyway.

I’m going to call it wonder. It’s what Coleridge called the willing suspension of disbelief or poetic faith, for those moments where a story, no matter how strange, has some semblance of the truth, and then you’re able to believe it. It’s not just kids who can get there. Adults can too, and we get there when we read.

There are some books from my childhood that stuck with me, and I still have them on my shelf. Aliens for Breakfast by Jonathan Era and Stephanie Spinner is the story of a boy who finds out he has mere days to save the world from the evil alien disguised as the charismatic new kid in his class. It’s about 60 pages long, but it was filled with strange ideas, like aliens traveling through freeze-dried cereal boxes, mixed in with familiar ones, such as dealing with the complex social interactions of childhood.

I loved every minute of reading it, and while I don’t remember much about the made-for-TV movie version starring Sinbad and Ben Savage, I just found out that the sequels Aliens for Lunch and Aliens for Dinner exist, so I’ll be right back.

Ok, I’m back.

As a grown-up now, I have other books that appeal to my sense of wonder. I just finished inhaling The Martian by Andy Weir faster than any Harry Potter book, which is about a man who finds himself stranded on Mars after his crew aborts a mission and leaves him behind because they thought he was dead. Things I take for granted, like being able to step outside without worrying about how much oxygen I have or whether I’ll be able to find food, the protagonist Mark Watney has to work to come up with ingenious ways using the limited resources he has. It’s not like he can have NASA beam him freeze-dried cereal. And if he makes a mistake, he’s dead. Mars is a harsh place.

A place I’ll probably never visit, so it is amazing to live vicariously through someone who did, even though he never existed.

We know these characters aren’t real, but we have real feelings about them, and we’re able to do that. We know these characters aren’t real, and yet we also know that they are.

Barnett went on to say that children get to the wonder a lot easier than adults do.

I’ll agree with my limited experience. My young nieces are the best audiences for my incredibly amateur magic shows. I can make a coin disappear, and even if they can see that it fell into my sleeve, they still aren’t sure if they did, especially when coins pop out from behind their ears.

I want to create that experience with games. I want children to play my games and think about what’s possible in a world they think they know.

Just as I thought about what would happen if the dinosaur at the museum came to life and became a pet for a day, or if it actually rained meatballs and hamburgers from the sky, or if my teachers were actually aliens ready to flunk the planet, I want my nieces to have that same sense of wonder.

Games can definitely do it.

I found it very compelling when Samus Aran lost her suit’s powers early on in Metroid Prime, forcing her to continue her mission without them. I liked how Ness was just a kid when he discovered something strange about that meteorite in Earthbound and had to save the world while also remembering to call his family regularly. Spiderweb Software‘s Geneforge and Avernum series tended to put you in the role of a character who discovers pieces of the truth about the world and must make important decisions about loyalties and goals.

A lot of my favorite games involved a protagonist who suddenly finds himself in the middle of a new situation and needs to figure a way out: The Illusion of Gaia, Chrono Trigger, Homeworld: Cataclysm, Don’t Starve, and yes, even E.T. for the Atari 2600. Beyond the idea of facing a challenge, these are characters who tend to find themselves suddenly confronted with a challenge when they were otherwise living their lives. The challenges intruded on them, and they had to step up and respond.

I want the games I create to put my nieces in the middle of fantastic and surprising experiences, figuring out what to do without limiting themselves to what they think is currently possible. I want them to finish a play session and have it stick with them in the real world.

It would be a fun way to prepare them for their weekend trips to Mars at the very least.

(Photo: Alice in Wonderland | CC BY-2.0)

Calling CMake commands within CMake with execute_process

Hypothetically, you’re using CMake and want to do something that CMake documents as one of its list of commands it provides that can be used across different systems:

-E: CMake command mode.

For true platform independence, CMake provides a list of commands that can be used on all systems. Run with -E help for the usage information. Commands available are: chdir, compare_files, copy, copy_directory, copy_if_different, echo, echo_append, environment, make_directory, md5sum, remove, remove_directory, rename, tar, time, touch, touch_nocreate. In addition, some platform specific commands are available. On Windows: comspec, delete_regv, write_regv. On UNIX: create_symlink.

Ok, so you know that you can use the -E command line argument, but you’re not running this command from the command line. You’re trying to run it as part of the configuration step of your build.

That is, you have a CMakeLists.txt file, and within it, you want to add a command to do something at configuration time, such as create a symlink.

So, how do you do so?

Well, it’s not clear from the documentation, but it turns out that the way you are expected to do so is by using execute_process. Here is an example in which I link to my project’s resources directory from my Android project’s assets directory:

EXECUTE_PROCESS(COMMAND ${CMAKE_COMMAND} -E create_symlink “${PROJECT_SOURCE_DIR}/resources” “${PROJECT_BINARY_DIR}/android-project/assets/resources”)

Hopefully this tip helps you save some of your hair from being pulled out.

Also, if you would prefer it to happen at build time instead, use add_custom_target.

Follow GBGames on Google Plus and Facebook!

Association of Software Professionals

Twitter: GBGames