11 November 2023

"Godot 4 Game Development Projects" by Chris Bradfield

I have said on occasion that I do not like Packt Publishing books. I have always felt that they prioritize quantity over quality. The fault is not usually with the authors, as there are both good and bad authors at Packt, but rather with the publisher for not doing its job of polishing the content to meet a minimum quality standard before it reaches the public. As a result, there are too many Packt books that have the whiff of a tutorial that has been copied and pasted straight from the internet, with inconsistencies, repetitions, and errors in content and formatting. In most cases, if the publisher had done its job and provided at least some guidance to the authors, the result could have been much more decent. There are things you can forgive an independently published book, but when there is a publisher behind it that charges the same price as an O'Reilly book, I think the level of expectation has to be higher. On the positive side of the ledger, and for what I believe still saves their business, is that the enormous amount of publications they put out cover very novel and varied topics that other publishers will take at least a year and a half longer to cover, and with much fewer books. It is not uncommon to search for a book on a hot topic and find that Packt is the only publisher with books on the subject. Another thing is their quality level, as I have already said. That is why I usually avoid Packt books, unless I find a pack of their books at a good price. In this case, the book that gives its name to this article was included in a pack of game development books that was released through Humble Bundle. For almost €20, I bought a couple of dozen Packt books, so for that price it was worth it. Based on the above, this book has the advantage that there are very few works that talk about game development with Godot, and even fewer about its recently released version 4, which incorporates enough new features to make it very different from previous versions. It is structured as a series of projects that act as tutorials. There are three 2D projects, of increasing difficulty, and two 3D projects. This structure makes the book practical and entertaining, but it does not delve into the design and approach particularities that make Godot so special compared to, for example, Unreal or Unity. Still, if the tutorials in the official Godot documentation have left you wanting, this book can be a good follow-up to them, as it is very similar to them in both form and content, but it takes them a couple of steps further. In fact, I really enjoyed the last chapter, which talks about how to create procedural levels in real time. The tutorials are detailed and clear to follow. The code it uses is GDScript, and I would say it is clean and well-structured code. I think that in general, the way of working with Godot that is seen in the book is not far from the official best practices. So it is a good introductory work to Godot. On the negative side, there is the typical carelessness of a Packt book. At least in the digital version, which is the one I read, the first lines of the code listings are cut off on the left. It is as if they had cut off everything that was to the left of the first or second level of indentation. This means that the body of many functions is saved, but you have to guess the name of the function and the global variables from the incomplete fragment that you get. I found this very annoying. I have no idea how the book could have passed the quality filter like this, assuming that Packt even does one. Did it pay off? Considering that I bought the book in a pack and therefore it came out at a ridiculously low price, that there are not many Godot books (and even fewer Godot 4) and that I had already finished the official Godot tutorials, then yes, it was worth it. Having all the tutorials collected in a book is very convenient, although you can find others just as good with a little internet research. If I had bought it for the price it is on Amazon, or at Packt itself, I don't know if it would have been worth it.