programming-awesome-list
A curated list of useful tools, libraries, resources all around the topic of game development / game programming for the Games course at Breda University of Applied Sciences.
https://github.com/BredaUniversityGames/programming-awesome-list
Last synced: 15 days ago
JSON representation
-
Engines Plugins
-
Unreal Engine Plugins
-
-
Libraries & Frameworks:
-
C#
- Unity's DOTS
- Svelto.ECS - Svelto ECS C# Lightweight Data Oriented Entity Component System Framework
- Entitas-CSharp - Entitas is a super fast Entity Component System (ECS) Framework specifically made for C# and Unity
-
C/C++
- ENet - order delivery of packets.
- ValveSoftware/GameNetworkingSockets
- Message oriented networking library using TCP transport.
- librg - header cross-platform world replication in pure C99.
- ENet - order delivery of packets.
-
C Interface languages
- zig - purpose programming language and toolchain for maintaining robust, optimal, and reusable software. Can bind to C / C++
- vlang
- Odin
- How to bind to C
-
ECS
-
Graphics
- stb_image.h
- stb_image_write.h
- Dear IMGUI
- sokol - style cross-platform libraries for C and C++, written in C.
- bgfx - platform, graphics API agnostic, "Bring Your Own Engine/Framework" style rendering library.
- DirectXShaderCompiler
- Assimp - Asset-Importer-Library Repository. Loads 40+ 3D-file-formats into one unified and clean data structure.
- DiligentEngine - platform low-level graphics library and rendering framework
- Vulkan Memory Allocator
- Directx12 Memory Allocator
- FidelityFX - based features aimed at improving rendering quality and performance.
- rust-gpu - Making Rust a first-class language and ecosystem for GPU code
- egui - egui: an easy-to-use immediate mode GUI in pure Rust
- gpu-allocator - Memory allocator written in Rust for Vulkan and DX12
- rspirv-reflect - SPIR-V reflection library written in Rust
- hassle-rs - Rust bindings for the DirectXShaderCompiler library
- blue-noise-sampler - Low-Discrepancy Sampler that distributes Monte Carlo errors as a blue noise in screen space.
- windows-rs - Windows bindings for rust
-
JSON, XML
- rapidjson
- PugiXML - weight, simple and fast XML parser for C++ with XPath support
- JsonCpp
- tmxlite
- nlohmann/json
-
Math
-
Other
- Libclang for Python
- fmod
- OpenAL - platform three-dimensional audio API.
- Rttr
- copperspice
- SFML
- Steamworks SDK
- F14 Hash Table
- BabylonJS - About
- ThreeJS - JavaScript 3D library.
- Steamworks wrapper for Unity / C#
- stb - file public domain libraries for C/C++
- cereal
- spdlog
- STX - handling and utility extensions
- C++ frame profiler
- Scope Guard & Defer C++
- fmt
- quill
- rocket - Fast single header signal/slots library for C++
- cxxopts
- cgltf - file glTF 2.0 loader and writer written in C99
- tinygltf
- EASTL
- abseil
- folly
- Guidelines Support Library
- eventpp
- cli
- Portaudio - platform, open-source, audio I/O library.
- Portaudio - platform, open-source, audio I/O library.
-
Physic
- Box2D
- projectchrono - physics Simulation Engine
- ReactPhysics3D
- PhysX
-
rust
- libpnet/libpnet - platform, low level networking
- smoltcp-rs/smoltcp - driven TCP/IP stack that is designed for bare-metal, real-time systems
- tokio-rs/tokio
- dylanmckay/protocol
- actix/actix
-
Scripting Languages
- wren - minimal scripting language OOP
- Sol2 Lua binding - a C++ <-> Lua API wrapper with advanced features and top notch performance
- ChaiScript
- lua
-
-
Other (Awesome) lists
-
Courses
- Memory Managment
- Magic Tools - A Game Programming list
- Unity List
- Game Talks
- Memory Performance Tools
- Atomics, lock free, memory model
- Memory Bus
- Awesome CMake
- The Aggregate
- Awesome Entity Component System
- C++ Links a link collection by MattPD
- gamedev libraries
- shafik/cpp_youtube_channels
- shafik/cpp_blogs
-
-
Resources
-
Articles / Papers
- Moving Frostbite to Physically Based Rendering 3.0
- Advances in Real-Time Rendering in 3D Graphics and Games
- Linear Interpolation
- Pixels? Triangles? What’s the difference? — How (I think) Nanite renderes a demo with 10¹¹ tris
- Vulkan Shader Resource Binding
- Tutorials and Documents by Anders Lindqvist
- Publications by Peter-Pike Sloan
- Advanced Shader Programming on GCN
- Understanding Data Oriented Design
- Entities, Components and Systems
- Why Vanilla ECS is not enough
- Formalisation of Concepts behind ECS and Entitas
- Entity Component System and Rendering
- Specs and Legion, two very different approaches to ECS
- Archetypes and Vectorization
- ECS back & forth
- Sparse Set
- Hibitset
- Perlin Noise
- Perlin Noise
- Open-sourcing F14 for faster, more memory-efficient hash tables
- CPU Caches and Why You Care
- Physics Info
- Visualizing the GJK Collision detection algorithm
- Geometrics
- Lockstep multiplayer first steps
- Let’s Build A Simple Interpreter. Part 1.
- craftinginterpreters
- Getting started Libclang
- retro game dev gba tutorials
- AddressSanitizer for Windows: x64 and Debug Build Support
- Bit-level operations – bit flags and bit masks
- Multithreading - C++17 and C++20
- Multithreading - Memory Model
- Multithreading - Applications
- How to debug in rust with VS Code
- Using Git Sparse Checkout
- How C++ Resolves a Function Call
- HOW TO IMPLEMENT A NODE-BASED SCRIPTING LANGUAGE
- HOW TO IMPLEMENT A NODE-BASED SCRIPTING LANGUAGE
- ECS Faq - Frequently asked questions about Entity Component Systems
- HOW TO IMPLEMENT A NODE-BASED SCRIPTING LANGUAGE
- Multithreading - C++17 and C++20
- Multithreading - Memory Model
- Multithreading - Applications
- shafik/cpp_learning
- Formalisation of Concepts behind ECS and Entitas
- Archetypes and Vectorization
- realtimerendering: intersections
-
Books
- Ray tracing in a weekend
- Data-Oriented Design Book
- Open Data Structures
- Mazes for programmers
- Raytracing Gems
- Real-Time Rendering
- Calculus Volume 1
- Mastering C++ Multithreading
- Network Programming with Rust
- Multiplayer Game Programming: Architecting Networked Games
- The Fundamentals of C/C++ Game Programming: Using Target-based Development on SBC's
- Volume 4: Physics
- Effective Modern C++ by Scott Meyers
- Mazes for programmers
- Network Programming with Rust
- The Fundamentals of C/C++ Game Programming: Using Target-based Development on SBC's
- Mastering C++ Multithreading
-
Courses
- Jenkins Essential Training (linkedin)
- Programming Natural-Simulations
- Trigonometry - khanacademy
- Geometry - khanacademy
- Precalculus - khanacademy
- Linear-Algebra - khanacademy
- Calculus AB - khanacademy
- Calculus BC - khanacademy
- Refresher Physics khanacademy
- Physics 1 khanacademy
- Network Programming with Rust: The Course Overview | packtpub.com
- Network Programming with Rust: The Course Overview | packtpub.com
- Jenkins Essential Training (linkedin)
-
Videos
- Winding Road Ahead: Designing Utility AI with Curvature
- Introduction to Computer Graphics
- Cᐩᐩ Weekly With Jason Turner
- Meeting C++
- Cpp Now
- CopperSpice
- Building a C++ Reflection System in One Weekend Using Clang and LLVM - Arvid Gerstmann
- CppCon 2018: Jonathan Boccara “105 STL Algorithms in Less Than an Hour”
- GDC Vault
- Adopting Continuous Delivery (In Sea of Thieves) - GDC talk
- Horizon Zero Dawn: A QA Open World Case Study - GDC talk
- https://www.youtube.com/watch?v=SHinxAhv1ZE
- Math for Game Programmers: Fast and Funky 1D Nonlinear Transformations
- Build Great Tools: Workflow Guidelines from Vicarious Visions - UI / UX For tools programming
- Overwatch Gameplay Architecture and Netcode
- Data-Oriented Design and C++
- CPU caches and why you care
-
Programming Languages
Categories
Sub Categories
Keywords
game-development
11
gamedev
11
rust
10
cpp
10
c-plus-plus
9
game-engine
8
header-only
8
vulkan
6
ecs
5
cplusplus
4
modern-cpp
4
cross-platform
4
cpp17
4
directx
4
entity-component-system
4
cpp11
4
networking
4
awesome-list
4
android
3
library
3
performance
3
data-oriented
3
data-oriented-design
3
no-dependencies
3
directx12
3
gltf
3
c
3
unity
3
opengl
3
d3d12
3
games
3
cpp-library
2
clang
2
production-ready
2
asynchronous
2
cpp20
2
game-programming
2
gamedev-library
2
gamedevelopment
2
windows
2
list
2
gltf2
2
awesome
2
simd
2
d3d11
2
cpp14
2
c99
2
stl
2
c-plus-plus-11
2
profiler
2