Categories
Geek / Technical

What Do You Wish You Knew More About?

As a child, I consumed information around me. When I discovered a topic existed, such as the Pacific Theater of World War II or how to create your own pop-up books, I wanted to learn everything about it. I read books, watched the History Channel back when they actually showed history (oh, the History Channel is this generations’ MTV, isn’t it?), asked questions, and pretty much did whatever I could to feed my passion for learning.

As I got older, I found I had to be more selective with my attention. I had more demands on my time. I couldn’t immerse myself in a single topic unless it was for school or work.

Or at least, I felt that way.

I have friends, grown-up friends, who I can say are still passionate about things I used to love. A few of them geek out when NASA or the ESA publicize their latest successful missions. Another loves all things dinosaurs.

And I realize how much I have missed about being passionate about a topic to the point of becoming an amateur scientist or historian.

The cool thing? I can immerse myself in something now, and I’m old enough to understand it a lot more than when I was a child. And we know so much more today than we did just 10 or 20 years ago, so there’s more to learn.

And even cooler, we’re still learning. We now know what Pluto looks like, and soon we’ll know more about the makeup of Jupiter. We found a regaliceratops in Canada last month when we didn’t even know it existed before.

Do you wish you knew more about theatre? About movie-making? About the lives of authors? How to start a business? Weigh-lifting and nutrition? Sustainable gardening? Game design and development?

Did you ever wonder what was in the ocean, whether here on Earth or on Neptune? Or have you ever thought about how thinking actually works?

And did you ignore the curiosity, or did you let it lead you to answers and more questions?

Categories
Games

Can Games Address the Vocabulary Gap?

I didn’t know that vocabulary is hugely important in someone’s development. Children from poorer families tend to know fewer words than children from wealthier families.

And according to the 1995 study by Betty Hart and Todd R. Risly called The Early Catastrophe: The 30 Million Word Gap, it’s an enormous difference that would take a lot of time and effort to address.

What’s more, the exposure to words by children in poverty tends to be negative in nature. Silence means you aren’t in trouble, but it also means you aren’t growing your vocabulary.

As you can imagine, being behind by millions of words means you can’t build upon those words. You don’t read as much, which means you don’t grow your vocabulary on your own time. Advanced lessons can essentially become meaningless gibberish, and you fall further behind your peers as you get older.

Education Week recently published an article that mentioned the benefits of technology regarding vocabulary skills:

With the right technology, struggling students can gain not only more word experiences per unit of time than they can from traditional instruction; they can also gain the right word experiences to prevent them from falling behind, giving them a real shot at excelling and achieving their potential.

Games are all about learning. I recall playing Lemonade Stand and learning the word “advertising”. I didn’t know it, and then I encountered it in the context of the game, and I had to learn what it meant in order to play. Today’s games can feature positive audio and speech, and speech-recognition means the player can talk to someone in-game in a safe environment.

But I was also privileged to have a computer in my home, as well as a dictionary and the know-how to look it up. Not everyone has access to smartphones and tablets and consoles and computers.

Many schools are trying to address the technology gap by ensuring there are computers in the classroom, and some schools have programs to assign a laptop or tablet to each student. But is it enough to address the technology gap?

And where children have access to such technology, do they have the games geared towards helping them with their vocabulary, and as a result, the trajectory of their lives?

Categories
Game Design

Dealing with Game Designer’s Block

You’re working on your game, and you are struggling to get it to come together.

Maybe it’s taking a long time to implement. Maybe you are in the middle of a large project and you’re getting sick of it. Maybe partway through you realize you haven’t even decided what experience you’re aiming for yet.

Maybe it’s time to take a short break to design a simpler game.

Simple Board Game

Brenda Romero’s introductory game design exercise is ideal in these situations. Instead of trying to create a completely unique and commercially-viable game, solving all of the various subproblems you find there, this exercise gives you a simple framework to build around while still giving you a chance to stretch your game design muscles.

Create a race-to-the-end board game, and iteratively build up a complete game. It doesn’t have to be something you can sell. It just has needs to be something you can point to and say, “I made it” and could be something you might whip together in a short period of time.

Doing these kinds of exercises is the equivalent of an artist sketching a quick drawing in a notebook with a pencil. It might not be lead to anything more, but it’s a way to actively engage your mind while also resting it for your main work.

Categories
Geek / Technical

You Have to Actually Do the Work to Claim You Can Do It

Yesterday at the day job, a coworker and I were discussing coding challenges. He was talking about how he came across one that, even though he knows how he would approach it, it would still be fun to do.

He said at one point, “I’ve never actually written a program to solve Sudoku.”

Another coworker chimed in to say, “Yeah, but you know you could write one.”

First coworker: “True, but while I know I could, I never have.”

And they went back and forth for a bit, with one arguing that he’s more interested in tackling the unsolved problems of the world rather than work on problems he knows he can solve.

I thought about his position, and I have concluded that he’s wrong.

I agree with the desire to work on something worthwhile. Writing your own Sudoku solver when others already exist isn’t likely to result in any significant, lasting impact. Solving engineering problems such as aiming NASA’s New Horizons at Pluto accurately over the course of almost a decade? That’s gratifying work.

But there’s a difference between knowing you could write a “Hello, World” program and being able to say you’ve done it, and it’s not just about bragging rights.

Here’s a “Hello, World” in C++ that took me a mere moment to write just now:

#include <iostream>

int main()
{
   std::cout << "Hello, World!" << std::endl;
   return 0;
}

I’m confident I don’t need to run it through a compiler to make sure I wrote it correctly. I write C++ code often enough that something this simple usually works just fine the first time, although feel free to tell me I made a mistake if you spot one.

But it wasn’t always this easy for me. Before I wrote code regularly, I’d make mistakes that would seem boneheaded to me today.

For instance, I might forget to include the iostream header in the first place. Coming from a QBasic background, where PRINT was a built-in command, it was odd to have to include a separate header to do something so basic as output text.

Another example is forgetting which way the streaming operators go for output versus input. << or >>? When I wasn’t writing code daily, I would have a hard time writing new code that used cin or cout because of this issue.

I had no idea there was a need to flush the output when I first started coding in C++, so I might leave off the std::endl, probably because I didn’t know it existed at first. I would wonder why my program wouldn’t spit out the text I expected to see, or why only part of the text seemed to make it and the rest was missing.

And of course, I might accidentally forget a semicolon or two.

That’s a lot of potential mistakes for a “Hello, World” program, and I am sure I ran into every single one and possibly more.

Before I was considered an expert C++ programmer, I could argue that I know how to write a “Hello, World” program. In general, that is. I knew the trick was to use some command to output a specific string, just like most programming languages.

Boooooooriiiiing! I’m above this. I want to do something more interesting!

I remember feeling this way, but I also remember the feeling the first time I tried to read some source code I found on the Internet. I couldn’t follow it! Everything was more complicated than it needed to be, and they used “advanced” things such as std::vector.

It was around this time that I found a good C++ book and followed the exercises in the chapters. I used to skip them because I thought, “Yeah, I get the gist.”

But actually doing the work helped me internalize the lessons. I didn’t have a vague, general understanding of the code. I KNEW the code.

It’s like the difference between being told about a majestic view of the mountains are and seeing it for yourself. One is story, and the other is experience.

“Hello, World” is pretty easy to master, but writing the code to handle input correctly and spit out appropriate output builds upon the knowledge you have for doing this easy work. And the new code will have its own common pitfalls that experts don’t run into anymore but that trip people up when they first encounter it. Did your stream try to convert the user’s input into an integer and fail? Are you handling this situation correctly?

Yeah, you might get the general idea and know you COULD write the code, but until you do, you don’t get to claim expertise in writing such code. Knowing the mechanics of diving isn’t the same as knowing how to dive. Knowing how to use color to simulate shadows and lighting doesn’t mean you know how to paint a bowl of fruit.

I would love to be involved in a worthwhile, complex, never-before-solved project, but it’s hard to demonstrate competence when I’m struggling with common mistakes in the solved problems.

You have to put in the work. Until then, you’re untested.

Categories
Marketing/Business

Creative Commons Has a Kickstarter Project to Create a Book About Open Business Models

There are always debates about business models. Years ago, everyone was saying that you should focus on Flash. Anyone who suggested Java was perfectly fine to use got pushback. When asked to justify Java for game development, people would say, “Look at how successful Runescape is!” and the Flash proponents would say, “But that’s the exception!”

Minecraft would come later.

Similarly, I recall talking to someone about a business model for making open source games, and I was told that you couldn’t make a living from it. I pointed out games such as Second Life and was told, “But that doesn’t count!”

Counterexamples in these kinds of arguments are always exceptions that don’t count for some reason.

Creative Commons, the nonprofit organization that enables the sharing and use of creativity and knowledge through free legal tools, decided to write a book on open business models to show how exceptional they really are.

