Skip to content

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.

License

Notifications You must be signed in to change notification settings

BredaUniversityGames/programming-awesome-list

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

27 Commits
 
 
 
 

Repository files navigation

BUas Game 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.

Content

Tools

Libraries & Frameworks:

Graphics

C / C++

  • Dear IMGUI the immediate mode GUI
  • sokol Simple STB-style cross-platform libraries for C and C++, written in C.
  • bgfx (Bring Your Own Engine/Framework) Cross-platform, graphics API agnostic, "Bring Your Own Engine/Framework" style rendering library.
  • stb
  • DirectXShaderCompiler This repo hosts the source for the DirectX Shader Compiler which is based on LLVM/Clang.
  • Assimp The official Open-Asset-Importer-Library Repository. Loads 40+ 3D-file-formats into one unified and clean data structure.
  • DiligentEngine A modern cross-platform low-level graphics library and rendering framework
  • Vulkan Memory Allocator Easy to integrate Vulkan memory allocation library
  • Directx12 Memory Allocator Easy to integrate directx12 memory allocation library, from the creators of Vulkan Memory Allocator.
  • FidelityFX Optimized shader-based features aimed at improving rendering quality and performance.

rust

  • 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.
  • ash - Vulkan bindings for rust
  • windows-rs - Windows bindings for rust

ECS

C / C++

  • EnTT - Gaming meets modern C++ - a fast and reliable entity component system (ECS) and much more
  • flecs -A fast entity component system (ECS) for C & C++
  • EntityX

rust

  • bevy Engine but ECS driven
  • legion High performance Rust ECS library

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

Scripting Languages

  • wren - minimal scripting language OOP
  • lua
    • Sol2 Lua binding Sol3 (sol2 v3.0) - a C++ <-> Lua API wrapper with advanced features and top notch performance
  • ChaiScript

C Interface languages

  • rust
  • zig Zig is a general-purpose programming language and toolchain for maintaining robust, optimal, and reusable software. Can bind to C / C++
  • vlang Simple, fast, safe, compiled. For developing maintainable software. Can compile to c
  • Odin

Math

C++

JSON, XML

C++

  • PugiXML Light-weight, simple and fast XML parser for C++ with XPath support
  • JsonCpp A C++ library for interacting with JSON.
  • tmxlite lightweight C++14 parser for Tiled tmx files
  • nlohmann/json JSON for Modern C++ (not very fast but simple)
  • rapidjson fast but complicated JSON lib

Physic

C++

  • Box2D A 2D Physics Engine for Games
  • PhysX NVIDIA PhysX SDK
  • projectchrono An Open Source Multi-physics Simulation Engine
  • ReactPhysics3D C++ physics engine library for 3D simulations and games

AI

nothing yet

Networking

C/C++

rust

  • libpnet/libpnet — A cross-platform, low level networking
  • smoltcp-rs/smoltcp — A standalone, event-driven TCP/IP stack that is designed for bare-metal, real-time systems
  • tokio-rs/tokio — A network application framework for rapid development and highly scalable production deployments of clients and servers.
  • dylanmckay/protocol — Custom TCP/UDP protocol definitions
  • actix/actix — Actor library for Rust

Other

C# / Unity

C / C++

  • fmod proprietary audio lib
  • Portaudio PortAudio is a free, cross-platform, open-source, audio I/O library.
  • OpenAL OpenAL is a cross-platform three-dimensional audio API.
  • Asio Asio is a cross-platform C++ library for network and low-level I/O programming that provides developers with a consistent asynchronous model using a modern C++ approach.
  • stb stb single-file public domain libraries for C/C++
  • cereal A C++11 library for serialization
  • Rttr C++ Reflection Library
  • spdlog Fast C++ logging library.
  • copperspice Like QT but OpenSource, GUI library
  • SFML Simple and Fast Multimedia Library, Easy for quick prototyping
  • Steamworks SDK
  • STX C++17 & C++ 20 error-handling and utility extensions
  • C++ frame profiler C++ frame profiler
  • Scope Guard & Defer C++
  • fmt A modern formatting library
  • quill Asynchronous Low Latency C++ Logging Library
  • rocket rocket - Fast single header signal/slots library for C++
  • cxxopts Lightweight C++ command line option parser
  • cgltf Single-file glTF 2.0 loader and writer written in C99
  • tinygltf Header only C++11 tiny glTF 2.0 library
C++ Common Libs
  • EASTL Electronic Arts Standard Template Library. It is an extensive and robust implementation that has an emphasis on high performance.
  • abseil Googles C++ STD extensions (fast hasmaps)
  • folly Facebook's C++ STD extensions (fast hashmaps)
  • Guidelines Support Library The Guidelines Support Library (GSL) contains functions and types that are suggested for use by the C++ Core Guidelines maintained by the Standard C++ Foundation. This repo contains Microsoft's implementation of GSL. (C++14)
  • eventpp Event Dispatcher and callback list for C++
  • cli A library for interactive command line interfaces in modern C++

Web Technolgy

  • BabylonJS -About Babylon.js is a powerful, beautiful, simple, and open game and rendering engine packed into a friendly JavaScript framework.
  • ThreeJS - JavaScript 3D library.

Engines Plugins

Unreal Engine Plugins

Unity Plugins

Resources

Videos

AI

Graphics

C++

Game Dev

Data Oriented Design

Network

CMake

Computer Siences

Others

Books

Articles / Papers

Graphics

Data Oriented Design

Algorithms, Data Structures

Physics

Networking & Enycription

Others

Websites, Blogs, Webtools

Algorithms, Data Structures

C++

Rust

Graphics

Web tools

  • Compiler Explorer - lets you compile many different languages such as C,C++ or rust and inspect the Assembly or test
  • CPP Insights - Shows you what the compiler does with your C++ code. How does a for each loop looks to the compiler?
  • Quick Benchmarks Quick benchmarks online
  • Quick Builld Check build times of your code
  • Shader Toy Play with shaders in the browser
  • Shader Playground - lets you compile HLSL with different compilers and inspect the intermediate format

Others

Courses

Other (Awesome) lists

About

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.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published