Hacker Newsnew | past | comments | ask | show | jobs | submit | cuechan's commentslogin

He is just legendary when it comes to game programming


What games has he shipped?


The legendary games programmer thing is a meme.

Casey is professionally best known for his work at RAD game tools (a highly successful middleware provider for game development back in the day), not games he himself developed.

What he is most highly regarded for is his teaching, particularly the Handmade Hero series on YouTube, which various programmers directly attribute as being responsible for their own professional success to a large extent.

He did work on the video games Dungeon Siege and The Witness afaik, but that's not what he is known for.

He also made one of the fastest terminal emulators (refterm), purely out of spite, to show Microsoft they were full of shit in their answer to an issue he posted to the Windows Terminal github. This directly led to performance improvements in Windows Terminal.


"Highly successful middleware provider back in the day" is an understatement.

Bink was the cutscene video codec for a long time and it's still the most popular option by far. Kraken compression is so good Sony worked with AMD to make a hardware decoder for the PS5 and paid for a general license that lets games use it for free. They are probably stronger than ever in terms of games using their tech and collected license fees.


> They are probably stronger than ever in terms of games using their tech and collected license fees.

True, though they've been acquired by Epic since 2021. They keep the RAD Game Tools branding, but aren't their own separate company anymore.

Oodle/Kraken is mostly the work of Charles Bloom and Fabian Giesen, a couple of other "legendary game programmers" at RAD, but who aren't quite as visibly prominent as Casey has been in the modern software developer mediasphere.


Are you conflating what Casey worked on with what RadTools worked on?


Honest question, but what is the benefit of Bink over standard codecs like H.264/265 or AV1? Specially nowadays that every GPU provides hardware-accelerated video decoding...


I remember using it to encode some videos for a school presentation. I think I needed to make it fit into a CD and play-on-double-click and Bink was the easiest tool to do it in.


He mostly evangelizes non-pessimal software. He advocates that your program should only be a small factor like 3x slower than the hypothetical optimum - instead of 10000x slower as today's software often is. He compared Visual C++ 6's debugger on hardware from the time to current Visual Studio's debugger on current hardware, and found the former much faster when performing the exact same tasks on the exact same project file and code files.


I have recently gotten a 45x on a shitty vibe coded Python project by using mypyc (2x), replacing datastructures with more CPU-friendly alternatives (15x) and using some smarter heuristics rather than just brute force on top of that (45x total).

And I never left Python, the slowest language around.

AI is only going to make the problem worse unless you know what to look for.


> He compared Visual C++ 6's debugger on hardware from the time to current Visual Studio's debugger on current hardware, and found the former much faster when performing the exact same tasks on the exact same project file and code files.

this shouldn't be right, wtf


Yes, it really shouldn’t, and so Casey goes to great and careful lengths to fully evidence these results. This is a nuance that’s easy to miss in evangelizing “Casey Muratori content” to others. It’s easy to gloss “abjectly unacceptable performance” as “bad performance”.


And people still come out of the woodwork with a parade of excuses, and sometimes he addresses those too. But it's no wonder that he gets a bit brisk or blunt with people, and turns off others who haven't been following along.


https://www.youtube.com/watch?v=GC-0tCy4P1U at 21:30 for modern Visual Studio and then 35:51 for Windows XP era Visual Studio.


Wow, modern Visual Studio is unbelievable slop


From what I heard from Visual Studio folk it is surprising it is not orders of magnitude faster rather than "much faster".

Also I learned to program in Turbo C and Turbo Pascal with its debugger and nothing comes faster (at least nothing single threaded)


VC++ 6 was an amazing IDE. My favourite of all time, with the debugger being one of the highlights. Still unmatched today.


It's right.

When did you start using computers? I'm getting older now, and some people weren't alive when I first used a computer.

It's because the older programming approach was to just tell the computer how to do the thing - and the modern approach is to write a framework inside which you write a framework inside which you write an inefficient version of the thing because it's constrained to the tools available in the framework stack.

Old-school implementation of "scroll up": copy pixels then redraw the pixels at the bottom.

New-school implementation of "scroll up": delete virtualized rows from the beginning of a DOM table and add more to the end. Change the height properties on different parts of the scrollbar. Relayout the whole DOM, several times if you're not careful. Redraw the whole screen.


He works in the engine/tool side of things. He worked on some widely used libraries, mainly Bink 2 (video codec) and Granny 3D (3D animation) used in a ton of shipped games.


He did middleware at RAD, home of a lot of good stuff, and worked directly on at least The Witness


He did some work for The Witness and wrote some nice technical blog posts about it [1].

I don’t know the extent to which he contributed beyond that, but he is therefore by some reasonable definition _a_ game developer.

[1] the-witness.net/news/author/casey/


Very interesting that the Christmas Disk still has not been released.


Slightly Offtopic but the voice in the embedded youtube Video is so sounds so unnatural and creepy. I guess its AI generated and no one bothered to check the end result.


There are dozens of local CBC news broadcasts all over the country and they all feature someone with similarly strong enunciation and clipped pauses for emphasis. She certainly has one most aggressive forms I've heard, but that's absolutely the CBC news anchor 'voice' and has been for decades. No AI trickery here, just weird Canadian public broadacaster-isms.


Sounds like a normal news broadcaster voice to me. I suppose the inflection is a bit over-the-top. The speaker says her name at the end - Leila Beaudoi.


It sounded very odd to me too. I was wondering if that was normal for Newfoundland maybe. To be honest it didn't sound AI, more like it was played back slightly too slow, but not by a constant amount.


