Forgot your password?
typodupeerror
Image

Game Design: A Practical Approach 85

Posted by samzenpus
from the read-all-about-it dept.
Aeonite writes "As the title suggests, Game Design: A Practical Approach presents a practical approach to game design — one that is almost too practical in places. The book does a good job of covering many of the foundational elements of game design (called "atoms" by the author), but in places the level of practical detail — and the heavy focus on Lua code examples — is a bit hard to work through. Readers allergic to code may find themselves skipping over swaths of text instead of actually reading it." Read below for the rest of Michael's review.
Game Design: A Practical Approach
author Paul Schuytema
pages 416
publisher Charles River Media
rating 6
reviewer Michael Fiegel
ISBN 978-1-58450-471-9
summary A practical, often code-heavy guide to game design
Schuytema is a game industry veteran, perhaps best known for having worked on the original incarnation of Prey back in 1998 or thereabouts. These days it seems he's employed by the University of Illinois as an Extension Specialist, and it certainly seems to have rubbed off on him, as the book is written in a very scholarly, textbook-like fashion. The preface speaks of "foundational information," and while the exciting parts of working in the game industry are mentioned as well, generally the book's subtitle ("A Practical Approach") is precisely what you get.

The book is broken into three parts. The first, the aptly (and practically) named "Introduction to Game Design," consists of six chapters, covering the basic foundational elements of game design, game design documents, coding tools and the like. The advice in the first four chapters, in particular, comes across as a bit too practical, if not downright pedantic, as the author discusses things like listening, taking notes, and reading. In chapter 4 the author even covers the merits of breathing properly, getting enough sleep and not eating junk food (good luck encouraging that at a game company; we lived on Reese's Peanut Butter Cups at Perpetual Entertainment). One wonders if the current generation of whippersnappers, just entering the industry, really needs to be told to get a good night's sleep; if so, we're in for some interesting games over the next few decades.

Some of the advice here is genuinely useful and interesting, such as methods for helping inspire creative thought, brainstorming and developing memory. Chapters 5 and 6 are also more relevant to game design; the former covers game design documents, pitch docs, functional specifications, and the like, and is one of the tightest and most useful chapters in the book. Chapter 6 then dives headlong into the Lua scripting language, which is where the book's focus on game design sort of drifts sideways into the realm of game development. From this point on, the book is sporadically riddled with code examples, references to the example game on the included CD, and detailed explanations of variables, operators, functions and control structures. This is useful, if dry, but it seems to be directed more at the indie "casual game" industry where game designer, game programmer, game artist, game writer, and game publisher are all the same person.

The second part of the book, "Game Design Theory," covers high level design concepts broken down into what the author calls "game atoms". Examples include things like: having a clear goal for the player; providing subvictories to the player; allowing the player to affect the game world; making the context of the game understandable to the player; and so on. These are insightful, and easy to understand and digest, and were the entire book filled with nothing but these I would find it all the more valuable. Sadly, this section is also the shortest in the book (spanning just over 50 pages), and although later chapters in this section do manage to dive into things like player perceptions and challenges, I find myself wanting more. In covering the concept of game "flow" and losing oneself in the moment, the section does earn geek points for citing Mihaly Csikszentmihalyi, whose name looks like catlike typing should have been detected. But I digress.

Part 3, approximately half of the book, is devoted to "Real-World Game Design," which moves away from "theatrical underpinnings" and into more (you guessed it) "practical" issues. Here, specific "atoms" such as UI, inventory, power-ups, puzzles, conflicts, and the like are covered in some depth, each presented with code to show how the relevant "atom" might be programmed (examples taken from the sandbox game named Eye Opener, included on the accompanying CD). In places the density of code calls to mind the BASIC game programming books I owned in the late '80s, where if I had 6 hours to type I could make a rocket blast off the top of my Apple IIe monitor. In fact, one of the most interesting comments is on page 336 where the author discusses early games on the Apple II, where "(r)eplay of the game meant going for higher scores, since a single pass through the game was maybe 20 minutes tops." Schuytema speaks as if these are games from a bygone era, but it seems to me he's basically describing the modern casual game, of which there are many, many thousands in the wild. Much of the latter material, alas, seems to drift back into the realm of the "overly practical," with the author covering storytelling atoms such as outlining, writing, revising, and working with a writer. The final chapter, "Next Steps," then presents the ever popular "how to break into the industry" section, which covers very practical, but again somewhat obvious topics such as going to school, networking, and following game websites.

Each chapter ends with a summary and a series of "Chapter Exercises" that hammer home the feeling that this book is really more of a textbook, complete with homework assignments, rather than a casual read. Even the index is almost TOO complete and practical, with entries for brief, passing mentions of Barnes & Noble and Yahoo!; I was surprised not to find an entry for Mountain Dew, since it's mentioned a few times more often in the text and seems somewhat more relevant to the game industry. The book also offers a number of "from the trenches" sidebars throughout, each featuring veterans espousing on various elements of the game industry. These are interesting and often insightful, but their overall impact is somewhat reduced considering that fully half of them (11 of 22) feature the author himself. It seems that a broader selection of insights and examples from other designers in the industry would have served to balance the book a bit more.

Also worth at least a passing mention is the issue of the postage-stamp-sized images and screenshots that pepper game books these days. Many of the pictures in this book are difficult to make out due to their clarity and size (Figure 1.1 looks like some guys from Home Depot are about to encounter the Blair Witch), but most can be puzzled through. Even then, although they generally have relevance to the subject being discussed they often don't really reinforce the concept at hand in a useful fashion: Figure 3.1 is a picture of a marble notebook and some pencils, as if the book were written in a future time when knowledge of writing materials was lost; Figure 3.4 is captioned "Use your finger as an eye guide..." and contains a picture of a book with a finger on it; Figure 10.3's caption mentions "the samurai sword" weapon in Shadow Warrior, yet the screenshot apparently depicts a grenade launcher. The capper is probably page 194, which is supposed to illustrate multiplayer gaming, but instead (as far as I can tell) depicts two mid-'90s Inside Sales reps playing Solitaire instead of phoning clients. Possibly they are car salesmen; it's not clear.

Warts aside, as a whole Game Design: A Practical Approach covers quite a lot of terrain in quite a useful fashion, and hits all the major foundational points about game design. Though it does contain quite a lot of Lua code, this is admittedly not as irrelevant as it could have been, since Lua is used in a wide assortment of games, from Far Cry to Natural Selection 2, Warhammer Online to The Witcher. The book is a few years old at this point, but it seems that it will remain relevant as long as Lua remains a viable programming language in the game industry. Left-brainers in search of a fairly crunchy and quite practical book about game design AND development (and in particular those who want to design and develop their own games, rather than work for someone else) will be quite happy with the material here. Those right-brainers more comfortable amidst the fluffier bits of the game industry, however, may find themselves checking their watches halfway through the second act.

You can purchase Game Design: A Practical Approach from amazon.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page.

*

This discussion has been archived. No new comments can be posted.

Game Design: A Practical Approach

Comments Filter:
  • by g253 (855070) on Wednesday June 17, 2009 @02:07PM (#28364065) Homepage

    (...) may find themselves skipping over swaths of text instead of actually reading it.

    It should appeal a lot to slashdotters then ;-)

  • Programmers are a dime a dozen. That ain't nothing but ten-cent coding.

    Designers, though, are the core of any game. They are the ones who shape and craft the game, much like I.M. Pei designs masterful works of architecture. The programmers are just the construction workers who make the design a reality. Both are skilled and necessary, but construction workers without an architect aren't going to build anything of great value.

    That's why Lua is such a great teaching language, and why I think this book does re

    • by BigJClark (1226554) on Wednesday June 17, 2009 @02:30PM (#28364291)

      Correction. Mediocre programmers are a dime a dozen. Any comp sci grad with a 6pack of coke can get through directX 9 tutorials and have a decent floating ball, swimming shark. Good/Great programmers are a rarity indeed, and good games ALWAYS have a good programmer behind them. No lag in input, decent framerate, no odd bugs. Yeah, they deserve their paycheque.
    • Re: (Score:2, Interesting)

      by fooslacker (961470)
      There is a common misconception of the programmer as a commodity. Designers are by far the most important resource just as architects and designers are the most important for enterprise apps. That said crappy programmers can destroy a good design just like a bad design can't be coded around. It's akin to designing a sky scraper and getting a bunch of 15th century hut builders to construct it. Designers are imperative but capable programmers are very important as well. The real question is when do you h
    • by roguegramma (982660) on Wednesday June 17, 2009 @02:37PM (#28364373) Journal

      In my work as a programmer, I often have to fill in huge gaps left by the designers, and the designers usually only get the best ideas after they have seen what the engine can do.

      Also, the specification of the average designer is so vague in terms of programming, e.g. "I want the program to be smarter than the user" that it is worthless.

      Because of this any fulltime designer is usually in the top 5% of his craft, while a fulltime programmer still can be useful if he isn't in the top 5%.

      • Re: (Score:3, Insightful)

        Programming and design are still distinct. When filling in blanks left by designers, you are doing design. When you are shaping what the engine will accommodate, you are also doing design. When you implement the design in code, you are "programming" (in the "ten-cent coding" sense of the word).

        I think that in the real world, most "programmers" must be coders and designers, whereas designers need not be coders. That said, a good designer is probably worth more between the two, since the quality of design

      • Re: (Score:3, Funny)

        by ls671 (1122017) *

        Agreed, they used to try to teach us that at the University.

        The example was an early fly-by-wire plane that failed to apply brakes while landing because the tarmac was flooded with water.

        Specs said that the brakes couldn't be applied until the airplane touches the ground which it never did because it was only touching the water and the programmers implemented the specs as is.

        They tried to teach us that programmers have a responsibility to review the specs and mention anything that did not make sense ! ;-)

        • Re: (Score:3, Insightful)

          by nschubach (922175)

          Maybe I'm being way to literal, but how do the brakes know the difference between cement and water that feels like cement at hundreds of MPH?

          • Re: (Score:3, Insightful)

            by vlm (69642)

            Maybe I'm being way to literal, but how do the brakes know the difference between cement and water that feels like cement at hundreds of MPH?

            Grats, you just passed the test of "programmers have a responsibility to .... mention anything that did not make sense"

          • Re: (Score:3, Informative)

            by ls671 (1122017) *

            Good point, I just talked to my aviation expert and he recalls that incident but we haven't found any links to provide you with. This occurred a long time ago.

            My experts says he thinks it wasn't a fly-by-wire system, it was the first tests ran on a prototype equipped with computer assisted ABS brakes and the prototype failed to break at all on landing. He said he thinks the airplane was built by Hawker Siddeley.

            Anybody that can provide a link to this is welcomed. I do recall the teacher in school telling th

          • It was probably hydroplaning which would leave minimal resistance between the wheels and the water. Cars easily do this at 50mph or so and small planes weigh even less than your average family car. Maybe the wheels weren't spinning fast enough to trip the brake sensor or somesuch.

            Pure speculation, but I'm just saying it's feasible.

          • Coefficient of Friction?

      • "In my work as a programmer, I often have to fill in huge gaps left by the designers, and the designers usually only get the best ideas after they have seen what the engine can do."

        But this is more about technology getting in the way of the design and the fact that game design itself is comparitively young, compared to say architecture.

        I agree that understanding programming and coding definitely helps a game designer, no doubt about it. The same way that understanding coding and shaders helps artists.

        The

    • While I agree with your general point, calling programmers a dime-a-dozen is disingenuous. Even superbly designed games can be taken down by technical glitches and poor performance. Success of video games requires competency in all aspects.

      Except the sound "artists", of course. Those guys are wankers.
    • The programmers are just the construction workers who make the design a reality. Both are skilled and necessary, but construction workers without an architect aren't going to build anything of great value.

      Good analogy.

    • by UnknownSoldier (67820) on Wednesday June 17, 2009 @02:56PM (#28364671)

      > Programmers are a dime a dozen. That ain't nothing but ten-cent coding.

      Oh please. Ideas are dime a dozen too. Your great idea means jack shit if it isn't implemented.

      _Great_ Programmers, and _Great_ Designers, are much, much rarer.

      I'm not sure how many years of game programming you have (sounds like you don't have much), but you are ignoring important pieces of game development:

      * An architect who is illiterate of the materials used to build the building, will spec something that can't be built. Designers tend to ignore run-time costs because they don't understand the technical reasons why you can't implement their "grand idea." Good AI is not computational cheap.

      * Often times, design "hand waves" how systems will work, because they can't be bothered with the actual nitty-gritty details. The devil is in the (implementation) details.

      * More and more game designers are doing programming via scripting. Designers for the most part, are clueless about writing _good_ code (due to inexperience), and heaven help the programmer who has to debug their scripts. In the ideal world a designer would work _together_ with a programmer so that BOTH may learn each other's craft.

      > the implementation can be farmed off to any body shop.

      Uhm, no.

      Some things look great on paper, but in practice, are bad ideas.

      Sometimes a great execution, will make an OK idea, be good !

      I would seriously consider learning more about design and programming before spouting off.

    • Re: (Score:3, Insightful)

      by Chris Mattern (191822)

      Both are skilled and necessary, but construction workers without an architect aren't going to build anything of great value.

      And an architect without construction workers is nothing but a second-rate sketch artist who draws only (imaginary) buildings.

      • by cowscows (103644) on Wednesday June 17, 2009 @05:45PM (#28366757) Journal

        Actually getting a building built is way more complicated than either of those two statements. Any complicated building most likely has a good sized team of people working on it. Besides just deciding what the building is going to look like, the architect(s) on the project need to coordinate all of the engineers and consultants (mechanical, structural, landscape, etc.), deal with lots of code/government issues, keep the project within a workable budget, and then make sure the contractor actually builds what was designed.

        Sadly, the way the construction business often works (in the US at least), the relationship between the the contractor and the architect/client is often adversarial, because there are lots of clients who want their building to be built basically for free, and lots of contractors looking trying to squeeze every dollar out of the client.

        But on occasion I've worked on projects where the contractor is involved from the beginning and generally acting in good faith, and there's a real partnership at work. Those projects are usually much more fun.

        I don't remember what my point was. Make sure your kid never decides to be an architect.

      • by mdwh2 (535323)

        There is no basis for your analogy. It's just as reasonable to say that the programmer is the architect (the one who puts together the intellectual property), and the builder is analogous to the guy copying discs...

        Meanwhile, the designer is the person who tells the architect what he wants, but doesn't actually implement it.

    • Re: (Score:3, Insightful)

      by ShakaUVM (157947)

      Programmers are a dime a dozen. That ain't nothing but ten-cent coding.

      Designers, though, are the core of any game.

      I used to work writing video games, and still do some coding in the CustomTF mod.

      We had an expression: anyone can design a game. The hard part is implementing it, and implementing it well.

      Look at the open source community for proof.

      Three times this year so far, I've had people approach me with an idea for a game, but didn't bring anything to the table themselves. Though to be fair one was a CS

      • by ShakaUVM (157947)

        Although, to be fair, there are certain principles of game design that are crucial for success.

        For me, the main ones are:
        1) All options should be interesting. Some can be more powerful or less powerful, or situationally powerful, but no choice should dominate another, and all should be useable by someone familiar with the game. This applies if you're talking about writing the next Starcraft, or creating a P&P roleplaying supplement.

        2) Players should be challenged. Players should not be crushed by diffic

      • by caywen (942955)

        I very much agree. Seems to me that one reason game developers integrate LUA is because game designers are at least as big hacks as the developers.

    • The lines between designer and programmer aren't so clear. Consider this anecdote.

      One startup I worked for briefly had a design and even a reference implementation. Took them 18 months to get to that point. Their reference implementation was extremely slow, taking about 20 minutes on a small set of data and they wanted someone like me to improve it. As requested, I changed out all the C++ iostream library calls for C stdio library calls, which got the run time down to 12 minutes. That was their idea

      • by bitrex (859228)
        From the tone of your writing, it sounds like you're still bound by a NDA. God help you if you let out the secret of their completely unworkable method! :D
    • by caywen (942955)

      I think that seriously understates the importance of the actual brains behind making something a reality. You can make this same point without denigrating the very people who actually wrote LUA.

    • by Dutch Gun (899105) on Wednesday June 17, 2009 @05:18PM (#28366437)

      Programmers are a dime a dozen. That ain't nothing but ten-cent coding.

      I feel a bit silly responding to obvious flamebait, but it's been modded insightful for some bizarre reason. As a professional game programmer, I feel the need to respond. A *professional* game developer understands and appreciates the values of his co-workers in ALL disciplines. There's no room for some stupid 'us' vs. 'them' mentality. I'm fortunate to work with some brilliant artists and designers. We programmers produce not only the game code, but also internal tools that are essentially "force multipliers" for them. In return, they use our code and tools and produce cool and amazing things we would never have thought of.

      They are the ones who shape and craft the game, much like I.M. Pei designs masterful works of architecture. The programmers are just the construction workers who make the design a reality. Both are skilled and necessary, but construction workers without an architect aren't going to build anything of great value.

      This is Slashdot. You need a car analogy.

      You're claiming the steering wheel (designer) is the most important part of the car, because without it, we couldn't control the car (direct the game development). But there are so many vital systems to the car - removing any one of these components makes the car useless, so it's silly to argue which one is 'most important'. What good is the car without wheels? Without an engine? Or brakes, or a body? Even the more minor roles (headlights and tail lights) are critical for specific circumstances.

      Yes, coding is necessary, and this book has plenty of code. But if you are serious about creating a game, it's the design that matters, the implementation can be farmed off to any body shop.

      I wish you well with that approach. Unless you take ALL aspects of game development seriously, you're doomed to failure.

    • by whiplashx (837931)

      Do you work in the games industry?! That's a really weird interpretation of "design." (I work at a AAA game studio, by the way)

      There are so many ways I want to go on this one:

      1) That's a really naive interpretation. If you're going to use an architecture analogy, you can't compare the programmers to construction workers. Level designers and combat designers are the construction workers. Do you even know what a civil engineer does? System designers and Programmers are more like that. The Lead Designer is mor

    • by mdwh2 (535323)

      I disagree. Judging by forums like GameDev, programmers are most in demand, then artists, and then least of all, designers. There's no end of wannabe designers who are "I've got a great idea for my game! Now can someone please write it for me?" Posts that say "I'm a programmer looking for someone to design me something" are unheard of.

      Now sure, you might say the problem is that these people aren't any good, but you could make the same comment about programmers - that skilled programmers are rare just as ski

    • by EnglishTim (9662)

      What an apt username.

  • Next up: (Score:3, Funny)

    by feepness (543479) on Wednesday June 17, 2009 @02:24PM (#28364231) Homepage
    Having fun: The methodical way.
  • by kenp2002 (545495) on Wednesday June 17, 2009 @02:43PM (#28364455) Homepage Journal

    "Make Games, Not Product."

    It is a subtle and deepy philisophical statement. Doom 3 was a product, a game engine to be specific. Same with Unreal 2. Both were lousy games.

    Technologically they were impressive yes, but a game, not so much.

    You have to go in making a GAME. That will shape the entire development process versus going into it as a product otherwise the video game industry will burn itself out just like the movie industry... wait... shit.. We complain about how remakes and sequels in movies but video games? Lets make another ZELDA... crap.. too late...

  • by kenp2002 (545495) on Wednesday June 17, 2009 @02:49PM (#28364567) Homepage Journal

    Everyone taking programming should learn to program two specific games in the course of their curriculum:

    TETRIS (Collision detection, input , output, real time game loop, sound, etc.. 2D collision)

    Multiplayer FPS Clone (3D programming, basic modelling, networking, latency management, using established middleware, map design)

    That will teach those kids that said, "When am I ever going to use Linear Algebra in real life!"

    Whippersnappers...

    • Writing a [decent] multiplayer FPS clone might be a bit much for a few semesters.

      • by Ifandbut (1328775)

        What would you recommend instead? I am really looking for suggestions so once I finish my tetris clone I can move on to something else, but I think a multiplayer fps clone might be a few steps too far.

        • by kenp2002 (545495)

          Grab the Quake 1 engine from ID. Just make a regular square map with some obsticals (think a paint ball court.)

          There is enough documentation on the internet to get started. Another option is the DarkBASIC set that also helps work through a 3D FPS.

          Don't worry about artistic quality, you are looking at technical implementation.

      • by averner (1341263)
        It could be done as a group project.
        • Dear god please no. It's hard enough getting through a basic group project in college. Something that would basically require a design team, management oversight, and 8+ hours a week from each person on the team would be...well, let's just say I wouldn't expect a high pass rate in that class - it would only take one screw-off in that team to fail your whole team.

          And unlike the small group project stuff from college it wouldn't be an option to just have two people do all the work so they don't fail too.

          • by kenp2002 (545495)

            YOu can grab the quake 1 engine from ID software and get a basic FPS game up in about 5 hours solo. This is suggested as an excercise in using middleware, not coding a game engine from scratch.

    • by selven (1556643)
      2D sword-and-sorcery type RPGs are easy to make and fun. You get to apply the pythagorean theorem (distance calculations), trigonometry (calculating which angle the enemies face), AI (following, going around corners), and all the basic game making concepts.
      • by bitrex (859228)
        Programming a basic 2D game was a task that a professor of mine in college used to jazz up one of the less glamorous programming courses: Data Structures and Algorithms. Besides the applications you mentioned, one can also apply the concepts of data structures (dynamic map generation, inventory and item management) and algorithms (decision trees, finite state machines to keep track of mob behavior, shortest path algorithms, etc.)
      • by kenp2002 (545495)

        True everyone should also have to take a crack at path finding at least once. That and the Travelling Salesman algo.

    • by Quirkz (1206400)
      Bah, I just stick to browser/text based. Without the need for fancy animation, I'm the writer, programmer, AND creative developer. It's a niche market, as I rely on players who enjoy good writing and a witty joke more than eye candy, and who can appreciate the rewards of a classic RPG over action, but then you don't need to know much more than HTML, a little programming, and enough to tie some stuff to a database.
  • Article layout (Score:1, Offtopic)

    by johannesg (664142)

    What's with the weird

    layout

    of the article?

  • I think in many cases, embedding a scripting engine is overkill. The only scenarios I can think of where it's advantageous are:

    - If your bots/NPC behavior is sophisticated enough that they need their own programs that run concurrently as mini-virtual machines.
    - If your game accepts user generated content, and a simple scripting language becomes an end user feature.
    - If your team indeed is really big and you have non-programmers designing game logic.

    I'm sure there are more, but for more than one project I've

    • by beej (82035)

      It's also useful if you want to patch or edit the game at runtime--this can really speed iterations.

      But I agree that it can be overkill. Casual games I write often either lack a scripting language, or are entirely written in a scripting language. :-)

    • by am 2k (217885)

      In more complex games, scripting can have the additional advantage that you don't need to recompile (or with good engines, even restart) the game when changing the script. That can be a huge timesaver.

      Additionally, you can get in-game console parsing/execution (think Quake3) for free when you integrate your scripting engine with that.

      • by caywen (942955)

        I always found that with complex games, the number of scripts starts to grow, and then at some point I wish I had a script verifier to make sure I didn't make any typos. And then, I start hunting for ways to make the script faster. And then I realize that what I really want is a compiler that produces native code. Which then leads me to writing the logic in C++.

        So, I don't see any advantage at all in not recompiling.

  • Looks like someone needs to learn that the <quote> tag isn't used for putting quotes around things.
  • Is this review here?! The book was released 3 years ago!
    • by Aeonite (263338)

      As I mention in the review, I think the book is still relevant since Lua is still relevant. As not many other design books (that I am aware of) are Lua-focused like this, that might be a selling point for some people.

  • Might be an interesting read. I may not be as interested in the programming side, but I might find some of the other topics to be beneficial.

    Can anyone suggest a good book covering Game Theory? I'm looking for something that can provide me with a better grasp of the mathematics of establishing challenges in a game. Ex. Suppose there is a board game with pile of cards to draw from (like Monopoly). The deck has positive and negative game factors. What is the probability Negative should show up over Pos

Any program which runs right is obsolete.

Working...