2D Game Development: From Zero To Hero

2D Game Development: From Zero To Hero

By Daniele Penazzo
Book Description

It's really common in today's game development scene to approach game development through tools that abstract and guide our efforts, without exposing us to the nitty-gritty details of how things work on low-level and speeding up and easing our development process. This approach is great when things work well, but it can be seriously detrimental when we are facing against issues: we are tied to what the library/framework creators decided was the best (read "applicable in the widest range of problems") approach to solving a problem.

Games normally run at 30fps, more modern games run at 60fps, some even more, leaving us with between 33ms to 16ms or less to process a frame, which includes:

- Process the user input;

- Update the player movement according to the input;

- Update the state of any AI that is used in the level;

- Move the NPCs according to their AI;

- Identify Collisions between all game objects;

- React to said Collisions;

- Update the Camera (if present);

- Update the HUD (if present);

- Draw the scene to the screen.

These are only some basic things that can be subject to change in a game, **every single frame**.

When things don't go well, the game lags, slows down or even locks up. In that case we will be forced to take the matter in our hands and get dirty handling things exactly as we want them (instead of trying to solve a generic problem).

When you are coding a game for any device that doesn't really have "infinite memory", like a mobile phone, consoles or older computers, this "technical low-level know-how" becomes all the more important.

This book wants to open the box that contains everything related to 2D game development, plus some small tips and tricks to make your game more enjoyable. This way, if your game encounters some issues, you won't fear diving into low-level details and fix it yourself.

Or why not, make everything from scratch using some pure-multimedia interfaces (like SDL or SFML) instead of fully fledged game engines (like Unity).

This book aims to be a free (as in price) teaching and reference resource for anyone who wants to learn 2D game development, including the nitty-gritty details.

Available here in python and pseudocode editions.

Get the latest version of this book and help improve it at  the GitLab Repository or the GitHub Repository.

Table of Contents
  • Foreword
  • Introduction
  • The Maths Behind Game Development
  • Some Computer Science Fundamentals
  • Project Management Basics and tips
  • Introduction to Game Design
  • Writing a Game Design Document
  • The Game Loop
  • Collision Detection and Reaction
  • Cameras
  • Game Design
  • Creating your resources
  • Procedural Content Generation
  • Useful Patterns, Containers and Classes
  • Artificial Intelligence in Videogames
  • Other Useful Algorithms
  • Developing Game Mechanics
  • Testing your game
  • Profiling and Optimization
  • Balancing Your Game
  • Marketing your game
  • Game Jams
  • Dissecting games: two study cases
  • Where To Go From Here
  • Glossary
  • Engines, Libraries And Frameworks
  • Some other useful tools
  • Free assets and resources
  • Contributors
The book hasn't received reviews yet.
You May Also Like
Also Available On
Curated Lists