Newfoundlander here checking in! Nope. She just sounds like that. Another comment mentioned it seems to be a CBC/traditional news thing. A bunch of them sound that way.

The "accent" here is starting to fade out of the younger generations but it sounds Irish to a naive ear.


It sounds like typical CBC reporter to me. Maybe the AI was trained on these types of broadcasts.


> A traditional CRUD app doing the same thing takes about 300ms.

300ms seems like a lot. Even if this includes the whole http request+response it still seems unbelievably long.


It depends on where your clients are, and where your servers are. You may have a lot of customers in a country and not want to host servers in that country (tax, regulatory, maintenance cost, etc.)

RTT from Hyderabad to the East Coast USA is ~300ms.

Then you have execution and database retrieval.

https://wondernetwork.com/pings


Yeah you can easily get this speed down to like 100ms which is near enough to instant to not matter. You definitely don't need to go to client side rendering for most things to feel fast.

Also I couldn't see any explanation of what happens when a network request fails. That's a huge downside of local rendering.

I think for most sites the best option is still server-side rendering but use a fast backend (e.g. not Python) and lightweight frontend.


Have you tried JIRA or YouTrack?


this is kinda missing the point. yes, the raw http calls __should__ be enough for 300ms.

but the benchmark is similar software like JIRA, which takes agonizingly long to do anything reasonable.


Why not just place a mirror at 45 degrees in the corner? That way you don't need the lidar but you can just look around the corner? It would also work better with the lidar.


I would be interested in seeing your visual mockups of how such a solution works on one of the article’s examples, like a car.


Like this: https://c8.alamy.com/compde/t0580m/der-verkehr-kurve-spiegel...

Or this: https://cdn-01-artemis.media-brady.com/Assets/ImageRoot/DMEU...

Reasonably common in difficult corners in Germany and Austria. Probably elsewhere too.

The downside is that it's road infrastructure that has to be installed. The upside is that it works for everyone, including people in 20 year old cars or on bicycles.


You know what, that’s fair. That’s a good solution.

If it weren’t for the struggles of getting municipal infrastructure installed, I’d prefer it.


These are very common in Spain too.


Every car just needs n number of mirrors on articulating joints and to sense any oncoming cars that need to see around a corner and then receive a command to reposition said mirror.


Mirrors allow two-way looking.


That's easily worked around (e.g. fisheye and appropriate correction). The real problem is that the scenarios discussed don't allow for setup, otherwise they could just use preplaced cameras...


I don't really understand, what the Graphs on page 9 and 13 represent, but they look somewhat like a world map with the continents. I wouldn't be surprised if there's actually a geographic connection. A lot of ingrediants are probably more prevalent in certain world regions.


I guess when the horse lays down the pumping force from the heart is enough to pump the blood back. Much less gravity to work against


horses sleep in a standing position.

(https://www.petmd.com/horse/do-horses-sleep-standing)


I think they have a point. But the "QED" at the end leaves a cringe aftertaste


Do they really? Do you genuinely that most people asking the "Where Are the Vibecoded Photoshops?" question are those who don't understand that "Level 2 and 3 activities" were the real bottleneck or are they trying to explain that to people who don't and are unreasonably expecting a 10x productivity boost out of them?


For anyone who regularly has to look at/analyze binary files, i highly recommend ImHex [1].

Its a hex editor built with imgui and has a lot of built in tools. Imo the best feature is the data structure editor. You can write a data type definition similar to C and it overlays it on the hexdump and parses it in a structured way while you type.

It also has a node based editor.

1: https://github.com/WerWolv/ImHex


ImHex is amazing! It’s actively maintained, sponsored by FUTO, and is very hackable (both without recompiling, as well as modifying the grammars for others to take advantage of)


WOW!!!! if I had this when I had been working on Omnet connector to the HKEX, I would have win my life. I mean financial life, but still...


Does it do color highlighting by value of hex bytes, though?



as far as i can tell, no it does not. it only desaturates 00 in particular. the other colors you see in the screenshots come from matched formats/patterns. it does not do direct coloring based on byte value.


Under the Edit menu select "Highlighting Rules..." and you can define or load any set of rules you can imagine.


Thanks!

How many rules would it take to create 256 different colors for 00..FF?


ImHex++. I also can’t help but shill for 010 Editor, a commercial alternative that one might describe as a little less opinionated.


Yeah 010 is my go to (much cleaner for me)


Seems useful, and the UI is quite cute :-)

But - it's also kind of huge for a hex editor. Wouldn't it be overkill for most people?


Came here to reply with ImHex.

It really is by far the best hex editor I ever used, and sooo good for reversing arbitrary binary blobs where you learn incrementally more about its structure while reversing it. The imhex patterns repo [1] also contains so many formats, it makes binwalk almost useless in comparison.

[1] https://github.com/WerWolv/ImHex-Patterns


That looks super cool! Now I just need a reason to look at hex files


This is a pretty common feature, isn't it? Binary templates, I mean. Even Hex Fiend has it.


Plus the built-in parsers for well known formats!


But does it have colors!?!??!


THANK YOU.

This is another fine tool I can add to my collection.

And FUTO! Love it.


I use syncthing to sync my notes between my PC and Laptop. It works pretty well.


> The compiler is an interesting artifact on its own [...]

its funny bacause by (most) definitions, it is not an artifact:

> a usually simple object (such as a tool or ornament) showing human workmanship or modification as distinguished from a natural object


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: