Categories
Geek / Technical

Keeping a Programming Journal #nfjs

Yesterday at the No Fluff Just Stuff conference, I went to the Learning to Learn presentation by Raju Gandhi.

He talked about the nature of knowing and learning, and he shared a number of techniques for learning more effectively.

But then he said something that especially piqued my interest. He mentioned keeping a programming journal, partly to be able to celebrate what you’ve accomplished, and partly to have something to reference when you inevitably forget a key detail.

Whenever you learn something new, log it.

And I thought, “Blog it!” That way, you aren’t the only one who benefits from your new education.

It’s something I already do, but not consistently. For instance, when I was implementing my own physics code for a game, I ran into a crash bug when sorting my objects, and when I realized what I had done wrong and fixed it, I wrote about it.

What’s funny is that later in the week, I ran into the same exact problem at the day job and knew exactly what was going wrong.

Five years ago, I wrote up all of my research into component-based entity systems when I was looking into implementing it for my own game project, and people still find it useful today. Heck, I still find it useful today. Thanks, Past Self!

Sometimes I do things that I haven’t written about. For instance, when I ported my existing game engine code and cross-compiling build scripts from SDL to SDL2, I didn’t blog about it. I had to do some research and figure out what’s really different, but for some reason I thought it wouldn’t be interesting enough for anyone but me. Now I wish I had a way of seeing how much effort there was to do so because most of it is forgotten.

So going forward, whether I deliberately set out to learn something like a new programming language or learn how to fix an annoying bug, I’ll make sure to publish it, both for your benefit and for my own.

Categories
Game Design

Behind the Scenes with Bhaloidam

I love learning about how things are made.

The finished product often hides the false starts, the problems solved, and the journey.

The iPhone’s scratch-resistant glass is something owners don’t think about because many of them don’t know that the scratches on earlier prototypes were seen as problematic enough to do something about, even a little over a month before the official release. Robin Williams tried out a number of different ways to portray Mrs. Doubtfire, so that scene in the movie when he was getting turned into a women and discarding a few attempts also happened in real life. Disney animators had to work out how many frames of animation to show before playing speech in order for it to look natural.

Upon discovering that his email address was publicly accessible, I once emailed American McGee to ask him about the workings of Alice, specifically about the part in which you turn into chess pieces and move about the giant chess board on the ground. I got a short reply along the lines of “We had to ship, so it wasn’t perfect. Try to have fun instead of focusing on the details!” I remember thinking, “But, focusing on the details IS fun for me!

When you have only the finished product, you don’t think much about it and you take a lot for granted. When you learn how it was made, you gain a greater appreciation for the craft, the effort, and the ingenuity of the people involved.

So I was excited to see that my friend Corvus Elrod has released a visual history of Bhaloidam, the participatory story-telling platform he created. You can read more about it at Bhaloidam.com.

I know what Bhaloidam looks like today, but it’s fascinating to see how it back in 1991. I’m curious about what CorWorlds was, as a quick search online reveals nothing. B-)

I loved exploring how complexity was added, then stripped completely away, before coming back into something recognizable in today’s Bhaloidam. I was delighted when I saw the hexagonal paper cups and pente stones.

It was only a high level history, but it still felt like digging under a city to find another city acting as its support structure. And while I knew he was working on it for over two decades, now I can walk through and see the progression over that time in a more visceral way.

Bhaloidam‘s handbook and lifewheels are freely available online as print and play (PaP), with high-quality Skein packs available for purchase in the store at a great price.

Categories
Geek / Technical Marketing/Business Personal Development

I’m Going to the No Fluff Just Stuff Conference Today #NFJS

I’m not a Java developer, but I am going to the “The conference series for JVM software developers” called No Fluff Just Stuff today here in Des Moines, Iowa.

Why? My main tool has been C++ for years. I haven’t programmed in Java since college, and that was over a decade ago.

Partly because it’s a local conference. I don’t have to travel or get a hotel.

Partly because my day job is paying for it. When you are offered free training, you take it.

And partly because I didn’t actually know it was a Java-specific conference when I signed up for it. /me looks down at his shoes sheepishly.

The itinerary I put together for the next few days is geared towards the general talks about software architecture, metrics, and other topics that can translate well outside of a specific programming language or platform. I am especially interested in the microservices architecture session, ever since I first heard about it at an Agile Iowa presentation.

There’s even a magician among the speakers, so it should be entertaining.

And who knows? Maybe I’ll pick up some cool ideas from the Java practitioners.

I’m a bit disappointed that the Android tablet I’m bringing doesn’t seem to have as full-featured an app as the iOS version. Somehow at a Java conference the Java-oriented platform doesn’t let you download slides? One of the Play store’s reviews for the NFJS app complained about needing to carry around not only his own Android tablet but also the conference-provided iPad, which was awkward. I wonder if I’ll be doing the same today.

