This is a list of links to resources I've found helpful. All of these are 100% free to access/use unless explicitly stated otherwise. ## Tools - **Engines:** [Godot][tool godot] - **Music:** [LMMS][tool lmms] - **3D Modeling:** [Blender][tool blender] - **Vector graphics:** [Inkscape][tool inkscape] - **Cross compilers:** [OSXCross][tool osxcross], [XCode target table][tool xcode targets] - **Search engines:**: [searx][tool searx] ## Libraries - **Godot**: [Godot Rust][lib godot rust], [Heightmap Terrain][lib godot hterrain] ## Assets - **Everything**: [OpenGameArt.org][assets open game art] - **Sound/Music/Samples**: [Freesound][assets freesound] ## Documentation / analyses / guides / articles / ... AKA "I really need another way to categorize this". ### 3D Rendering - [LearnOpenGL][guide learnopengl] - [Physically Based Rendering in Filament][doc filament] - [DOOM (2016) - Graphics Study][article doom 2016 graphics] - [Introduction to Acceleration Structures][guide 3d accel structs] - [Per-Object Motion Blur][guide per object motion blur] - [Pre-rendered Backgrounds & Depth Compositing][video pre rendered bg] - [Low-Level Thinking in High-Level Shading Languages][guide low level thinking shading] - [View Frustum Culling][guide 3d frustum culling] - [Optimized View Frustum CullingAlgorithms for Bounding Boxes][paper 3d frustum culling aabb] ### ECS - [Building an ECS #2: Archetypes and Vectorization][guide ecs archetypes] - [ECS FAQ][guide ecs faq] ### Multiplayer - [Source Multiplayer Networking][doc source multiplayer networking] - [Latency Compensating Methods in Client/Server In-game Protocol Design and Optimization][doc source latency compensation] ### Interpreters - [value representation in javascript implementations][article nan nun boxing] ### OS Dev - [RISC-V instruction cheat sheet][doc riscv cheat sheet] - [Agner's x86 instruction tables][doc x86 agner instruction tables] - [Writing an OS in Rust][guide osdev rust] - [Linux System Call Quick Reference][doc linux syscall table] - [Microsoft FAT Specification][doc fat] - [Executable and Linkable Format (ELF)][doc elf] - [Acronyms relevant to Executable and Linkable Format (ELF)][doc elf acronyms] - [OASIS Open Standards][doc oasis open standards] ### Web - [badssl][tool badssl] ### Other - [Shareware Amateurs vs. Shareware Professionals][article shareprof] - [In-depth: Matrices, rotation, scale and drifting][article matrice drifting] - [The Myth of RAM][article the myth of ram] - [General Game Design][collection gamedev archive] - [The No Twinkie Database][collection no twinkie db] - [Beware of the Performance of RW Locks][article rw lock perf] - [Lua 5.3 Bytecode Reference][doc lua bytecode] - [IEEE Standard 754 for Binary Floating-Point Arithmetic][doc ieee754] - [HOWTO: Devuan ROOT on ZFS and MultiBoot][guide zfs root linux] - [Did You Say "Intellectual Property"? It's a Seductive Mirage][article gnu ip] - [**EasyPeasyMethod**][book easypeasymethod] ## Funsies - [Shadertoy][fun shadertoy] [article shareprof]: https://archive.gamedev.net/archive/reference/business/features/shareprof/ [article finishing a game]: https://makegames.tumblr.com/post/1136623767/finishing-a-game [article markets and you]: https://www.gamasutra.com/blogs/YikSianSeow/20160729/278208/Markets_and_You.php [article matrice drifting]: https://www.gamasutra.com/view/news/173606/Indepth_Matrices_rotation_scale_and_drifting.php [article doom 2016 graphics]: http://www.adriancourreges.com/blog/2016/09/09/doom-2016-graphics-study/ [article the myth of ram]: https://www.ilikebigbits.com/2014_04_21_myth_of_ram_1.html [article linear rust]: https://gankra.github.io/blah/linear-rust/ [article rw lock perf]: https://blogs.oracle.com/roch/beware-of-the-performance-of-rw-locks [article nan nun boxing]: https://wingolog.org/archives/2011/05/18/value-representation-in-javascript-implementations [article gnu ip]: https://www.gnu.org/philosophy/not-ipr.html [article gnu x]: https://www.gnu.org/philosophy/x.html [blog rms]: https://stallman.org/ [book easypeasymethod]: https://easypeasymethod.org/ [collection gamedev archive]: https://archive.gamedev.net/archive/reference/list7ae8.html?categoryid=23 [collection no twinkie db]: http://www.designersnotebook.com/Design_Resources/No_Twinkie_Database/no_twinkie_database.htm [collection oss physics libs]: https://www.tapirgames.com/blog/open-source-physics-engines [talk you don't need a fucking publisher]: https://www.youtube.com/watch?v=mAI5W7Y5H28 [forum linux musicians]: https://linuxmusicians.com/ [assets music radar]: https://www.musicradar.com/news/tech/free-music-samples-royalty-free-loops-hits-and-multis-to-download [assets freesound]: https://freesound.org/ [assets open game art]: https://opengameart.org/ [assets godot shaders]: https://godotshaders.com/ [fun shadertoy]: https://www.shadertoy.com/ [guide 3d accel structs]: https://www.scratchapixel.com/lessons/advanced-rendering/introduction-acceleration-structure [guide 3d frustum culling]: http://www.lighthouse3d.com/tutorials/view-frustum-culling/ [guide ecs archetypes]: https://ajmmertens.medium.com/building-an-ecs-2-archetypes-and-vectorization-fe21690805f9 [guide ecs faq]: https://github.com/SanderMertens/ecs-faq [guide per object motion blur]: https://john-chapman-graphics.blogspot.com/2013/01/per-object-motion-blur.html [guide learnopengl]: https://learnopengl.com/ [guide low level thinking shading]: https://www.humus.name/index.php?page=Articles&ID=6 [guide rust min sized]: https://github.com/johnthagen/min-sized-rust [guide zfs root linux]: https://dev1galaxy.org/viewtopic.php?id=3794 [guide osdev rust]: https://os.phil-opp.com/ [//]: # (TODO what category should this be put in?) [TODO are we game yet]: https://arewegameyet.rs/ [lib godot rust]: https://godot-rust.github.io/ [lib godot hterrain]: https://github.com/Zylann/godot_heightmap_plugin/ [paper 3d frustum culling aabb]: http://www.cse.chalmers.se/~uffe/vfc_bbox.pdf [tool blender]: https://www.blender.org/ [tool dragon unpacker]: https://www.elberethzone.net/dragon-unpacker.html [tool godot]: https://godotengine.org/ [tool inkscape]: https://inkscape.org/ [tool lmms]: https://lmms.io/ [tool osxcross]: https://github.com/tpoechtrager/osxcross [tool xcode targets]: https://gist.github.com/yamaya/2924292 [tool searx]: https://searx.github.io/searx/ [tool badssl]: https://badssl.com/ [doc bevy cheatbook]: https://bevy-cheatbook.github.io/introduction.html [doc awesome bevy]: https://github.com/bevyengine/awesome-bevy [doc filament]: https://google.github.io/filament/Filament.html [doc oasis open standars]: https://www.oasis-open.org/standards/ [doc source multiplayer networking]: https://developer.valvesoftware.com/wiki/Source_Multiplayer_Networking [doc source latency compensation]: https://developer.valvesoftware.com/wiki/Latency_Compensating_Methods_in_Client/Server_In-game_Protocol_Design_and_Optimization [doc lua bytecode]: https://the-ravi-programming-language.readthedocs.io/en/latest/lua_bytecode_reference.html [doc ieee754]: https://people.eecs.berkeley.edu/~wkahan/ieee754status/IEEE754.PDF [doc riscv cheat sheet]: http://csci206sp2020.courses.bucknell.edu/files/2020/01/riscv-card.pdf [doc x86 agner instruction tables]: https://www.agner.org/optimize/instruction_tables.pdf [doc linux syscall table]: http://www.cheat-sheets.org/saved-copy/Linux_Syscall_quickref.pdf [doc fat]: https://aboutitdata.files.wordpress.com/2020/07/fat32-spec-sda-contribution.pdf [doc elf]: https://www.skyfree.org/linux/references/ELF_Format.pdf [doc elf acronyms]: https://www.cs.stevens.edu/~jschauma/631/elf.html [doc io_uring]: https://kernel.dk/io_uring.pdf [games xonotic]: https://xonotic.org/ [video pre rendered bg]: https://www.youtube.com/watch?v=mPr9e7VTBLI [//]: # (TODO categorize these) [buyvm stock]: https://buyvmstock.com/ [easings]: https://easings.net/ [game ui database]: https://www.gameuidatabase.com/ [kenney]: https://kenney.nl/ [linux audio]: https://linuxaudio.org/ [linux sound]: https://jan.newmarch.name/LinuxSound/ [video combination lock]: https://www.youtube.com/watch?v=CZ8WRDVgKrk [video blender bake normal map]: https://www.youtube.com/watch?v=Hpdwo6F_WYQ [fun rogue manual]: http://roguelikedevelopment.org/archive/files/misc/EpyxRogueDOSManual/manual.htm [doc c64 video output]: http://hitmen.c02.at/temp/palstuff/ [doc c64 display modes]: http://sta.c64.org/cbm64disp.html [doc c64 raster splits]: http://tnd64.unikat.sk/assemble_it4.html [article words to avoid]: https://www.gnu.org/philosophy/words-to-avoid.html [wiki aldeid]: https://www.aldeid.com/wiki/Main_Page [article fgc9]: https://en.wikipedia.org/wiki/FGC-9 [article unit 731]: https://web.archive.org/web/20210506023718/https://unit731.org/ [doc rst cheatsheet]: https://github.com/ralsina/rst-cheatsheet [doc rst cheatsheet2]: https://raw.githubusercontent.com/ralsina/rst-cheatsheet/master/rst-cheatsheet.pdf [doc rst cheatsheet3]: https://docutils.sourceforge.io/docs/user/rst/quickref.html#hyperlink-targets [fun bruteforce 256-bit]: https://crypto.stackexchange.com/questions/1145 [//]: # (No idea what this is, but looks interesting) [scene.org archive]: https://files.scene.org/ [//]: # (Secret stash of memes. Do not click) [memes ahrimems]: https://imgur.com/a/SgXXSvX [memes rms windows]: https://www.youtube.com/watch?v=q9mXyakv2i8