{"repo":"yig/GMU-CS425","free":true,"listed":false,"github":"https://github.com/yig/GMU-CS425","clone":"git clone https://github.com/yig/GMU-CS425.git","description":"A guide to making a game engine from scratch in modern C++","language":"CMake","stars":44,"topics":["cpp","cpp17","cross-platform","game","game-engine"],"license":null,"category":"game-templates","readme_excerpt":"IllEngine In this class you will make your own game engine from scratch. Table of Contents - IllEngine - Table of Contents - Platform setup - Making a project - Some useful CMake commands: - Setting up version control - Checkpoint 1 Upload - Starting your engine - Digression on C++ Software Design - Back to the Engine: Declaring Common Types - What is the Engine? - The GraphicsManager - Checkpoint 2 Upload - Detecting input - Checkpoint 3 Upload - Resources and the Resource Manager - Extensions - Sound Manager (optional, bonus) - Graphics - Startup - Loading data - Drawing - Making the Uniforms struct - Sorting the sprites - Drawing a sprite - Cleaning up - Extensions - Gotchas - Checkpoint 4 Upload - Scripting - Checkpoint 5 Upload - Game Objects (Entity Component System) - Components - Entities - Systems - Requirements - Implementation Possibility - Extensions - Checkpoint 6 Upload - What's Next? - ChangeLog Platform setup The first thing we need is a compiler and build system. In this class, we will use CMake as our build system. CMake is a popular, cross-platform build system. Modern CMake is actually pretty nice and worth learning. (We'll avoid the older, gross bits as much as possible.) With CMake, we can use FetchContent as a sort of distributed package manager. To install CMake: On Windows, you can download the CMake installer from the official website. You should also install the C++ CMake tools for Windows as part of Visual Studio. Then you can open a folder with a ","default_branch":null,"files":null,"tree":[],"storefront":"/r/yig","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/yig/GMU-CS425/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}