
From Novice to NoobMy first problem was the first two chapters, which were an introduction to Python. I think it's a waste to introduce a language in a book on a specific topic in that language. Especially as the back of the book implies that you should have already read Beginning Python before reading this book.
The second problem was the downloaded programs. Not all of the program listings in the book indicate which program file they go with, requiring some hunting around in some cases. Second, not all of the listings in the book have matching program files. Third, not all of the program files match the program listings. Those programs don't even work. Also, many of the programs require the author's own GameObjects library, but he doesn't even bother to include it with the downloads for the book. I don't find any of this acceptable, even in a first edition.
The third problem is that he fails to cover basic things. He goes on about his own vector class without pointing out that there are other packages for Python that handle vectors. He doesn't mention any of the collision detection available in PyGame. He talks about all moving images as sprites, without mentioning that there is a sprite class in PyGame.
The fourth problem is that none of the examples involve an actual game. Even a simple tic-tac-toe game would have been nice, but instead we get images of sushi floating around the screen without purpose. Dude, we get it, you like sushi, therefore you're hip. Now shut up and show us how to program games.
The fifth problem was all the time he spent on 3D games. I understand that 3D games are a big part of the market, but I felt he shorted the discussion of 2D games in order to cram in the 3D stuff he likes. In the end, I don't think either subject was given the treatment it deserved, even in a basic book.
There are some nice bits in here. I found the discussion of perspective in 3D informative, if not specific to PyGame. But they are not worth the price of the book.
A good introduction, but still a little lacking in some placesI 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.
Surprised by what is coveredThere 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.
Perfect Introduction to Python and the Pygame library.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!!
Excellent Book - Best on the SubjectPython has long been known as an easy language to learn, but with enough power to create large and complex systems. It's only in recent days that it has got a reputation as a good language for writing games with!
There is now a healthy games writing community amongst Python programmers and this book is an *excellent* introduction to both the language and the subject. It covers important and practical topics, with great code examples.
Totally recommended.
Great Python game programing This is a book that I have been waiting for when it comes to game programming and Python. The first 2 chapters introduce the language and is great as a refresher if you already know the language since its concise and to the point. If its your first time working with the language its not a bad idea to have another book along side it to get another perspective of the language itself.
The meat of the book is actually working with Pygame to create games and it does this very well. I haven't finished the book but I have been impressed with it so far. The author explains things such as distribution of your game(exec. file that setup your game on your machine) which I was very happy to see, since I haven't come across it anywhere else until now.
Game development is a very big field which probably cant be covered in one book but this book does a good job of covering alot of material that you may not find anywhere else.
It's pretty good.Here's my Pro/Con Opinions about this book:
Pros:
- 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.
Cons:
- 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.
Good only as a very basic introduction
This is a small book (280 pages of core material (Appendices excluded) with lots of source code listings and images taking up space) that aims to teach basic game programming using the popular Python library Pygame, which is wraps the cross platform SDL C gaming library.
The book is very easy going and quick to read, and serves as a nice introduction to the subject, although I definitely don't agree with the subtitle - From novice to professional, because this book will take you very far from a professional, as it's basic at best.
Frankly, I would expect a bit more from a book. It only covers the material on a basic tutorial level and rarely goes deeper, which is a shame. The decision to teach Python and Pygame in the same book is questionable. It's hard to believe a novice will learn Python from the first two introductory chapters, so perhaps aiming the book at Python programmers would be a better idea.
Other cons:
* I don't like the author's using his own mathematical library for manipulating vectors and matrices as opposed to using something like Numpy.
* the author ignores the Sprite class of Pygame and develops his own GameEntity instead. I don't see much justification for this.
* I felt that events were presented in a superficial way. This is probably one of the most important core topics of game programming, and it deserved more attention
On the positive side, the book really is a nice tutorial. If you are familiar with Python and basic math you can actually code a simple game based on this book very quickly, as it contains all the elements you need (at least for 2D games). There's a lot of code in it, and the code is reasonably well written. This code can be used as a jumpstart for your own game.
solid introduction to pygameCh3-6 provide a nice introduction to the basics of writing simple programs in pygame. The example code in these chapters was clear and effective at demonstrating the particular topic. Overall this book was helpful to me in developing a pygame centric design flow for the programs that I am writing.
I would recommend this book to help in jump starting your understanding of this useful python module.
Bryce Himebaugh
Content good, book falling apartI bought this book for my son a few weeks ago. He likes the book and finds it helpful. But the book is falling apart at the binding. Very disappointing.
The Pygame LibraryI have to say up front that I fit the "Novice" part of the title for this book, but if the book is really intended for such an audience then my review may be helpful for those in the same situation... What I am a Novice at is Python and Device driven programming. Although this is really a very good AND much needed book for the much under documented Pygame library, it missed an excellent opportunity to provide a novice level tutorial in "device driven" programming as supported by Pygame. Although it is possible to muddle through to an understanding (much as I did) by thinking through the implications of the example code, it leaves a lot to be desired to provide a working basis for a real "Novice". As an example, the need to know the function of the lines of code "while True:" combined with "pygame,display,update()" and what they mean about the code that lie between them is really crucial to getting any code using the library to work at all. Although this is addressed to some extent, I found quite a bit of experimentation (on my part) necessary to discover what code needed to be included in this loop and what did not... I hope Mr. McGugan , with his excellent writing skills and obvious enthusiasim for this kind of work, will soon provide us with a second edition that will provide us with more insight into how Pygame actually works, so we won't be programming by rote...
Very good book for beginnersI wanted to write some simples game for my 3 yr. old son and looking for starting point as I don't know anything about Game programming. I am halfway done reading the book and so far I find this book very useful. The chapters are well laid out and I feel encourages to read page after next, unlike some 500 pages books that goes too far to make one sleep or loose interest. I am assuming some advance game programmer may expect more but a novice like me found this book very helpful and I found the information that I was looking. I think both me and my son will make some use of the money spend on the book
