Learning DirectX 12 in 2023

This page summarizes the projects mentioned and recommended in the original post on dev.to

InfluxDB - Power Real-Time Data Analytics at Scale
Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
www.influxdata.com
featured
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured
  • DirectXTK12

    The DirectX Tool Kit (aka DirectXTK12) is a collection of helper classes for writing DirectX 12 code in C++

  • DirectXTK 12 (includes SimpleMath and other goodies)

  • DirectXTK

    The DirectX Tool Kit (aka DirectXTK) is a collection of helper classes for writing DirectX 11.x code in C++

  • DirectXTK 12 (includes SimpleMath and other goodies)

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

    InfluxDB logo
  • DirectXShaderCompiler

    This repo hosts the source for the DirectX Shader Compiler which is based on LLVM/Clang.

  • DirectX Shader Compiler

  • DirectXTex

    DirectXTex texture processing library

  • DirectXTex

  • D3D12MemoryAllocator

    Easy to integrate memory allocation library for Direct3D 12

  • D3D12 Memory Allocator

  • DirectX-Graphics-Samples

    This repo contains the DirectX Graphics samples that demonstrate how to build graphics intensive applications on Windows.

  • I eventually moved on to the official DirectX 12 Graphic Samples, which had isolated examples that were easier to learn from incrementally. The “Hello World” sample is the best starting point to get the renderer setup with a triangle. This repo is a great reference when you need to verify process and structure (like the order of operation of APIs). Whenever I had a strange bug in my app, I’d go back to these examples to do a diff and see what I was missing.

  • directx12-seed

    ✖🌱 A DirectX 12 starter repo that you could use to get the ball rolling.

  • I’ll be honest, this also was nice - but didn’t do a good job of explaining relationships between parts of the pipeline. It’s likely because they also have a book you can buy that goes into more detail. I also had issues spinning up the directx12-seed repo. Since my PC / graphics card doesn’t support all the DX12 features (like raytracing), the app would error out instead of running. As someone new to DirectX 12, stuff like this is an immediate productivity killer.

  • SaaSHub

    SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives

    SaaSHub logo
  • LearnOpenGL

    Code repository of all OpenGL chapters from the book and its accompanying website https://learnopengl.com

  • ☑ Learn the basics of graphics programming. From transformation matrices, to vertices, to techniques like depth buffers or shadow maps — these are all things you’ll exercise in DirectX 12 and previous experience with a simpler API (like OpenGL) would make the process easier. I recommend following the tutorials on the Learn OpenGL website, it does a great job of going over each concept and explaining them with visual diagrams.

  • DirectXMath

    DirectXMath is an all inline SIMD C++ linear algebra library for use in games and graphics apps

  • Alongside MiniEngine, you’ll want to look into the DirectX Toolkit. This is a set of utilities by Microsoft that simplify graphics and game development. It contains libraries like DirectXMesh for parsing and optimizing meshes for DX12, or DirectXMath which handles 3D math operations like the OpenGL library glm. It also has utilities for gamepad input or sprite fonts. You can see a list of the headers here to get an idea of the features. You’ll definitely want to include this in your project if you don’t want to think about a lot of these solved problems (and don’t have to worry about cross-platform support).

  • GLM

    OpenGL Mathematics (GLM)

  • Alongside MiniEngine, you’ll want to look into the DirectX Toolkit. This is a set of utilities by Microsoft that simplify graphics and game development. It contains libraries like DirectXMesh for parsing and optimizing meshes for DX12, or DirectXMath which handles 3D math operations like the OpenGL library glm. It also has utilities for gamepad input or sprite fonts. You can see a list of the headers here to get an idea of the features. You’ll definitely want to include this in your project if you don’t want to think about a lot of these solved problems (and don’t have to worry about cross-platform support).

  • Xbox-GDK-Samples

    Game development samples published by the Xbox Advanced Technology Group using the Microsoft GDK.

  • The DXTK also has a great tutorial series on creating a game loop that breaks down the DX12 pipeline through the process. They also have a repo with Xbox game SDK samples (not games — but features you’d use in games like gamepad input).

  • Cauldron

    A simple framework for rapid prototyping on Vulkan or Direct3D 12

  • Cauldron is a 3D render engine framework that uses DirectX 12 or Vulkan as the backend. It was built by AMD for internal prototypes and projects. You use it like a static library and import it into your existing C++ app to use as a framework. It was built first using DirectX 12, then Vulkan support added later, so great project to analyze from that perspective.

  • UnrealEngine

  • If you sign up to become a Unreal Engine developer (which is free), you can get access to the engine’s source code on Github. This would probably be best saved for the end of your studies because this is like asking someone to learn by reading a book on rocket science right off the bat. There are much better and simpler resources that break down features inside Unreal Engine (like the video series above!).

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts

  • How to handle multithreading in concept.

    2 projects | /r/gamedev | 27 Dec 2021
  • I need help to make SSE Display Tweaks work.

    1 project | /r/skyrimmods | 9 Oct 2023
  • Need help converting wav files to XWB without the wav file names being changed

    1 project | /r/Modding | 2 Jul 2023
  • Flight Mechanics

    1 project | /r/Starfield | 20 Jun 2023
  • Total FPS & Performance mods for Console

    1 project | /r/Fallout4ModsXB1 | 20 Mar 2023