Skip to navigation
Logo Penaz's Area

cat /dev/random > penaz

A new project, an experiment, a teaching and learning experience


Short introduction of "2D Game Development: From Zero To Hero": a project I would love to see grow

Hello everyone,

Today I would like to talk about a small idea that has been in my head for a long time and that only a little ago (with the help of a couple friends) I decided to put into practice.

That idea took the form of a project that I called "2D Game Development: From Zero To Hero": which is essentially a book containing my knowledge (and in future many other peoples' hopefully) about 2D game development.

This book is composed of different sections, among them we find:

  • Some basics of Logic, Maths and computer science,
  • Introducing the "Game Loop",
  • Detecting and reacting to collisions,
  • Balancing games,
  • Creating your own assets,
  • Game Jams,
  • Procedural generation,
  • Patterns and containers,
  • Engines, Frameworks, free resources to learn,
  • Marketing your game,
  • Much More...

The objective is obtaining a resource that anyone can use, without specific prior knowledge about game development, that allows to learn the base principles of game development itself.

Which programming language will be used?

The book will mainly use pseudocode, but I decided to give the chance to people of "translating" the code in many languages, which can be selected by editing the metadata.yml file. This allows to have different versions of this book, perfectly tailored to the reader's prior knowledge, even though contributing might be a bit harder (but not even that much harder anyway).

For now, the available programming languages are:

  • Pseudocode
  • Python

Which language is the book written in?

To have maximum coverage, the book will be written in English, but nothing stops anyone from forking the project and write a version in a different language.

Will there be a printed version?

Besides the version the single person will print for themselves, there won't be any printed version of the book, mostly because of license. Also considering this is a resource that will have a really short update cycle (lots of changes in little time), printing wouldn't make sense.

What's the book license?

The book is distributed with Creative Commons BY-NC (Attribution-Non Commercial) license, this will let everyone contribute and see their contribution listed in the book, without risking their work getting published by some shady company without any permission.

This license is not considered a "Free Culture" license, because of the "non commercial" limitation, but I think this is a good compromise.

How long will the book be?

I can't say, but for now, it's over 70 pages long already!

Why did you create this project?

Why not? I think a great way to learn things is to try to teach them, and this is what I'm doing: I'm learning new techniques, I research, I try to explain and then I write them in the book.

In a not-so-distant future I hope someone else will have different knowledge and will contribute to the book, so that I can learn something more.

This book would become a teaching experience as well as a learning one at the same time.

If you want to try and read or contribute open the gitlab repo , the project is also available on this github repo .

Thank you for reading, see you next time!

Penaz