How To Begin With C++

How To Make A Rasberry Pi  Recipe On Mobile – Simple Project Using C++ Programming Compiler On Android.

CppDroid App
Solo App

How To Be A Begin With C++

The beginner series is meant to teach fundamental C++ programming concepts. It also covers some basic graphics programming theory. Also: making shitty little games. It is suitable even for those with zero programming experience. If this ain’t your first rodeo, you can use this page to jump through the lessons, skipping any B.S. you already know.

C++ Language – Procedural Basics

Basic variables (int,bool,float), constant specifier, auto

Type casting (c-style (type) cast)

Basic arithmetic operations (+, -, /, *, %, precedence (), assignment += etc.,++/– )

Conditionals (if… else, switch…case)

Boolean logic operations (||, &&, !)

Comparisons (>, <, ==, <=, >=, !=)

Loops (while, for, do…while, range-based for)

Writing functions / function parameters / return values / overloading functions

References & / pass by reference-vs-pass by value

Arrays [ ]

struct (and its difference from class)

enum class

namespace / using

Forward declaration of classes to break circular #include cycles

Uniform initialization of classes / structs with {}

C++ Language – Object Oriented Basics

Creating objects, calling member functions

Creating classes, data members, and member functions

public / private member access / encapsulation and data hiding

const /non-mutating member functions

Writing constructors / initializing embedded objects

Default (automatic) constructor / = default;

Delegating constructors

static member variables / static constexpr member variables

Nested classes

Forward declaration to break circular dependencies

Implementing operators for classes

C++ Language – Standard Library

Rng <random> std::mt19973 / uniform_distributions

Utility functions std::min / std::max / std::swap

Math functions std::abs / std::sqrt

Measuring time <chrono> std::chrono::steady_clock / duration

Assertions <assert.h>

Chili Framework

Gfx: putpixel/screenwidth/height

Color: getting/setting RGB color components

Mouse/kbd: input (polled and event-driven)

Sound: loading and playing sounds

Game Programming Concepts

Game loop / frame based animation

Grid coordinate systems and mappings

Variable (measured) time step and fixed time step

Basic rectangle collision detection and handling

General Programming Techniques


Managing a partially-filled array

Mapping a 2D array onto a 1D array

Graphics Concepts

Compiled sprite

Drawing filled rectangles and filled circles

Drawing beveled graphics

Pulsating color animation effect

Math / Physics Concepts

Position / velocity / acceleration

Rebounding off of a vertical/horizontal surface

Basic vector math (vector add/sub/scale/length/normalize)

Other Skills

Basic visual studio IDE usage & navigation

Visual studio debugger

Git + MSVC

Basic understanding of compiler, linker, .h/.cpp files, .lib/.obj files

Using regex find/replace in visual studio


This series is a reboot of Chili’s original beginner series launched back in 2012 (ah, the good old days). The way that Direct3D applications are built and the tools used have changed over the last 5 or so years, and the reboot updates the tutorials to reflect those changes. It also corrects some mistakes that were made, and is reworked to shorten the journey to hardware 3D graphics programming and to introduce object-oriented programming at an earlier stage.

#CPlusPlus #RasberryEdible #CppDroid