Customer Reviews: Beginning Game Development with Python and Pygame: From Novice to Professional (Expert's Voice)
Oct16 Amazon Fashion nav_sap_plcc_ascpsc Electronics Holiday Gift Guide Starting at $39.99 New Professional Skin Care Cozy Knits Book 2 or More Hours of House Cleaning on Amazon fall24 fall24 fall24  All-New Echo Dot Starting at $89.99 All-New Kindle for Kids Edition Frank Sinatra Shop Cycling on Amazon

Your rating(Clear)Rate this item

There was a problem filtering reviews right now. Please try again later.

on November 18, 2007
I certainly wouldn't discourage anyone from buying this book if you are interested in game programming with Python. Other than it being (I think) the only book out there on this topic, it's a pretty good and well-written book that will introduce you to a lot of material.

However, I do agree with some of the complaints from Craig Obrien's review. You can't run many of the sample programs without the author's gameobjects library. A couple of things this library does involves vectors and matrices, but I'm not sure why we weren't told about something like NumPy, which, while more complicated, allows advanced math computations like this. In other words, something that is not only pre-existing, but a standard in the Python world.

There is also at least one program later in the book that requires the win32gui and win32con modules to run, but this is not mentioned in the book, so unless you open up the code and investigate why the program won't run, you'll never know. What's even more perplexing is that the downloadable code sample that requires these extra modules is not the same code that is printed in the book, which *doesn't* require the modules. So there's misleading code in the book, and then code available to download that won't run.

One thing I enjoyed about the book was how in-depth it got concerning vectors. I love to know exactly how things are working, and it helped to read about all this. Ironically, when the discussion of matrices began in the section on 3D gaming, the author seemed to take the exact opposite approach. Instead of giving us a decent analysis of matrices and how they work, he more or less glosses over them and basically says "Don't worry, just use the gameobjects module." This I don't like, because I hate writing code that I don't understand, even if it ends up working fine. I re-read this section and still didn't understand the difference between "transformation" and "translation". I feel much of this topic wasn't given its due, and considering that 3D game programming is what many of us want to do, it's pretty important we learn this stuff, no matter how dry it might be at first. Simply having a bunch of functions and code thrown at you with the attitude of "Ignore all this, we just need it in there so the game works" is certainly no way to learn. In other words, the difficulty level of the material sky-rocketed in a hurry, and I felt left behind by most of the explanations in the second half of the book, particularly beginning with 3D gaming.

Concerning, the other reviewer's criticism of the first two chapters, I do agree with him to some extent. Personally, I've been away from Python for a while and those chapters *did* serve as a refresher, but overall I feel the space could have been better used to expand on the other topics, at the very least. Let's face it, no one is going to learn Python from those two chapters, and if you need to be refreshed, use the books you learned it from to begin with.

All in all, though, it's a worthwhile book to read. You will learn a lot of details about the making of games. It's just that there came a point where I felt like I lost my handle on the material. Part of that could be my own fault, but I enjoy math so it isn't simply that I lost interest, it's just that I feel like the more advanced topics were glossed over more than the topics earlier in the book.
33 comments| 35 people found this helpful. Was this review helpful to you?YesNoReport abuse
on December 21, 2007
There aren't many books on this subject so I was very happy when I found out that this book was in the works. I have a growing number of books published by Apress on my shelf and the author regularly posted to the Pygame mail list while working on this book.

For the most part, Pygame a Python wrapper for SDL which is a great opensource media library. Most of my experience with SDL has been using it with C/C++ on GNU/Linux but Pygame is of interest for other reasons. For one, since it is a cross platform scripting language, set up and development time is cut down. Secondly, but related, is that as part of an educational program in NYC, I teach teachers and students various topics in multimedia and would like to move into gaming. In my opinion Pygame is perfect for that because it is powerful, fairly simple to learn and since it is cross-platform they will be able to run their programs on whatever platform they use at home.

Like a previous reviewer said, I would not discourage anyone from purchasing this book.The book did, however, surprise me a bit in the choice of topics to cover in depth. I can imagine that as an author this is always a hard decision to make if you want to keep the book at a reasonable size.

As some people have pointed out, the biggest surprise is that you don't actually work through creating a game (outside of a very simple text based game early on). So the editorial review above (bullet point two) should be changed.

Personally, I'm not sure that this bothers so much since
a. it would have lengthed the book and in many cases I don't feel that I learn that much from a lengthy example - it would really depend on how it is presented. A short 2D game with full code and documentation would have been nice.
b. there are many full games with source code that you can download from the web and study.

Still for those that are expecting full games or having each chapter introduce you to something that you add to a game that you develop while working through the book, this may be a deal breaker.

On the other hand the writing is good, it's a fairly easy read, the principals apply to any game programming environment and there are several good surprises:

1. Contrary to how some other reviewers feel, I think that the first two chapters introducing Python are great and not too long. In fact, they could likely be the best Python introduction that I've read. The author even does a quick coverage of object-oriented programming that is presented in a very practical manner.

2. Vectors and the Game Objects Class
As mentioned by others the author uses a library that you can download to handle vector calculations. Personally - I don't see this as a problem because prior to that he gives all the necessary info to build your own vector library. Further, if I am teaching game programming to students in a limited amount of time I might prefer to use a library like this knowing that if they are going to become serious game programmers they will at some point want to do all the math themselves.

3. The chapter on AI was a pleasant surprise and is very good reading.

4. 3D and PyOpenGL
I wasn't expecting so much on this but enjoyed it since all of my prior Pygame experience was in 2D.

In conclusion, if you have a chance, take a look at the book before purchasing and make your own decision - there is a sample chapter online too.
0Comment| 14 people found this helpful. Was this review helpful to you?YesNoReport abuse
on April 13, 2008
Here's my Pro/Con Opinions about this book:
- Very easy to read.
- Great examples that actually work
- Chapters 1 & 2 give a great intro to python, so this would actually be a good book if you've never touched python before (but did have some programming experience)
- Lots of info using pygame+opengl
- A lot of examples use his gameobjects library, so a lot of the grunt-work coding is available to use already.

- My biggest complaint is the lack of discussion on Sprites. Pygame is really a 2D library, and I think he left out a lot of very important information by not discussing how the Sprite class can be used.
- Only cursory discussion Sound. If you're writing a game and just want the basic sound effects and/or background music, this is ok. However, if you want to do something really interesting with sound, you'll need to dig way beyond what this book offers.

Overall, I think the book is worth getting unless you've already done
a few significant projects using pygame. It's definately an Intro
book, and it does a really good job giving the user an idea how to put
a project together.
0Comment| 7 people found this helpful. Was this review helpful to you?YesNoReport abuse
on November 14, 2007
I had dabbled in Python before purchasing this book so I wasn't a complete novice, but it seemed to hit the spot in terms of easing the reader into python programming and the pygame library. It's very well written, the examples are interesting and by the end of the book I was able to put together a simple 3D shooting game pretty quickly on my own. Excellent stuff!!
0Comment| 7 people found this helpful. Was this review helpful to you?YesNoReport abuse
on April 8, 2014
I use this book; even today. I love to read this book and learn Python and Pygame. I recommend it for everyone who wants to use it to learn. If anyone has been to the Introduction to Pygame seminar and has seen Richard Jones talk and teach Pygame, then you'll enjoy this; he is the Technical Reviewer.
0Comment|Was this review helpful to you?YesNoReport abuse
on March 24, 2014
When I first started reading this book I thought that I had finally found
a book that would cleanly explain PyGame and it's proper usage in how
to build a game and by extension a simplistic game engine. Unfortunately
this book did not fit my expectations. Having a few pre-built libraries for
such a book is entirely understandable; they should exist only to assist
the reader with more complex tasks until the said reader is capable of
coding such systems on their own. That being said this books complete
and utter reliance on source code that is provided is a major handicap
especially when I was not written in a way that allows it to be used (from
my experience) with Python 3.x which is the future of Python. So this
books pre-built scripts will only work if you use Python 2.x.

Aside from the reliance on pre-built code the authors in-text code is less
than readable due to the lack of printed white-space. Since Python uses
white-space to signify code-blocks being able to see said white-space is
essential. Especially when scripts can be multiple pages long with extremely
sparse commenting. This problem is readily apparent in the sections on AI
and 3-D graphics programming.

Another issue that must be addressed is the authors shortchanging of 2-D
topics, and since the focus of PyGame is on 2-D graphics rather than 3-D
readers whose interests to not align with the authors are left with a book that is
largely useless to them. While many programmers want to make a 3-D masterpiece
with their first attempt such a goal is generally not plausible. Baby steps must be
taken first and that almost always means building a functional 2-D game first.
With a plethora of built in functionality for 2-D games built right into PyGame
McGugan has done a disservice to readers who were hopping to read his book
in order to garner a better understanding of the core functions provided.

Though lacking on content the chapter on AI was a very interesting one
nonetheless. It started my thoughts down paths that I had not previously
considered. I have worked with state-machines and regular expressions for some
time now but never made the connection between them and AI (due to never taking
a class dedicated to AI programming). That being said the example given at the end
of the chapter is interesting but leaves the reader wanting for much more. It is fairly
easy to program an 'AI' to seek out and pursue a target or claim an object when the
world is completely flat; once obstacles are introduced into the scenario the problems
changes drastically. As such the lack of any true discussion regarding path-finding
algorithms/logic is a huge disappointment.

Though it seems that McGugan truly enjoyed writing this book, his insistence on covering
material that is often irrelevant to the novice game programmer prevents this book from
truly attaining its stated goal. Instead of one book covering all the material it should have
been split into two separate books so that a decent amount of time and effort could be
spent on thoroughly exploring topics rather than rushing into 3-D graphical programming.
Had this book been split it would have had the potential to truly teach the novice
and the professional; as it stands only the professional can truly appreciate this work.
0Comment| One person found this helpful. Was this review helpful to you?YesNoReport abuse
on December 27, 2015
I love it! I wish I could give it a 5 though... The book is amazingly detailed and I've already learned so much but, I really wished the author would have explained some of the things a little better. For example, a boolean statement I would have loved if he had explained what they are for what they do and what you can use them for, rather than just give you a definition and a code.
0Comment|Was this review helpful to you?YesNoReport abuse
on September 30, 2016
This is a beginner book for someone wanting to learn how to use Pygame with Python. A more advanced person will see that SDL is really what's at play here. So if your coming from a C++ and SDL gaming background, this book is a breeze and will get you doing the same kind of games using Python.

This book is not about teaching how libraries are made, or what's going on under the hood. The reader just makes calls to the libraries, if needed, for his or her game project.

Anyway, an excellent book. Been learning about Finite State Machines, which this book helped a lot in. The FSM for the ants and spiders is one of the best examples I've seen for learning FSM.
0Comment|Was this review helpful to you?YesNoReport abuse
on June 25, 2012
The material itself is pretty good, but the code listings suffer greatly because they are laid out VERY badly, both on my Kindle Fire and in the Cloud Reader. The font size shifts at random times, code which is supposed to be on its own line is instead tacked on to the previous line, spaces appear to have been randomly inserted into the middle of some variable names which contain underscores (e.g. "mouse_cursor" is rendered as "mouse_ cursor" at times), code which should be indented isn't; it's a mess. If you know your way around code, especially Python code, it's not too tough to piece out what the intention of the code is, but the point is that shouldn't be necessary. Since Python is not a language which tolerates free formatting of code, this is an even more egregious failure than it would be if the book was about, for example, game development in Java. In a book about how to write code, the code should be laid out in such a way that the user should be able to type it VERBATIM into their editor and run it. This book fails that test spectacularly. Whoever edited this book for Kindle publication should be fired.
0Comment|Was this review helpful to you?YesNoReport abuse
on May 26, 2009
I just completed teaching a month-long game-programming workshop with this as the primary text. The workshop included both experienced programmers and complete novices: the class consensus was that the text was readable and informative and served well as a basic introduction to game-programming in Python using Pygame.

Other reviewers have commented on depth/balance-of-coverage issues; we had no quarrel with the Python introduction or the 2D chapters, though the 3D material seemed mostly on 3D graphics and not on 3D interactive game design. The AI chapter, with its ant-and-spider simulation, proved a favorite of the students, and many of them cannibalized the state-engine for their own games.

The book is not a comprehensive tutorial on game-creation or game-programming:

It has no specifics on game-design per se: game creation, brainstorming, team-programming, etc. We used material from Fullerton's _Game Design Workshop_ (5 stars, highly recommended) for this.

It has little on code organization beyond the class-level. Multi-file builds, encapsulation of global variables, data persistence using pickle and database classes, etc.

It has little on specific tasks common to games: sprite-based collision-detection, on-screen menu selection, multi-player game issues, high-score pages with user-data entry, score-keeping, multi-level design, etc.

Others have noted the lack of a complete game in the text; while I don't find step-by-step follow-along examples in texts to be of great educational value, a complete example of a 2D game and of a 3D game could have been helpful. That said, Pygame comes with many examples of its own, and there are plenty of free games available on the web.

Overall, the text is what it purports to be, a basic introduction to the programming-side of basic Pygame game development.
0Comment| One person found this helpful. Was this review helpful to you?YesNoReport abuse