California Extreme

It’s that time of year again when hundreds of classic arcade games and pinball machines congregate at California Extreme.  If you’re a fan and you’re in the Bay Area this weekend (July 9 and 10, 2011),  you should definitely check it out.  I’ll even be there on the “Tips and Tricks” panel giving tips on how to play Xevious.  Then I’ll try to live up to my expert status by participating in the Xevious tournament.  I’m not expecting to win,  but maybe I can win back my entry fee…

I’ve attended this great event for many years now and it never fails to bring a wave of nostalgia,  not to mention good old fashioned arcade action.  Where else can you go to play Quantum,  Crazy Climber and Major Havok?  There’s even my very own Crystal Castles there or two.

The weird thing about the old arcade games is that they’re very similar to today’s $0.99 iPhone games.   Even the cost is similar,  except that you get to own the iPhone games and play them over and over again for free,  whereas those old arcade games needed a continuous stream of quarters (about a dollar of today’s money).

The truly great classic arcade games and today’s iPhone hits have another thing in common:  they grab you right away.   You’d better be having fun within a minute or two,  because you’ll be seeing “Game Over”  after three minutes.  There’s just no time for messing around with complicated instructions on how to play,  memorizing what all the buttons do, etc.

The reason today’s iPhone games are quick is that people just don’t have the time play some long game while waiting for a bus,  but the resulting game designs are similar.  So if you’re a mobile game designer,  take another look at the classic arcade games,  you might learn a thing or two.

Hope to see you at CAX this weekend.   And if you see the initials FXL on some machine there,  well,  that’s me,  still playing games and entering my initials after all these years.


Posted in Development Tips, Game Design | Leave a comment

Loot Drop here I go

That’s right,  my stint at Loot Drop has come to an end after five weeks.  If you’re thinking, “did they fire him?”,  you’re thinking along the right lines.  Why did they fire me?  Hmm, the official reasons in my termination letter include that I wasn’t good enough and that I asked too many questions.  Unofficially,  I was probably too blunt when criticizing my new bosses,  something that I’ve always been guilty of.  So I guess my career as a game programmer has come to an ignominious end.  Who would hire me now?

Fortunately I can still hire myself, so it’s back to doing independent game development, and no,  I’m not touching facebook game development,  at least not the way things stand right now as of mid-2011.

Why,  what’s so bad about facebook game development?  Just think of the money!

I’ll tell you what’s bad,  these things aren’t fun to play,  at least not for me.  Call me antisocial,  but I prefer the single-player fun games like the Halos, Mass Effects and Donkey Kong Country returns.  Farmville?  no thanks.  And I’ve even been known to grow tomatoes, strawberries and chives,  but in the real world where I can taste the fruits of my labors.

The worst part though is spammy feeling that pervades these games.  I hate spam.   I’m not going to subject my friends to a continuous barrage of spam about which games I’m playing.  The whole focus is on the “friend grind”,  getting your friends to play this “game”, if you can call it that,  and then their friends, etc.  Sounds like a pyramid scheme,  and we old-timers all know what happens to pyramid schemes: they collapse into a heap of misery and broken dreams when they run out of victims.

A rather bizarre thing for me was seeing my baby,  the isometric game,  still flourishing on facebook,  and all I could see is the technological backwardness of it.  Why are we trying to do fake 3D when real 3D games built with real 3D engines are so easy to develop now,  even for cheap phones?

Even weirder is the monetization aspects of facebook games.  Did you know that only 2 percent of all players actually pay,  and paying players spend an average of $100 per game?  The developers aim at extracting as much money from the few and the rich.  It doesn’t really matter what the other 98% are experiencing,  because they don’t pay.

And so concludes yet another rant,  hopefully the last one for a while.



Posted in Game Design | Tagged , | Leave a comment

Loot Drop here I come

