Skip to content

Instantly share code, notes, and snippets.

@mmj-the-fighter
Last active December 4, 2023 04:29
Show Gist options
  • Save mmj-the-fighter/a7887c4e0924d12f483d4471abc45440 to your computer and use it in GitHub Desktop.
Save mmj-the-fighter/a7887c4e0924d12f483d4471abc45440 to your computer and use it in GitHub Desktop.
//Copyright © 2010 - 2021 Manoj M J
//All Rights Reserved
[Game Development]
[Foundations]
[TOC]
Introduction
Platforms
Programming
Mathematics
Computer Graphics
Multimedia
Computational Geometry
Game Physics
Artificial Intelligence
Multiplayer Game Programming
Game Programming
Game Engine Programming
Digital Content Creation Tools
Game Design
References
Introduction
The spirit
Milestones in the history of game development
Genres
Action
Adventure
Strategy
Sports
Simulation
Text based games
Sound based games
2D games
3D games
2.5D games
Console games
PC games
Mobile games
Browser games
Multiplayer LAN games
Online games
Multiplayer Online games
Augumented reality games
Virtual reality games
Platforms
Computer Organization and Architecture
Graphics Hardware
I/O Devices
Operating Systems
Application Programming Interfaces
Tools
Libraries
Frameworks
Software Development Kits
The Graphics Stack
Windowing System
SceneGraph API
Low level Graphics API
Graphics Driver
Graphics Processing Unit
PCs
Consoles
Mobiles
Programming
Machine Code
Assembly Language
Low Level Languages
High Level Languages
Paradigms
Declarative
Functional
Imperative
Procedural
Object Oriented
Generic
Logic
Concurrent
Structured Programming
Sequence
Selection
Iteration
Functions
Argument Passing
Call by value
Call by reference
Recursive Calls
Object Oriented Programming
Encapsulation
Information hiding
Data abstraction
Abstract Data Type
Inheritance
C++ Virtual base classes
Polymorphism
C++ Virtual functions and Function overriding
C++ Function overloading
C++ Operator overloading
Runtime type identification
C++ RTTI
Genericity
C++ Templates
C++ Template meta programming
Concurrency
Threads
Tasks
Synchronization
Parallelism
Persistance
Serialization of objects
Remote Procedure Call
Garbage collection
Smart Pointers
Data structures and Algorithms
Arrays
Linked Lists
Stacks
Queues
Sets and Multisets
Trees
Binary Trees
Binary Search Trees
Balancing Trees
Multiway Trees
Maps and Dictionaries
Hashmap
Red-Black Tree
Heaps
Priority Queue
Tries
Graphs
Searching
Shortest paths
Algorithm Analysis
Time and Space Complexity
Algorithm Design Strategies
Divide and Conquer
Greedy Method
Dynamic Programming
Backtracking
Branch and Bound
Randomized Algorithms
Well known algorithms
Sorting
Searching
Graph Algorithms
Standard Template Library
Object Oriented Design
Universal Modelling Language
Design Patterns
Best Practices
Efficiency
Assembly code
Optimization
Tools
Compilers
Build Scripts
Text Editors
IDEs
Version Control Systems
Libraries
Statically linked
Dynamically linked
Toolkits
Frameworks
Engines
SDKs
Mathematics
Algebra
Solution of Equations
Trigonometry
Cartesian Geometry
Calculus
Differentiation
Intergration
Partial Differentiation
Solving ODE
Solving PDE
Multiple Integrals
Vector Calculus
Linear Algebra
Vectors
Matrices
Rays and Lines
Planes
Curves and Surfaces
Homogenous coordinates
Transformations
Modelling Transformations
Translation
Rotation
Scaling
Reflection
Shearing
View Transformation
Transforming Normals
Projection
Parallel Projection
Perspective Projection
Viewport Transformation
Concatenation of transformations
Picking in 3D
Texturing
Lighting and Shading
Complex Numbers
Quaternions
Tensors
Jacobians
Numerical Methods
Error Approximation
Interpolation
Curve Fitting
Numerical differentiation and integration
Random Number generation
IEEE floating point representation and rounding error
Computer Graphics
Window
Pixel and Framebuffer
Double buffering
2D Graphics Primitives
Point
Line
Rectangle
Polygon
Circle
Ellipse
Curve
Text
Image
Fractal
2D Transformations
2D Viewing
2D Clipping
Alpha
Transparency
Compositing
Filling
Stroking
Antialiasing
Gamma Correction
Transitions
Tiling
Sprites
Layering
Scrolling
2D Particle Effects
Triangular mesh
Vertices, Indices, Normals and Texture coordinates
Curved Surfaces
Materials
Textures
Rendering Pipeline
Tesselation and Geometry Shaders
Vertex and Fragment Shaders
Modeling Transformations
Viewing Transformation
Lighting
Different types of lights
Lighting models
Projection Transformations
Clipping
Perspective division
Backface culling
Viewport Transformation
Rasterization
Texture Sampling
Per Fragment operations
Stenciling
Depth test
Blending
Anti aliasing
Gamma correction
Ray tracing
Special Effects
Skybox
Fog
Transparency
Motion Blur
Reflection and Refraction
Shadows
Toon shading
Animation
Frame animation and Character animation
Morphing
Skinning
Animation Blending
Forward and Inverse Kinematics
Rendering Optimizations
View Frustum Culling
Space partitioning
Quadtree
Octree
BSP tree
Portals
Occlusion Culling
Level Of Detail Selection
Light mapping
Immediate mode Graphics APIs
OpenGL
DirectX
Vulkan
Multimedia
Compression
Filtering
Text
Fonts
Raster and Vector
Alignment
Zooming
Clipping
Image
Image processing
Computer vision
Audio
3D Sound
Sound effects
Video
Anti Aliasing
Computational Geometry
Primitives
Intersection Tests
Collision Detection
Narrow phase
Broad phase
Game Physics
Mechanics, Statics, Dynamics, Kinematics and Kinetics
Force
Laws of Motion
Physics Simulation
Euler Integration
Verlet Integration
Projectiles
Particle Systems
Rigidbody
Springs and Dampers
Contacts, Joints and Constraints
Cloth Simulation
Vehicle Dynamics
Fluid Dynamics
Physics Engines
Artificial Intelligence
Mini Max Search
State Machines
Behavior Trees
Steering Behaviors
Path Finding Algorithms
A*
Navigation Mesh
Neural Networks
Fuzzy Logic
Genetic Programming
Machine Learning
Multiplayer Game Programming
Data Communication
Computer Networks
Client Server Computing
Socket Programming
TCP/IP
UDP
Web technologies
Encryption
Database Management Systems
Multiplayer Games on LANs
Multiplayer Games on Internet
Massively Multiplayer Online Games Architecture
Game Programming
Game Main Loop
Multithreading
GameObject
Scene Graph System
Game Engine Programming ( Architecture, Design, Programming)
Performance measurement: Frames per second and other statistics
Camera Systems
First Person Camera
Third Person Camera
Animating Camera through a path
Digital Content Creation Tools
Features of a Text Editor Package
Features of a Font Editor Package
Features of a Vector Paint Package
Output primitives
Lines
Rectangles
Circles / Elipses
Splines
Features of an Image Editor Package
Common tasks in 2D game art creation
Creating Textures
Creating Backgrounds
Creating Tiles
Creating Sprites
Creating Icons
Creating User Interfaces
Creating Texture maps
Features of a Sprite Animation Builder Package
Features of a Modelling, Rendering and Animation Package
Common tasks in 3D game art creation
Creating Models
Animating Models
Rendering Models
Features of a Game Level Editor Package
Common tasks in Game Level creation
Features of a Sound Editor Package
Features of a Video Editor Package
Game Design
Psychology of the audience
References
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment