Posted February 18, 2024 by Penaz
Hello everyone. Hope you're all doing well.
Version 0.7.9 of the book is live. This has been quite the sudden decision, I added a few new code examples that I thought were going to be useful to people, as well as some fixes and removing some "TODO"s that weren't even supposed to be there (that means I left some "TODO"s in sections that were completed).
Here are some news and general updates about the project.
I decided to condense the Epub and PDF versions in a single download, thus cutting the available downloads by half. This should make things a bit easier to manage and less annoying to the readers. I also added a "Complete Collection" download, which allows you to download the entire book collection (All editions, both in PDF and EPub) in one single click.
For the people who downloaded only the epub editions, I apologize but those channels are now unavailable and won't be updated anymore, as they were merged into the PDF distribution channels. I tried asking Itch support, in case there was a way to merge the channels, but they kindly answered me that it was not possible.
I added a new sub-chapter about some common AI patterns used in games, with related code examples. There you will be able to find 3 new algorithms: "jump when the player shoots", "melee pattern" and "ranged pattern". More details are in the book itself.
Some new algorithms have been added too:
This may sound like it's not much, but considering the 3 AI patterns and 5 languages I'm trying to juggle, that's 25 code listings. Phew.
Since December 29th, 2023 there has been a survey open to gather feedback from the community about the book. You can still leave your opinions here: https:// forms.gle/hSeQBHJcTKu6qqDL6
Since I got some results, I wanted to share some bits and answer publicly to some statements that I received.
Let's take a break from the lists to answer some comments and ideas to improve the project.
"Merge all the editions into one single book or maintain just the pseudocode edition" (Abridged version).
I think condensing all the code example into one single book is a no-go. People who are interested in one single language will have to skip pages of code in all the other languages. Maintaining the pseudocode edition only was my initial intention, but I found out that I can write some things better in some programming languages, so at times I find myself writing the algorithm in Python (or C++) and then translating it into pseudocode.
Moreover, the book structure has now evolved into a kind-of-framework where anyone who wants it, can build their own custom book. I think it would be an interesting thing to have that feeling of "I want to learn game development, I want to begin with Python and PyGame" and have the book that suits you perfectly. It's kind of like you have your own personal tutor, in a way, and I was excited at the thought. I had this "grand vision" (let's not compare it to the "IT industry grand visions" that sound just as crazy as my idea) where people would come together, add their own experience and share it to the world under the same framework.
"Finish the few sections that are not complete before adding more"
Sadly the sections that are not complete are also sections I have very little knowledge about. In this "grand vision" I had, that would be a self-leveling problem, because someone else would fill in where I was lacking, and I could learn something new myself. If I were to try and fill every missing piece of the book on my own, I would have to spend months studying, vetting, testing and creating code for each and every piece of the book that is missing, in the evening, after work.
It's time to admit it: I don't think I have the mental elasticity or fortitude necessary to do all of that work myself. But that won't stop me from doing my best.
Let's go back to lists!
Now it's time to talk about the "something else": the Odin and Zig programming languages. Odin seems to come with SDL/Vulkan/OpenGL support out of the box, while Zig has some game dev projects under its wind.
Sadly the idea of an "Odin" or "Zig" edition has to be put aside for now, for a very simple reason: I don't know those programming languages. As in "I would need to start from 'hello world' up", which is something I just can't do right now.
BUT
If someone who knows those languages and has free time to spare, I am more than willing to accept a pull request or two. (I have already created issues on that in the GitHub repo).
I have to admit that the future of the project is currently uncertain. My day job is swallowing me whole, as my family matters are.
2024 is turning out to be a really harsh year on all fronts, but I remain committed to the project to the best of my ability.
I have been toying with the idea of opening the book to other contributors that are not able to use Git, for example by publishing (and thus restructuring) the book on WikiBooks, but I have to admit the idea is scary. That is because the project may morph into something completely different than what I had in mind, and Git allows me to retain some "creative control" over the project.
Another idea would be just "throwing the book in the public domain and let it fend for itself" (which sounds cruel now that I think about it) and see what happens: either the project will die or people will be encouraged to contribute.
Maybe even doing both at the same time. The fact is I have no idea how famous WikiBooks is, how it works, how much "exposure" the project would get from the website.
We will see what the future holds.
Thank you everyone for reading this absurd wall of text, stay safe.
Penaz.