Skip to content
Mirror Repository for GameDev ebook "2D Game Development: From Zero To Hero"
TeX Python Makefile
Branch: master
Clone or download
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github/ISSUE_TEMPLATE Let's try again with github-specific metadata Dec 13, 2019
chapters Added missing epigraph in 019 Jan 23, 2020
images Added explanation of Randomized Kruskal's algorithm Jan 12, 2020
listings Added snapshot reaction method code Jan 12, 2020
scripts Basic script to visually check the status of listings Nov 29, 2019
.gitignore Update Gitignore Dec 11, 2019
.travis.yml Create Jun 16, 2019
LICENSE Added some random stuff May 22, 2019
Makefile Fixed sorting May 31, 2019 Update README Jan 10, 2020

2D Game Development: From Zero To Hero

Project Status:

Build Travis Pipeline Status Gitlab Pipeline Status
Commits GitHub last commit (master) GitHub last commit (develop)

This is a small project that aims to gather some knowledge about game development and make it available to everyone.

As well as being a source of knowledge this project aims to be a learning experience for everyone involved too, by gathering contributions from the community, teaching others how to make a game, teaching algorithms but also learning tips and tricks from people who are more experienced.

Looking for contributors!

Hi! Penaz here.

After over 190 pages of content, I am reaching the point where I poured the majority of my knowledge inside this e-book, and simplifying and explaining takes away a lot of time. With the little time I have, research can only get me so far.

I'd love to translate the currently available listings in (decently written) C++ and (separately) Lua, as well as add new algorithms, containers, tips and tricks and design patterns. Though my work leaves me very little free time to study and re-work things in a more understandable way.

If you are a programmer, game designer, game developer, artist, writer or game dev aficionado that wants to contribute to a completely free and open resource for new game developers that want to start seriously; feel free to fork the repository and pour your knowledge in this magic soup that is this book!

I'm more than happy to take a look at pull requests, it would be a honor.

Also remember to put yourself in the CONTRIBUTORS section!

If instead there is something unclear about the book, or something you would like to see added, drop by the ISSUES section and leave a ticket there, I will try to fix it, or at least add a placeholder for the future.

Thank you for reading.

Getting the book

This repository is configured to automatically build a PDF file at each push on the master branch, both on GitLab (Via its own integrated CI/CD System) and GitHub (via Travis-CI).


Link to the GitLab Repository

You can get a copy of the book by clicking on the "Download" button (usually on the right of the "Find File" button), then click on "build_pdf" under "Previous Artifacts": an "" will be downloaded, containing the latest version of the book.


Link to the GitHub Repository

You can get a copy of the book by clicking on the "Releases" button (usually between the "branches" and "contributors" buttons) and then select the latest tagged release.


Are you a game developer? A computer science student? Maybe you are an artist that wants to contribute by giving insight into pixel art or music creation?

Welcome aboard! You can contribute to this project by forking it and adding your own knowledge to it, after that you can create a pull request. Please check the contributing document.

Are you an user that would like to see something added to the book? Feel free to open an issue!

Building the book

To build the book you need the following software:

  • Pandoc
  • TexLive or equivalent
  • GNU Make or equivalent

Before building the book, you might want to set your programming language in the metadata.yaml file. The programming languages currently available are:

  • Pseudocode (which is the empty "" option)
  • Pseudocode with basic Syntax Highlighting (proglang set to "pseudocode")
  • Python 3 (proglang set to "python")

To Build the book you need to clone this repository and use the make command from the main directory.


The master branch is usually pretty much final (its contents will be expanded but probably not modified), while the develop branch is more up-to-date but its content is subject to change.


This project is meant to be a free source of knowledge for who wants to develop their first game (but also be a reference book you can come back to), currently this project is under the Creative Commons Attribution-NonCommercial License.

Why this license?

Because I want all contributions to be accessible by everyone for free but at the same time for the contributors to be given recognition, simple as that.

The chosen license is not a "Free Culture" license, but I want to protect the "free as in price" policy of this project, as well as the "free as in freedom" one. I feel this license is the best compromise.

You can’t perform that action at this time.