Hello GameDev!

In this blog post, I would like to document everything that I learned while making bad-flappybird. Though I might not have applied all the concepts perfect but I still learned a lot. I'll explain different concepts of C++, SFML & gamedev in general that I learned, one-by-one.

Frames per seconds/FPS

FPS or frames per seconds is decided by how much time it takes for the computer to compute & render everything for the frame. If it takes 0.1 seconds on average, then your game will have 10fps.

Another important concept related the fps is delta time which helps with keeping the game speed and other things consistent when fps changes/drops. I haven't study this yet.


ECS is a software architectural pattern used in most video games. In ECS, we separate the entities, components & systems. What are these, you may ask?

Entities are anything can be a seen, interacted or any object that can respond to player input or other entities.

Components are collection of specific type of data about entities. For example: CTransform, this component stores information about an entity's X & Y position and it's X & Y speed.

Systems on the other hand act on the information stored within said components and manipulate them.

Header files

We can make the so called header files in C & C++. In C, they are named '.h' & in C++, they are named '.hpp'. They are used to split the code in modules and separate the code in different file which helps in retaining sanity when the codebase becomes too large.

Preprocessor directive

#pragma once

Delta time

Delta time refers to the elapsed time between to consecutive frames in game or application, It is used to ensure smooth and consistent movement and animation, regardless of the current framerate ./p>