That’s right,  I’m now working at Loot Drop,  John Romero and Brenda Brathwaite’s new company.  I’m diving in at the deep end into facebook gaming, flash, actionscript and switching from Windows to Mac.  It’s quite a change for me,  but it’s stimulating and exciting.

Actual Entertainment will be a side-business for me from now on.  Gubble is still selling,  and Fatjumper development will have to take a bit longer.

I’m particularly pleased to see that John Romero saw to it that Ravenwood Fair actually had developer credits.  Apparently the entire facebook game industry is not doing developer credits.  Which is very sad indeed.  Zynga, WTF! Even John had to put the credits into an easter egg king of thing,  where you have to type “credits” to see them.

My opinion,  which is entirely my own and not necessarily that of my new employer,  is that developer credits should be present in all forms of gaming,  social, console, pc, handheld, even board games.  Furthermore,  they should be easily and clearly accessible by the public, not hidden somewhere.  A third point,  is that credits should persist across ports to other platforms, languages and territories.  And lastly,  the employment status of the developers shouldn’t disqualify them from getting credit.  I’ve been personally bit by companies who didn’t give me credit in these situations,  so I hope that current and future generations of developers will stand up and protest loudly when they are denied credit.

Whereas Mobygames and IMBD try to build game credits databases, these databases are sometimes incomplete or inaccurate,  especially when it comes to games which have no built-in credits.  It’s great that these attempts have been made,  and I wish that a database of the same quality and completeness as IMDB for movies will someday exist for games.

Oh well, enough ranting for one day.  Can you tell that I’ve had a long day of coding and fighting my computer?


Posted in Development Tips, Game Design | Leave a comment

Red Dead Redemption 100 percent

Man,  that took a while.  Yes I got 100 percent on Red Dead Redemption.  Now I’m done and moving on to Portal 2.

RDR is a great game,  but it sure is a bit too violent for my taste.  I feel like the sandbox aspect is lost when you have this goal of getting 100 percent.  You basically have a list of things to do and they interact with each other a little bit,  but basically you do them and then you’re done.

So basically,  I’ve been playing this game and learning Blender and Unity the last two months.  It’s amazing how time can just disappear if you let it happen.  No regrets,  but it’s time to get back to creating something.

Posted in Reviews | Leave a comment

Broken Crystal Castles released for IOS — shame on you Atari

Why am I so upset?  Well,  where to begin.

They didn’t give me any credit.  I wrote the code,  designed it, did the music, sound effects and 3/4 or the level design.  They didn’t give anyone else any credit either,  so I’m in good company.  Part of the problem is that the old Atari didn’t allow in-game credits.  This policy was changed right after the original Crystal Castles was released.  There was a ROM update with credits in it,  but that update seems to never be used when the game is emulated.  As a result,  the only credits in the game are my initials.  That big FXL on the first level are my initials.  This is small consolation.  A lack of credits for the developers should no longer be allowed to happen.  It’s just plain unfair.

Atari didn’t contact me.  I’m easy to find.  I could have helped them make the game better.  The same can be said for my ex-colleagues at coin-op Atari.  We’re still alive and actively developing stuff.  Not only are we not getting credit,  we’re totally out of the loop.  Sad, really.   We built this industry.  Where’s the love?

The graphics are screwed up in Crystal Castles.  The trees are transparent in the trunk.  It’s a simple and obvious bug to anyone who knows the original game.

The controls are a problem.  There are two versions of the controls,  but neither control scheme feels very good.  It’s tough to get the controls right on a touchscreen port of a trackball game,  but there’s definitely room for improvement.

I want to use my right hand to operate the trackball,  but the button in only on the right side.  The original coin-op had two jump buttons to accommodate both left and right handed players.

The game screen is too small.  I’d like to see the entire game on the screen with overlay controls.  Instead the game looks tiny,  which is very different from the original arcade experience.

At least the user reviews are mostly poor.  It’s odd that I’m in favor of poor reviews of one of my games,  but I totally agree with most of the one-star reviews that I’ve seen.  There are so many that I don’t have time to read them all.  I also give it 1 star,  and I’m the original designer!

