Designing Games – A well-written, comprehensive guide to video game engineering – #bookreview


Designing Games
A Guide to Engineering Experiences
Tynan Sylvester
(O’Reilly – paperback, Kindle)

If you design video games, if you hope to become a game creator, or if you work for a company whose lifeblood is creating and maintaining successful video games, you need to read this excellent book.

 Tynan Sylvester provides a comprehensive overview of the design processes that are the heart of successful games. And he describes the day-to-day actions necessary to keep game projects on track to completion.

“A game can’t just generate any old string of events, because most events aren’t worth caring about,” Sylvester contends. He is a veteran designer who has worked on everything from independently produced games to big-studio blockbuster games. “For a game to hold attention, those events must provoke blood-pumping human emotion. When the generated events provoke pride, hilarity, awe, or terror, the game works.”

Unlike screenwriters, novelists, or choreographers, game designers do not focus on creating events, Sylvester explains. “Instead of authoring events,  we design mechanics [the rules for how a game works]. Those mechanics then generate events during play.”

In his view, “The hard part of game design is not physically implementing the game. It is inventing and refining knowledge about the design.” And successful game creation involves “inventing mechanics, fiction, art, and technology that interconnect into a powerful engine of experience.”

His 405-page book also shows why you should not try to spell out everything up front before beginning work on a new game. It is too easy to overplan, he emphasizes. But it is also easy to underplan. So you should aim for a process in the middle: iteration, “the practice of making short-range plans, implementing them, testing them, and repeating.” And that loop-like process is applied not just to the overall game. “We can iterate on a level, a tool, or an interface. On larger teams, there should be many different iteration loops running at the same time.”

According to news accounts emerging from the recent Game Developers Conference in San Francisco, much of the video game creation business is now gravitating toward independent developers and game companies with 10 or fewer employees. And the main focus within that movement is on creating games for tablet computers and smartphones–platforms with lower barriers to entry. But powerful new video game consoles are expected to appear soon, and they likely will drive the creation of new games, as well as upgrades for some successful existing games.

Whether you work alone, in a small shop, or on intercontinental game-development teams within big companies, you can learn important insights, processes, and skills from Tynan Sylvester’s Designing Games.  And if you are now in the process of trying to find a design job somewhere in the video game industry, you definitely need to read it.

Si Dunn

Enterprise Games – How to build a better 21st-century business with game mechanics – #business #bookreview

Enterprise Games: Using Game Mechanics to Build a Better Business
Michael Hugos
(O’Reilly, paperbackKindle)

Can 21st-century games and gamers attack and destroy the top-down, assembly-line thinking that still keeps many businesses firmly rooted in the previous century?

 Michael Hugos’ compelling new book makes a solid case that they can. Game mechanics, he argues, can reshape how workers work, how organizations are managed, and how business goals get accomplished in today’s volatile global economy.

“Games and the associated technology we currently refer to as video games offer us more than just a diversion and escape from difficult times,” contends Hugos. “They offer us field-tested models to use for organizing companies and performing complex and creative tasks. They offer clear and compelling examples for how people can work together, build their careers, and earn a living in rapidly changing and unpredictable environments.”

Hugos, principal at the Center for Systems Innovation, offers his well-written views in a 199-page book “loosely divided into three parts.”

Part One focuses on “ideas and case studies to illustrate how games can provide operating models to follow for redesigning work.”

Part Two presents “a discussion of games and game mechanics that are relevant to the way work is done.” He includes “specific examples, pictures, and case studies to show how game techniques and technologies can be applied to the design of new business systems and workflows.”

Part Three “describes business and social impacts of combining technology from video games with in-house corporate systems, consumer technology, and cloud computing. The book concludes with a discussion about where this is all going and what it might mean for the future of work.”

During the coming months, Enterprise Games may spur many discussions and arguments at all levels of enterprise. And these may lead to some business-model reorganizations not only in Corporate America but elsewhere in the interconnected global economy.

For these changes to happen, however, many company leaders will have to stop thinking “top down” and learn to adapt “the four traits of a game…goal, rules, feedback system, and voluntary participation” to how they to structure and operate a business.