Anyone else going?

Categories
Game Design

How Long Does It Take to Make a Game?

Originally, games were made by solo developers. It took a long time because the code was at the level of binary, and the games were simple.

As computing power grew, so did the capabilities of the game developers. For years, games were seen as expensive productions by hundreds of developers working in teams for potentially half a decade. Someone interested in game development wouldn’t even know where to start because it seemed so overwhelming.

Then indie game development became more well known. Games could be made in mere months, like in the old days, but with much better tools to leverage.

Then people tried to see how quickly they could make games. One Game a Month makes a game out of finishing and publishing games each month. Ludum Dare challenges you to make a game in 48 hours (by the way, there’s a major compo later this month you should join!). People involved at Garage Games had Game in a Day, a 24 hour competition.

The 0hr Game Jam takes place during Daylight Savings Time, in the hour that is lost between 2AM and 2AM.

In the past, Andy Moore has said that an hour is plenty of time for a game. “I’m not talking a WHOLE GAME (you need a weekend for that!), but an individual mechanic, feature, or tweak? It should take less than an hour to hash out the lowest common denominator version of that.”

Jonatan “Cactus” Soderstrom, famous for his quick development, gave a talk at GDC in 2009 on The Four Hour Game Design.

With paper prototypes and the amazing digital tools accessible to almost everyone, it’s easy to try something out quickly and see if it will work before you spend months or years building content around an idea.

So games can be made quickly, and some are even good games. Really good. Some quickly-developed games even become massive financial successes. Flappy Bird was made in a couple of days and was earning its developer $50,000 a day at one point.

But not all games can be Flappy Bird, even if a quick glance at the App Store might make you think otherwise. Some games need more time to cook. Maybe you found a core mechanic that works, but you spend more time iteratively tweaking and playtesting and fixing issues you find.

Pac-man‘s AI took half a year to perfect. Monster Loves You! took months of prototypes, and the finished product had a custom dialog engine and plenty of content. Tower of Guns was developed over 600 days.

2dBoy has a 7-part series on the development of World of Goo, a game which was famously based off of a quick prototype called Tower of Goo made in four days. The original World of Goo demo release happened a year after development started.

At 8 months into the project:

it’s now almost 4 months after we thought we were 3 months away from finishing the game. we continue to fool ourselves and think we’ve got another 3 months left to go.

So how long does it take to make a game? It clearly only takes a few hours, plus time for playtesting, content creation, and polish, all of which takes much longer than anyone expects.

Categories
Game Design

Making Core Game Design Choices

I’m making a tycoon game about raking leaves. At first, it was slow going, partly because I lost focus on what I was really trying to accomplish, and partly because I was treating it’s development as something that needed to be fully formed from nothing.

Then I realized that most of the player interactions are menu based, and the GUI and related content would be independent of the game play itself, which is going to be geared towards the development of the invisible economy and the player’s feedback related to the consequences of his/her actions.

I normally think of prototyping along the lines of my handy-dandy physical prototyping toolbox, in which I use paper and drawn lines with wooden pieces and stones to represent objects. I could prototype menus on paper, which I think would work well for getting the feel of the GUI, but I don’t think it would work as well for what should be on the menus in the first place.

So I’m creating a command line version of my game. The UI is fairly stripped down, and it’s easy to code. I just accept input as numbers, and the relevant choices in a given menu are processed. Simple.

And effective! I was surprised what only a few hours of development churned out. I even have a basic weather system in place.

MAIN MENU

1: See neighborhood
2: View inventory
3: View weather report
4: Quit current game

3
Today: Mostly cloudy with a 86% chance of rain
Tomorrow: Mostly sunny with a few clouds with a 15% chance of rain

I can quickly play the game as it is being developed because build times take mere moments. I’m spending time designing rather than coding infrastructure because the infrastructure is so lightweight.

But what about the bigger design decisions?

In this tycoon game, I had a general idea of the player being able to set a rate, do some work, and get paid for it. Simple, right?

But when I started to play, I realized this simple idea has a lot of unanswered questions. Do you set your rate before you get clients? Do you set it on a client by client basis? Do you charge hourly, or for a finished leaf raking job by the size of the yard, or is it a static rate? Does the game track time in hours, meaning you need to decide which yards to work on in a given day based on how long they take, or in days, so your decision is which yard you tackle on a given day?

This is a core decision that determines how the game will be experienced. It’s terrifying because this decision basically says what the game won’t be like. You can’t include all of them because they’re mutually exclusive, and you can’t put off the decision because without it, you have no game.

How do you make such a decision?

I have criteria to measure my options against, such as whether or not the option fits my design goals. An educational game would play differently from a physics puzzler. But what about deciding between a number of options that all seem to fit the higher level design?