And oh,  by the way,  I’m not getting any royalties or payment of any kind from the sale of this game.  That’s what happens when you do “work for hire” as a game developer.  Keep your IP (intellectual property) if you want to avoid this sad situation.

This is the reason I quit my job at Atari in 1984.  Amazing that it’s still an issue 25 years later.

Posted in Game Design, Reviews | Tagged , , | Leave a comment

high score table cheating

So I just got a pretty good score on Tiny Wings,  212,748.  And no,  I didn’t cheat.  But the scores on OpenFeint are ridiculous,  and on Game Center not quite as bad,  but even there we have some ovbious cheating going on.

Cheating on high scores goes way back to the early arcade days when people just lied to the operator and sent in the score to Twin Galaxies.  So the question for today is this:  How can developers prevent cheating?

The best way is trusted human witnesses with a video or film record.  This method has been used in sporting events for decades.  It’s still not foolproof,  but it’s as close as we’re going to get.  At least no one is claiming to run the 100 meters in 0 seconds,  which is the kind of thing that goes on in video game high scores tables.

Another pretty good anti-cheating method is to require a submission of not just the score (or the achievements) but a complete record of all user inputs (i.e. button presses and time stamps).  If the game is deterministic this record can even be used to reconstruct the entire game,  allowing everyone to watch the record setting performance.  A number of games use this method,  and depending on the game this can work very well.

So could we do something simpler,  like hashing or encrypting the scores?  Well,  yes,  but it wont stop determined hackers.  But there is a method that could work to at least mitigate the problem:  Game signatures.

A game signature would be a set of about 50 or so numbers that describe what happened during the game,  things like the total time,  the final score and 10 other scores taken after 1 minute, 2 minutes, 5 minutes, etc.  And a bunch of statistics like number of deaths,  number of shots, number of jumps, etc. etc.  The entire signature should be hashed and sent to the high score table website,  but only a few of the items in the signature would be revealed to the public.

Upon submission the signatures would undergo an automatic checking process.   The top scores would still have to be periodically reviewed by humans,  and removed if the stats are provably impossible.

So in conclusion,  at the very least we designers need to be aware of this problem,  and yes it is a problem.  Our players care about high scores,  and get very discouraged and upset when they see that the high score tables have been hacked.




Posted in Development Tips, Game Design | Tagged , , | 1 Comment

User Generated Content in Games

Today’s game design topic is about letting the players change the game.  We game designers know how much fun it is to design levels,  tweak the game code,  and generally change things in our games just to see what would happen.  Why not let our players experience this as well?

Traditionally the industry frowns upon this concept.  The most serious problem is that some of our players want to make obscene and/or illegal content.  Also, most of our players are untrained in game design and as a result they make content that is just plain bad.  On the other hand there’s some truly great, fun, legal, user generated content out there,  so it’s definitely a double edged sword.

On top of all that,  there’s some very nasty technical challenges to allowing user generated content.  Most design tools are gnarly, proprietary tools that easily break.   It’s one thing to use these tools during development,  but another can of worms entirely to release them to the public,  documenting them,  and fixing the bugs.

So let me say right up front that I’ve decided against user generated content in my current project, fatjumper.  Sometimes you just have to take the easy path,  and it’s definitely easier to keep all content and the content creation tools in-house.  Still,  I’ve thought about this issue a bit lately, so here’s my list of techniques to deal with the problems of user generated content:

is it legal?

I am not a lawyer,  so I’ll do my best not to give legal advice here.  When a user makes Pacman or Mario level using your tools,  what are the legal consequences?  The industry currently deals with this by quickly responding to takedown requests by the copyright and trademark owners.  It’s a good idea to encourage the content creators to avoid the creation of infringing content,  but of course that won’t stop anyone.

