Series: Game Design
Paperback: 352 pages
Publisher: Addison-Wesley Professional; 1 edition (December 29, 2013)
Language: English
ISBN-10: 0321940156
ISBN-13: 978-0321940155
Product Dimensions: 7 x 0.7 x 9 inches
Shipping Weight: 1.4 pounds (View shipping rates and policies)
Average Customer Review: 4.6 out of 5 stars See all reviews (10 customer reviews)
Best Sellers Rank: #545,681 in Books (See Top 100 in Books) #79 in Books > Computers & Technology > Games & Strategy Guides > Game Design #406 in Books > Computers & Technology > Games & Strategy Guides > Game Programming #645 in Books > Textbooks > Computer Science > Graphics & Visualization
When I ordered this book, I expected to receive another thick tome, typical of programming books. I was pleasantly surprised when I discovered how much less intimidating Madhav's book is; I was amazed at how thorough his coverage of the topics on game development were; and I found his writing style enjoyable and easy to understand. It is remarkable how he explains difficult and erudite topics with ease and simplicity; and, in truth, the pseudo-code he presents is far more readable, applicable, useful, and educational than actual code.His "platform-agnostic approach" is not a gimmick: he teaches the fundamentals of game programming at a high level, yet devotes enough attention to different platforms that require unique considerations. If you're looking to develop for PC, mobile, or console in 2D or 3D: this book has it all.His professional experience really shows in many cases (far more so than other run-of-the-mill game development books) where he addresses ways in which to increase workflow and productivity as well as source-control and sub-versioning for development teams.This is definitely more of an introductory book than an advanced one, make no mistake. Madhav admits: "a seasoned game developer may not find that much in the way of new information in this book."There are some subjects that he doesn't mention regarding game development, but this is because his book is primarily focused on (as the title states) "Algorithms and Techniques." That being said, don't expect something like Jason Gregory's "Game Engine Architecture." But because it doesn't try to cover every detail and aspect of development, it benefits by being much better organized and educational.
Game Programming Algorithms and Techniques is one of those books that tries to be as general as possible, and I believe the author was successful in that. Too many books target one specific piece of software or even one particular version of a framework and end up becoming dated rather quick. However, the core ideas in game development have not fundamentally changed in a while. Sure graphics get better, and there are more complexities to working with modern hardware, but the programming algorithms themselves are still very much the same.Sanjay Madhav starts the book with an overview of some classic games, how a game loop works, handling timing in games, and the idea of game objects. Next he discusses 2D games, sprites, scrolling, and tile maps. There is a quick chapter on linear algebra. Then the author continues with a treatment of 3D graphics, including coordinate spaces, lighting and shading, visibility and transformation. Handling input is covered as is sound. There is a chapter on physics, which I much appreciated, and then some quick coverage of cameras, artificial intelligence, user interface, scripting, and networking. Finally, the book closes with two example projects.The author does a great job of explaining complex concepts in easy to understand language, especially in the math and physics chapters, which could be confusing otherwise. One of the pieces that I gained a lot from was the explanation of mouse picking 3D objects, which was described beautifully and made a lot of sense. The chapter on scripting languages was also helpful and relevant.Overall I enjoyed the book, and think it would be helpful to beginning programmers, or experienced coders in other fields looking to get into game development.
Game Programming Algorithms and Techniques: A Platform-Agnostic Approach (Game Design) Programming #8:C Programming Success in a Day & Android Programming In a Day! (C Programming, C++programming, C++ programming language, Android , Android Programming, Android Games) Programming #57: C++ Programming Professional Made Easy & Android Programming in a Day (C++ Programming, C++ Language, C++for beginners, C++, Programming ... Programming, Android, C, C Programming) Algorithms: C++: Data Structures, Automation & Problem Solving, w/ Programming & Design (app design, app development, web development, web design, jquery, ... software engineering, r programming) Programming #45: Python Programming Professional Made Easy & Android Programming In a Day! (Python Programming, Python Language, Python for beginners, ... Programming Languages, Android Programming) C#: Design Patterns: The Easy Way Standard Solutions for Everyday Programming Problems; Great for: Game Programming, System Administration, App Programming, ... & Database Systems (Design Patterns Series) DOS: Programming Success in a Day: Beginners guide to fast, easy and efficient learning of DOS programming (DOS, ADA, Programming, DOS Programming, ADA ... LINUX, RPG, ADA Programming, Android, JAVA) ASP.NET: Programming success in a day: Beginners guide to fast, easy and efficient learning of ASP.NET programming (ASP.NET, ASP.NET Programming, ASP.NET ... ADA, Web Programming, Programming) C#: Programming Success in a Day: Beginners guide to fast, easy and efficient learning of C# programming (C#, C# Programming, C++ Programming, C++, C, C Programming, C# Language, C# Guide, C# Coding) FORTRAN Programming success in a day:Beginners guide to fast, easy and efficient learning of FORTRAN programming (Fortran, Css, C++, C, C programming, ... Programming, MYSQL, SQL Programming) Prolog Programming; Success in a Day: Beginners Guide to Fast, Easy and Efficient Learning of Prolog Programming (Prolog, Prolog Programming, Prolog Logic, ... Programming, Programming Code, Java) Parallel Programming: Success in a Day: Beginners' Guide to Fast, Easy, and Efficient Learning of Parallel Programming (Parallel Programming, Programming, ... C++ Programming, Multiprocessor, MPI) Programming: Computer Programming for Beginners: Learn the Basics of Java, SQL & C++ - 3. Edition (Coding, C Programming, Java Programming, SQL Programming, JavaScript, Python, PHP) Raspberry Pi 2: Raspberry Pi 2 Programming Made Easy (Raspberry Pi, Android Programming, Programming, Linux, Unix, C Programming, C+ Programming) Android: Programming in a Day! The Power Guide for Beginners In Android App Programming (Android, Android Programming, App Development, Android App Development, ... App Programming, Rails, Ruby Programming) R Programming: Learn R Programming In A DAY! - The Ultimate Crash Course to Learning the Basics of R Programming Language In No Time (R, R Programming, ... Course, R Programming Development Book 1) Agnostic: A Spirited Manifesto Evolutionary Algorithms in Theory and Practice: Evolution Strategies, Evolutionary Programming, Genetic Algorithms C#: Design Patterns: The Easy Way Standard Solutions for Everyday Programming Problems; Great for: Game Programming, System Administration, App ... & Database Systems (Design Patterns Series) VBScript: Programming Success in a Day: Beginner's Guide to Fast, Easy and Efficient Learning of VBScript Programming (VBScript, ADA, ASP.NET, C#, ADA ... ASP.NET Programming, Programming, C++, C)