{"slug": "sdl", "name": "SDL", "category": "dev-libs", "category_name": "Libraries and frameworks", "description": "", "recommenders": 3, "commenters": 6, "warners": 0, "score": 3.372, "rising": -0.98, "first": "2025-11-22", "latest": "2026-08-24", "why": "I would recommend something like SDL if you want a more complete platform abstraction, it even supports software rendering as a context mode.", "why_is_quote": true, "has_verdict": false, "sentiment": {"recommend": 3, "neutral": 3, "compare": 0, "warn": 0}, "spark": [1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0], "listed": true, "loved": [], "caveat": "", "short_quote": "I would recommend something like SDL if you want a more complete platform abstraction, it even supports software rendering as a context mode.", "icon": true, "domain": "libsdl.org", "github_repo": null, "official_url": "https://www.libsdl.org", "pricing": "", "aliases": ["SDL"], "verdict": null, "praise": [{"label": "", "summary": "", "quotes": [{"id": 765622736, "item_id": 47851421, "url": "https://news.ycombinator.com/item?id=47851421", "by": "tstrimple", "date": "2026-04-21", "stance": "recommend", "quote": "you could start writing to the screen in under 30 minutes with some basic libraries like SDL", "excerpt": "It's an incredibly inefficient way to make a game, but you could check out Handmade Hero by Casey Muratory. I'm not speaking at all to the overall quality of the work. But he definitely bootstraps the game from scratch and there is a ton to learn about the low level graphics and input systems. https://guide.handmadehero.org/ Day 004 is where he actually starts drawing on the screen. So about five hours in if you skip", "context": "", "use_case": "graphics/input abstraction for games", "switched_from": "", "story": "I learned Unity the wrong way"}, {"id": 755447008, "item_id": 47215438, "url": "https://news.ycombinator.com/item?id=47215438", "by": "gethly", "date": "2026-03-02", "stance": "recommend", "quote": "i too switched from raylib to sdl. it's likely one of the best graphics layers out there.", "excerpt": "i am making a text editor/ide in Go and i too switched from raylib to sdl. it's likely one of the best graphics layers out there.", "context": "building a text editor/IDE in Go", "use_case": "graphics layer for text editor", "switched_from": "raylib", "story": "Making Video Games in 2025 (without an engine)"}, {"id": 736228224, "item_id": 46014264, "url": "https://news.ycombinator.com/item?id=46014264", "by": "user____name", "date": "2025-11-22", "stance": "recommend", "quote": "I would recommend something like SDL if you want a more complete platform abstraction, it even supports software rendering as a context mode.", "excerpt": "If you want to render 2d vs 3d there are different tradeofs, a 3d renderer has to do interpolation of attributes over triangles, a 2d renderer doesn't and as a result can render ngons without having to triangulate them. I'm just going to dump some links really quick, which should get anyone started. Getting a framebuffer on screen: https://github.com/zserge/fenster I would recommend something like SDL if you want a m", "context": "", "use_case": "platform abstraction for graphics", "switched_from": "", "story": "How I learned Vulkan and wrote a small game engine with it (2024)"}]}], "caveats": [], "who": [{"by": "gethly", "context": "building a text editor/IDE in Go", "url": "https://news.ycombinator.com/item?id=47215438", "date": "2026-03-02"}], "tags": [], "use_cases": ["game development", "graphics/input abstraction for games", "graphics layer for text editor", "platform abstraction for graphics"], "compared": [{"slug": "raylib", "name": "raylib", "co": 1, "switched_from": 1, "switched_to": 0}], "makers": [], "threads": [{"url": "https://news.ycombinator.com/item?id=49421554", "title": "Coding expertise is going to collapse from AI reliance", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=48459294", "title": "Making Graphics Like it's 1993", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=47790041", "title": "I learned Unity the wrong way", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=47724331", "title": "\"It's rare that developers love their database that much\"", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=47176576", "title": "Making Video Games in 2025 (without an engine)", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=46010329", "title": "How I learned Vulkan and wrote a small game engine with it (2024)", "mentions": 1}], "sentiment_by_month": {"2025-11": {"recommend": 1}, "2025-12": {}, "2026-01": {}, "2026-02": {}, "2026-03": {"recommend": 1}, "2026-04": {"neutral": 1, "recommend": 1}, "2026-05": {}, "2026-06": {"neutral": 1}, "2026-07": {}, "2026-08": {"neutral": 1}, "2026-09": {}, "2026-10": {}}, "quotes": [{"id": 790766336, "item_id": 49422896, "url": "https://news.ycombinator.com/item?id=49422896", "by": "skydhash", "date": "2026-08-24", "stance": "neutral", "quote": "When I use a library like SDL or a standard like POSIX, I don't tend to look at the underlying implementation.", "excerpt": "> History is littered with similar cases where the abstraction layer ends up getting lifted, and people struggle with getting accustomed to working at that higher abstraction level. But there's no abstraction layer that ends up getting lifted. When I use a library like SDL or a standard like POSIX, I don't tend to look at the underlying implementation. Instead I work with the high level concepts that they come up wit", "context": "", "use_case": "", "switched_from": "", "story": "Coding expertise is going to collapse from AI reliance"}, {"id": 775375280, "item_id": 48460955, "url": "https://news.ycombinator.com/item?id=48460955", "by": "Levitating", "date": "2026-06-09", "stance": "neutral", "quote": "Though I have not limited myself as much (I use SDL).", "excerpt": "I love this! I have been working on a similar project, recreating the originale BBC Elite but with multiplayer networking. Though I have not limited myself as much (I use SDL).", "context": "", "use_case": "game development", "switched_from": "", "story": "Making Graphics Like it's 1993"}, {"id": 765622736, "item_id": 47851421, "url": "https://news.ycombinator.com/item?id=47851421", "by": "tstrimple", "date": "2026-04-21", "stance": "recommend", "quote": "you could start writing to the screen in under 30 minutes with some basic libraries like SDL", "excerpt": "It's an incredibly inefficient way to make a game, but you could check out Handmade Hero by Casey Muratory. I'm not speaking at all to the overall quality of the work. But he definitely bootstraps the game from scratch and there is a ton to learn about the low level graphics and input systems. https://guide.handmadehero.org/ Day 004 is where he actually starts drawing on the screen. So about five hours in if you skip", "context": "", "use_case": "graphics/input abstraction for games", "switched_from": "", "story": "I learned Unity the wrong way"}, {"id": 763595939, "item_id": 47724746, "url": "https://news.ycombinator.com/item?id=47724746", "by": "tnelsond4", "date": "2026-04-10", "stance": "neutral", "quote": "I've been enthusiastic about a lot of things, C, libsdl, Linux, ffmpeg, vim", "excerpt": "Naw, developers will always be enthusiastic about stuff even if it's crap. I used to really like SQLite and think that I should use it for everything, but after using it for a couple years I realized it's just not the right tool for most things. It doesn't help that I usually mess up my joins and lead to undetected data loss. I really wanted to use SQLite client side for the data in my dictionary web app, but I ended", "context": "", "use_case": "", "switched_from": "", "story": "\"It's rare that developers love their database that much\""}, {"id": 755447008, "item_id": 47215438, "url": "https://news.ycombinator.com/item?id=47215438", "by": "gethly", "date": "2026-03-02", "stance": "recommend", "quote": "i too switched from raylib to sdl. it's likely one of the best graphics layers out there.", "excerpt": "i am making a text editor/ide in Go and i too switched from raylib to sdl. it's likely one of the best graphics layers out there.", "context": "building a text editor/IDE in Go", "use_case": "graphics layer for text editor", "switched_from": "raylib", "story": "Making Video Games in 2025 (without an engine)"}, {"id": 736228224, "item_id": 46014264, "url": "https://news.ycombinator.com/item?id=46014264", "by": "user____name", "date": "2025-11-22", "stance": "recommend", "quote": "I would recommend something like SDL if you want a more complete platform abstraction, it even supports software rendering as a context mode.", "excerpt": "If you want to render 2d vs 3d there are different tradeofs, a 3d renderer has to do interpolation of attributes over triangles, a 2d renderer doesn't and as a result can render ngons without having to triangulate them. I'm just going to dump some links really quick, which should get anyone started. Getting a framebuffer on screen: https://github.com/zserge/fenster I would recommend something like SDL if you want a m", "context": "", "use_case": "platform abstraction for graphics", "switched_from": "", "story": "How I learned Vulkan and wrote a small game engine with it (2024)"}]}