Another technique for dealing with this issue is to limit the content creation tools so severely that it’s impossible to create infringing content.  If you don’t let users enter their own text, graphics and sounds but just manipulate prebuilt elements you might be OK.  All in all though this approach throws out the baby with the bathwater.  If you cripple the tools in this way the content creators won’t be all that interested in using them.

A reasonable line of defense is censorship before publication.  That means putting a human into the loop.  When someone makes new content it gets submitted to the publisher and someone who works for the publisher has to review the content before it gets released to the public.  This won’t catch all infringing content,  just the obvious stuff.

By the way, and off topic, I’m filtering comments in this blog the same way,  though so far the problem isn’t infringing content but rather spam.

is it obscene?

This problem is really handled the same way as the legalities.  Additionally,  there’s the method used by the XNA Creator’s club.  Essentially,  the idea is to form a community of game creators who are willing to do the gatekeeping for you.  This is called peer-review.  You need to make sure that the reviewers are all adults and have at least some level of experience in game creation.

The biggest problem with peer-reviewing is that it takes time on the order of days or even weeks.  This won’t make your content creators happy,  so anything you can do to speed up the process would help.  Unfortunately,  without a human in the loop you’re just asking for big trouble,  angry parents,  bad publicity and lawsuits.

One feature that’s worth considering is to designate certain content creators as “trusted” or “valuable”.  Those people could get higher priority in the queue,  which would alleviate the delay problem for them.

is it good?

In a word,  no.  User generated content tends to be two or three notches below that made by the pros.  There’s exceptions of course.  A reasonable way to allow the cream to rise to the top is to implement a rating system.   Still,  rating systems aren’t perfect and can be manipulated.  It really helps if the content creation tools are powerful enough to make anything made by the pros yet they give automatic evaluations and warnings to help the new content creators make acceptable stuff.

how to implement this?

It ain’t easy.  I went through this process once before on Gubble and Gubble 2. For Gubble we made a very powerful in-house level editor that was a lot of fun to use.  So for Gubble 2 we released the tools as part of the product.  Unfortunately we didn’t document the tools very well nor did we promote this feature.  As a result the Gubble 2 level editor wasn’t getting used.  This was back in the 1990s before widespread use of the internet.

Here’s a screenshot from the original Gubble Level Editor,  revealed here for the first time:

Gubble level editor screen shot

Gubble level editor screen shot

In Gubedit you use various keyboard shortcuts to move the cursor around to draw the level,  place objects,  and edit numeric properties of the objects. It would generate a data file which was used by the game itself as well as 3D Studio to serve as a starting point for the artist to create the prerendered graphics of the level.  We couldn’t expect our users to have access to 3D Studio,  so this made it impractical to release this tool to the public.

I resurrected Gubedit and used it again in 2007 and 2010 to help in the creation of the updated Gubble versions Gubble HD and Gubble iPhone/iPad.

The prerendering technology used in Gubble is very obsolete now.  The technology hurdles on your game will be different,  but I would advise you to plan it all out carefully and don’t underestimate the amount of work it takes to support user generated content on your project.

Now what?

As you can see,  this is a complex issue with legal and technical ramifications.  Most commercial products out there don’t support it,  and I’ve listed some of the reasons why most developers shy away from this feature.  Still,  there’s some notable exceptions such as Little Big Planet,  Roblox,  Minecraft and the Sims.

Looking ahead to the future is dangerous in this business,  but I’ll give it a shot.  There’s definitely a trend in technology in general to give a voice and a creative outlet to users.  So I expect that UGC will become more common in the future in spite of the many difficulties.


Posted in Development Tips, Game Design | Tagged , , | Leave a comment

Gameplay defined

The following was originally written on March 19, 1999 by me, but never published.
As I reread it just now I thought it would make a good post for this blog, so here it is.

The gameplay of a game is exactly that part of the game that influences the final score.

This is a surprisingly simple definition, but it works very well!! We want our definition to filter out such things as marketing hype and the beautiful graphics, but leave in the controls and the difficulty ramping. Amazingly, all we have to do is ask ourselves: Does this property influence the final score of the game? If not, then it’s not part of the gameplay.

