Code of the Game Programming in C++ book. Complete OpenGL 3D tutorial code and samples to use as a learning resource. Including basic shader code examples too.

#gamedev #example #cpp #opengl #engine #tutorial #c++ #library #framework #starter #glsl #shaders #gl #3d #2d

Sanjay Madhav ec2086dc08 Added testBFS and changed BFS to use map for data 8 gadi atpakaļ
Chapter01 ab0e6a19a7 Minor changes 8 gadi atpakaļ
Chapter02 1273bf289e Fixed window name typo for chapter 2 8 gadi atpakaļ
Chapter03 481d2c7120 Chapter 3 done (windows) 8 gadi atpakaļ
Chapter04 ec2086dc08 Added testBFS and changed BFS to use map for data 8 gadi atpakaļ
External 61add41043 Fixed FMOD version reference in readme 8 gadi atpakaļ
.gitignore 7d78c7be94 Added gitignore 8 gadi atpakaļ
LICENSE 87bace1813 Update LICENSE 8 gadi atpakaļ
README.md 61add41043 Fixed FMOD version reference in readme 8 gadi atpakaļ

README.md

Game Programming in C++ Code

This repository contains the source code for Game Programming in C++ by Sanjay Madhav.

The source code for the chapters is released under the BSD 3-clause license. See LICENSE for more detail. Note that this license does not apply to the code in the External directory. Each External project is licensed separately.

Building the Code

Each chapter's code is tested and works on both Microsoft Windows and Apple macOS.

To compile on Windows, install Microsoft Visual Studio 2017 Community (https://www.visualstudio.com/downloads/). During installation, select the "Game Development in C++" workflow. In each Chapter directory, there is a corresponding ChapterXX-windows.sln file to open.

To compile on macOS, install Xcode from the App Store. Each chapter has a corresponding ChapterXX-mac.xcodeproj file.

Code for Chapter 7 and beyond uses the FMOD API for audio. This requires a separate installation from (https://www.fmod.com/download). Download and install version 1.09.x of the FMOD Studio API (newer versions are untested). On Windows, install FMOD to the default directory. On Mac, copy the contents of the FMOD package into External/FMOD.