Hello! This channel is for link-dropping of useful resources that can help others in their Game Dev journey. Don't hold conversations here, just drop a link to your resource and move on. Note: this isn't a channel for spam. If you are the creator of the resource, that's great! Mention it. But don't spam, mmmkay?
Note that the collection of things here was originally posted on the Discord server, although the orignal poster info hasn't been able to be retained in all cases.
Note that this will probably be edited over time and reorganized to be more digestible.
- For mathematical related topics: 3Blue1Brown (https://www.youtube.com/channel/UCYO_jab_esuFRV4b17AJtAw)
- 3Blue1Brown created a detailed video series for Quaternions (https://eater.net/quaternions)
- For those interested in learning OpenGL (Thanks Kalvin): http://www.opengl-tutorial.org/ (http://www.opengl-tutorial.org/)
- Vulkan tutorials (Thanks Razordor):
- https://software.intel.com/en-us/articles/api-without-secrets-introduction-to-vulkan-part-1 (https://software.intel.com/en-us/articles/api-without-secrets-introduction-to-vulkan-part-1)
- https://www.khronos.org/blog/beginners-guide-to-vulkan (https://www.khronos.org/blog/beginners-guide-to-vulkan)
- https://www.lunarg.com/learn-vulkan-api-lunarg-tutorial/ (https://www.lunarg.com/learn-vulkan-api-lunarg-tutorial/)
- (PsichiX) If anyone would ever had to play with some weird evolution-based AI concepts, here you can play with Psyche (it has C++ and C# bindings too):
- https://github.com/PsichiX/psyche (https://github.com/PsichiX/psyche)
- (https://raw.githubusercontent.com/PsichiX/psyche/master/media/psyche-demo-brain-activity.gif)
- (https://raw.githubusercontent.com/PsichiX/psyche/master/media/psyche-demo-spore.gif)
- https://github.com/nothings/stb (https://github.com/nothings/stb)
- https://github.com/nothings/single_file_libs (https://github.com/nothings/single_file_libs)
- Ever heard of a rubber duck for programming? http://duckie.me/ (http://duckie.me/)
- https://software.intel.com/en-us/articles/cache-blocking-techniques (https://software.intel.com/en-us/articles/cache-blocking-techniques)
- https://software.intel.com/sites/landingpage/IntrinsicsGuide/#expand=4538&text=adc (https://software.intel.com/sites/landingpage/IntrinsicsGuide/#expand=4538&text=adc)
- https://seblagarde.files.wordpress.com/2015/07/course_notes_moving_frostbite_to_pbr_v32.pdf (https://seblagarde.files.wordpress.com/2015/07/course_notes_moving_frostbite_to_pbr_v32.pdf)
- For anyone wanting to use OpenGL, do yourself a favor and print this off, or bookmark it:
https://www.khronos.org/files/opengl46-quick-reference-card.pdf (https://www.khronos.org/files/opengl46-quick-reference-card.pdf) - https://google.github.io/filament/Filament.html (https://google.github.io/filament/Filament.html) : official docs for Filament, a PBR Renderer by Google. This thing is a small book on its own. It dives into the working of the renderer, with to the point theory and code snippets. You can also dig into the source code to learn more about the implementation details. Definitely a must if you are looking into developing your own PBR Renderer.
- machine learning crash course:
https://developers.google.com/machine-learning/crash-course/ (https://developers.google.com/machine-learning/crash-course/) - AddyOsmani.com - Visualize Data Structures in VSCode
https://addyosmani.com/blog/visualize-data-structures-vscode/ (https://addyosmani.com/blog/visualize-data-structures-vscode/) - Leads for getting started with DirectX 11:
- https://youtube.com/playlist?list=PLqCJpWy5Fohd3S7ICFXwUomYW0Wv67pDD (https://youtube.com/playlist?list=PLqCJpWy5Fohd3S7ICFXwUomYW0Wv67pDD)
- https://www.3dgep.com/introduction-to-directx-11/ (https://www.3dgep.com/introduction-to-directx-11/)
- https://github.com/walbourn/directx-sdk-samples (https://github.com/walbourn/directx-sdk-samples)
- https://docs.microsoft.com/en-us/windows/win32/direct3d11/atoc-dx-graphics-direct3d-11 (https://docs.microsoft.com/en-us/windows/win32/direct3d11/atoc-dx-graphics-direct3d-11)
- https://gafferongames.com/post/fix_your_timestep/ (https://gafferongames.com/post/fix_your_timestep/)
- https://vkguide.dev/ (https://vkguide.dev/) A Vulkan tutorial that actually builds the beginnings of a well-formed engine, rather than the rigid and static tech demo that tutorials like Vulkan-Tutorial walk you through.
- advanced text to speech
https://developer.nvidia.com/blog/generate-natural-sounding-speech-from-text-in-real-time/ (https://developer.nvidia.com/blog/generate-natural-sounding-speech-from-text-in-real-time/) - https://docs.microsoft.com/en-us/windows/console/console-virtual-terminal-sequences#output-sequences (https://docs.microsoft.com/en-us/windows/console/console-virtual-terminal-sequences#output-sequences)
- Path tracing lectures: https://youtube.com/user/raviramamoorthi (https://youtube.com/user/raviramamoorthi)
- (statusactive1 on Discord) Here are some resources this time it is an entire playlist of mit computer science class on graphics I am gonna through it and I invite others to join as this is good material (https://www.youtube.com/playlist?list=PLQ3UicqQtfNuKZjdA3fY1_X9gXn13JLlW)
- Record your terminal the right way! https://asciinema.org/ (https://asciinema.org/)
- https://gabrielgambetta.com/computer-graphics-from-scratch/ (https://gabrielgambetta.com/computer-graphics-from-scratch/)
- Gridless pathfinding https://www.researchgate.net/publication/267405818_Direction_Oriented_Pathfinding_In_Video_Games (https://www.researchgate.net/publication/267405818_Direction_Oriented_Pathfinding_In_Video_Games)
- https://gpuopen.com/learn/understanding-vulkan-objects/ (https://gpuopen.com/learn/understanding-vulkan-objects/)
- https://www.cs.bham.ac.uk/~exr/lectures/opsys/10_11/lectures/os-dev.pdf (https://www.cs.bham.ac.uk/~exr/lectures/opsys/10_11/lectures/os-dev.pdf)
- Web tool for building pose references to ease drawing humanoids https://webapp.magicposer.com/ (https://webapp.magicposer.com/)
- (mathis on Discord) hands down the best talk on the fundamentals of lambda calculus: https://www.youtube.com/watch?v=3VQ382QG-y4 (https://www.youtube.com/watch?v=3VQ382QG-y4)
- neat little game design tool: https://www.puzzlescript.net/ (https://www.puzzlescript.net/)
- a website provides information about the creation of operating systems. https://wiki.osdev.org/Main_Page (https://wiki.osdev.org/Main_Page)
- Adding on to OS development, this is a pretty good tutorial on the subject:
https://www.udemy.com/course/developing-a-multithreaded-kernel-from-scratch/ (https://www.udemy.com/course/developing-a-multithreaded-kernel-from-scratch/) - https://enso.org/ (https://enso.org/)
- turing award lecture (about programming paradigms)
- https://www.ias.ac.in/article/fulltext/reso/010/05/0086-0098 (https://www.ias.ac.in/article/fulltext/reso/010/05/0086-0098)
- https://dl.acm.org/doi/pdf/10.1145/359576.359579 (https://dl.acm.org/doi/pdf/10.1145/359576.359579)
- Vulkan Subgroup Tutorial: https://www.khronos.org/blog/vulkan-subgroup-tutorial (https://www.khronos.org/blog/vulkan-subgroup-tutorial)
- Online tool based on paper that describes how to turn photos into anime-style backgrounds 🤔 https://animegan.js.org/ (https://animegan.js.org/)
- https://github.com/KhronosGroup/Vulkan-Guide (https://github.com/KhronosGroup/Vulkan-Guide)
- a specification language that can be used for specs of programming languages:
https://en.wikipedia.org/wiki/Vienna_Development_Method (https://en.wikipedia.org/wiki/Vienna_Development_Method) - parsing expression grammar: https://www.researchgate.net/publication/220997740_Parsing_Expression_Grammars_A_Recognition-Based_Syntactic_Foundation (https://www.researchgate.net/publication/220997740_Parsing_Expression_Grammars_A_Recognition-Based_Syntactic_Foundation)
- User Account Control for Game Developers (a.k.a. how to properly save game files):
https://docs.microsoft.com/en-us/windows/win32/dxtecharts/user-account-control-for-game-developers (https://docs.microsoft.com/en-us/windows/win32/dxtecharts/user-account-control-for-game-developers) - how to sign your app on windows:
https://docs.microsoft.com/en-us/dotnet/framework/tools/signtool-exe (https://docs.microsoft.com/en-us/dotnet/framework/tools/signtool-exe) - Real time GI: https://perso.telecom-paristech.fr/boubek/papers/FLC/ (https://perso.telecom-paristech.fr/boubek/papers/FLC/)
- Natural language processing research:
https://www.microsoft.com/en-us/research/group/natural-language-processing/#!publications (https://www.microsoft.com/en-us/research/group/natural-language-processing/#!publications) - How many frames a second do you need!? https://youtu.be/hjWSRTYV8e0 (https://youtu.be/hjWSRTYV8e0)
- https://github.com/cgag/loc/ (https://github.com/cgag/loc/)
- https://gigamonkeys.com/book/ (https://gigamonkeys.com/book/)
- http://siek.blogspot.com/ (http://siek.blogspot.com/)
- http://siek.blogspot.com/2012/07/crash-course-on-notation-in-programming.html (http://siek.blogspot.com/2012/07/crash-course-on-notation-in-programming.html)
- https://webgl2fundamentals.org/ (https://webgl2fundamentals.org/)
- The Next 700 Programming Languages:
https://homepages.inf.ed.ac.uk/wadler/papers/papers-we-love/landin-next-700.pdf (https://homepages.inf.ed.ac.uk/wadler/papers/papers-we-love/landin-next-700.pdf) - AI to help find correct LaTeX symbols: https://detexify.kirelabs.org/classify.html (https://detexify.kirelabs.org/classify.html)
- Found this channel on compiler development: https://www.youtube.com/channel/UC3KNgU1jlleVcn8f7DY9bdg
- Various Vulkan Sync/Barrier topics:
- https://mynameismjp.wordpress.com/2018/03/06/breaking-down-barriers-part-1-whats-a-barrier/
- http://themaister.net/blog/2019/08/14/yet-another-blog-explaining-vulkan-synchronization/
- https://www.khronos.org/blog/understanding-vulkan-synchronization
- https://developer.nvidia.com/content/depth-precision-visualized
- GPU Profiling 101: https://www.reedbeta.com/blog/gpu-profiling-101/
- Highlighting guide for VS Code:
https://code.visualstudio.com/api/language-extensions/syntax-highlight-guide
- Highlighting guide for VS 2019:
https://docs.microsoft.com/en-us/visualstudio/ide/adding-visual-studio-editor-support-for-other-languages?view=vs-2019 - (frostpitt from Discord): I found the book "Game Physics in One Weekend" excellent for getting some physics in to my version of the Kohi Engine that I am building with OpenGL alongside Travis's videos. Its similar in style to "Ray Tracing in One Weekend".
https://gamephysicsweekend.github.io/
I bought all 3 from Amazon. I believe there is an issue in the first book around rotations and friction. In his example, he sets the ground friction to 0 which doesn't cause any rotation. I had to set ground friction to > 0 for rotation to work on collision. - shows how to do simple model view projections
https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API/WebGL_model_view_projection - (NeGate on Discord): Nanite explained really well with crap loads of detail: http://advances.realtimerendering.com/s2021/Karis_Nanite_SIGGRAPH_Advances_2021_final.pdf
- Some explanations on the Windows Architecture
https://techcommunity.microsoft.com/t5/ask-the-performance-team/bg-p/AskPerf/label-name/Architecture - https://www.euclideanspace.com/maths/geometry/rotations/conversions/quaternionToMatrix/index.htm
This website has a bunch of useful information; the link above is for Quaternion -> Matrix conversion, but there's a lot more useful info than that - glTF 2.0 specification. This seems to clarify a few things and even show how things should properly be done.
https://www.khronos.org/registry/glTF/specs/2.0/glTF-2.0.html - https://spectreattack.com/spectre.pdf
- nvidia is proposing a cheaper way of doing motion capture
https://developer.nvidia.com/blog/nvidia-ai-generating-motion-capture-animation-without-hardware-or-motion-data/?linkId=100000096338884 - New and improved Sponza models for modern-day renderers: https://www.intel.com/content/www/us/en/developer/topic-technology/graphics-research/samples.html
- Series on memory allocators:
https://www.gingerbill.org/article/2019/02/01/memory-allocation-strategies-001/ - (Said on Discord): I started this project in 2020, it handles kerning, ligatures, mark placement, etc it's still wip so expect that. It's a header-only C library memory management can be customized using hz_set_allocator_fn and hz_set_allocator_user_pointer. Internally uses various types of allocators, currently it uses constant memory for storing the OT tables data after parsing but I haven't found a more elegant solution for this since the size of allocation needed for a font is not really predictable. Other than that works flawlessly and handles Farsi and languages with cursive scripts. https://github.com/saidwho12/hamza
- rustonomicon ffi chapter - https://doc.rust-lang.org/nomicon/ffi.html
- About rendergraphs
https://levelup.gitconnected.com/organizing-gpu-work-with-directed-acyclic-graphs-f3fd5f2c2af3 - A. Tornhill, Patterns in C, Leanpub 2015: https://leanpub.com/patternsinc
- Colored Stochastic Shadow Maps https://casual-effects.com/research/McGuire2011CSSM/index.html
- Order Independent Transparency technique that uses CSSM https://casual-effects.com/research/McGuire2016Transparency/index.html
- Here's link to a bunch of books that dive deeper into game development. https://github.com/miloyip/game-programmer
- Operating Systems Three Easy Pieces
https://pages.cs.wisc.edu/~remzi/OSTEP/ - Frank D Luna's (awesome) book about DX12: https://www.d3dcoder.net/d3d12.htm
- https://vkdoc.net/
- ECS resources:
- https://skypjack.github.io/2019-02-14-ecs-baf-part-1/
- https://ajmmertens.medium.com/building-an-ecs-1-where-are-my-entities-and-components-63d07c7da742
- Watch this: https://youtu.be/rX0ItVEVjHc?si=l79oFhjLgFZIibIB
- And then this: https://youtu.be/IroPQ150F6c?si=uoq-ZNYlk9p0mGGk
- https://devblogs.microsoft.com/oldnewthing/20041005-00/?p=37653
- https://devblogs.microsoft.com/oldnewthing/20041005-00/?p=37653
- https://docs.divio.com/documentation-system/