Examples: The funny background story in the manual, the background music, the packaging, the price, the horrible TV ad, are all NOT part of the gameplay.

The rules of the game, the controls, the way the rules are conveyed to the players
are all part of the gameplay.

Here’s another example:

In tic tac toe, the grid, the rules about getting three in a row to win, the rules about who starts are all part of the gameplay. In fact we might suspect that this is an example of a
pure game, one that only consists of gameplay. But then even such a simple game has
graphics, and the graphics aren’t usually essential to the gameplay.

Here, the fact that the players use circles and crosses to indicate their moves is not part of the gameplay. The fact that their symbols are easy to draw and easy to distinguish are part of the gameplay.

This leads us to a related question:

When do two games have the same gameplay?

We can then take the equivalence classes of this equivalence relation and use those to define gameplay.

An operational definition: When expert players don’t care which of the games they play.

Examples: Two chess players won’t care if they use a fancy or a plain chess board. They might not even care to use a chessboard at all and just us algebraic notation.

Another possible definition: We record the actions of each player, and can interchange the
recordings and we still get the same score at the end.

Are the graphics part of the gameplay? Yes, but only in a rudimentary way, i.e.
it’s important that different graphical objects are distinguishable by the participants, or not, as required by the game design. For example in chess we want to be able to distinguish the king and the queen and to know which is which, but we don’t want to see differences from one pawn and another.  In card games we want the backs of the cards to be unmarked or cheating becomes too tempting.


Posted in Game Design | Tagged , , | Leave a comment

Texture cookbook

In my ongoing efforts to “sharpen my axe” I’m always on the lookout for ways to improve my Blender skills. So I was curious to check out Packt’s new book “Blender 2.5 Materials and Textures Cookbook” by Colin Lister. This book fits the bill very well. While it is aimed at professional Graphics Designers with at least a rudimentary working knowledge of Blender 2.5, I have also found it to be very useful for me being a jack-of-all-trades game developer and spotty Blender 2.5 knowledge.

This review is written from the perspective of using Blender to create graphics for real-time applications such as games. The author has aimed his material mainly at Graphic Artists who create very high quality still images or animations using the built-in Blender rendering engine rather than an external game engine such as Unity, UDK or the Blender game engine. Nevertheless, it’s easy enough to just bake the textures created in Blender for use by external engines.

This book presents 80 recipes for creating a wide variety of textures and materials ranging mainly organized into natural and man-made materials. Blender has some extremely advanced features for procedural texture generation. This texture cookbook presents a multitude of techniques for creating, manipulating and combining textures to achieve some truly spectacular effects.

Colin Lister promises to teach everything from an increased understanding of the new Blender 2.5 user interface to creating an entire animating ocean and UV mapping a human face.  He also teaches how to synthesize complex materials without complex mesh objects by using alpha transparency.

The basic approach of the book is to present each of its 80 recipes in a way that allows them to be followed independently of each other.   While many of the recipes depend on previous recipes this isn’t a problem if you download the .blend files from the publisher’s website and use them as starting points. Each recipe starts by presenting a step by step procedure followed by a section that explains how it works.

All in all this book is really great, very informative and tremendously helpful. I learned things that I had no idea I should be learning, such as the node editor. Each node represents a texture or a procedure for combining textures. You can then graphically arrange how the nodes feed into each other to create the final effect. This sure beats using a text-based interface.

I really like the step-by-step learn by doing approach of this book. While it is tempting to just read through the recipes, I found that by working through the recipes myself I could better learn and appreciate the complexities of what’s going on.

If you get this book I would warn you though to save your work often and make sure that things are working for you as advertised. There are cases where things break. This can happen because of user entry errors, possible Blender strangeness (2.56 is a beta version after all,  though it has yet to crash on me) or the occasional omission in the book itself. I’ve so far only found a couple of places where it’s the books fault, and in all cases I was able to figure out the problem. When in doubt you might need to load the .blend files from the publisher’s website rather than your own .blend files.

