Defining Awesome — How to program independent games
  • Status Updates

  • How to program independent games

    Written by . Posted at 3:35 pm on June 28th, 2011

    Soldat is good because it has shit code. It wouldn’t ever be good if it had good code. Why?

    http://the-witness.net/news/2011/06/how-to-program-independent-games/
    Presentation by creator of Braid. I could have done a similar presentation, lots of great stuff here.

    Be Sociable, Share!

    12 comments.

    1. the url in the link is broken


    2. I guess it wouldnt hurt the game if it had a better netcode 😉


    3. “If it’s stupid, but it works, it isn’t stupid”


    4. I have to strongly disagree. There’s no way good code hurts anything. In no point of the presentation does the guy encourage bad code. Unless that you mean that overengineered code is good code, which it isn’t. What he promotes is simple code, which is in NO WAY a form of bad code. Read any software engineering code and you’ll see the same things he’s talking about. Optmize ONLY what has to be optimized and only if needed. Plan before doing. And so on and so forth.

      Who knows, maybe if Soldat had decent code it would have progressed even more and would a get an update every 3 months instead of every 3 years.


    5. Random: of course good code is better, that why it’s called good :). But good code doesn’t come from “knowing”, it comes from learning from own mistakes. Good code comes from writing a lot of bad code.

      If Soldat was to be written in “good code”, it wouldn’t be written at all. (Correct if i’m wrong!)

      One particulary good thing that Blow said was that when he heard those type of advice, he always thought “exacly, I already know that!”, even though he later realised that he didn’t. That’s the problem with advice – only those who don’t need it understand it and you get what it means only when you learned it the other way.


    6. I think for the discussion be able to continue MM needs to define what is bad and what is good code in his opinion.


    7. Even through this is true, the lag in soldat and KAG are pretty much the only thing turning me off from such fun games.

      That’s the downside.


    8. this all sadly doesnt help if there are no frequently updates. (unless they re not needed)


    9. archont

      Were you trying to be funny or just dumb?

      Code quality can be seen ultimately in the finished product. For games like yours it doesn’t matter what’s inside the source files.

      Bad code = crashes, freezes, doesn’t work as intended, leaks memory, doesn’t work on various hardware/software configurations, is easy to break

      Good code = works as expected

      Bad code can be written by overengineering and a drive for needless perfection. Using oversized frameworks, generalized solutions, crazy optimizations, needless error checking and all kinds of proper programming techniques does not make a code good

      UNLESS

      you’re writing code controlling a submarine ICBM launcher, a banking server backup system or something.


    10. If Soldat was to be written in “good code”, it wouldn’t be written at all.

      That’s my point.


    11. niko šveikovsky

      i get you.

      bad code is the result of flashes of inspiration. a vision only stays fresh for so long, even a conceptual abstract is nowhere near as motivational as ‘seeing’ your future product in your mind. simultaneously cleaning up and optimizing while coding your ideas is near impossible, because each compile that does what you envisioned just inspires you more. i’ve tried writing nothing but clean code, i just end up going in circles without coming up with anything real.


    12. shurcooL

      I think it’s better to use the term “gets the job done” code vs. “good” code.

      It still has to work as expected, even if its architecture is not the most beautiful thing in the world. Bad code usually means something doesn’t do what its supposed to.


    Post a comment.

    Links