We want to show the world the full spectrum of open business models made using Creative Commons. Our goal is to begin to answer what we consider one of the most important questions of the digital age: how do creators make money to sustain what they do when they are letting the world reuse their work?

As of this writing, the Kickstarter campaign has 20 days left and is almost halfway to its funding goal.

For the last couple of decades, people have questioned how you can make a living by giving away what has traditionally been protected by copyright, patent, and trademark law. And some of these people get animatedly threatened by the idea, as if it somehow smells too politically threatening.

While some websites have tried to list open business models in the past, I think an entire book on the topic would fill a void in the debate.

Categories
Game Development Marketing/Business

The Great Gatsby Was a Flop; How’s Your Game?

Yesterday while listening to an audiobook, I learned that F. Scott Fitzgerald died thinking that his greatest work was a failure.

He earned just $2,000 from The Great Gatsby. In today’s money, it represents a bit more, and he was in the top 1% of income earners in his time, but this was his major novel. He put a lot of blood, sweat, and tears into it, but he got paid the same as or less than he did for his short stories. How depressing!

Now, there are different definitions of success, and financial success isn’t everything. But Fitzgerald expected Gatsby to be a huge financial success and was disappointed.

Today, the work is taught in schools, which is how I became familiar with it. I had to write a paper on the novel as part of my high school English class, and I remember someone saying, “Hah, good luck! That’s the teacher’s favorite book.”

So I made sure to do my research well. I even read the book twice before writing my paper early enough to be able to edit it instead of trying to get it all done on the last day. I got an A, and I found I quite enjoyed the book as well.

Incidentally, I learned that The Great Gatsby is still not in the public domain, despite the author having been dead for three-quarters of a century.

The audiobook mentioned a number of Fitzgerald’s peers who are widely recognized today as geniuses as well, but when they actively published, they experienced modest financial success. The very financially successful literature was apparently kind of terrible and written by authors who are all but forgotten, but people couldn’t get enough of them.

So what’s the lesson here as an indie game developer?

No one has it easy. Fitzgerald was a popular figure, and his greatest work still couldn’t find traction with the public in his lifetime, despite the praise he got from fellow writers.

Most people look to the great successes for inspiration. What was Howard Schultz’s secret to success for Starbucks? How did Mark Zuckerberg make Facebook the juggernaut it is? See what Notch did with Minecraft?

They are all human. They all failed somewhere. Some found great financial success, while others didn’t.

We don’t often hear about the failures of successful people. We forget about the struggle and look for the glamorous.

Then we look at our own results and worry we don’t measure up. We think we’ll never be great ourselves, because we don’t recognize that our failures are exactly the same kinds of failures that the successful people had.

When you publish a game, it’s entirely possible that no one will find out about it. You pour your heart and soul into a game for months or years, and it could flop. Meanwhile, you see other games take over the world and hear that the developers made them in a few weeks in their spare time.

You see huge and successful indie games, games that get all the press and sales, and you compare your efforts to what you perceive as someone’s effortless genius. It can be heartbreaking and frustrating.

Some of us stop bothering to try.

But failure is part of the process of succeeding.

Ideally, you get to success while you can still enjoy it. You just need to make the attempt and get past the failure first.

Categories
Game Design

Valuable Books on Game Design

Earlier this month, I watched a 2013 recording of a game design talk by Lost Garden’s Daniel Cook, Game Design Theory I Wish I had Known When I Started:

The slides don’t actually seem to exist anywhere, by the way.

It’s a great presentation, and he goes very high level, leaving the details of each item as an exercise for you to explore in your game design education.

At some point he mentions that there are only a handful of game design books worth having, and he lists three of them in his talk.

I already owned a copy of A Theory of Fun for Game Design by Raph Koster. It was out of print for a bit, and I was strung along by an ordering system snafu on one website that couldn’t actually seem to process the order in 2008.

But eventually I got it, and I should probably reread it again because in watching Cook’s talk and in seeing comments by others, everyone seemed to love it more than I remember loving it, and maybe I missed something the first time.

The other two books Cook mentioned in his talk are: Game Feel: A Game Designer’s Guide to Virtual Sensation by Steve Swink and Game Mechanics: Advanced Game Design by Ernest Adams and Joris Dormans.

I didn’t know about these books, but on the strength of Cook’s recommendation alone, I ordered them, and now I have my own copies.

My New Game Design Books

When I was in college, I studied computer science, and I had a roommate who studied Human-Computer Interaction. I remember thinking that HCI would come in handy in game development, and here Swink has written an entire book on the topic geared towards games.

