How can I get started with game/graphics programming using C++ and no engine?

This page summarizes the projects mentioned and recommended in the original post on /r/gamedev

Our great sponsors
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • WorkOS - The modern identity platform for B2B SaaS
  • SaaSHub - Software Alternatives and Reviews
  • LearnOpenGL

    Code repository of all OpenGL chapters from the book and its accompanying website https://learnopengl.com

  • I've spent several decades in-n-out trying to roll my own engines. Actually gave up ~16 years or so ago. Until the past few years, where my kid, started showing an interest in game development(not just design). We started off with Unity mostly, some UE work, but she preferred Unity cause it was simpler to her. Then she wanted to know more about the lower level stuff. We had some success utilizing learnopengl.com for the gfx and flecs(an ECS lib) as a basis for the engine logic. Her attention span is as short as mine, so that is as far as we've gotten. However; I did find learnopengl and flecs to be a nice pairing for a roll your own engine project.

  • raylib

    A simple and easy-to-use library to enjoy videogames programming

  • I would recommend using a simple framework, so you don't get too deep in learning a graphics api, without doinn anything with your game. Something like raylib is an easy way to get something on the screen and mess around with it, without using a fully featured engine.

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

    InfluxDB logo
  • SFML

    Simple and Fast Multimedia Library

  • For the start I'd recommend to get SFML, do some basic tutorials and make a simple game. This framework takes away a heavy lifting of window creation, input handling, rending and audio and allow to make games by drawing shapes etc. In addition check the Game Programming Patterns to learn about basics of game programming, like game loop, singletons, state machines and more. This should give you a rather smooth entry into the game programming :)

  • Godot

    Godot Engine – Multi-platform 2D and 3D game engine

  • My advice, if you REALLY want to get into writing engines in C++ - go look at Godot. It's fully open source and written in C++. It'll give you tons of stuff to look at and learn from - and when you're ready you can try implementing APIs for other things or create custom plugins.

  • game-programmer

    A Study Path for Game Programmer

  • This definitely helped me https://github.com/miloyip/game-programmer also learn-opengl.com

  • Cpp-Primer-5th-Exercises

    Solutions to Exercises in C++ Primer 5th Edition

  • I loved how it had plenty of varied exercises, and they were always at an appropriate difficulty level. As for solutions to the exercises, I found this GitHub repo helpful.

  • vulkan-guide

    Introductory guide to vulkan. (by vblanco20-1)

  • I prefer https://vkguide.dev/ and of course having the spec open while programming is a good idea: https://www.khronos.org/registry/vulkan/

  • WorkOS

    The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.

    WorkOS logo
  • C++ Format

    A modern formatting library

  • Understanding C also makes it FAR easier to reason about the run-time cost of code since you don't have potentially implicit information such as vtables, hidden this pointer dereferences, RTTI, dynamic casts, etc. C++ also performs like shit if you use the standard iostreams, hashing, etc. unless you use 3rd party replacements. Learning C first will lead to healthy skepticism instead of just blindly trust bloated, over-engineered libraries like Boost.

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts