Freigeben über


Everything I ever needed to know about programming I learned in Gamergarten

  • Don't block the user from moving her ship while she fires her laser at the space aliens
  • Don't redraw more of the screen than you have to when the aliens move
  • Make sure the sounds start right away when the buttons are pushed
  • It's better to not have a bonus ship go across the screen if its presence makes the game laggy

 

I love XNA.  Really I do.  Not because I think writing games is the single most important activity on the planet -- although maybe it is -- but because I think it's one of the most educational things a budding programmer can do.

Game development is a great exercise because, even with fancy graphics hardware and super-computer like CPU resources available, it's so constrained.  You always want to get the most out of that hardware because that's what will make your game great.  Real considerations like frame-rate, lag, available textures, are in your face and directly impact the users experience in comparatively easy to understand ways.

Everyone should write a (little) game at least once in their life and I wish more Computer Science students did just that.

Some people have to spend an entire career unlearning callously taught maxims like "You should just let the [compiler|hardware] guys do the optimization", "Don't worry about performance, the [.NET|Java] runtime takes care of that for you." 

If you're in school now, trust me... It ain't so. 

Perhaps more than anything else I could possibly teach a CS student it would be not a datastructure, or a programming language but a basic understanding of the costs of low and medium level operations common in programming today.  Maybe that's why I'm so motivated to talk about performance signatures.

Comments

  • Anonymous
    April 06, 2007
    I spent a while writing a Solitaire game engine. Pretty good engine, can handle multiple Solitaire variants, but I had the worst time getting it to drawn on the screen without tearing. This was in pure .NET 1.1 so I never could get it working right. Talk about an exercise in frustration. I've still got the code, and keep meaning to try it again with DX or maybe even WPF, though...

  • Anonymous
    April 06, 2007
    another blog on same lines http://codist.biit.com/fiche/thecodist/article/all-i-need-to-know-to-be-a-better-programmer-i-learned-in-kindergarten

  • Anonymous
    April 09, 2007
    The comment has been removed

  • Anonymous
    April 20, 2007
    VS Intellisense is just too snow.  I know many persons have to rename the fea???.dll to disable it.

  • Anonymous
    April 26, 2007
    The comment has been removed

  • Anonymous
    May 01, 2007
    Sounds like an excuse to plug my game: http://www.gamedev.net/community/gds/viewentry.asp?projectid=297596 And, yes, I did learn a lot from the experience.