On getting criticism

 Posted by (Visited 50212 times)  Game talk  Tagged with: , ,
Oct 142013
 

Lately I have been working on multiple new games. And whenever you are working on games, of course, you get people to try them, and a lot of them don’t like what they see.

I’ve gotten a lot of criticism over the years, and I haven’t always taken it the right way. These days, criticism comes from all directions, and work is often shared before it’s really done. It can be hard to know what to listen to and when to stick to your guns.

Ultima Online is a Hall of Fame game. It averaged 6/10 in reviews. Star Wars Galaxies got a famously mixed reception, and closed down a while back; I still get fan mail.

So here’s my takeaways from all those years of being told that my work sucks:

Everyone who dislikes your work is right.

Continue reading »

Fun vs features

 Posted by (Visited 17696 times)  Game talk  Tagged with: ,
Jan 252012
 

You have a system. Let’s say it’s a system where you can throw darts. And you have to open your bar in one week.

Throwing darts might have a bad interface. The dartboard might be too small or too big or poorly lit. Darts may be a perfectly nice idea, but the implementation of it needs tuning.

At this point, you have a feature, but not fun. It’s gonna take you four days to make it fun.

Continue reading »

Some times you should write new code

 Posted by (Visited 7370 times)  Game talk  Tagged with: ,
Jan 072012
 

A fair amount of folks have taken the last few posts (on making games more cheaply and on rigid programming philosophies) to a bit of an extreme further than I intended. So in the spirit of contradicting myself, here are some good reasons to write new code.

When you have something new to learn.

I still remember how proud I was when I independently invented the bubble sort in response to a problem. Then how baffled I was when I tried to figure out how quicksort works.

Writing your own version of a known solution is a fantastic learning tool.  Trying to learn how to write jazz progressions? Grab a jazz song, change the key, and start modestly tweaking the chords (an 11th into an augmented, or whatever). Then build your own melody on top of it. Trying to learn how to draw? Start copying people who know how. Trying to figure out how a given game genre works? Try cloning or reverse-engineering a game in that genre. It’s a classic method of learning and there is no shame in it. If you have any creative spark, you’ll quickly move past this sort of journeyman work and start adding your own elements to it. (This is one of my caveats to Dan Cook’s post on game cloning).

Continue reading »

 Comments Off on Some times you should write new code

More on making games cheaply

 Posted by (Visited 12533 times)  Game talk  Tagged with: ,
Jan 062012
 

I only offered 6 points, but 3 of them are ones that people are wanting to argue about! 🙂 I suppose that is a pretty good hit rate…

A few folks took exception to my comment that “code doesn’t rot, our ability to read it does.”

The first objection is that most code is born rotten, that it is rare to find code written to the standards that allow it to be easily maintained. I can’t really argue with that, though of course there are plenty of practices that ameliorate this: code reviews, code standards, etc. I’d answer with “that’s just code where our ability to read it perished as it was being typed.”

The second objection is basically that platforms shift out from under code. This is absolutely true — but is also a sign that you’re not actively maintaining your codebase. Times of truly catastrophic platform shifts where everything you did is invalidated should be relatively rare these days, honestly.

Continue reading »

My biggest coding takeaway

 Posted by (Visited 11612 times)  Game talk  Tagged with: ,
Jan 052012
 

Rigid programming philosophies are the devil.

Look, I am upfront about the fact that I am not an amazing programmer. I am not even a really competent one. I hack. I didn’t go through a CS degree, I don’t actually know a lot of the lingo, etc.

On the other hand, I have in fact been credited as a programmer on published games. I have programmed in quite a lot of languages, I prototype my own stuff regularly, and my name is on several technical patents. I seem to have a knack for seeing architectural solutions to problems, and for inventing technical solutions. (I generally prefer to partner with a genius coder for the actual implementation thereof — and have been lucky enough to work with many of them!).

So take everything I am about to say with the appropriate grain of salt.

Continue reading »