In Lemonade Stand, you set the price of a glass of lemonade before the day starts. Then you start the day, and you find out at the end of the day how many glasses people bought and how much income you got.

There’s no haggling. There’s no adjustment during a given day. It’s a simple abstraction to a real life situation and quite accessible to the children it was geared towards.

But since it’s a game, it could have gone in any number of directions. The game could have had you interacting with each individual customer, making many minor decisions such as how much to fill each glass or if you should charge someone more or less. It could have become a higher fidelity simulation, but it would have been more difficult to play. It would have been a different game entirely geared towards a different audience.

Similarly, as a designer, I need to figure out the course of my game. I could see this as a huge decision and go through a lot of analysis about which is best before picking a direction, and even then I can only hope I made the right choice.

But I could also just try all of them and see what happens.

When prototyping, a cheap and quick implementation allows you to experience the real thing instead of wondering. You could implement the simplest solution, see how it feels, and either add to it and tweak it or discard it and try something else.

Maybe I’ll be surprised at how the simpler solution actually feels perfectly fine, or maybe I’ll discover that two different approaches are just variations on the same design. Maybe I’ll decide on an approach, but after developing a good amount of the game around it, I decide it doesn’t quite work and pick up one of the other approaches again because I realize it has some benefits now that I didn’t see before.

Read about the changing design of Threes by Asher Vollmer and Greg Wohlwend, or multiple prototypes of the board game New York 1901 by Chénier La Salle, and you can get an idea of how much sweat it takes to design a game.

It’s hard work. Game design isn’t just playing games and it isn’t just writing a story for your platformer or FPS. It’s more like trying to determine which of 10,000 materials to use to make a lightbulb than it is about shining a flashlight in the right direction in an attempt to discover the fun.

The more options you try out, the more informed a decision you can make about the play experience, but it takes effort and time.

So in the end, the answer to the question of how you decide on core game play is to continually prototype and play test.

What else helped you make such core game play decisions in the past?

Categories
Game Design

Make Better Games by Ignoring Games?

Filip Wiltgren wrote about the benefits of silence in Stop Gaming and You Will Be a Better Designer.

In reading The Artist’s Way by Julia Cameron (/me adds it to his wishlist), Wiltgren found a counterintuitive way to get more creative.

Instead of working on game designs, playing games for research, or reading game industry news, you give it all up for a week. And give up on television so you don’t have it as an outlet either.

And without the regular routine and habits, your brain will feel idle and anxious.

When you can’t expend your energy on consuming your habit then your brain will start to create your habit itself. You will, effectively, be pushing all that energy into creativity relating to what you like. If you’re a chef you might get ideas for great dishes. If you’re a driver you might get ideas for how to do that perfect tailspin. And if you’re a game designer you will suddenly be popping up ideas for games, mechanics and solutions at a rate that you’ve never experienced before.

Looking up The Artist’s Way online, I found people talking about this detoxification along a different line. One person wrote about a social media detox with good results.

So, it’s essentially media fasting. Wiltgren geared it towards games and the writings of people about games online. The key is to disconnect from what everyone else is saying temporarily, which gives you time and space to process and figure things out.

And I think I’ve done this recently on my own. I realized that I could keep reading pro tips and best practices and advice, but some of it is contradictory, and there’s so much of it to read these days from people who may or may not know what they are talking about that if I keep reading it, I’ll never actually get to try the advice out myself to see if it works.

So I stopped seeking it out, and I started using that time to work on myself instead. And I realized that a small bit of improvement with real results is infinitely better than seeking out the best method or perfect way before I start.

I think a news fast was helpful for my general outlook in life. I find ignoring the news for a bit means I find more to be positive about. As a part-time indie game developer, I worry that I already don’t spend enough time on games and paying attention to what is happening in my industry, so I’m hesitant to try out a game fast anytime soon.

Maybe a fast would be a good thing to do after a day or a week of doing nothing but absorbing games. Eat and breathe games, then give yourself time and space to process it all without any more input, and see what happens.

Have you tried this detoxification before?

Categories
Game Development Games Marketing/Business

You Can Now Start Submitting Your Games to IGF 2016

The Independent Games Festival is now accepting submissions for next year’s awards.

The deadline to get your game submitted is October 26, 2015. Other key dates to pay attention to:

Early January, 2016 Finalists Announced
March 14 – March 18, 2016 Game Developers Conference 2016
March 14 – March 15, 2016 Indie Games Summit @ GDC
March 16 – March 18, 2016 IGF Pavilion @ GDC
March 16, 2016 IGF Awards Ceremony (Winners Announced!)

There are a few changes this year.

Brandon Boyer is stepping down as chairperson of the IGF, and Indie MEGABOOTH’s Kelly Wallick is stepping in.

