Skip to navigation
Logo Penaz's Area

cat /dev/random > penaz

"2DGD_F0TH": 2000 downloads later


Highly randomized thoughts about what this project was, is and probably will be. Like a post-mortem, minus the "mortem" part.

Greetings everyone!

I have been thinking of making this post for a while now, since "2D Game Development: From Zero to Hero" has reached a total of 2000 downloads on its itch.io page .

And now I decided to take some time and just think about what this project began as, how it evolved over time, how it is now, and what it may become in the future.

How it started

I have been thinking of tinkering with game development for a very long time, starting with the ebook " Making games with python and pygame " by Al Sweigart, which I found to be extremely interesting but using an approach that really didn't work for me.

The book told me how to make some basic games, but I couldn't grasp the basic concepts around it, mostly when it came to game design and project management: it was purely a "coding book", it told me "how".

My approach is to understand and assimilate the basic concepts behind things, and the "why"s behind certain decisions. This is what I wanted to write into this book.

After I got my BSc in Computer Science, I wanted to make that book that I wanted to have in my library: something that would explain the "why"s along with the "how"s of game development, with some more things attached to it.

The basic idea would be using "pseudocode" as a mean to show concepts in a structured way, while keeping myself far from real-life languages and avoid being trapped to a framework.

Feature creep, is that you?

All the good intentions in the world can't help against feature creep, so I asked myself

why limiting it to pseudocode, I can surely play around with LaTeX commands and replace code listings dynamically

And that's how "editions" came to be: Python first, followed by C++ (which has been freshly fixed up) and finally the new kid in town: JavaScript.

Then after 2000 downloads I asked myself another question:

at this point, it's easy to change the code to add support for libraries, right?

and that's how "language addons" came to be, now if someone wants a "Python + PyGame" edition, they can do it (although the feature is terribly under-documented).

How it is now

This project now has 4 main editions: Pseudocode, Python, C++ and JavaScript. It has been added in a fair number of collections and has received some reviews on itch.io too and the repository is currently sitting at 61 stars on GitHub plus 9 on GitLab.

I've been meaning to give the book a cleanup and make it easier to understand and a couple things came up: first is real life, second is what I think is an identity crisis.

I've meant this project as a way for people to "get started", and a "body of knowledge" that would help them understand the concepts behind game development, and this is where I've hit a snag: I may have made something that is "too technical".

I want to try and balance simplification and "formal correctness", but I fear that I'm moving towards the latter while neglecting the first. This book may not be a "getting started" anymore, betraying its own name: "From Zero to Hero".

There is a lot in this book: project management, computer science, maths, collision detection, marketing, ... and yet it's still far from the "Game Development MegaBook" that I am dreaming about. And maybe, by trying to be many things at once such as:

  • A game design ebook
  • A python ebook
  • A C++ ebook
  • A JavaScript ebook
  • A game marketing ebook
  • ...

it may be failing to be either of those things in a somewhat satisfactory way.

The future of this project

The future of this project is unknown: I don't really know where to steer this ship, so I think that for the time being I'll just see where the currents bring it.

I'll keep a watch on the download number, as well as eventual comments and suggestions, but I doubt I'll add support for more languages by myself: trying to write 3 languages at once already had me publish an awful C++ edition that I had to fix, 4 will be an even bigger undertaking.

When the will to write will come back, I'll surely add some more content, but it won't be anything major. Version 0.7.2 of this book will be the main version for a long time, I feel.

Maybe I'll try doing some better internet marketing for it?

The emotional talk

Personally, I am torn between "this is great, I would have never thought I'd even get 500 downloads by the end of 2021" and "I wish the project had more traction", and both feelings are equally true and don't cancel each other out.

I am infinitely grateful to the people who gave this book (and by proxy, me) a chance: I'm speechless by the amount of downloads this project has so far and the fact that it's almost consistently in the top 60 "popular ebooks" on itch.

I just wish I had more help (and I know, I've been repeating myself for ages now) with it. I wouldn't mind having some pull requests to review someday, even just to know how it feels.

"Alternative Sources"

I noticed that some "alternative sources" for this book have popped up all over the internet, usually allowing people to download an older version of the ebook from their own archives.

As long as such distribution is free of charge, I don't really mind, I don't know the impact of such sites on the download rate, and some I'm absolutely okay with: for instance unglue.it and openlibrary are amazing alternative resources, but they may have older versions. But still, free of charge and contain lots of other great reads.

For any kind of commercial use, ask first, please: including using this as a reference book, cause I really don't have much faith in its accuracy.

Conclusion

It has been a long journey, and considering the low expectations I had (starting from some mixed responses on reddit and low-participation polls), I'm still surprised I'm here talking about 2000 downloads. That's 4 times what I was expecting initially!

The only thing I can say is that my head is as much of a mess as this post is. At the very least.

Thanks for everything, stay safe.

Penaz.