Top
Best
New

Posted by TylerJaacks 4 days ago

EVE Online moves to Python 3(www.eveonline.com)
331 points | 178 commentspage 3
hugo1789 15 hours ago|
Seems to me like a migration that should have been done 15 years ago.
dangoodmanUT 14 hours ago||
This feels suspiciously AI-authored
andai 6 hours ago|
Pangram: "100% of this text is AI generated."
zzzeek 16 hours ago||
what did they do about stackless? are they using greenlet or did they switch to asyncio?

googled it so this becomes a PSA: https://simonwillison.net/2026/Aug/25/eve-online-move-to-pyt...

so it's neither, it's their own: https://github.com/carbonengine/scheduler

so that's interesting

stefantalpalaru 4 days ago||
[dead]
VimEscapeArtist 12 hours ago||
[flagged]
brianwawok 4 days ago||
[flagged]
dygd 16 hours ago||
Some parts are in C++ and they even made it open source recently:

https://github.com/carbonengine

https://fenris.com/carbon

gonzalohm 16 hours ago|||
Does the game have performance issues? I don't see the need to rewrite unless there is a problem with it
NitpickLawyer 16 hours ago|||
> Does the game have performance issues?

Yes, it has had huge concurrency issues for the entirety of its life. Their solution to large fights has historically been "let us know in advance pls", plus "move systems to beefier hw nodes" and "tidi" which stands for time dilation, where the "tick rate" of the whole server goes down and a fight takes 10-20-100x longer than it should.

It's an amazing concept of a game, but software wise it has been a mess since forever.

Rohansi 14 hours ago|||
Switching away from Python would not fix this. EVE Online runs its world without instancing or shards, meaning you cannot scale out the simulation when a single zone is overcrowded. Pretty much every other online game avoids this problem by making it impossible to have thousands of players in the same area because networking every players' actions to thousands of players is always problematic
dyauspitr 12 hours ago||
But one of EVE’s biggest selling points is specifically the 1000s of players in one area.
Rohansi 10 hours ago||
Yes, I am saying time dilation is a necessary compromise because of that.
buddhistdude 14 hours ago||||
I have to remember the "time dilation" excuse for the next production issue lol

edit: maybe the path to unlimited processing speed is to send a data center through space near speed of light. That's how it works right?

rvba 13 hours ago|||
Universe must run on same software... since stuff since to slow down near black holes too
eterm 16 hours ago||||
They have to slow down the game tick-rate to accommodate, something they call "Time Dilation": https://wiki.eveuniversity.org/Time_dilation

How much of that is down to processing time is unclear, but I think it's fair to say there is scope for improved performance.

Secondary to that, if you have general performance improvements then you can afford to run a smaller server cluster or smaller servers, reducing costs.

swdunlop 16 hours ago||||
Oh my yes. EVE Online can experience issues when a conflict in a solar system exceeds a certain number of players. Each system in EVE is a monolithic process, so, if a conflict gets out of hand, things get slow.

This is referred to as Time Dilation (TiDi) in EVE -- https://wiki.eveuniversity.org/Time_dilation -- it's an interesting engineering rathole, Fenris f/k/a CCP has been pretty open about their stack, and the challenges that have built up.

Anything that speeds up EVE lets more players cram in without experiencing TiDi, and this might let the devs escape Stackless Python, which is another interesting engineer rathole. (It's ratholes all the way down, and this is the one that got EVE on my radar, and has kept it there.)

dragonwriter 13 hours ago|||
My understanding is that the performance issues it has are more big-O issues of the problem space than issues that would meaningfully be resolved by the multiplicative speedup of moving to a more efficient language (the point at which they start to bite would shift a bit, though.)
dcrazy 4 days ago|||
> Every character, every skill point, every asset in every hangar, every ISK in every wallet was written in Python 2 code, and all of it must read back under Python 3 exactly as it was.

This task would be even more challenging under such a dramatic rewrite.

winrid 15 hours ago|||
Python 3 will likely be faster by itself.
jubilanti 16 hours ago||
[flagged]
alexaholic 16 hours ago|||
The Jehovah's Witnesses of programming
WarmWash 15 hours ago|||
Can someone explain to my non-programmer self what the deal is with Rust?

Even not being in the tech space, I have long picked up on this quasi-religous aura around it.

alexaholic 14 hours ago|||
Rust is a tool that allows one to build cars for humans to drive, in order to avoid certain accidents. If you try to put your dog in the driver’s seat of a Rust-powered car, Rust will stop you and ask you to produce proof that the dog is a qualified human driver.

The world is a pretty big place, so of course there are people who sometimes put their dog in the driver’s seat. Sometimes by accident, sometimes out of necessity, and sometimes because they think it’s mighty fun. Since Rust is strict about who or what gets to drive the car, these people build their cars using other languages.

Some Rust-heads, however, are pretty adamant that cars are to be driven by qualified humans only, and therefore keep nagging everyone about how all cars should be built with Rust.

whytevuhuni 9 hours ago|||
> cars are to be driven by qualified humans only

As a Rust programmer I'm fine with cars driven by dogs, I just want that to be clearly acknowledged as unsafe, and if that car is be driven in public roads, I would also like a safety comment stating all the precautions taken to make that safe for others, preferably reviewed by the police as well.

speedstyle 5 hours ago|||
I for one don't care about memory safety. Rust makes it easier to compose software by expressing everything in your function/module signature. This is what OOP aimed to do, but was quite prescriptive (a datatype often isn't the natural unit of encapsulation). It maximizes local reasoning, so you can make changes to a large codebase with less understanding of uses elsewhere, and reuse functionality in new ways without changes.

