EVE Online moves to Python 3
76 points by TylerJaacks 5 days ago | 26 comments

santiagobasulto 7 minutes ago
When python started incorporating asyncio my initial reaction was fairly negative. I was behaving like a grumpy graybeard programmer ("kids these days should learn how to use concurrency instead of working on a new runtime altogether!" [0]).

But after using it for a production project I have to say I'm deeply satisfied and surprised by the maturity, quality of APIs and performance in general.

I was proven wrong and I'm happy about that :)

[0] Old man yell at clouds type of meme

reply
est 41 minutes ago
Stackless python had such potential, it could be extremely useful in Agent era for long running tasks with durable state.

modern Python went in a somewhat different direction with asyncio, but with tasklet and continuation it could be a much powerful combo.

reply
simonebrunozzi 38 minutes ago
Can an experienced player gives us a summary of what's the "vibe" of the EVE online community these days? I was lightly involved ~15 years ago.
reply
azalemeth 15 minutes ago
I too would love to know the answer to this question. I loved Eve as a teenager / young adult. It was a brilliant burst of nerdery, and the first time I ever met someone who wrote linux kernel modules for a living.

I sometimes think about logging in (I think I ragequit likely in a pod inside a wormhole in the middle of nullsec) and then I realise that way madness (and much sunk time) lies.

reply
efromvt 23 seconds ago
Yeah if I ever have the need to occupy an inordinate number of hours of my life again I’ll log back in, the temptation to dust of the account(s) arises sometimes. Think I managed to log off in lowsec but who knows!
reply
p1anecrazy 41 minutes ago
> The classic example is division: in Python 2, 1 / 2 is 0; while in Python 3 it is 0.5.

Can someone kindly explain this?

edit: I misread it as “In Python 2 2.1/2 is 0, while in Python 3 it is 0.5”

reply
smoe 38 minutes ago
From long ago memory: in Python 2, 1 / 2 did integer division. You had to do something like 1 / 2.0 if you wanted floating point division.
reply
kingforaday 16 minutes ago
Spot on. Py2 was integer division, Py3 was true division. In Py2 you could get the true division with an `from __future__ import division` (Can't recall which Py2 version this became an import). Fun fact too: In Py3 you can do a // to get back to the floor division affect (e.g. 1 // 2 --> 0)
reply
brianwawok 4 days ago
Shocking to me they are still on Python. Over like moving the high CPU parts over to rust or something.
reply
dygd 50 minutes ago
Some parts are in C++ and they even made it open source recently:

https://github.com/carbonengine

https://fenris.com/carbon

reply
jubilanti 50 minutes ago
Will you rust people ever shut up?
reply
alexaholic 44 minutes ago
The Jehovah's Witnesses of programming
reply
Ygg2 4 minutes 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.

reply
gubyfuf 39 minutes ago
[flagged]
reply
gonzalohm 54 minutes ago
Does the game have performance issues? I don't see the need to rewrite unless there is a problem with it
reply
NitpickLawyer 3 minutes 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.

reply
eterm 47 minutes 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.

reply
swdunlop 42 minutes 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.)

reply
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.

reply
chews 4 days ago
It really speaks to how great the technical team can be. As crazy as it sounds Goldman Sacks and JP Morgan both maintained 2.7 Python as a core language until just a few years ago (yes, it's still used in production).
reply
7bit 4 days ago
Or insane
reply
cyberpunk 27 minutes ago
Python is used as a kind of 'visual basic' language in a lot of banks especially in front-of-house trading software, e.g murex or frontarena. Migrations between major versions of these can take years, costs 100s of millions and involve thousands of devs. Mistakes can be _expensive_.

It is kind of 'insane' but also, meh..

There's more dragons out there than we've been led to believe :}

reply
zzzeek 26 minutes 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

reply
jamesnorden 4 days ago
Had to check the date.
reply
inigyou 7 minutes ago
Jan 1 1984
reply
stefantalpalaru 4 days ago
[dead]
reply
oybng 34 minutes ago
The proposed solution to 2.4M lines of python is.. more python, with the primary motivation being "performance" lol
reply