> I don’t think this is necessarily what is happening.
This is exactly what happened with my niece, my nephew, and all of their friends.
Which isn't to say they've outgrown all of the games they played when they were younger. They still play minecraft, stardew valley, kirby, mario, etc. I don't know why, but they all bounced off of Fortnite after they hit a certain age. I wonder why.
I think these type of shooter games have significant competition. So you have games and genres that peak for times and then slowly or quickly get replaced. And entry to this is hard. You get lot of failures and few successes.
Counter-Strike might be a exception. It seems to keep older players well while still getting enough new ones. And also have enough gacha mechanics to make lot of money...
Have you tried WinForms? It isn’t the latest hotness so Microsoft has to be dragged kicking and screaming to support it in current VS, but they were forced to do so because corporate developers still have some clout.
I still think that WPF was the peak desktop UI framework. Extremely powerful with lots of small composable primitives, can easily do declarative but drop into more traditional event-driven imperative style where it makes sense.
I live in a bizarro universe where I started my career working on an expansive WPF desktop app on .NET Framework 4.0, and am still working on it now on .NET 10. From my perspective it's been WPF the entire time, and it's been pretty okay.
Similarly, I've been doing It development for pretty much the entirety of my career. When I see the struggles to make remotely useable apps in other frameworks I'm very happy I chose this path
While I have never worked with PDB, I have worked directly with DWARF. It is an insane format. It embeds (at least) three different byte code formats that need to be interpreted. One of them is even Turing complete.
First up is mapping from address to file, line and column. This one is basically a custom data compression scheme in the form a custom byte code. Strange but not too bad.
Second is “DWARF expressions", which is Turing complete and used for many things, such as figuring out where in memory or registers a given high level variable can br found at at any point of the program execution. It is baroque to say the least.
Then there is EH frames, which is used for unwinding (on exceptions in C++ or panics in Rust for example). This is used to specify how to find the base of the current stack frame given the current instruction pointer. This is needed if you don't use frame pointers. In itself it isn't Turing complete, but it can call out to Dwarf Expressions as subroutines, so it actually is TC. Except from what I have read, no compiler actually makes use of that capability, thankfully.
Surprisingly, the DWARF specification itself is actually reasonably readable and well written.
Good question, that I don't fully know the answer to. The rest of the byte code (apart from the primitives that enable looping) already allow expressing a lot. From memory (it has been almost half a year since I last worked on this), you can specify things like "for this 32 bit value, the first two bytes can be found in the middle of RAX, the third byte is found following this chain of pointers, and the final byte is on the stack" without even touching the TC parts.
Basically, my impression was that that the format was flexible enough that I couldn't see why you would need the TC parts in practice. The compilers seemed to agree and not use it in practise (at least gcc and llvm).
This was of interest to me since I was generating BPF code from these (for user space trace points) and BPF is famously and intentionally not TC. I could translate many patterns that do show up in real world code, but not the general case.
This is largely because debug info is not great and does not generate the Turing complete counterpart to your code so that variables do not get optimized out. In the general case this is required.
Wouldn't that be more of a RAD tool, like Lazarus[0]? Or are you suggesting you could do both in the same tool? I'm not doubting it's possible, but those are two very different (and large!) products from a functional standpoint. Combining them is going to be quite the undertaking.
Handmade Hero is a bad idea for anyone wanting to learn how to make a game in C or C++. Casey intentionally avoids using standard libraries and frameworks and his irrational hatred of high-level code and modern standards will lead developers astray and waste their time.
Even if you're using C you don't need to implement your own renderer or do half the things he does. Get a library like SDL3 to handle the basics, maybe use Lua/LuaJIT for scripting. Learn OpenGL or Vulkan. Stay away from HH and Casey Muratori until you're experienced enough to tell the difference between his wisdom and his bullshit.
ravensoft open sourced it in 2013 ish and promptly removed it because they accidentally included a bundled lib but i believe it was then re-added. theres quite a few repos that have it cloned. https://github.com/jedis/jediacademy
what am i up to with it? creating hardened vanilla base servers (no mods) and ensuring it gets compiled in a way that doesnt impact lightsaber combat. everyone has failed to do this for 22+ years because there's lots of subfactions in this game who fail to prioritize this as they have other priorities. tons of people who enjoy the prospect of modding the game or making it something different but the tiny remaining competitive player base has only ever needed the base game and what shipped by ravensoft in 2003. generally the guys who are competitive players arent.. coders. the game is ultra sensitive to mathematical FPU differences and virtually all recompiles of the game in the past decades completely failed to guard this, so every game mod and attempt at creating something better hasn't stuck for competitive players _except_ for something called ybeproxy which was an attempt to hook the original game engine binary and add some security/anticheat layer.. this was the best attempt to date but it still negatively impacts the fragile lightsaber mechanics.
That's so cool! I didn't know they open sourced it. Is your work also open? And how do you check that the frames don't change?
I love seeing people try to revive old games and improve them for players. I've made a couple of contributions to VCMI, an open source implementation of heroes of might and magic 3 that I used to play as a kid and it's so rewarding seeing people use those.
I really like Tesla's approach to door handles - it's clean, polished, and gives a fine and smooth look. But was surprised to learn that China will ban them beginning next year. Other countries might follow suit as well.
The main purpose of a handle is to open a door, not look polished. Looking polished is not helpful when you're dead because you couldn't get out of that car in an emergency . So IMHO it shouldn't be surprising that they're being banned.
I'm convinced it isn't rocket science to design a flush handle that looks as clean yet has a manual operation fallback (preferably mechanical). Eg. Something like an integral hinge where you can push the short, base end in to pop the release (provided car is unlocked).
IMO their handles are stupidly over-engineered. It shows when you get problems like ice, etc. in northern climates.
reply