The cost to entrants has changed in the interest of making the IGF more accessible. Instead of $95, the submission fee is now $75.

Similarly, now that student submissions are eligible for the main prizes as well as for the Best Student Game Prize, their fee is $25 instead of being free.

The other major change is in developer feedback.

Developer feedback has always been an optional part of the judging process and in general, having the game played in detail by multiple judges takes precedence over providing written feedback. While the feedback is well intentioned, without having a clear structure it is often inconsistent or on par with what a normal user playtest would provide.

So we’ll be removing written judge feedback – at least for this year – to concentrate on further optimizing the judging process, getting people playing as many games as possible and formalizing the feedback system.

The judging process had been under question in recent years. With the number of IGF submissions getting almost as popular as a Ludum Dare game jam, it was a lot of work for the judges to cover all of the games in a timely manner. But some developers found that their games weren’t even being played in the first place, and it wasn’t clear if everyone was getting a fair shot, especially after paying a submission fee for the privilege.

A more formal feedback system could only help.

How do you feel about the changes?

Categories
Games Personal Development

Five Nights at Freddy’s Creator Has Constructive Criticism for His Critics

In a post on the Five Nights at Freddy’s 4 Steam page, Scott Cawthon asked his more hateful critics to focus on something more productive.

After previous unsuccessful games, Cawthon has found a cult hit in his series about terrifying animatronics in a kid’s themed restaurant. And when you get some success, there will always be critics.

They’ll tell you that there are problems with the games. They are too simple, or the designs are imperfect. That’s fine. Feedback about games means someone is going to hate what someone else loves, and maybe some of that feedback will give you an idea for how to improve things next time.

But some people get personal, accusing Cawthon of milking his success and they spew plenty of vitriol as they do so. Success unfortunately also comes with people ready to tear you down lest you get too proud or comfortable.

Cawthon patted them on the head and dismissed them while simultaneously imploring them to do something with their lives.

But something more important that I want to convey to all of you, is that you should never listen to people who criticize success simply because it’s success. Being good at something is something to strive for, not something to demonize.

“Haters gonna hate.” –as they say, but I want you to know that focusing on someone else’s failure or success is the wrong way to live. People who make videos bashing other people are like people who run into a public square and scream into a pillow. They’ll get attention, but they won’t change anything. If you strive to be like them, then you’ll spend your life screaming into a pillow as well, and your life won’t mean anything.

He asked people to go out and make their own games, to contribute, rather than to spend their time putting down others.

Now that’s a role model.

Categories
Game Development

You’ve Decided to Make a Game; Enjoy the Process

You made the decision.

You’re going to make a game. You’re going to create a piece of entertainment of your own, whether it’s just something for you and your friends to enjoy or something you intend to publish and make available for a wider audience.

It’s easy to get stressed. Even the simplest games can be a major undertaking.

But you’ve made the decision. It’s going to happen. You are going to finish a game.

And since the end result is known, there’s no point in stressing about it.

In the meantime, enjoy the process of getting there.

You are participating in the powerful act of creation. It won’t necessarily be easy, and there will be a lot of detailed decisions that you’ll make along the way. It might take longer than you expect. You might get sick of it before you’re done. Game development is real work.

But try to have fun with it. You know you’ll get to the end result eventually if you keep moving in the right direction, so makes sure you enjoy the journey.

Then make sure to tell us all about it. B-)

Categories
Game Design

What Do Your Game Designs Say On Your Behalf?

It’s easy to see someone’s writing as representative of his/her views. The words are right there expressing ideas in a very direct way.

Similarly, a movie can have a certain message buried in it. Sometimes the message is a bit more obvious because it hits you over the head.

Games are no different. The verbs inherent in a game tell you what the designers thought were important.

Some games aren’t saying much. It’s hard to get political with Pong or Angry Birds.

But other games say a lot.

Why are women almost always portrayed as damsels in distress? Why are they seen often as rewards for the player? What does it say about the designers’ view of women?

Why are many games about violence? What does it say about the designers’ position on how best to handle conflict?

You could argue, “But they’re just games!”

But I think games are important, and I think they can have a great impact.

I’m not saying that playing games can turn you into a mass murderer.

But I am saying that the message of games can influence someone’s thinking in a subtle way.

Maybe the next time you bump into someone you’ll see it as an act of aggression to be responded to in kind instead of the accident it was. Maybe you’ll be more inclined to scream obscenities at someone when you’re angry instead of discussing your differences. Maybe you’ll be more interested in winning an argument than in finding common ground with your spouse.

Or maybe you’ll be more inclined to cooperate with your coworkers. Maybe you’ll value puzzle-solving over brute-force. Maybe you’ll see people as equals instead of as resources in your quest.

The messages of your game designs can say a lot about your worldviews. Are you being careful with the messages your games send on your behalf?