C#, Go, Swift are (mostly) memory safe, but I don't think they provide this level of modularity or broader reliability. Expressive interfaces/contracts are useful for all sorts of things, you can use them for memory management but for me that's almost a by-product. I certainly don't consider it a restriction on the kinds of program you can write

gosub100 14 hours ago||||
before rust, if you wanted to use a "fast" programming language you had to use C or C++, which are fraught with sharp edges. Rust gives you all the performance benefits of a compiled language, with barely any sharp edges.
llm_nerd 14 hours ago|||
Using python for a purpose like this is extremely strange -- it clearly is just technology debt they've been carrying around from a silly decision over a decade ago -- so someone mentioned a contemporary, more acceptable alternative. I don't really see why this threatens some people, much less the incredibly stupid "religious" nonsense.

Rust has lots of inertia behind it, a fantastic core library, fantastic concurrency and scalability and excellent LLM support. If someone were greenfield building a service like this today, instead of being bound by poor decisions in the past, had infinite knowledge of every toolset and language and option, there is a very good chance they would settle on Rust. They might not, but it's definitely a finalist. So not remotely surprising someone would mention it.

That this caused someone to flip out is hilarious though.

CrazyStat 12 hours ago||
> it clearly is just technology debt they've been carrying around from a silly decision over a decade ago

Almost three decades ago—development started in 1999 and the game was released in 2003.

Joeboy 10 hours ago||
This is a weird conversation. Python was a strange choice back then, but is now probably the most popular programming language in existence. If anything the choice of Python (and C++) was remarkable foresight / luck.
llm_nerd 9 hours ago||
If Eve were green-fielded today, there is a 0% chance they would choose Python anywhere in the service layer for an online game. Zero chance.

Python is a fantastic "glue" programming language. A duct-tape language. It's awesome for little scripts, or for gluing together some AI scripts, where you're basically atomically gluing a series of calls to giant native C/C++ libraries like pytorch that are then doing a series of calls to giant native C/C++ libraries like CUDA. Where the overhead of python is negligible compared to some heavy lifting being done by a better language/system.

The simple fact that we're talking about a service that was stuck on Python 2 two decades after it was replaced, half a decade after it was fully deprecated, reveals this to be 100% just debt. The fact that they talk about millions of lines of Python code, and that Python 3 represents a big speedup for their operations, again betrays it to be nothing but debt. They have Python code in the critical flow, not just as a light glue over intensive code, and they have almost certainly spent untold dollars on extra hardware, delivering a worse experience for their users, because they had a "python enthusiast" in a critical position decades ago.

goodmythical 15 hours ago|||
i-use-arch-btw
nilamo 15 hours ago||
That's totally ok. "It works on my machine" with no info on what that machine looks like, is much worse
goodmythical 11 hours ago||
skill issue
Ygg2 16 hours ago||||
Python is very strange programming language for a MMORPG. I'd imagine they would write it in C++ or something. They don't quite explain what they use it for.

And yeah, using a faster but safe language could help immensely.

flohofwoe 15 hours ago||
Python is just a part of the tech stack, there's also a lot of C/C++ code. How much Python vs C/C++ is hard to say from the outside though, but the parts that have been open-sourced are pretty much all C/C++:

https://github.com/carbonengine

gubyfuf 16 hours ago||||
[flagged]
nlarew 15 hours ago||||
Will you poor contributors ever shut up?
metaltyphoon 15 hours ago|||
Very aggressive. "Will you $FAVORITE_LANG people ever shut up?"
oybng 16 hours ago|
The proposed solution to 2.4M lines of python is.. more python, with the primary motivation being "performance" lol