News for hackers. Stuff that matters.
Re:We Burned Down Players’ Houses in Ultima Online by no_wizard on Monday October 03, 2022 @07:44PM (#33075115)
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?

Re:We Burned Down Players’ Houses in Ultima Online by munk-a on Monday October 03, 2022 @08:54PM (#33075566)
I'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.

Re:We Burned Down Players’ Houses in Ultima Online by Dylan16807 on Monday October 03, 2022 @07:54PM (#33075182)
> Can you imagine doing this with Java or C# and still keeping the memory usage and speed reasonable, even in 2022?

Yes.

Re:We Burned Down Players’ Houses in Ultima Online by chii on Monday October 03, 2022 @09:02PM (#33075619)
for 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.

Re:We Burned Down Players’ Houses in Ultima Online by Operyl on Monday October 03, 2022 @09:32PM (#33075851)
Client uses a ton of Python too, mind you they have a very special interpreter. https://github.com/stackless-dev/stackless/wiki/
Re:We Burned Down Players’ Houses in Ultima Online by dbrueck on Tuesday October 04, 2022 @12:22AM (#33076687)
Great point!

Side note: you can get a lot of the power of Stackless Python without a special interpreter if you use greenlets (https://greenlet.readthedocs.io/en/latest/).

Re:We Burned Down Players’ Houses in Ultima Online by chii on Tuesday October 04, 2022 @04:28AM (#33077770)
oh didnt know their client used python! Wow!
Re:We Burned Down Players’ Houses in Ultima Online by xani_ on Tuesday October 04, 2022 @07:50AM (#33079072)
> 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.

Re:We Burned Down Players’ Houses in Ultima Online by chii on Tuesday October 04, 2022 @09:34AM (#33080142)
> 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.

Re:We Burned Down Players’ Houses in Ultima Online by cottenio on Monday October 03, 2022 @09:28PM (#33075807)
I 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…

Re:We Burned Down Players’ Houses in Ultima Online by nrb on Monday October 03, 2022 @08:56PM (#33075578)
The 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.

Re:We Burned Down Players’ Houses in Ultima Online by ianbutler on Monday October 03, 2022 @07:51PM (#33075157)
I 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.

Re:We Burned Down Players’ Houses in Ultima Online by yreg on Monday October 03, 2022 @08:10PM (#33075291)
I've heard good things about Oldschool RuneScape.
Re:We Burned Down Players’ Houses in Ultima Online by Macha on Monday October 03, 2022 @08:06PM (#33075261)
I'm not sure I'd even call Destiny 2 MMO-lite at this point, it feels as much of a MMO as retail WoW or Guild Wars 1 at this point.
Re:We Burned Down Players’ Houses in Ultima Online by philliphaydon on Monday October 03, 2022 @11:20PM (#33076392)
Yes.

RunUO

ModernUO

ServUO

JustUO

Classic UO running in the browser.

https://classicuo.org/

Re:We Burned Down Players’ Houses in Ultima Online by gwbas1c on Monday October 03, 2022 @11:15PM (#33076360)
> 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.

Re:We Burned Down Players’ Houses in Ultima Online by edmcnulty101 on Monday October 03, 2022 @09:31PM (#33075839)
> 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.

Re:We Burned Down Players’ Houses in Ultima Online by AtlasBarfed on Tuesday October 04, 2022 @11:15AM (#33081561)
If 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.