4 ms·
Aside from being an amazing story, my other takes are the following: C / C++ are truly powerful and efficient languages for execution. Can you imagine doing th
by no_wizard 4y ago
Aside from being an amazing story, my other takes are the following:
C / C++ are truly powerful and efficient languages for execution. Can you imagine doing this with Java or C# and still keeping the memory usage and speed reasonable, even in 2022? This is the late 90s (maybe early 2000s). C++ is a workhorse, warts and all.
Game development is just so different from all other types of development, but I feel like if you can game dev at this level you can develop just about any type of interactive application, but maybe I'm wrong?
The golden age of MMOs has long passed, hasn't it?
- Dylan16807 4y ago> Can you imagine doing this with Java or C# and still keeping the memory usage and speed reasonable, even in 2022? Yes.
- chii 4y agofor example, EVE Online is mostly done via python (server side at least - not the frontend iirc). In fact, i reckon the reason a lot of games would have crashes is because it's written in an unsafe language like C++. And the reason there's so many successful plugins for minecraft is _because_ it's in an "easy" language like java.
- Operyl 4y agoClient uses a ton of Python too, mind you they have a very special interpreter. https://github.com/stackless-dev/stackless/wiki/ https://github.com/stackless-dev/stackless/wiki/
- xani_ 4y ago> And the reason there's so many successful plugins for minecraft is _because_ it's in an "easy" language like java. Minecraft got mod support way after there was already a ton of mods for it. The way it got initially was basically hacking into game jars, not because it was supported in any way, it only got support later. Granted, Java JVM did made that easier, but still the reason it got so much stuff is because it was so fucking popular first. All of the modding tools were pretty much made by community from scratch, way before Mojang moved their ass.
- chii 4y ago> hacking into game jars, not because it was supported in any way, it only got support later. decompiling java is much easier than decompiling C++ output. Adding code to such a decompiled source is much easier and safer, and thus much more accessible. if minecraft had been in C++, i seriously doubt the initial mods from hacking it would've been possible.
- ianbutler 4y agoI don't know about that I'd say we're doing pretty good on the MMO scene. FF XIV really revitalized the space, but WoW is still chugging along, ESO, Star Wars, New World, Guild Wars, EVE, MMO Lite Destiny 2, etc. Basically there are a lot of MMOs with really stable populations where doing activities isn't cumbersome and you can play whatever aesthetic (fantasy, space, etc) you'd like. It's certainly different from the age of MMO's like Ultima though and the sense of community is vastly different than it was back then by virtue of how mainstream they are now and because of all the different tools and such people use to build those communities now. So if not golden, I'd say still pretty strong silver. To your other points though I completely agree.
- deleted 4y ago[deleted]
- munk-a 4y agoI'm a former game dev, I worked in PHP on the server side of our game and honestly - C++ is mostly just the dominant language because everyone is constantly overworked and everything has always been done in C++. Java and C# are some counter examples you offered which, if done right, should rival the performance you can get in C++ pretty trivially - Java may have a larger memory footprint for some things (it's harder to sanely get down to the bare metal within some contexts) but it's still quite fast. I honestly think that sometime soon we'll probably see Rust shoulder C++ out for game development once someone (eyes Epic) writes an engine with native language hooks in it simply because you get pretty much all of the performance characteristics along with one of the most valuable things in the world - extensive and resilient static code evaluation. You can make things efficient in a plethora of different languages depending on the setting (PHP, similar to how I used it, is often chosen because it's extremely readable, flexible and all the expensive performance stuff you're doing is usually in SQL on the server-side anyways) but there are definitely certain languages that are better suited to some tasks. I would really suggest not focusing in on language choice that much though, since there are much more important decisions to make when discussing high performance architecture and having access to pointer arithmetic is, at this point, honestly more of a curse (since you have to deal with horribly unmaintainable crap in some library you need) than a benefit. Over a decade ago I had my first C++ job which used the Qt framework and using references by default (which Qt strong encourages but doesn't force) is simply a much more sane approach to development.
- nrb 4y agoThe main server emulator for UO, RunUO (and ServUO that spun out of it), is written in C# and runs worlds that are as large as UO had in its heyday. A few of the very hot code paths in the netcode and elsewhere drop to unsafe to do pointer math and faster array walking but the vast majority of it is in managed space.
- cottenio 4y agoI just want to mention that the C++ code running UO was incredibly fast at what it did, and it even wrapped a custom scripting language called Wombat that ran all the gameplay logic. Pretty sure Jason Spangler, genius, made a JIT compiler in LLVM for Wombat just to see how much code we could execute in each 250ms tick. During one of my live events I got 500 people on-screen (in what, an 800x600 pixel screen?) thanks to how efficient the networking, gameplay, and client rendering code had become. Well. Then the telestorming began because I forgot to disable it…
- edmcnulty101 4y ago> Can you imagine doing this with Java or C# and still keeping the memory usage and speed reasonable, even in 2022? Lots of samples if you google.
- gwbas1c 4y ago> Can you imagine doing this with Java or C# and still keeping the memory usage and speed reasonable, even in 2022? It's all about programmer skill. You can write bloated C++ just as easily as bloated C# and bloated Java.
- philliphaydon 4y agoYes. RunUO ModernUO ServUO JustUO Classic UO running in the browser. https://classicuo.org/ https://classicuo.org/
- AtlasBarfed 4y agoIf you arena allocate (which would probably be typical in games), then GC isn't as much a problem. Most MMOs aren't a graphics problem (usually not pushing the edge) or performance problem (high FPS for twitch isn't as big a thing), they are a database problem.