https://github.com/codenameyau/game-engine-architecture
:beginner: Learning how to design 3D game engines
https://github.com/codenameyau/game-engine-architecture
Last synced: 9 months ago
JSON representation
:beginner: Learning how to design 3D game engines
- Host: GitHub
- URL: https://github.com/codenameyau/game-engine-architecture
- Owner: codenameyau
- License: mit
- Created: 2014-07-01T20:43:36.000Z (about 12 years ago)
- Default Branch: master
- Last Pushed: 2014-07-05T18:14:32.000Z (almost 12 years ago)
- Last Synced: 2025-03-24T15:12:07.475Z (over 1 year ago)
- Language: C++
- Homepage:
- Size: 184 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
game-engine-architecture
========================
Learning how to design 3D game engines from the book *Game Engine Architecture* by Jason Gregory and from
[thebennybox's Java tutorials](https://www.youtube.com/playlist?list=PLEETnX-uPtBXP_B2yupUKlflXBznWIlL5).
This repository contains updates and notes as I learn along and
code my own examples. After each chapter, these notes will
be moved to this repo's wiki.
###What is a Game Engine?
A game engine is a software development kit that allows programmers to reuse
and modify the code and resources of a game in a similar genre. Game engines often
hide the underlying communication to hardware and graphics cards, and
provide APIs to abstract away many difficult or common low-level tasks.
[List of Game Engines on Wikipedia](https://en.wikipedia.org/wiki/List_of_game_engines)
###Basic Implementation Outline
####Core Engine and Input
* Core Engine - FPS monitering, updates, rendering loop
* Keyboard Input - Key codes, key press, key hold, key release
* Mouse Input - Mouse codes, mouse click, mouse hold, mouse release
* Resource Loader - Load external data (images, text)
####Mathematical Mechanics
* Vector2 - length, dot product, normalize, rotate, operations
* Vector3 - Similar to Vector2 but with cross product
* Matrix4 - Identity, transpose, multiplication
* Quaternion - Vector4 with imaginary components, conjugate, multiplication
####Rendering Mechanics
* Functions - Clearing screen
* Initialize Graphics - Geometry faces, auto gamma correction, z-depth
* Components - Vertex, Triangle Face, and Mesh
####Rendering Operations
* Shaders and GLSL - Vertex and fragment shaders
* Shader Variables - Uniform, varying, attribute
* Transformation - translation, rotation, scale