I used to own a book by Ernest Adams and Andrew Rollings called Game Architecture and Design, and the only reason I got rid of it was because a new edition had come out. Ernest Adams has written quite a few books on game design, some geared towards specific types of games. Game Mechanics is over 300 pages of deep exploration of the topic, and I look forward to diving into it.

Both of these books are deep dives into subtopics in game design. There are other books on my shelf that I really enjoyed which are a bit more general.

One is Game Design Workshop: A Playcentric Approach to Creating Innovative Games, Third Edition by Tracy Fullerton, a great textbook which I reviewed last year. I also went through a number of the exercises weekly for a time, which you can see at Game Design Workshop Wednesdays.

One book with accessible, non-digital exercises that do not require a computer or other expensive technology is Challenges for Game Designers by Ian Schreiber and Brenda Romero. Combine this book with Schreiber’s free online courses on game design, Game Design Concepts and Game Balance Concepts, and you’ve got a good set of game design educational resources.

Tynan Sylvester’s Designing Games covered some of the same ground as other game design books, which is to be expected, but it also brought some fresh perspective and seemed more holistic. I appreciated the discussion on marketing and business influences since games aren’t created in a vacuum. I wrote review of Designing Games last year as well.

What game design books on your shelf do you find the most valuable?

Categories
Game Design Game Development Geek / Technical Personal Development

How to Find Indies in Iowa

When I started out as an indie game developer, I found a home on the Internet. It was a set of forums dedicated not just to game development but also to making a living from it.

And while daily online communication, or maybe just procrastination, was helpful, it was nothing compared to the monthly face-to-face meetups we had in Chicago. We met either downtown at a Dave & Buster’s or at a Starbuck’s in Schaumburg.

It was kind of a loose mastermind group, in which we tried to set goals for the next meeting and held each other accountable to them. We had a range of completely newbies to experienced and successful business owners, and we all met, tried out each other’s games, and gave feedback.

So when I moved to Des Moines, Iowa, I immediately wondered where a similar collection of indies were.

They’re hard to find, so I decided to put a summary on this page in the hopes that it will be easier for everyone to connect with groups they might not have otherwise known existed.

The Iowa Game Dev Friendship Club has a mailing list at https://groups.google.com/forum/#!forum/igdf. It’s made up of indies and enthusiasts from all across the state of Iowa, especially out of Ames and Iowa City which is where our major universities are.

There is now an associated Iowa Game Dev Friendship Club Facebook group.

Sometimes a good number of members show up at a game jam, but otherwise they don’t try to organize massive face-to-face meetings. There have been Des Moines-area meetups in the past, such as the Midwest Mingle.

If you’re in Ames or Iowa City, your local university has a game developer organization. Iowa State has the Iowa State Game Development Club, which has an enthusiastic Twitter account at @isu_gdc and a ISU Game Dev Club Facebook page.

University of Iowa in Iowa City has EPX Video Game and Animation Studio, formerly known as Animation and Interaction at the University of Iowa. You can find them at their weekly meetings and at their EPX Facebook group.

