Review of Krylar's "Programming 2D Scrolling Games"
Posted: Mon Jul 11, 2005 12:15 am
When Krylar announced that he was writing the book for PureBasic my main concern was that this would be a quick 'port' of his existing BlitzBasic book. I've seen this happen before, where it looks like all they did was a quick search and replace and a crude debugging of the examples.
I'm pleased to say that my fears were misfounded. "Programming 2D Scrolling Games" is a pure PureBasic book that introduces the language, its features, its common idioms and its typical gotchas.
The book is divided into 3 sections: introducing first PureBasic, then the game specific libraries and finally the example game project "Migz Callo: Lazer Blazer".
The first section is an excellent introduction to the PureBasic language, which would be suitable to those entirely new to programming. Krylar has a great 'Just Enough Theory' approach that quickly introduces the concepts needed to understand the code. In the first few chapters the reader is introduced to binary, strings, bitmapping, cartesian co-ordinates and other important fundamentals.
These sections are short enough so that the experienced programmer can skim over and appreciate the refresher but complete enough to give the newcomer the necessary knowledge. The concepts are then illustrated with well commented code examples.
Important PureBasic specifics are also covered well. Arrays and Structures, and the subtle distinctions regarding Arrays within Structures, are given excellent coverage. The style of code is recognisable as the common style adopted by the majority of forum posters. The typical pitfalls encountered by the newbie programmer are all dealt with before they can cause any problems.
I found Section 2 far more beneficial because I haven't done much with the game libraries. Again, 'Just Enough Theory' is introduced to help the understanding. I found the chapters on collission detection and ensuring consistant timing to be excellent and personally beneficial.
Section 3 goes beyond just the language, and discusses the other important aspects of game design. The Game Design for the demo gives a valuable insight into the activites that must preceed the writing of any code. Important concepts such as tile mapping, screen scrolling, z-ordering and computer character behaviour are then discussed.
This final section is the most practical, with lots of code listings and screen shots. Any experienced programmer who is new to writing games will benefit from reading this section.
The accompanying CD includes a demo version of PureBasic and the full code for examples and the "Migz Callo" game. It also includes Krylar's useful KNet-Lib and K-2D map maker and some demos of Idigicon's other products.
There are a few ways the book could be improved. A little extra formatting could have made the examples much easier to read. Bolding the keywords, putting the comments in a lighter shade, that type of thing. It is also a shame that only a small subset of the language is introduced. PureBasic's GUI libraries are only mentioned in passing.
Potential purchasers may be put off that the book is only available from Idigicon direct. As far as I can see, it isn't possible to order it from Amazon. Don't worry about this, since Idigicon show a clear commitment to customer service. For example, when the book was slightly delayed because of a printing error those who had pre-ordered were compensated with some free software.
I would whole heartedly recommened this book to anybody new to programming or PureBasic. Working through this book will give you a solid foundation.
Those who can program, but are not familiar with 2D games coding, will also find much of benefit here.
This book deserves to do well. I hope it does, so that other volumes covering PureBasic's other features, might be released in future.
I'm pleased to say that my fears were misfounded. "Programming 2D Scrolling Games" is a pure PureBasic book that introduces the language, its features, its common idioms and its typical gotchas.
The book is divided into 3 sections: introducing first PureBasic, then the game specific libraries and finally the example game project "Migz Callo: Lazer Blazer".
The first section is an excellent introduction to the PureBasic language, which would be suitable to those entirely new to programming. Krylar has a great 'Just Enough Theory' approach that quickly introduces the concepts needed to understand the code. In the first few chapters the reader is introduced to binary, strings, bitmapping, cartesian co-ordinates and other important fundamentals.
These sections are short enough so that the experienced programmer can skim over and appreciate the refresher but complete enough to give the newcomer the necessary knowledge. The concepts are then illustrated with well commented code examples.
Important PureBasic specifics are also covered well. Arrays and Structures, and the subtle distinctions regarding Arrays within Structures, are given excellent coverage. The style of code is recognisable as the common style adopted by the majority of forum posters. The typical pitfalls encountered by the newbie programmer are all dealt with before they can cause any problems.
I found Section 2 far more beneficial because I haven't done much with the game libraries. Again, 'Just Enough Theory' is introduced to help the understanding. I found the chapters on collission detection and ensuring consistant timing to be excellent and personally beneficial.
Section 3 goes beyond just the language, and discusses the other important aspects of game design. The Game Design for the demo gives a valuable insight into the activites that must preceed the writing of any code. Important concepts such as tile mapping, screen scrolling, z-ordering and computer character behaviour are then discussed.
This final section is the most practical, with lots of code listings and screen shots. Any experienced programmer who is new to writing games will benefit from reading this section.
The accompanying CD includes a demo version of PureBasic and the full code for examples and the "Migz Callo" game. It also includes Krylar's useful KNet-Lib and K-2D map maker and some demos of Idigicon's other products.
There are a few ways the book could be improved. A little extra formatting could have made the examples much easier to read. Bolding the keywords, putting the comments in a lighter shade, that type of thing. It is also a shame that only a small subset of the language is introduced. PureBasic's GUI libraries are only mentioned in passing.
Potential purchasers may be put off that the book is only available from Idigicon direct. As far as I can see, it isn't possible to order it from Amazon. Don't worry about this, since Idigicon show a clear commitment to customer service. For example, when the book was slightly delayed because of a printing error those who had pre-ordered were compensated with some free software.
I would whole heartedly recommened this book to anybody new to programming or PureBasic. Working through this book will give you a solid foundation.
Those who can program, but are not familiar with 2D games coding, will also find much of benefit here.
This book deserves to do well. I hope it does, so that other volumes covering PureBasic's other features, might be released in future.