Game Programming With Python (Game Development Series)
| |||||||||||||||||||||||||||||
|
| |||||||||||||||||||||||||||||
| Sort customer reviews by: | |||||||||||||||||||||||||||||
|
Show All Reviews on Page
Hide All Reviews on Page
| |||||||||||||||||||||||||||||
| Game Programming With Python (Game Development Series) | |||||||||||||||||||||||||||||
|
If C and C++ are the languages of choice for game programmers, why should you consider using Python? Game Programming with Python explores this question in depth and teaches you why and how Python can reduce your development time, improve your technical designs, and make the entire development process more efficient. Game Programming with Python is about building games using Python. It deals with general concepts of game development and specifics that apply when using Python for game development. Some of the general topics include simulations, game architectures, graphics, networking, and user interfaces. The Python-specific topics covered include Python development strategies, using Python for data-driven systems, performance tuning, modules and packages, and interfaces between Python and other programming languages. Additionally, a series of increasingly complex examples are developed throughout the book using Python. Python is already being used by professional game developers in a number of popular commercial games, including the award winning Star Trek ® Bridge Commander (Totally Games), Freedom Force (Irrational Games), and Earth & Beyond (Electronic Arts). Games such as these use Python in three major ways: as a full-fledged programming language to develop real software systems; as a scripting language to control and interface between systems written in other languages; and as a data language to describe game rules and game objects. Throughout the book, each of these major uses of Python is discussed along with the differences between them. Written for Python programmers interested in learning game development, as well as game developers interested in using Python, the book assumes you have some programming background and a basic grasp of software engineering principles. Some knowledge of the game development process is also assumed, although a concise overview is provided.
|
|||||||||||||||||||||||||||||
|
Python may not be the first language you think of when you consider computer games, but it's surprising adept at tying together elements of game systems and not at all bad for the implementation of games in its own right. Game Programming With Python explains how to write game code in Python, and goes a long way toward showing that this isn't just a pet project of some hobbyists--that you'd really want to consider Python for game work. Sections dealing with graphics are particularly impressive. Even established Python enthusiasts will smile at what Sean Riley has accomplished in the area of terrain generation.
Much of the book is as interesting for its coverage of algorithms and design patterns generically as for its detailed coverage of Python programs. Riley takes care to explain, for example, the empirical logic behind the A* (a-star) path-finding algorithm as well as its specific implementation in Python. He devotes similar care to collision-detection algorithms and the simple artificial intelligence behind tic-tac-toe. Riley makes extensive use of libraries in his games, and studying his code is a good way for readers to learn about PyUI, PyOpenGL, and network services libraries. --David Wall Topics covered: How to push Python to somewhere near the limits of its capabilities by using it to write games. The author talks about game design, useful algorithms, and strategies for using Python to interconnect game elements as well as using Python for core game functions. |
|||||||||||||||||||||||||||||
| Reader Reviews 1 - 14 of 14 | |||||||||||||||||||||||||||||
| Review Date |
Review Rating(5 High) |
Review Helpful to: |
Customer Review | Reviewer Info |
Permanent Link |
||||||||||||||||||||||||
| Reader Reviews Below Sorted by Newest First | |||||||||||||||||||||||||||||
| 03-20-07 | 3 | 1\1 |
| Reviewer | Permalink | ||||||||||||||||||||||||
|
First, a warning about my review style: I tend to focus heavily on negative things. That's probably because negative things are easier and more fun to write about. So while this review may have a mostly negative tone, do note that I don't hate this book... I just think it has a lot of room for improvement.
A few years ago I happened to be writing a game in Python when I came across this book at the bookstore. I was already familiar with both Python and game development, but I was uncertain of a few details at the time, and I liked what I saw on a cursory flip-through, so I decided to take it home. A few years later, I am again attempting to write a (different) game in Python, and this book came to mind, so here I am writing this review. Sadly, some of the information in the book was already out of date when it was published. Python 2.3 was released in July 2003 (this book was released sometime in 2004), and yet this book seems to be written for Python 2.1, which was released in 2001. The language changed a lot within that time, though not so much as to make the code completely obsolete. The book does not take advantage of "new-style" classes introduced in Python 2.2. If the author didn't want to complicate the issue by distinguishing between old-style and new-style classes, he should have used only new-style classes, not old-style. All you have to do to make a class new-style is derive it from the "object" class; the author needed to devote only a few words to the subject. There's no discussion about the semantics of division, which was already in flux: if you put "from __future__ import division" at the top of your module, the expression 1/2 returns a float (0.5); otherwise it returns an integer (0). The new semantics should be taught because that is what future versions of Python are going to use by default. The most blatant example of the author's ignorance is his recommendation that you download PyUnit. There's no need to because PyUnit has been included with Python since version 2.1! (Again, version 2.1 was released several years before the book was.) The only thing you get by downloading it is an old and obsolete version. To be fair, though, PyUnit's website needs to make it clear right up front that it's bundled with Python 2.1 and you only need to download it if you're using an old version of Python. The worst thing has been noted by several other reviewers: the heavy dependence upon PyUI, a library created by the author that was never even finished. Although it has been put on sourceforge, nobody has been maintaining it. It would probably be best not to even bother with learning how to use it, because you'll have trouble getting it to work and nobody else uses it. Its only value is that it'll help you follow the book's examples. If you need a GUI for your game, there are others you can find at the pygame website, such as pgu or OcempGUI, both of which are currently maintained. However, this is not all as bad as it sounds. A lot of the advice is still good, and if you keep learning about Python, you'll figure out how to work around this book's deficiencies. Unfortunately, this book is geared towards Python newbies, who shouldn't be expected to know how to do that. The code seems to be reasonably-written, it's just out of date. The sad thing is, if this book had been released a few years prior, and it didn't depend on a library that nobody uses or maintains, it'd probably be perfect. As it is, it was out of date even when published, and is only more so now. Most of the good things in the book, such as the chapter on procedural content generation, don't seem to have much to do with Python itself, but rather are good concepts that happen to use Python for the examples. I think the book does have things to teach. But if you're a Python newbie, you'd do well to get another book about Python if you want to use the language as it is now, and not as it was six or seven years ago. Or, if you're an experienced programmer, you could do what I did and "pick it up" using the official tutorials and documentation, which are freely browsable and downloadable online. On the positive side, the book especially deserves kudos for the idea in the first place. Although I had the idea of writing a game in Python before knowing about this book, the idea may not strike others so readily, especially if they haven't heard of Python. Too many books either start you with writing in C or C++, or else writing in some toy language such as some variant of BASIC that nobody uses. Python is as easy to use as the BASIC dialects, but as powerful as C++. It's just not as fast as C++ -- an obstacle that can still be tackled when you're ready for it. It's a language with a great variety of uses and an established user base, so it'll have use for many things beyond game development, while still being reasonably suited for that task. What more could you ask for? In summary: the book was great idea, but the execution leaves some to be desired. (Review Data Last Updated: 2007-09-07 23:19:58 EST)
|
|||||||||||||||||||||||||||||
| 03-20-07 | 3 | 2\2 |
| Reviewer | Permalink | ||||||||||||||||||||||||
|
First, a warning about my review style: I tend to focus heavily on negative things. That's probably because negative things are easier and more fun to write about. So while this review may have a mostly negative tone, do note that I don't hate this book... I just think it has a lot of room for improvement.
A few years ago I happened to be writing a game in Python when I came across this book at the bookstore. I was already familiar with both Python and game development, but I was uncertain of a few details at the time, and I liked what I saw on a cursory flip-through, so I decided to take it home. A few years later, I am again attempting to write a (different) game in Python, and this book came to mind, so here I am writing this review. Sadly, some of the information in the book was already out of date when it was published. Python 2.3 was released in July 2003 (this book was released sometime in 2004), and yet this book seems to be written for Python 2.1, which was released in 2001. The language changed a lot within that time, though not so much as to make the code completely obsolete. The book does not take advantage of "new-style" classes introduced in Python 2.2. If the author didn't want to complicate the issue by distinguishing between old-style and new-style classes, he should have used only new-style classes, not old-style. All you have to do to make a class new-style is derive it from the "object" class; the author needed to devote only a few words to the subject. There's no discussion about the semantics of division, which was already in flux: if you put "from __future__ import division" at the top of your module, the expression 1/2 returns a float (0.5); otherwise it returns an integer (0). The new semantics should be taught because that is what future versions of Python are going to use by default. The most blatant example of the author's ignorance is his recommendation that you download PyUnit. There's no need to because PyUnit has been included with Python since version 2.1! (Again, version 2.1 was released several years before the book was.) The only thing you get by downloading it is an old and obsolete version. To be fair, though, PyUnit's website needs to make it clear right up front that it's bundled with Python 2.1 and you only need to download it if you're using an old version of Python. The worst thing has been noted by several other reviewers: the heavy dependence upon PyUI, a library created by the author that was never even finished. Although it has been put on sourceforge, nobody has been maintaining it. It would probably be best not to even bother with learning how to use it, because you'll have trouble getting it to work and nobody else uses it. Its only value is that it'll help you follow the book's examples. If you need a GUI for your game, there are others you can find at the pygame website, such as pgu or OcempGUI, both of which are currently maintained. However, this is not all as bad as it sounds. A lot of the advice is still good, and if you keep learning about Python, you'll figure out how to work around this book's deficiencies. Unfortunately, this book is geared towards Python newbies, who shouldn't be expected to know how to do that. The code seems to be reasonably-written, it's just out of date. The sad thing is, if this book had been released a few years prior, and it didn't depend on a library that nobody uses or maintains, it'd probably be perfect. As it is, it was out of date even when published, and is only more so now. Most of the good things in the book, such as the chapter on procedural content generation, don't seem to have much to do with Python itself, but rather are good concepts that happen to use Python for the examples. I think the book does have things to teach. But if you're a Python newbie, you'd do well to get another book about Python if you want to use the language as it is now, and not as it was six or seven years ago. Or, if you're an experienced programmer, you could do what I did and "pick it up" using the official tutorials and documentation, which are freely browsable and downloadable online. On the positive side, the book especially deserves kudos for the idea in the first place. Although I had the idea of writing a game in Python before knowing about this book, the idea may not strike others so readily, especially if they haven't heard of Python. Too many books either start you with writing in C or C++, or else writing in some toy language such as some variant of BASIC that nobody uses. Python is as easy to use as the BASIC dialects, but as powerful as C++. It's just not as fast as C++ -- an obstacle that can still be tackled when you're ready for it. It's a language with a great variety of uses and an established user base, so it'll have use for many things beyond game development, while still being reasonably suited for that task. What more could you ask for? In summary: the book was great idea, but the execution leaves some to be desired. (Review Data Last Updated: 2008-02-26 12:30:01 EST)
|
|||||||||||||||||||||||||||||
| 03-19-07 | 3 | 5\5 |
| Reviewer | Permalink | ||||||||||||||||||||||||
|
First, a warning about my review style: I tend to focus heavily on negative things. That's probably because negative things are easier and more fun to write about. So while this review may have a mostly negative tone, do note that I don't hate this book... I just think it has a lot of room for improvement.
A few years ago I happened to be writing a game in Python when I came across this book at the bookstore. I was already familiar with both Python and game development, but I was uncertain of a few details at the time, and I liked what I saw on a cursory flip-through, so I decided to take it home. A few years later, I am again attempting to write a (different) game in Python, and this book came to mind, so here I am writing this review. Sadly, some of the information in the book was already out of date when it was published. Python 2.3 was released in July 2003 (this book was released sometime in 2004), and yet this book seems to be written for Python 2.1, which was released in 2001. The language changed a lot within that time, though not so much as to make the code completely obsolete. The book does not take advantage of "new-style" classes introduced in Python 2.2. If the author didn't want to complicate the issue by distinguishing between old-style and new-style classes, he should have used only new-style classes, not old-style. All you have to do to make a class new-style is derive it from the "object" class; the author needed to devote only a few words to the subject. There's no discussion about the semantics of division, which was already in flux: if you put "from __future__ import division" at the top of your module, the expression 1/2 returns a float (0.5); otherwise it returns an integer (0). The new semantics should be taught because that is what future versions of Python are going to use by default. The most blatant example of the author's ignorance is his recommendation that you download PyUnit. There's no need to because PyUnit has been included with Python since version 2.1! (Again, version 2.1 was released several years before the book was.) The only thing you get by downloading it is an old and obsolete version. To be fair, though, PyUnit's website needs to make it clear right up front that it's bundled with Python 2.1 and you only need to download it if you're using an old version of Python. The worst thing has been noted by several other reviewers: the heavy dependence upon PyUI, a library created by the author that was never even finished. Although it has been put on sourceforge, nobody has been maintaining it. It would probably be best not to even bother with learning how to use it, because you'll have trouble getting it to work and nobody else uses it. Its only value is that it'll help you follow the book's examples. If you need a GUI for your game, there are others you can find at the pygame website, such as pgu or OcempGUI, both of which are currently maintained. However, this is not all as bad as it sounds. A lot of the advice is still good, and if you keep learning about Python, you'll figure out how to work around this book's deficiencies. Unfortunately, this book is geared towards Python newbies, who shouldn't be expected to know how to do that. The code seems to be reasonably-written, it's just out of date. The sad thing is, if this book had been released a few years prior, and it didn't depend on a library that nobody uses or maintains, it'd probably be perfect. As it is, it was out of date even when published, and is only more so now. Most of the good things in the book, such as the chapter on procedural content generation, don't seem to have much to do with Python itself, but rather are good concepts that happen to use Python for the examples. I think the book does have things to teach. But if you're a Python newbie, you'd do well to get another book about Python if you want to use the language as it is now, and not as it was six or seven years ago. Or, if you're an experienced programmer, you could do what I did and "pick it up" using the official tutorials and documentation, which are freely browsable and downloadable online. On the positive side, the book especially deserves kudos for the idea in the first place. Although I had the idea of writing a game in Python before knowing about this book, the idea may not strike others so readily, especially if they haven't heard of Python. Too many books either start you with writing in C or C++, or else writing in some toy language such as some variant of BASIC that nobody uses. Python is as easy to use as the BASIC dialects, but as powerful as C++. It's just not as fast as C++ -- an obstacle that can still be tackled when you're ready for it. It's a language with a great variety of uses and an established user base, so it'll have use for many things beyond game development, while still being reasonably suited for that task. What more could you ask for? In summary: the book was great idea, but the execution leaves some to be desired. (Review Data Last Updated: 2008-12-04 07:09:04 EST)
|
|||||||||||||||||||||||||||||
| 02-16-07 | 5 | (NA) |
| Reviewer | Permalink | ||||||||||||||||||||||||
|
Game Programming With Python is not for beginners. I will say that up front. There are many advanced topic that seasoned pros and up and coming programmers will enjoy -- procecedural content, a* path-finding, asynchronous game servers. These are not for the faint-of-heart, but they are exceptional topics for game programming. Having done an a*star path finding implementation back in my brief time as a game programmer, I can appreciate his work.
A lot of the examples and example code are written in Python and written to a Python graphics library, so they may not be pertinent to your development environment. However, some of the topics presented are very applicable to game design, especially some of the advanced topics. Personally, I liked the book. When I browse books at my neighbor book store, I usually flip to the back to find the interesting things. I skip the Chapter 1 "What is XML" stuff, and head to the juicy stuff in the back. Not so with this book. All of it is juicy geeky techy stuff. (Review Data Last Updated: 2007-07-07 22:51:22 EST)
|
|||||||||||||||||||||||||||||
| 02-14-07 | 5 | (NA) |
| Reviewer | Permalink | ||||||||||||||||||||||||
|
I recently picked this book from my shelf as a my new bathroom material and was surprised what I was thinking two years ago.
The book is outstanding not only in demonstrating python's real power but supprisingly also in game programming. You need a bit of (may a lot of) object-oriented background to really appreciate this book. The skeleton of game concept is very precise and clear once the "high-level" language applied (or outlined). I give it 5 star, the only problem with this book is sometimes the variable name is misleading (ex. category part), but probably that's just me. (Review Data Last Updated: 2007-07-07 22:51:22 EST)
|
|||||||||||||||||||||||||||||
| 03-31-06 | 5 | 2\2 |
| Reviewer | Permalink | ||||||||||||||||||||||||
|
I know Python pretty well and I find that it is often an excellent way to quickly explore new programming concepts. Python is so powerful that you can quickly get a feel for the subject by coding a bit. At work, you may have to use a different language, but at least you will know the subject. That's how I got to understand XML and unit testing for example. A good book always helps the process though.
As a newbie to games, I found this book to be an excellent introduction to game coding. It basically walks you through the material you need to create simple 2D real time games on OpenGL, including how to code simple multiplayer games (using Twisted for the networking). It does an excellent job of demystifying basic game concepts and makes me think that I could write a simple game myself, given sufficient time. The code samples, which I mostly did not run though, are well-crafted and minimalist - just enough to get the job done and no more. This is very clean and expressive code where every line serves a purpose. I am more interested by turn-by-turn web-based 2D games, so I am currently not using the book all that much. However, once I have figured out my user interface, I will surely return to it to learn how to manage game objects, persistence, game states, and the like. One caveat, and not a big one. As another reviewer stated, the book excels at showing how to develop modular code by gradually building libraries of reusable code that you can use for a number of games. The author pulls off the trick of doing that in a Python-sensible manner, without adding the overhead that Java/C++ would require, but that Python doesn't. However, the resulting code, while extremely well thought out, easy to describe, and modular, is distributed though multiple classes in numerous files . This makes it somewhat hard to just start hacking his code. I quickly got lost while trying to modify the network protocol he used for the sample tic-tac-toe application. In other words, while his code structure is very appropriate to a serious production system, I feel that it is a bit too complex for me to use as a starting point. Monolithic code has many drawbacks but can provide an easier _initial_ learning curve. (Review Data Last Updated: 2007-07-07 22:51:22 EST)
|
|||||||||||||||||||||||||||||
| 02-24-06 | 5 | 3\3 |
| Reviewer | Permalink | ||||||||||||||||||||||||
|
When I buy a book with source code I first run the examples and then I start reading, so I followed all the installation steps and every single example worked nicely so. The book is clear, concise, fun tu read and I do recommend it fully. If you are serious about writing your own online game and learning Python, get this one. It 's worth the money.
(Review Data Last Updated: 2007-07-07 22:51:22 EST)
|
|||||||||||||||||||||||||||||
| 10-21-05 | 3 | 10\10 |
| Reviewer | Permalink | ||||||||||||||||||||||||
|
I fully agree with an earlier reviewer of this book. I am only through to chapter 6 after getting it last week and it is a great introduction. However all the examples do rely on the author's own Python user interface library which does not work.
So don't expect to be able to run much of the sample code in this book. But it's a great read if you want to learn the theory behind game and simulation design with Python... (Review Data Last Updated: 2007-07-07 22:51:22 EST)
|
|||||||||||||||||||||||||||||
| 10-20-05 | 3 | 10\10 |
| Reviewer | Permalink | ||||||||||||||||||||||||
|
I fully agree with an earlier reviewer of this book. I am only through to chapter 6 after getting it last week and it is a great introduction. However all the examples do rely on the author's own Python user interface library which does not work.
So don't expect to be able to run much of the sample code in this book. But it's a great read if you want to learn the theory behind game and simulation design with Python... (Review Data Last Updated: 2006-12-17 15:52:56 EST)
|
|||||||||||||||||||||||||||||
| 10-12-04 | 4 | 36\37 |
| Reviewer | Permalink | ||||||||||||||||||||||||
|
Sean's introduction to Python game programming is excellent. As a professional games programmer, I found this title to provide a great foundation to the concepts of game programming frameworks, more so than many other titles that focus on more specific code-based tasks.
However, and this is a major fault of both the author and publisher, Sean's book and many code examples are based upon a User Interface library that he wrote called PyUI. Unfortunately, this library doesn't work, and hasn't been updated for quite some time. Downloading the library and using it as suggested in this book will simply not work for the vast majority of users. If you intend to use this book to learn python game programming, it is important to gain enough familiarity with PyGame and PyOpenGL to be able to work around this broken library. It is also worth noting that you will not be able to use some of the user interface examples provided in the book. (Review Data Last Updated: 2006-03-10 11:00:04 EST)
|
|||||||||||||||||||||||||||||
| 10-12-04 | 4 | 53\54 |
| Reviewer | Permalink | ||||||||||||||||||||||||
|
Sean's introduction to Python game programming is excellent. As a professional games programmer, I found this title to provide a great foundation to the concepts of game programming frameworks, more so than many other titles that focus on more specific code-based tasks.
However, and this is a major fault of both the author and publisher, Sean's book and many code examples are based upon a User Interface library that he wrote called PyUI. Unfortunately, this library doesn't work, and hasn't been updated for quite some time. Downloading the library and using it as suggested in this book will simply not work for the vast majority of users. If you intend to use this book to learn python game programming, it is important to gain enough familiarity with PyGame and PyOpenGL to be able to work around this broken library. It is also worth noting that you will not be able to use some of the user interface examples provided in the book. (Review Data Last Updated: 2006-12-17 15:52:56 EST)
|
|||||||||||||||||||||||||||||
| 03-17-04 | 5 | 8\9 |
| Reviewer | Permalink | ||||||||||||||||||||||||
|
This book is packed with useful game concepts and algorithms. In some ways, it is quite basic as it begins with simple concepts and the python code is easy to comprehend, but in other ways it is very advanced. The later chapters detail AI routines, terrain generation, network protocol design and multi-language development - advanced topics for most programmers who would buy this book.
The way the author builds a library of code and uses the library in increasingly complex situations make this a good showcase of how to write modular software. I'd highly recommend this book for python programmers, game programmers interested in scripting or alternative languages, or anyone who likes to know how games actually work. (Review Data Last Updated: 2006-12-17 15:52:56 EST)
|
|||||||||||||||||||||||||||||
| 01-01-04 | 5 | 16\18 |
| Reviewer | Permalink | ||||||||||||||||||||||||
|
Not just a book on Python programming, this is a great book about game programming in general. I'll keep it as a general reference on game stuff. The concepts and algorythms here are useful and relevant to game programming in any language. The use of Python as the implementation language makes the content accessible and easy for programmers of all levels to grasp.
This books covers an incredible range of topics from simulations to graphics, networking and artificial intelligence. The fact that the Python code is so compact makes it possible to cram all of this useful information into a single book. If all of this code were is C++, it would take three books to hold it! Overall, one of the best game programming books currently available. (Review Data Last Updated: 2006-12-17 15:52:56 EST)
|
|||||||||||||||||||||||||||||
| 11-13-03 | 5 | 9\13 |
| Reviewer | Permalink | ||||||||||||||||||||||||
|
This book is a fairly detailed introduction to game programming in general. Especially if you're looking to get into the business I think this book could be a great buy. You'll learn enough to make you dangerous by faithfully following the book.
It'll definitely help you fill in gaps in general game programming issues. (Review Data Last Updated: 2006-07-07 12:40:50 EST)
|
|||||||||||||||||||||||||||||
| Reader Reviews 1 - 14 of 14 | |||||||||||||||||||||||||||||
| All Books | Arts | Biography | Click Here For An A-Z Index Of All 213 Best-Seller Subjects | Business | Children's | Comics | ||||||
| Computers | Cooking | Engineering | Entertainment | Health | History | Home | Horror | Humor | Law | Fiction | Medicine | Mystery |
| Nonfiction | Outdoors | Parenting | Professional | Reference | Religion | Romance | Science | Sci-Fi | Sports | Teens | Travel | |