“We all have a sense of what a game is,” Hugos notes. But most of us also have been taught that “play” is not “work.” Enterprise Games shows how the two concepts can be brought together in ways that can make companies more competitive and more profitable in these uncertain times.

Si Dunn

Practical Computer Vision with SimpleCV – ‘Seeing’ with Python – #programming #bookreview

Practical Computer Vision with SimpleCV
Kurt Demaagd, Anthony Oliver, Nathan Oostendorp, and Katherine Scott
(O’Reilly, paperbackKindle)

SimpleCV, or Simple Computer Vision, is “an easy-to-use Python framework that bundles together open source computer vision libraries and algorithms for solving problems,” according to the authors of this useful and informative how-to book.

The subtitle is “Making Computers See in Python,” and the codes examples require Python 2.7.

Why learn computer vision? “As cameras are becoming standard PC hardware and a required feature of mobile devices, computer vision is moving from a niche tool to an increasingly common tool for a diverse range of applications,” the authors note.

Indeed, cameras and computer vision now are being used in everything from facial recognition systems and video games to automobile safety, industrial automation, medicine, planetary exploration, and even agriculture.

“The SimpleCV framework has compiled installers for Windows, Mac, and Ubuntu Linux, but it can be used on any system on which Python and OpenCV can be built,” the authors state.

Practical Computer Vision with SimpleCV shows how to use the framework and simple application examples to get started toward building your own computer vision applications. The 240-page book has 10 chapters:

  • Introduction
  • Getting to Know the SimpleCV Framework
  • Image Sources
  • Pixels and Images
  • The Impact of Light
  • Image Arithmetic
  • Drawing on Images
  • Basic Feature Detection
  • FeatureSet Manipulation
  • Advanced Features (focuses on optical flow)

The book also has three appendices: Advanced Shell Tips, Cameras and Lenses; and Advanced Features (deals with advanced segmentation and feature extraction tools).

Practical Computer Vision with SimpleCV provides a good overview of computer vision basics and shows, using simple but effective examples, how you can put them to work.

Si Dunn

WebGL: Up and Running – 3D Web graphics for the beginner, with expert guidance – #bookreview

WebGL: Up and Running
Tony Parisi
(O’Reilly,
paperbackKindle)

“WebGL,” Tony Parisi notes, “brings 3D to the browser, providing a JavaScript interface to the graphics hardware on your machine.”

Parisi is co-creator of the VRML and X3D languages which have become ISO standards for networked 3D graphics. So he knows a bit about using WebGL (Web Graphics Library) for low-level 3D renderings on the Web. If you are ready to give Web 3D graphics a try, you need WebGL: Up and Running.

Parisi’s new book is a well-written “quick introduction” to 3D programming. It has 211 pages and numerous code examples and screen shots. And it is organized into eight chapters and an appendix that provides links to several WebGL resources.

The first two chapters offer an overview of the WebGL API and Three.js, the open source JavaScript library that is used in the programming examples.

Chapters 3 through 6 focus on “the details of programming graphics, animation, and interaction” and explore “WebGL’s breakthrough capabilities for integrating 2D and 3D into a seamless user experience.”

