Update resources with more resources and also tools

This commit is contained in:
2026-06-22 21:13:35 +03:00
parent 8dedac66b2
commit a5dec63c63

View File

@@ -77,7 +77,7 @@ I'd recommend either skipping it, or rewatching it multiple times, until you ful
First, you have probably been taught the malloc/RAII way of managing memory, which is needlessly hard, throw that stuff away.
Here is how to actually manage memory in a simple and straightforward way:
[How memory works by Kyren223 (me)](https://kyren.codes/blogs/how-computer-memory-actually-works/) - Goes over how your program interacts
[kow memory works by Kyren223 (me)](https://kyren.codes/blogs/how-computer-memory-actually-works/) - Goes over how your program interacts
with memory nowadays, knowing about virtual memory and virtual address space would be crucial to
understand the rest of the resources here.
@@ -111,6 +111,7 @@ TODO: this took me very long to make, will add this later (remind me if I forgot
But tldr; handmade hero, all of it, then u should be able to learn on your own.
For math, the [BSC 2025 talk by Ginger Bill](https://www.youtube.com/watch?v=YNtoDGS4uak), and Freya Holmer's [Math for Gamedev](https://www.youtube.com/watch?v=MOYiVLEnhrw&list=PLImQaTpSAdsD88wprTConznD1OY1EfK_V) series are great resources.
As well as [3b1b's Essence of Linear Algebra series](https://www.youtube.com/watch?v=fNk_zzaMoSs&list=PLZHQObOWTQDPD3MizzM2xVFitgF8hE_ab).
[This Problem Changes Your Perspective On Game Dev](https://www.youtube.com/watch?v=o5K0uqhxgsE)
@@ -118,6 +119,9 @@ For math, the [BSC 2025 talk by Ginger Bill](https://www.youtube.com/watch?v=YNt
TODO: this took me very long to make, will add this later (remind me if I forgot!)
For tokenizing go with a simple hand written state machine, for parsing go with recursive descent + Pratt's parsing.
These terms sound complicated but they are simple, the resources below go over them.
Crafting interpreters for the basics of tokenizing and parsing, not more than that,
the book later diverges into what I'd call "bad OOP" (in part 1), and part 2 is mostly about virtual
machines, I only read the start of part 2, I'd only recommend it if you are making a VM for your language.
@@ -137,18 +141,26 @@ feel free to message me, I am always open to language design/implementations dis
["Boundaries of Language Design" with Andrew Kelley & Ginger Bill](https://www.youtube.com/watch?v=3K8znjWN_Ig)
[2 Language Creators vs 2 Idiots](https://www.youtube.com/watch?v=tXJfS6jI9Z0)
[The Video That Inspired Me To Create Odin by gingerBill](https://www.gingerbill.org/article/2024/04/04/video-that-inspired-odin/) - has a great insight about what "High Level" versus "Low Level" languages actually mean.
[Commentary on Friction in Language Design by gingerBill](https://www.youtube.com/watch?v=aq2lsAbtWc4)
## Resources (unordered)
- ALL [Better software conference](https://www.youtube.com/feed/subscriptions/UCYI-TL0LoFRl1gFnnUFwdow) talks, they are all great.
- [Handmade Hero by Casey Muratori](https://guide.handmadehero.org) AT LEAST the first 60 episodes
- [Semantic compression by Casey Muratori](https://caseymuratori.com/blog_0015)
- [On bad advice](https://www.scattered-thoughts.net/writing/on-bad-advice/)
- [John Carmack on Inlining code](http://number-none.com/blow/john_carmack_on_inlined_code.html)
- [John Carmack on Inlined Code](http://number-none.com/blow/john_carmack_on_inlined_code.html)
- ["Papers I have loved" by Casey Muratori](https://www.youtube.com/watch?v=SDS5gLSiLg0)
- [Package Managers are Evil by GingerBill](https://www.gingerbill.org/article/2025/09/08/package-managers-are-evil/#fnref:1)
- [How to address binary compatibility on Linux](https://jangafx.com/insights/linux-binary-compatibility#containers)
- [Mock Interview with Shawn McGrath](https://www.youtube.com/watch?v=cfyWvJdsDRI&t=5s) - Best way to do interviews
- [Handmade Network "fishbowls"](https://handmade.network/fishbowl)
- [Advice for Writing Small Programs in C by Sean Barrett](https://www.youtube.com/watch?v=eAhWIO1Ra6M)
- [The Video That Inspired Me To Create Odin by gingerBill](https://www.gingerbill.org/article/2024/04/04/video-that-inspired-odin/)
Blogs:
@@ -162,6 +174,13 @@ Data oriented design:
- [CppCon 2014: Mike Acton "Data-Oriented Design and C++"](https://www.youtube.com/watch?v=rX0ItVEVjHc)
- [Andrew Kelley: A Practical Guide to Applying Data Oriented Design (DoD)](https://www.youtube.com/watch?v=IroPQ150F6c)
Useful tools:
- [Raddebugger](https://github.com/EpicGamesExt/raddebugger) for windows binaries, or linux once it's ported, in the meantime, [nnd](https://github.com/al13n321/nnd), [gdbfrontend](https://github.com/rohanrhu/gdb-frontend) or [clion](https://www.jetbrains.com/clion/) exist for linux.
- [Intel Intrinsics](https://www.intel.com/content/www/us/en/docs/intrinsics-guide/index.html#)
- [Linux System Call Table](https://blog.rchapman.org/posts/Linux_System_Call_Table_for_x86_64/)
- MSDN for Win32 API documentation (windows "syscalls")
[^1] Unless u write your own OS, but even then, you'd be interfacing with hardware. and I assume you are not going to manufacture your own CPU.
[^2] Certain CPUs use 52-bit or 56-bit, because of some super computers hitting the 256TB limit (bruh)
[^3] Some arm CPUs have TBI (top bits ignore), to allow storing metadata in the top 8 bits of a pointer