Another technical note is that you’ll definitely need to use Blender 2.56 beta which us freely downloadable at Blender has a history of making pretty radical changes from one version to the next, especially when it comes to the user interface. This is crucial when trying to follow the recipes, so don’t expect to be able to work through this book with Blender 2.49 or earlier.

The writing style is very pleasant with a good mix of technical information and interesting side notes. The only criticism I would have is that sometimes there is a very long series of steps that you need to go through without really knowing why you’re doing them or how they work. The explanations are sometimes several pages later, so you just have to be patient, or maybe skip back and forth between the cookbook section and the explanation section. It helps to do frequent test renders which can visually show you the effect of each step of the recipe.

In summary this book has everything I expected and more. I would definitely recommend it to anyone who’s interested in learning about how to make interesting textures and materials in Blender 2.56. There aren’t a whole lot of other books out right now about Blender 2.56 in general, so I’d also recommend this for people who simply wish to get better with the user interface.

The free sample chapter is Chapter 4 and very useful by itself. It shows how to set up Blender for texture development and gives some good hints on how to use the new user interface, so it’s a good place to start. Here’s a link:  Sample Chapter

You can get more information about the book and purchasing information at the publisher’s website by clicking here:  Blender 2.5 Material and Textures Cookbook


Posted in Development Tips, Reviews, Tools | Tagged | Leave a comment

GDC 2011 reflections

Last week was very inspiring for me. I managed to attend five day’s worth of GDC talks and caught up with some old friends. The conference was huge as usual with record attendance of 19000 game industry professionals and students.

I won’t list all the talks I went to since there are just too many of them. Here are some general impressions from my own vantage point:

Classic gaming is getting more attention

I saw several postmortems of classic games,  including Pacman, Marble Madness, Doom and Pitfall.  I might even get to do one of these next year for Crystal Castles.  There was a lot of moaning and groaning about punchcards,  having to learn opcodes for the 6502,  and other very obsolete tech stuff.  Makes me wonder what we’ll laugh about in 20 years.  Will C++, Windows and PCs be relics of the past?

Wither Casual Games?

Just a couple of years ago we heard a lot about casual games.  This year not so much.  The concept of casual gaming seems to have been replaced by social gaming.  It wouldn’t surprise me if in a couple of years we see another shift in the industry as the public gets bored with it all and looks for something else.  Me,  I’m still a big believer in hard-core games, big games that take a while to digest.  At one of the talks it was mentioned that we designers should aim for making hobbies.  A real hobby keeps your interest for months or even decades,  not just five minutes.

Indies hitting the big-time

There were several great success stories about indies such as myself (only slightly younger) hitting the big-time.  Minecraft, Cave Story, Super Meat Boy all started with one or two developers doing it all.  It warms my heart to see that this has finally happened after a decade of game development having been dominated by large teams at big companies.

Where’s the 3D?

Yes,  there were some 3D demos,  and they looked pretty good.  By 3D I mean the stereoscopic 3D where you wear glasses,  or not for the Nintendo 3DS.  Still,  I was somewhat underwhelmed.  These 3D fads have come and gone every ten years or so ever since the fifties.  It still feels like a fad to me.  Then again,  a whole lot of people said that video games were a fad way back in 1983.  They were very wrong.


Unity had a big booth and a tutorial day.   The tutorial talks were very popular and filled up.  I did see one Unity talk given by EA about their experience with using Unity for Tiger Woods online.  The strange thing about that product is that the physics for the golf ball and the geometry of the golf courses are all handled by the servers,  with Unity basically just doing the display.


I’m really glad I went.  Innovation , creativity  and hard work are the keys to success.  It pays to research the industry,  to learn from you peers, and to make sure that your innovative idea hasn’t been done already.

Posted in Events | Tagged , | Leave a comment