Chapters 7 and 8 look at “real-world WebGL production topics, from authoring tools and file formats to building robust and secure WebGL applications.” Also in`Chapter 8, Parisi shows how to build a full WegGL application, a racing game.

You will need some familiarity with HTML, CSS, JavaScript, jQuery and Ajax to use this book. But you won’t need prior 3D graphics experience. The author’s goal is to get you up and running well enough that you can start using WebGL and learning as you go.

Still, “even the 3D graphics expert will learn something new” from this how-to guide, promises Ken Russell, the Khronos Group’s WebGL Working Group chair, in the Foreword to WebGL: Up and Running.

Si Dunn

Getting Started with Dwarf Fortress – How to build and fight your way into this complex game – #bookreview

Getting Started with Dwarf Fortress
Peter Tyson
(O’Reilly, paperback, list price $19.99;
Kindle edition, list price $15.99)

Many gamers agree with this book’s tagline, that Dwarf Fortress is “…the most complex video game ever made.”

For that reason, they have avoided taking it up or have tried it, stumbled over its steep learning curve, and walked away.

Peter Tyson, however, has been writing Dwarf Fortress tutorials for gamers since 2009, and his new 230-page how-to-play it guide has been getting some good reviews from players and newcomers.

The game’s “baffling complexity and Dwarf Fortress’s infamous and seemingly impenetrable ASCII graphics can be extremely offputting to new players,” Tyson concedes. But his new book “aims to help you overcome these challenges and to guide, comfort, enlighten, and hopefully inspire the inner Dwarf Fortress player in us all.”

His approach is to focus on the game’s simulation mode and have you first  build an underground dwarf fortress. After you learn how to build and maintain the fortress, you can start tackling numerous other challenging assignments, such as gathering and managing dwarf resources, growing (and defending) crops above ground and below ground, maintaining a healthcare system and justice system (while dealing with a few rogue dwarves who turn out to be vampires!), and creating and training a militar with dwarves and war animals. 

You will also learn how to expand your fortress and protect it with a wild array of traps, machines, and powerful weapons. 

“If there’s one thing all Dwarf Fortress players should be prepared for, it is losing,” Tyson cautions. “You will lose your first few games, and probably quite quickly. But do not fear! There’s a good chance that your losses will be quite amusing.””

“Once you are familiar with Dwarf Fortress,  you may feel like creating a more challenging world,” Tyson says. “Adjusting the world creating settings to produce a world with higher savagery is the easiest way to increase the difficulty as more locations will have dangerous and aggressive animals and creatures to face. This will necessarily force a change to your embarkation strategy–and traveling equipped for battle is advisable when deploying to a particularly dangerous area.”

Sounds  like a viable strategy, too, for the real world outside Dwarf Fortress. 

Si Dunn

 

Oh, say can you C? Learning to program with Head First C – #bookreview #in #programming

Head First C
By David Griffiths and Dawn Griffiths
(O’Reilly,
paperback, list price $49.99)

 Long ago, in a universe now very far away, I was an ABC programmer: assembler, BASIC, and C. I learned C from a book popularly known as “K&R,” after its authors, Brian W. Kernighan and Dennis M. Ritchie. (Their classic work is now available in an updated second edition.)

But I had no mentors, so I struggled to figure out and apply many of the basic concepts that were not quite spelled out clearly enough or illustrated well enough for me in K&R.

I really wish I had had a book like Head First C, instead. My geeky logical side often is ruled and frequently overruled by my unstructured, illogical artistic side.

For learners like me, O’Reilly’s “Head First” series makes effective and entertaining use of graphics. It also addresses readers with a conversational style that avoids lecturing. And it focuses on trying to make sure you understand and can apply each new element.

Thus, Head First C does not try to be a complete C language reference guide. It shows you how to work with C’s major concepts, and you begin using them right away, so you can start understanding the process of becoming an effective C programmer. After that, if you are motivated to continue, you can push on into other books that do attempt to be complete C reference texts.

This “brain friendly guide” shows how to download free C compilers for Linux, Macintosh, and Windows machines. And, the authors assure: “All the code in this book is intended to run across all these operating systems, and we’ve tried hard not to write anything that will only work on one type of computer.”

Another positive for this book: You don’t have to key in or wade through dozens of lines of code to get to the few lines you are really supposed to be studying. “Most examples in this book are shown within the smallest possible context, so that the part you’re trying to learn is clear and simple.”

And, the book has been given a thorough technical review. So the code examples that are intended to work generally will work.

The book’s 12 chapters focus on the following topics:

  1. Getting Started with C
  2. Memory and Pointers
  3. Strings
  4. Creating Small Tools
  5. Using Multiple Source Files
  6. Structs, Unions, and Bitfields
  7. Data Structures and Dynamic Memory
  8. Advanced Functions
  9. Static and Dynamic Libraries
  10. Processes and System Calls
  11. Interprocess Communication
  12. Sockets and Networking
  13. Threads

About midway through the book, you are presented with your first lab exercise. You write some C code and hook up a few hardware components to create an Arduino-powered plant monitor that lights up an LED and repeatedly sends the string “Feed me!” to your screen if a plant needs to be watered.

In the book’s second lab exercise, you write C code that lets your computer and its web cam act as an intruder detector. You do this with help from OpenCV, “an open source computer vision library. It allows you to take input from your computer camera, process it, and analyze real-time image data and make decisions based on what your computer sees.”

In the third and final lab exercise, you use your new C skills to write a video game called “Blasteroids,” with help from the Allegro open source game development library.

Head First C is a first and foremost a very good book for beginners, especially those who have at least a little bit of programming experience. But it delves into some advanced-level topics, too, such as multithreading and network programming.

If learning C is your goal, Head First C can help you stay focused, stay entertained and happily soak up the things you need to know.

#

Si Dunn is a novelist, screenwriter, freelance book reviewer, and former software technical writer and software/hardware QA test specialist. He also is a former newspaper and magazine photojournalist. His latest book is Dark Signals, a Vietnam War memoir. He is the author of an e-book detective novel, Erwin’s Law, now also available in paperback, plus a novella, Jump, and several other books and short stories.

Tap, Move, Shake: Turning Your Game Ideas into iPhone & iPad Apps – #bookreview

Tap, Move, Shake: Turning Your Game Ideas into iPhone & iPad Apps
By Todd Moore
(O’Reilly, paperback, list price $29.99; Kindle edition, list price $23.99)

If you have some game ideas and a little coding experience, this well-focused and well-written book can show you how to get started as a developer of iPhone and iPad game apps.

The author notes: “Most games are typically controlled using a directional pad, analog joysticks, and various buttons. The iPhone and iPad give us a new form of input—Multi-touch. We can track up to 5 individual touches on the iPhone and iPod touch screens and up to 11 individual touches on the iPad. This opens up a whole new genre of games that previously did not exist. This is why [in this book] you are going to learn right from the start how to handle multiple touches on the screen.”

Moore’s 254-page book, which includes a foreword by Steve Wozniak, is organized as follows:

  • Preface – “Whether you are racking up points hitting a ball with a paddle or fragging your friends in a 3-D immersive world, the overall game elements are the same.”
  • Introduction to XCode – How to register at the App Store as an Apple Developer. (Also see App Store chapter at end of book.) How to get the iOS Dev Center program and download the latest version of XCode. How to build a simple game while you learn various aspects of XCode.
  • Hello Pong – How to create a Pong-like air hockey game called “Paddles” as you “learn how to implement multi-touch controls, animation, collision detection, and scoring.”
  • Graphics – How to create graphics and use them in your game.
  • Physics – How to “improve the paddle controls and create a realistic puck animation” for the “Paddles” game.
  • Sounds – How to “create realistic sounds for your game.”
  • Computer AI – Shows “how to create a computer player that can play a decent game of air hockey” and includes adding a title screen for the “Paddles” game, “so the player can choose to play against the computer or play the two player mode that has already been implemented.”
  • App Store – The author walks you “through the process of submitting your application to the App Store.” He also discusses the necessity to take “a lot of different screenshots, making sure to show the unique parts of your game.” The idea ultimately is to “help the customer make a buy decision” for your app.

Todd Moore founded TMSOFT “to create unique smartphone applications and games.” He is one of the few developers who have had “two apps in iTunes’ Top 20 Paid Downloads.”

#

Si Dunn‘s latest book is a detective novel, Erwin’s Law. His other published works include Jump, a novella, and a book of poetry, plus several short stories, including The 7th Mars Cavalry, all available on Kindle. He is a screenwriter, a freelance book reviewer and a former software technical writer and software/hardware QA test specialist.

CoffeeScript: Accelerated JavaScript Development – #bookreview #programming

CoffeeScript: Accelerated JavaScript Development
By Trevor Burnham
(Pragmatic Bookshelf, $29.00, paperback)

JavaScript was thrown together in 10 days and “was never meant to be the most important programming language in the world,” says Trevor Burnham, a web developer and founder of DataBraid, a startup focused on “developing data analysis and visualization tools.”

Yet, JavaScript was “understood by all major browsers,” despite their numerous differences, and it quickly became the “lingua franca of the Web,” he says in his well-written new book.

JavaScript also became a headache for many programmers struggling to learn it well enough to provide support and develop new applications.

“JavaScript is vast…[and] offers many of the best features of functional languages while retaining the feel of an imperative language,” Burnham notes. “This subtle power is one of the reasons that JavaScript tends to confound newcomers: functions can be passed around as arguments and returned from other functions; objects can be passed around as arguments and returned from other functions; objects can have new methods added at any time; in short, functions are first-class objects.”

Unfortunately, “JavaScript doesn’t have a standard interpreter,” he adds. “Instead, hundreds of browsers and server-side frameworks run JavaScript in their own way. Debugging cross-platform inconsistencies is a huge pain.”

Enter CoffeeScript, first released on Christmas Day, 2009 as “JavaScript’s less ostentatious kid brother.”

Coding in CoffeeScript requires fewer characters and fewer lines. And “the compiler tries its best to generate JavaScript Lint-compliant output, which is a great filter for common human errors and nonstandard idioms,” Burnham writes.

Another benefit: “CoffeeScript code and JavaScript code can interact freely,” he notes.

His book, aimed at CoffeeScript newcomers, assumes you have at least a little knowledge of JavaScript. But you don’t have to be a JavaScript Ninja, he assures.

He starts at the classic “Hello, world” level of CoffeeScript, including installing the CoffeeScript compiler, deciding which text editors are best, and learning how to write and debug simple CoffeeScript code.

From there, he moves quickly into showing you how to put CoffeeScript to work and develop a simple multiplayer game.

There are several different ways to run CoffeeScript, and there are different requirements, depending on whether your machine is Mac, Windows or Linux. Burnham describes these in his text and in an appendix, and he gives links to more information.

He also shows how to use a browser-based compiler for developing his book’s example application. But he does not recommend using the browser-based compiler for production work.

His book has six chapters and four appendices:

  • Chapter 1 – Getting Started
  • Chapter 2 – Functions, Scope, and Context
  • Chapter 3 – Collections and Iteration
  • Chapter 4 – Modules and Classes
  • Chapter 5 – Web Interactivity with jQuery
  • Chapter 6 – Server-Side Apps with Node.js
  • A1 – Answers to Exercises
  • A2 - Ways of Running CoffeeScript
  • A3 – Cheat Sheet for JavaScripters
  • A4 – Bibliography

CoffeeScript: Accelerated JavaScript Development offers a focused blend of examples and exercises to help speed up basic competency with CoffeeScript. In learning how to build the multiplayer game application, you use CoffeeScript to write both the client (with jQuery) and the server (with Node.js).

Since CoffeeScript and JavaScript are intertwined, you also can gain a better understanding of JavaScript by learning to code in CoffeeScript, ” Burnham promises.

In a foreword to the book, CoffeeScript’s creator, Jeremy Ashkenas, hails Burnham’s work as “a gentle introduction to CoffeeScript led by an expert guide.”

It lives up to that good billing, with many short code examples and many short tutorials and exercises that can lead quickly to building both a working app and a working understanding of CoffeeScript.

Si Dunn

Designed for Use: Create Usable Interfaces for Applications and the Web – #bookreview

Designed for Use: Create Usable Interfaces for Applications and the Web
By Lukas Mathis
(Pragmatic Bookshelf, $35.00 paperback)

There’s no code inside this well-written book for programmers and visual designers. Instead, the focus is on usability — how people use things — and how you can make big, modest or subtle improvements to their experiences with digital interfaces.

You may be designing a software product that you think will be user friendly. Yet how good, really, is your knowledge of efficient and effective design? And what do you really know about how users will respond to what you create? Are you relying on formal focus groups to tell you what your users supposedly will want?

If you are, you are not doing nearly enough research, insists the author, Lukas Mathis, a developer and user interface designer for Numcom Software. “[P]eople often aren’t able to tell us how we can solve their problems. Worse, people may not even be able to tell us what their problems are. And worst of all, people are pretty bad at predicting whether and how they would use a product if we proposed to build it for them,” he writes.

Instead of depending on focus groups, you should spend some time doing “job shadowing” and “contextual interviews” to help you shape a better interface.

“Since people don’t know what they want, a good approach is to simply observe what they do. The idea of [job] shadowing is to visit users in our target audience at the place where they will use our product. The goal is to find out how our product will help them achieve their goals.”

He adds: “With usability testing, the goal is to find issues with the user interface. When you are shadowing someone, the goal is to figure out what kind of product to create or how to change your product on a more fundamental level.”

In contextual interviews, you interview a user after doing some job shadowing. And: “What you see is more important than what people say. Still, by asking the right questions, you can often get some useful information out of people….The kinds of things you’re looking for are areas where improvements seem possible. Don’t ask for opinions, and avoid questions that force the person to play product designer.”

Mathis has structured his 322-page book into three parts – research, design and implementation – and 36 short, nicely focused chapters that deal with everything from “[c]reating documentation as soon as possible” to “learning from video games” to doing “guerilla usability testing,” overcoming common testing mistakes and dealing with bad user feedback.

Designed for Use has numerous illustrations that highlight common interface design mistakes. The book also shows major, minor and subtle ways to improve customers’ understanding, acceptance and appreciation of what happens when they use product interfaces on their computer screens or phones.

The author also emphasizes the importance of keeping in mind “that you don’t have to own 100 percent of your market. It’s true that adding more features to your product allows you to target more users, but doing so comes at a cost. Your product becomes more desirable to the people who would not be able to use it if it didn’t offer a specific feature. However, it also makes your product less desirable to the people who have no use for that specific feature.”

In his view: “It’s OK to let some people go to your competitors to get what they need; you can’t be everything to everybody.”

Si Dunn

Windows Sysinternals Administrator’s Reference – #bookreview #software #techsupport

Windows Sysinternals Administrator’s Reference
By Mark Russinovich and Aaron Margosis
(Microsoft Press, $49.99, paperback; $39.99, Kindle)

To the uninitiated, the title may sound a bit ultra-geeky and scary. Particularly the “Huh?” word “Sysinternals.”

But this book may benefit you “whether you manage the systems of a large enterprise, a small business, or the PCs of your family and friends,” Mark Russinovich and Aaron Margosis contend.

The Sysinternals Suite, it turns out, “is a set of over 70 advanced diagnostic and troubleshooting utilities for the Microsoft Windows platform” written by one of the book’s authors, Mark Russinovich, plus Bryce Cogswell.

The 70+  Sysinternals tools can be downloaded free from Microsoft TechNet at http://www.sysinternals.com.

The book’s goals are to make you more familiar with the Sysinternals Suite and learn how to use the Sysinternals to “solve real problems on Windows systems.”

Russinovich’s and Margosis’s Windows Sysinternals Administrator’s Reference is well written and has a good number of illustrations that provide amplifying “how-to” information. The book has a hefty 25-page index, as well, to  help you find your way through the Sysinternals’ maze of available features, capabilities, verifications, files, drivers, states, fixes and more.

The Sysinternal tools work with the following versions of Windows:  Windows XP (with Service Pack 3); Windows Vista; Windows 7; Windows Server 2003 (with Service Pack 2); Windows Server 2003 R2; Windows Server 2008; and Windows Server 2008 R2. The authors note: “Some tools require administrative rights to run, and others implement specific features that require administrative rights.”

Following its introduction, the book is divided into three parts, containing a total of 18 chapters:

Part I: Getting Started

  • 1. Getting Started with the Sysinternals Utilities
  • 2. Windows Core Concepts

Part II: Usage Guide

  • 3. Process Explorer
  • 4. Process Monitor
  • 5. Autoruns
  • 6. PsTools
  • 7. Process and Diagnostic Utilities
  • 8. Security Utilities
  • 9. Active Directory Utilities
  • 10. Desktop Utilities
  • 11. File Utilities
  • 12. Disk Utilities
  • 13. Network and Communications Utilities
  • 14. System Information Utilities
  • 15. Miscellaneous Utilities

Part III: Troubleshooting – “The Case of the Unexplained”

  • 16. Error Messages
  • 17. Hangs and Sluggish Performance
  • 18. Malware

The book is aimed mainly at “Windows IT professionals and power users who want to make the most of the Sysinternals tools.” And it includes real-world case studies to illustrate several tough problems.

If you are not yet a power user, but wrestle with Windows on a frequent basis (as many of us do) and are ready to tear into it, the Windows Sysinternals Administrator’s Reference can help you learn how to diagnose and troubleshoot your system and also optimize it.

If you work in a small business where there is little or no tech support, or if you are tech support in your small business, add this book to your library. You’ll likely put it to good use.

Si Dunn