Development blindness

When you develop a game for long enough, you become blind to how difficult or how much fun the game really is. This happens because you learn the game inside out and could play it with your eyes closed. It becomes very difficult to tell how difficult or logical the game is to the average player. This can easily cause you to waste time iterating when you can’t actually tell if the game is improving or not.

You are the Steve Wiebe of your game
You are the Steve Wiebe of your game

This mostly applies to the first quarter of the development when you’re still working out whether the idea works or not and when you add new major gameplay features. I think most of it also applies to web or business applications too. Anything where you have a customer who you want to experience the product as smoothly as possible.

Ways to fight it:
1) Show your game(or app)- and have other people play it. Do not interfere or give them pointers or explain things! Try not to get involved with explaining and pointing things out because you won’t be there to explain what to do to the people who buy the game so the feedback won’t be authentic. You don’t want the first time you hear about the controls being confusing to be when the game is out and you start getting bad reviews. Take notes and try to see where people get stuck or what they liked. The second best option is to release a alpha version or a one level demo and ask for feedback online. People of the internet are known for being blunt.

1b) If you had a great idea but you’re seeing that no-one you show it to gets it without you explaining it – you have to either make it clearer or cut it out. Try to differentiate between one persons opinion and real problems. If it seems well thought out and well-reasoned or if a lot of people have the same complaint – it’s definitely something that needs addressing.

2) Take time away from playing your game. At least a week – preferably longer. It’s good if you have another side project going or maybe you can focus on building tools or prepare some marketing plans or one of the other 100 things you have to do after the game is “ready”. You are the best player in the world of your game right now, the closer you get to the beginner level every now and then the better you understand new players (literally everyone who will buy your game). You usually don’t have to make the decision to go ahead with a game so quickly that you can’t put it away and look at the idea again with a fresh pair of eyes. You can keep doing this every time a new major features is added.

3) Use different levels or maps when iterating. If you iterate on the same level for too long, it will start to feel dull and you’ll lose your intuitive feel for whether the mechanics are improving or not. Again you’re learning the level like the back of your hand so you start losing judgement on how the game is shaping. I recommend building “obstacle course” levels, which are just collections of different “edge-case”-obstacles etc. Like the highest possible jump in a platformer game. If you are tweaking gameplay values and can’t jump over the highest platform anymore, something went wrong. Also creating fun dumb levels where you for example test out your effects and particles by adding hundreds of explosive barrels can help see how much fun the game can be during the most intense moments.

4) Compare to other games in the same genre or with the kind of feel you’re looking for. Pay attention to the details. Like for controls, does the action happen when you press down the button or when you release it. Switching between the reference and your game brings out the differences and weaknesses in both. This was the most surprising one to me, when I opened my game after playing another game in the same genre, I could tell some parts were too sluggish in mine and some parts were already better. Don’t copy but try to learn from classics like Super Mario. It’s all physics and motion – once you know what feels and looks good to the player, you can start making it your own. In 1989 the developers of Prince of Persia for example used a primitive “motion-capture” technique (rotoscoping on top of video footage of one of the staff members) to get the feeling right.

Tecmo Cup Soccer / Captain Tsubasa – Football RPG

Old Weird Games digs up forgotten weird games from the past and takes a peek at the interesting and unique game design in them.

Platform: NES
Genre: RPG / Sports
Tecmo Cup Soccer was the westernized version of the Japanese game Captain Tsubasa, I’m using it because it was translated to English for the NES. They’re basically the same game though.

Tsubasa is really taking the RPG genre and stretching the definition to its limits. How do you take a set of RPG rules that add value to a different and unrelated genre like sports without alienating people who play sports games? It’s quite refreshing to see a RPG that is not themed with wizards and dragons or robots. The graphic style is impressive for the NES, obviously taking cues like camera angles and visual effects from classic anime style. Kind of reminds me of 8-bit Phoenix Wright.

Nintendo World CupWhen me and my brother bought this game in the early 90’s, we were expecting it to be like Nintendo World Cup – a simple side scrolling “arcade” football game. We didn’t totally grasp all the mechanics at first but after the initial disappointment of finding out it wasn’t what we expected, it ended up being maybe even a more memorable experience than the multiplayer Nintendo World Cup matches. I don’t think I understood that the players stats were going up after each game until coming back to the game years later. Obviously not being a native English speaker and being a kid meant that we rarely understood anything but the basic game mechanics and then explored from there.

It is a unique concept and offers hours of gameplay that is still a lot of fun these days. And sports games haven’t tried out new things like this in forever. Or maybe in Japan they have? As a mostly turn based game it shows how to create tension and dramatic situations for the player without real time action.

Tecmo Cup soccer title screen snap0001
Title screen and a shot from the intro animation.
Continue reading “Tecmo Cup Soccer / Captain Tsubasa – Football RPG”

Masters of Doom audiobook

The first 45 minutes of the story of id Software, John Carmack and John Romero. Read by Wil Wheaton.

Hearing the stories behind some of the most impressive game experiences of my childhood (Commander Keen, Wolfenstein, Doom, Quake) and the technological breakthroughs of the two Johns is very cool.

