Sign In

Close
Forgot your password? No account yet?

The Holy Bible of Programmers by DeRiften

Today in analysis, we learned more about the agile scrum method (basically a philosophy of work for programmers) and how to apply it on a daily basis, so that oughta increase my efficiency some more. We then started the first major team project of the program: simulating the conception phase of a game. Basically, we made teams of four and we'll think about how we'd go about developing a game, while applying the agile scrum method on a daily basis and switching roles each sprint (two weeks). Seems simple enough but it's actually an extremely important exercise since it teaches us to work with people we're used to work with and that, with perfect teamwork. I'd describe the agile scrum method since it's so essential, but I'm really tired so I'll just skip it and pass to the next class.

Audio! I knew I'd love that class and I was right, we started learning FMOD and I'm already having a blast experimenting. Sadly, headphones are required and I experimented quite a bit so now I've a pretty intense headache, amongst other pains. We were supposed to use OpenAL but it actually died because it's completely incompatible with 64bits OS, but I'm glad because FMOD is much easier to use, has no compatibility issues whatsoever and works perfectly on the go. It's also super popular and many companies (such as Blizzard) use it, so you can't really go wrong with it.

...Alright, I'll describe the agile scrum method, be ready for a wall of text.


Our highest priority is to satisfy the customer
through early and continuous delivery
of valuable software.

Welcome changing requirements, even late in
development. Agile processes harness change for
the customer's competitive advantage.

Deliver working software frequently, from a
couple of weeks to a couple of months, with a
preference to the shorter timescale.

Business people and developers must work
together daily throughout the project.

Build projects around motivated individuals.
Give them the environment and support they need,
and trust them to get the job done.

The most efficient and effective method of
conveying information to and within a development
team is face-to-face conversation.

Working software is the primary measure of progress.

Agile processes promote sustainable development.
The sponsors, developers, and users should be able
to maintain a constant pace indefinitely.

Continuous attention to technical excellence
and good design enhances agility.

Simplicity--the art of maximizing the amount
of work not done--is essential.

The best architectures, requirements, and designs
emerge from self-organizing teams.

At regular intervals, the team reflects on how
to become more effective, then tunes and adjusts
its behavior accordingly.


Those are the 12 commandments of video game programmers, the Holy Bible, and it can be resumed by:

Individuals and interactions over processes and tools
Working software over comprehensive documentation
Customer collaboration over contract negotiation
Responding to change over following a plan

Sounds simple enough, right? Well, it is, and that's exactly why 99% of video game companies use it nowadays. Back before it existed (in the 70s), the most popular development method used in games was the waterfall method, and it was really straightforward and methodical. Describe the game entirely, THEN do the game concepts (arts, audio, voices, etc), THEN code it, THEN test it. Meaning if the game designer changed his mind about something or wanted to add something, you'd have to redo the game concepts entirely, then redo the programming entirely, then retest the whole thing. Or if you found bugs in the code, you'd have... to redo the game concepts entirely, then redo the programming entirely, then retest the whole thing. Thankfully in the 70s they were making Pong consoles... it'd take DECADES to develop a game with that method nowadays.

The Holy Bible of Programmers

DeRiften

Journal Information

Views:
151
Comments:
2
Favorites:
0
Rating:
General

Comments

  • Link

    Sometime ago I decided to look up how most of my childhood favorite games were made, and the working conditions were so bad. Crunch Time for instance, and people having to take sleeping bags to work to get it ready for shipping day, then the waterfall method was how Gex started to flounder, as well as people wanted to cut out some content and the current generation of hardware wasn't entirely capable of running it. But eventually they did it.

    I've also came across the Scrum model before (Although I confused it on the initial reading here thinking it had something to do with the LucasArt's game engine of a similar name) but there is a really low-tech way I've seen people use it, which is to write their game out as a prototype first with a flow-chart ("Choose your own Adventure") and game play elements if it requires a strategy are resolved with cards. It's akin to what Walter Gropius remarked that 'form follows function' knowing how you get from A to B and that it's achievable without the hardware crashing due to rendering times, then you can build it up and make it more glossy once the gameplay is viable.

    • Link

      Making a prototype is used in most games to see if the game is technically doable. It's extremely vague and simple and has nearly nothing to do with the game concepts. As an example, the prototype for Assassin's Creed consisted of a default model jumping around trying to latch onto floating cubes, just to see if the parkour element of the game was doable. It's usually done by a single engine programmer, while or before the conception phase (arts, audio, voices, etc) even begins.