Friday, October 28, 2005

Programmer Design: Sinistar graphics put to use

You know, I could get a huge kick out of just dumping game graphics onto my site and seeing the sort of games people make with them. Maximilian from allegro.cc stopped by one of my older threads and posted a game he is making with my old Sinistar-clone graphics. Thanks Maximilian! Quite fun even in this early state. :-)

Here's his comment:

It will not really resemble the old Sinistar, but be more like Freespace, but in 2D.If you even want to download the demo: http://www.imaxcs.com/fighters.zip

In this demo, you have to pursue the other (lightbrown) ship and destroy it in order to win. Controls are: WASD or cursor-keys to move, space to shoot.

Free graphics
For those of you who missed it, I have two relatively complete sets of 2D graphics from ages past that you can down load for free and incorporate into your own game designs:
  • Sinistar graphics: Random tidbit. I had a chance to meet with RJ Mical, the fellow who worked on the original Sinistar (as well as the Amiga, 3DO and Lynx). He's now working with Sony helping get the PS3 whipped into shape. Brilliant fellow. It is a wonderful thing that we are in such a young industry that you can still meet your childhood heros.
  • RTS graphics: Another random tidbit, the original programmer for this game went on to become the CEO of Snow Blind, the good folks behind the title Dark Alliance.

Programmer Design
Space shooters in particular seems like the open source text editors of the gaming world. Put a programmer in a room and 9 times out of 10 he'll make a space shooter. It is barely a surprise that Space Wars is often heralded as the first computer game.

We've all heard the phrase 'programmer art'. Programmer art is truly horrendous artwork that typically results from a programmer being forced to scrape together artwork when making a game, user interface, icon, etc. You tend to get artwork that looks how programmers think. There are a lots of iconic shapes, thick black outlines and shading that had super sexy linear gradients.

Here's a new phrase that riffs off the same theme. "Programmer Design" is the standard game designs that result from a programmer being forced to exercise their game design skills. :-) Again, the design tends to represent the programmer's most comfortable patterns of thought. Lots of die and repeat type of risk / reward systems, an emphasis on spacial thinking and reacting.

It's just a matter of priority really. Programmers love programming. That's why they do it. Art is something that needs to be created in order for the programmer to get on with programming. Game design typically exists as an excuse for the programmer to program and the path of least design resistance is the most optimal. Natural priorities are a damning thing.

You can't claim that the designs are bad. After all 'programmer design' is what launched the current industry. Maximilian's game looks like it might be quite enjoyable and borrows from genres long established in our hardcore vocabulary.

Catch-22
At a certain point though, you have to ask, "Does the world really need another text editor?" I suspect that it takes someone with a perspective outside of the common programmer mindset to make new genres of games that appeal strongly to non-gamers.

And the reality of the industry is that most of the people who work in it are perfectly happy playing programmer designs. Heck, those designs may be ancient and misrepresentative of the population at large, but they are also are the singular reason why we are involved with the game industry.

So...

  • Programmers set the stage for the game industry with their 'programmer design'
  • The only people interested in making games are those that love, breath and think in terms of programmer design. The result is, not surprisingly, more programmer design.
  • We need non-programmers to help make games that avoid programmer design
  • Very few of these people really exist in the game industry, because they dislike the games that sport programmer design. The last thing any company wants to do is give money to someone who actively dislikes playing most successful games.
  • Even fewer exist on the fringes of the game industry because...wait for it...in order to be an indie, you need to be a programmer.

Sweet. Bring on the space shooters. :-)

take care
Danc.

PS: I'm calling out Phil on this one. Dogfighting planes is merely a hairs breadth away from a space shooter. Be honest. Did you come up with the design for this by yourself? :-) "By programmers. For programmers." It is a market.

