From a5dec63c63a0077a684d959bd162df0945c5a0af Mon Sep 17 00:00:00 2001 From: Kyren223 Date: Mon, 22 Jun 2026 21:13:35 +0300 Subject: [PATCH] Update resources with more resources and also tools --- README.md | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 897327b..9c447cc 100644 --- a/README.md +++ b/README.md @@ -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