UPDATED 2016: The International Game Developers Association has a Des Moines chapter. You can find them on Twitter (@igdadsm) and Facebook (https://www.facebook.com/groups/227434834257939/.

Did I miss anyone? Is there an Iowa indie game developer meetup you’re hosting that I don’t know about? Let me know, and I’ll update this list.

Categories
Personal Development

Letting Go of Negativity

Social media is a great way to find out what everyone is thinking.

Unfortunately, it can show the dark side of people all too easily. Sometimes it is extreme and explicit, and sometimes it is subtle, but either way, people have a capability of being quite terrible.

They voice their anger and opposition about things that don’t impact them, and you might strongly disagree because it does impact you and your loved ones.

It can be painful at times, especially if they get personal. You can get riled up. You can get angry.

And there’s nothing wrong with feeling this way.

It’s just that it saps your energy so you can’t spend that energy on something better.

My friend Danyelle posts a weekly video called Wednesday’s Words of Wisdom in which she shares a quote and talks about how it resonates with her, and her video on July 15th was about letting go of outrage:

It’s one thing to be passive in the face of anger. It’s another to decide to spend your time on something with more consequence. People on Facebook or Twitter can easily share their opinions that no one asked for, and you don’t have to engage at their level.

Someone shares a hurtful meme? You might not even know about it because while they’re on Facebook posting something that people may or may not see, you’re setting a good example by your actions and making a real difference in the world.

It can be somewhat addicting to want to get into the anger and outrage debate, but when you look back in five years, are you going to be proud of the online arguments you participated in willingly, or are you going to be grateful you let those things go so you can spend your time making real progress in your life and the lives of others?

Categories
Game Development Personal Development

Setting Effort-based Goals vs Outcome-based Goals

Since I am a part-time indie game developer, I am highly aware that the time I spend on game development tends to be a very significant function of my output.

If my other responsibilities are great, and I don’t consciously make an effort, maybe I’ll only get a couple of hours of work in. No matter how efficient I could use that time, two hours a week isn’t going to let me accomplish much. I can’t prototype or play test much, nor can I really get much implemented.

So all year I’ve been setting goals to increase this amount in a sustainable way. That is, I make sure I can handle my day job, my family, and my home responsibilities while also ensuring I get enough sleep. Stealing time from my sleep, for instance, allows me to temporarily use that time productively, but it always catches up with me and I end up paying for it in the end. What usually happens is I get slower and less efficient, and then I start sleeping in, which takes away my precious mornings that I dedicate to game development.

Recently I’ve been rereading Steve Pavlina’s book Personal Development for Smart People: The Conscious Pursuit of Personal Growth, and in the chapter on Power, he talks about personal quotas.

The idea is that to increase your performance in an area of your life, you can set minimum daily quotas to reach. Some authors set a daily word count. No matter how long it takes, they must write 250 words. Or maybe they do what I’ve been trying to do and set a minimum number of hours since word count might not represent the effort of writing very well if they spend a lot of their working time researching or editing, actions that don’t necessarily increase their word count but still contribute to the finished project.

Pavlina said he used to dedicate a few hours to writing, but he found that the end results weren’t ideal because his focus was on putting in the time instead of finishing. So he focuses on outcomes. Instead of writing for two hours, he writes until he finishes an article.

In a way, this reminds me of the Theory of Constraints and the story told in The Goal: A Process of Ongoing Improvement. Eliyahu M. Goldratt’s protagonist is put in charge of a failing manufacturing plant.

This plant has very expensive machines, and so the company insisted that to be the most efficient, those machines should be running as close to 24/7 as possible. Downtime meant lost efficiency and wasted opportunities to make back the investment in those machines.

Here, they were focusing on effort.

What they forgot was that the effort should serve a purpose.

People weren’t buying what was being made, either because they produced too much, or it wasn’t the right product for their needs, or the finished product couldn’t be made because there were bottlenecks in the manufacturing process in which some parts were ready while others needed to wait to be made. No matter how efficient the plant was in utilizing their resources, all they ended up with was a warehouse storing the unsold and unneeded parts they were creating.

Once they started to focus on the finished product, the outcomes, they rearranged priorities, ensuring that what was being built at any given time was shortening the time of the entire process, not just making any one part more efficiently.

I just spent the last couple of months implementing what was supposed to be a “simple” physics model for a game I’m working on. It turns out, physics isn’t simple, and there are plenty of solved problems in this domain, as well as many available 3rd-party libraries such as Box2D. But no, I insisted on implementing my own. I don’t need an entire physics engine. I just need something that looks good enough. How hard can it be?

In terms of my personal education, I gained a lot. I consulted a number of resources, such as the Impulse Engine by Randy Gaul and Chris Hecker’s Physics articles for Game Developer Magazine. I had a refresher from my high school and college physics classes, plus I learned about ways in which physics engines in games have historically fallen on their faces.

But in terms of outcomes, that’s two months I spent implementing and tweaking a small part of my overall game project. I focused on spending time on development, and I just kept working on what I was working on because I didn’t ever feel I had a good stopping point. It’s easy to want to spend a lot of time fiddling with coefficients and parameters to see if I can get the feel just right.

If, instead, I really focused on outcomes, such as getting the physics implemented in a week, maybe I would have seen that I was running out of time and so decide to use a 3rd-party library.

It doesn’t matter if I wrote the code myself. It matters that I am a step closer to having customers play the game.

Some game developers keep a simple list of tasks in front of them, and they work on whatever seems interesting, adding and removing tasks as they go. Others have a full project plan.

Now, as a part-time indie game developer, time still means results. If I spend 10 hours in a week, I am able to focus more than if I spend two hours in a week. It can mean the difference between getting meaningful accomplished in a given development session versus starting and stopping over the course of weeks to get something equivalent done.

So time still has a huge effect on output.

But I can do a better job of ensuring that the time I do spend on game development isn’t open-ended. There’s always more work to do, so just putting in time to work isn’t necessarily going to result in all of the work getting done so much as just a portion of the work getting done really, really well.