21 comments:

  1. The game needs a reverse!

    ReplyDelete
  2. Danc, you've just summed up my current position. I've got tons of great ideas for game design, which push beyond the current boundaries of game design, have clear target audiences who are not currently served but would be eager to get them, and are certainly possible with current or even outdated technology. But I stink at programming. I mean, I know how to program in Visual Basic, and I'm reasonably good at it, but anything involving even slightly complex graphics and I'm hopeless. I spent months studying DirectX programming, and was still unable to make even the most basic game prototype. I also have no talent whatsoever in drawing, so my programs had to use stick figures. An indie game is, as you have pointed out, not a feasible goal for me.

    Sorry for shifting the subject of the discussion to my problems, but this is exactly the sort of problem you are theorizing about. These problems exist in practice.

    ReplyDelete
  3. Hey now, programmers are people, too! :-)

    "Programmer Art" is more the result of priorities. If a UI button is ugly, the game will still do what it's supposed to do. If the game crashes, the prettiest art in the world isn't going to save it. "It crashes," "it doesn't look right," "it doesn't sound right," "the controls aren't responsive," "my script isn't doing what it's supposed to," are all problems we have to solve. We have to be masters of all trades. It is often an infinite amount of work in a very finite amount of time. We don't have a problem cutting a few corners on the art if it means getting more done.

    Plus, of course, most of us really can't draw.

    If you lock ten programmers in a room and tell each of them to make a game by themselves, odds are they won't come up with anything terribly original. Why? Because it's too risky. The bulk of the work is in the programming. If you want me to write a game from scratch in X amount of time, I'm not going to invent a brand new game that might not be any fun at all. Coding a game that's no fun to play is far more tedious than playing it. No, I'm going to come up with a game that I already know is fun, and add a few variations of my own. Think of it as minimizing risk.

    Now, if you locked ten programmers in a room and asked them to come up with an *idea* for a game that would be fun, you'd get many more varied answers.

    We can be creative, you know. :-) You might think that programming is a science with hard, definite answers, but that's not the case. There are countless ways to tackle any code problem. Programming is just a different kind of problem-solving.

    I do agree wholeheartedly with this statement:
    Very few of these people really exist in the game industry, because they dislike the games that sport programmer design. The last thing any company wants to do is give money to someone who actively dislikes playing most successful games.
    Very true. I would love it if more game companies took risks. (I'd also love it if the movie industry did the same.) But alas, that's not how the world works.

    ReplyDelete
  4. Wow. I was just beginning to think my art had turned a corner. That my Bold Lines and Sexy Gradients would turn heads :(

    At least I'm not working on a space shooter. At the moment.

    ReplyDelete
  5. I hope that I didn't come across as stating that programmers are not creative. They are highly creative and are an essential of any game development team.

    I would however say that programmers are often cut from a similar cloth. They tend to like very specific styles of games and tend to have common personality traits. There are more introverted programmers than there are extroverted programers, for example. It is a generalization and there are certainly exceptions.

    There's also a strong technology culture. We like Spawn and Star Trek. We don't like Barbie or Nordstroms. This also shapes what we create.

    Why doesn't a programmer sit down and say "I think I'll program a game about shopping for shoes." Here is one of the most popular activities on the face of the planet. Branded athletic shoes are an $18 billion a year market. Casual and outdoor shoes are a $11.2 billion market. Talk to most women and quite a few men and they will describe in great detail the joys of shoe shopping.

    Programmers have had decades to produce concepts that target this market or similar markets. Pragmatic production priorities and risk aversion don't fully explain the lack of games in such areas. The obvious explaination is that there is substancial, perhaps unconscious, culural bias against creating games that are not focused on the skills sets that dominate the lives of most programmers. "I didn't design it because it didn't seem fun" is often a flaw inside the programmer judgement circuits, not the concept.

    There's a bigger world out there that can be served by interesting game designs. Programmers and people who love what programmers design are not enough. They are creative, but history tells us that this group lacks fundemental insights into how other members of society think. This really isn't a very radical thought for people who don't read Slashdot. :-)

    There are a couple solutions. One is a systematic process that helps bring perspectives from the target audience into the design process. The other is to get people who are part of the target audience to start designing games.

    take care
    Danc.

    ReplyDelete
  6. Hi all,

    A friend pointed me at this site, so I thought I would stop by and drop a post off :)

    I run a games company called Nocturnal Entertainment (based in Australia) - sort of a distributed games company, where anyone can sign up and help out with game development (we just released a GameBoy title Ultimate Arcade Games..).

    Anyway - our next project is a little game called StarPatrol, which is a cut-down version of the classic Star Control I/II (game is again for the GameBoyAdvance..).

    We are in the middle of designing ships, and working out what game features we should add to the game. Hence this demo stirred my interest :)

    (not sure how often I'll be back to check out posts here, I can be emailed directly at mshamgar@nocturnal-central.com).

    Go 2D space-games!

    - Mike :)

    ReplyDelete
  7. ...or you could have someone other than the programmers doing the game design. You don't go to a builder to design a building, you go to an architect.

    ReplyDelete
  8. I think the problem is that it takes a long time to program something - it is a very complicated and time consuming task. That's why it's very hard for beginning programmers to just follow what "some idea man" says, since he is probably more enthousiastic about programming what looks interesting for himself.

    ReplyDelete
  9. The link to the hard vacuum graphics is broken. Any chance of getting it fixed.

    Cheers,
    Shen

    ReplyDelete
  10. The Hard Vacuum download link is fixed. Thanks for point that out Shen. :-)

    Elias, you raise some good points about really understanding the psychology behind a particular group's passion for a subject. Guessing what is important is rarely as effective as asking and building understanding. There's a skill here that very few folks possess, but I believe it can be learned.

    On a happy note, when an underserved group gets something that even partially meets their needs, they will often buy even if the offering isn't perfect. Something is far better than nothing. The Barbie games sold quite well.

    I'm not suggesting that people push crap out to underserved markets, but markets with lower competition and high demand do tend to be more forgiving of freshman efforts.

    Imagine the horror that 3M would have suffered if it turned out that their customers really wanted the original post it note to be purple, not yellow. But that level of demands doesn't exist for a first time product. The fact that it was functional was more important than the specific color. This sort of customer flexibility goes a long way for an entrepeneur trying to perfect their formula.

    take care
    Danc.

    take care
    Danc.

    ReplyDelete
  11. Danc! Why didn't you tell me you wanted to make a game about shoe shopping?! Now there's a project I could pour my heart into. Dah! My sarcasm is proving your points.

    Safe travels. (:

    -Harold

    ReplyDelete
  12. Actually, I don't see the industry being saved by creative designers. We already have creative designers all over the place, and Game Design is emerging as a full discipline in its own right (and has been for some time now).

    The real problem, as you hint at, is that people who don't enjoy playing existing styles of game aren't motivated to join the game industry (whether they be a designer, programmer or artist).

    So, the question becomes: how do you motivate people with no interest in games to join your game company? And do you really want to, when you've likely got people eagerly wanting to "break in to the industry" lining up out your door and around the block?

    ReplyDelete
  13. Great points Danc (as always), although I think it's a little unfair that you basically deride the guy for making a space shooter with artwork designed for a space shooter. The question is, what kind of designs could you make with Sinistar graphics that would appeal to more people? I'm sure there are some, but I'm guessing the markets that don't like "programmer design" would probably be turned off by the art style of the game and not want to try it out, even if they would enjoy it once they did. It's similar to taking Doom 3 artwork and making the Sims out of it.

    ReplyDelete
  14. My experience with putting ten programmers in a room, regardless of what you tell them, is you get ten different engines and all of them claiming to be the best.

    The best programmers do it because they like it. The best game programmers program games because they were told that in order to make a living they will have to work. But they hate work. Instead they like playing games. So they sit around and think, "How can I turn work into play?" This is why you get this sort of project... because in said programmer's mind, all the work is done. Interfaces are not fun. Games are fun. As long as there's a barebones game in place, that's good enough. On to the next project.

    It's like the programmer of Viral Billiards demonstrated when he declared that the game was complete and there was really nothing more you could do to make it into a full game.

    So you put ten HOT game programmers into a room, regardless of whether you tell them to design a hit game or just give you an idea for a game, and you'll get the same result...

    you get...

    10 partially functional, really cool looking at first glance, partially complete, game engines.

    That's reality.

    It takes managers, designers and sometimes an eviction notice from Mom to get beyond the point of cool game engine to a sellable product.

    --Ray

    ReplyDelete
  15. I was one of the three dudes that made Tyrian, a classic (?) vertically scrolling space shooter. If anyone is guilty of happily implementing a programmer design, I'm up there. :-)

    This is really more a comment on the forces that shape our industry than an indictment of the genre.

    Teams
    Rays comment points to a broader issue evident in many software products. A modern video game is the work of a team. Single person games tend to suffer from many of the same limitations of a single person movie. There's too much to do in too many disciplines. At best you end up with a short snippet of a game. At worst you end up take five years.

    Having multiple people on a team increases the management effort involved, but the game benefits from specialized skills and multiple perspectives. I'm a big believer in small team productivity where productivity per person actually is better than a single person working alone due to fewer mistakes and smarter problem solving.

    Of course you need a team that gels and most teams don't. This leads to many star performers getting frustrated, running off into a corner and coding like lunatics. Then they can at least say "See, I got something done while you were dicking around with this horrible 'team' thing."

    Just because one team is bad doesn't mean all teams are bad. When you get a good team together, it will out produce the efforts of almost any individual genius game maker.

    You start getting interesting problems when you move beyond the small team. Communication costs increase and risk taking decreases. Middle managers become necessities and cross functional benefits become harder to coordinate.

    take care
    Danc.

    ReplyDelete
  16. Awesome. You know, I've had those lying around for years along with the old Circle art. Every once in a while I let someone who's learning make use of it.

    It's always so much more inspiring if they have something nice to use, after all. :)

    ReplyDelete
  17. Chris H: Totally agree with everything in your post. Asking a programmer to make something on his own in a limited amount of time is completely different from asking a programmer (or anyone, for that matter) to give you an idea for a game, and will get much different results. A fine example is the fact that I wrote "Viral Billiards" and am working on a "dropping puzzle" GBA game because they fit the skills, resources, and time at my disposal, whereas I have plenty of "groundbreaking" game ideas for when I have significantly more to work with. While I think that game designers CAN come from all walks of life, the best game designers are also programmers, because they know exactly what can and can't be done, and can work most closely with the other programmers to fit as much of their idea as possible into the limitations of the system.

    Ray: Wow! "Viral Billiards" is still topical! :)X I still don't think there's anything more worth pursuing in it, though, even if I did have an unlimited budget.

    ReplyDelete
  18. Yes, I think you're right that the best game designers are also programmers. How can you become a good designer if you don't have the skills needed to try out your ideas? There's exceptions of course.

    There is a negative side to being intimately familiar with programming limitations though. There's a tendency to kill impractical ideas before giving yourself enough time to fully evaluate them. Especially when you're the one who will be writing all the code.

    ReplyDelete
  19. Hot Diggety Dawg!

    Dan calling me out on international world-wide-webbage!

    Ok, ok, I admit that Air Ace isnt exactly bleeding edge femenist design fodder.

    But the pragmatic answer to it is: "I wanted to make something like Red Baron because that game was cool and I knew I could execute it".

    As it is, right now I'm also managing two other games, both clones of small casual portal style games.

    These arent original designs. I admit.

    But youre presuming a hell of a lot about the mindset of your "average" programmer here Dan.

    Fact is, your day-to-day programmer hasnt got a lot of interest in "design" per se. I think youre kind of muddying the waters by not spotting the two distinct styles of person.

    I learnt to program because I wanted to create. I also learnt music because I wanted to create.

    So now I manage projects because I want to create.

    There sure are the type of programmers you talk about, who have a very engineering-centric notion of development. But that type generally hasnt got any wish to actually creatively design games. They do the usual "lets build an engine" thing.

    For myself, I like to create games. I also have to create games I can finish, so right now I'm doing some games I've got a very good handle on production wise.

    Thats not to say I dont spend a significant time designing game mechanics from all sorts of concepts.

    Like the sheep herding prototypes I did with the sloa game.

    The reason why I would be more pro programmer-designer than anti would be simply because we actually have the tools to TRY our designs.

    I simply do not trust a designer who cannot reproduce thier design in some form you can at least try. So sure, if you can create art and a board-game style design, then good. But I work from simple mechanics and mechanisms and not from themes. This isnt some uber-masculine programmer idiom either, its just that I feel that games are essentially toys and toys are played as mechanics rather than the typical misguided "games as stories" type.

    You know the biggest hurdle for an indie when developing a game? Having high-quality artwork in order for people to get over thier fear of something unknown.

    So yes, we can do all manner of interesting games, but I definitely dont agree with you that programmers are almost acting like a drag factor on the development of the game industry towards a more mainstream audience. The fact is that there are FAR bigger issues to face in getting the mainstream to accept games as a medium and programmer bias is probably one of the lesser evils we face.

    I'll have to think on it a bit more though...

    ReplyDelete
  20. I do like the distinction between programmers who like to program and those who learned to program into order to create games. I've learned a little (emphasis on a little) programming primarily because it is a necessary tool.

    I have an article that I'm really debating on whether I should post or not. In short, it explains how the combination of a limited population of initial creativity combined with premature optimization has lead to the current industry.

    Basically, I argue that the initial 'programmers design for programmers (and people like them)' that gave birth to our industry is a major factor limiting the growth of the industry. It is difficult, however, to talk about strong cultural biases without accidently insulting someone. I'm reminded of the opinion piece in the recent issue of Nextgen.biz decrying the 'lad boy' focus of most game magazines. Rather obvious, but not a single editor would admit to it.

    Programmer design isn't the *only* thing that is hurting the game industry. It is certainly a contributing factor.

    The essay is unfortunately in a bizarre state of disrepair. Some thoughts just don't turn out very coherent when you put them down on paper. :-)

    take care
    Danc.

    ReplyDelete
  21. After programming games professionally for the better part of two decades I made the fundamental realization that I became a programmer mostly so I could implement my own designs. Perhaps a little more introspection or candle power would have gotten me here sooner but there you go. Anywho, I eventually left big team programming because I was frustrated with everybody and their dog coming up and redesigning things on the fly and bending over backwards to figure out how to get people to commit to a coherent design.

    Somedays I miss my old salary but generally I'm a much happier guy following this particular dirt path of life.

    ReplyDelete