What I would want in a HTML5 gamedev-stack

There are many good and bad ways of doing things when it comes to games. HTML5 / modern JavaScript is very likely going to be the next big game platform (for web, mobile web & social at least) but it’s still got ways to go before it gets there. Some of the issues “HTML5” is tackling are kind of new and unique. If it is possible to really make a cross-platform – write-once environment, there are still many issues left to solve.

Requirements:

(in no specific order)
HTML5
1. Easy resource management. Something more than just folders on the hard-drive that I have to manually edit and re-arrange all the time and roll my own resource usage code for each type. In Flash and Unity3D this is done by a “Library” where the resources are also cast to a object that the environment understands. Sounds are Sound objects that can be easily played and MovieClips are ready to animate and GameObjects are ready to move.

Flash Pro is a pain in the butt but moving the resources into the system and giving them some basic functionality by default actually works nicely and cuts development time and makes getting a project up and running much smoother. Having just some command line scripts that spit out cryptic files is confusing to other team members.

2. Free! As in free speech. There’s just no excuse to make this proprietary because that would mean we didn’t really go forwards much if at all.

3. Easy debugging and performance/memory profiling. With great browsers like Google Chrome this seems to be soon taken care of.

4. Display API that abstracts all the nasty business out. Browsers can be picky about what they support but since we’re not gonna see browser vendors get together and decide one way of doing things ever, some kind of a Display API that just works would be needed. We don’t want to worry if your browser only supports DOM, or Canvas, or SVG or WebGL. I just want to draw a pixel on the screen and smooth and consistent animation, whether it’s keyframes or transformations.

5. Better coding standards, it should be clear what good JavaScript code looks like. There’s always going to be people who do what they want but everyone working on big projects that have to be maintained can probably agree that wildly different coding styles in the same language – if it should be tolerated at all, should be at least very clearly stated in the project. Functional- and structural JavaScript are gonna look different, but both should have some standards. When every API you use has different looking syntax, the code becomes hard to read and understand. Tools like http://www.jslint.com/ are going to help with some issues, as are new versions of ECMAScript and intermediary languages like CoffeeScript.

5b. Another option is to ship support for some other languages / bytecode support for multiple languages with next gen browsers.

6. Sounds! I’m sure everyone agrees that the support for the Sound API is at best horrible right now. If Flash is the most common fallback, HTML5 is not ready for games yet.

7. Easy to distribute over the web. Flash game developers know how easy it is to get your game everywhere on the internet without having to worry about infrastructure yourself. Your .swf file can be hosted anywhere by anyone. For big companies this isn’t an issue since they have their own hosting but for a indie developer, acquiring enough hosting knowledge and paying the server bills are big hurdles. Many of my old Flash games gained millions of players by ending up on a random Spanish / Brazilian / Thai site that I would’ve never realized to put it on myself.

8. WebGL support. The only option to make 3D games in the foreseeable future with HTML5 is WebGL but the support in browsers is not there. http://caniuse.com/#feat=webgl None of the mobile browsers support it. Internet Explorer is probably never going to support it. Only Chrome has full support today.
Canvas on the other hand is starting to look really nice: http://caniuse.com/#feat=canvas and I love 2D games so it’s gonna be a good kickstart for HTML5 games. But it’s definitely a big step back from Flash and Stage3D which soon supports GPUs from 2005 onwards.

9. A nice IDE you can point people to that will do most things they need. Code-completion, project management, refactoring, debugging, profiling, packaging releases for different platforms, etc. Personally I’m liking WebStorm. It’s getting quite good with each new update.

10. Easy to deliver consistent pixel perfect graphics and typography on all platforms. This isn’t actually my requirement but every graphic designer ever.

Draw Something-style dynamic gameplay

A thought I had about physics games and some other very dynamic games is that they give much more freedom to the player than traditional games. These are definitely two very different approaches to game design. The two extremes of this scale are strict games like Tetris/Bejeweled where you’re extremely constrained by the game world and can only move from tile-to-tile according to certain rules and a game like Draw Something where you create content freely and the gameplay comes mostly from human-human interaction rather than computer-human interaction. We’re already seeing a increase in this type of open-ended design; a great example is Crayon Physics.

For Draw something, the game idea itself isn’t new by any means, it derives from web-games that had the same mechanic and if you take one more step back, it draws(!) from the real-life game of guessing the word the other player is drawing.

There are other types of games that are popular on the web that fall somewhere in the middle of these two extremes. Traditionally board games and card games are masters of this as well. Texas Hold ‘Em Poker is a good example, on the surface it might seem like it’s mostly a game where you follow a strict set of rules. But to be a successful player, knowing the rules is only the first minimal step you take. After that it’s all about human-human interactions. Knowing when your opponent is bluffing, figuring out is your opponent a risk-prone or conservative player, etc. If you know someone only plays when they have extremely good cards, they are easy to scare off with a bet – giving you a big edge. This kind of extremely rich gameplay only comes out of a game that has been designed to leave room for letting us be people.

Draw Something diagram
In Draw Something, the only part of the game governed by strict rules is the last part of guessing – constructing your answer.