9 ms·
EVE Online moves to Python 3
- brianwawok 22d ago[flagged]
- dcrazy 22d 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.
- gonzalohm 18d agoDoes the game have performance issues? I don't see the need to rewrite unless there is a problem with it
- eterm 18d agoThey have to slow down the game tick-rate to accommodate, something they call "Time Dilation": https://wiki.eveuniversity.org/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 18d agoOh 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 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.)
- NitpickLawyer 18d 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.
- buddhistdude 18d agoI 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?
- Rohansi 18d agoSwitching 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
- rvba 18d agoUniverse must run on same software... since stuff since to slow down near black holes too
- dragonwriter 18d agoMy 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.)
- dygd 18d agoSome parts are in C++ and they even made it open source recently: https://github.com/carbonengine https://github.com/carbonengine https://fenris.com/carbon https://fenris.com/carbon
- jubilanti 18d ago[flagged]
- metaltyphoon 18d agoVery aggressive. "Will you $FAVORITE_LANG people ever shut up?"
- alexaholic 18d agoThe Jehovah's Witnesses of programming
- goodmythical 18d agoi-use-arch-btw
- nilamo 18d agoThat's totally ok. "It works on my machine" with no info on what that machine looks like, is much worse
- goodmythical 18d agoskill issue
- WarmWash 18d agoCan 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.
- llm_nerd 18d agoUsing 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.
- winrid 18d agoPython 3 will likely be faster by itself.
- jamesnorden 22d agoHad to check the date.
- inigyou 18d agoJan 1 1984
- stefantalpalaru 22d ago[dead]
- chews 22d agoIt 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).
- 7bit 21d agoOr insane
- cyberpunk 18d agoPython 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 :}
- zulux 18d agoIt's a great 'glue' language to tie a lot of systems together, especially when you think of MS Excel as a system.
- elmo125 18d agoAlthough i really love or maybe have some memories, but isn't ms excel outdated , kinda, except the idea that it's always have easy fast solution
- zbentley 18d ago> isn't ms excel outdated , kinda, except the idea that it's always have easy fast solution “People shouldn’t use this tool, unless they want stuff quickly and easily”. Excel isn’t outdated, and has no competitor (there are many things that compete on sub parts of what Excel does, but nothing that competes on all or even most of its capabilities). Business-side people are creating fairly massive application-type tools in Excel every day, by the thousands. If I had a nickel for every new, growing, modern business I’ve worked with that uses Google for an office suite but has a few departments with Windows/MS Office just so people can process data in Excel, I’d have a lot of nickels.
- oybng 18d agoThe proposed solution to 2.4M lines of python is.. more python, with the primary motivation being "performance" lol
- p1anecrazy 18d 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”
- smoe 18d agoFrom 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.
- kingforaday 18d agoSpot 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 effect (e.g. 1 // 2 --> 0)
- 3eb7988a1663 18d agoPEP 238 lays out the story if anyone is curious. Well into the Python 3 transition, I still had a habit of multiplying the denominator by 1.0 to ensure it was a float. https://peps.python.org/pep-0238/ https://peps.python.org/pep-0238/
- est 18d agoStackless 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.
- rdtsc 18d ago> modern Python went in a somewhat different direction with asyncio, I'll say more, it went the wrong direction. I see async thing in Python as a step backwards. For some reason Guido heard of Twisted and deferreds and somehow got influenced by it, and here we are with "async def" and "await" sprinkled all over the place. I mean, we had stackless, eventlet, gevent, we could have started something from that. We even had the example of Erlang and with a much better concurrency pattern. Go went with goroutines and channels and in retrospect made the right choice, not as good as Erlang/Elixir imo but still better than sprinkling async everywhere.
- simonebrunozzi 18d agoCan 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.
- azalemeth 18d agoI 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.
- chorizo 18d agoIf you ever do wish to go back, request Signal Cartel to rescue you. Rescuing people from wormholes is exactly what they do. I was with them for years.
- ceejayoz 18d agoWait, EVE has a volunteer search-and-rescue group?
- mafuy 18d agoNot a player myself, but I recall there were some articles about a player organization that helped people who were stranded, or something along these lines. It sounded quite wholesome and fun.
- pests 18d agoYou may also be thinking of Elite Dangerous.
- EdwardDiego 18d ago
- zzzeek 18d agowhat 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-python-3/ https://simonwillison.net/2026/Aug/25/eve-online-move-to-pyt... so it's neither, it's their own: https://github.com/carbonengine/scheduler https://github.com/carbonengine/scheduler so that's interesting
- santiagobasulto 18d agoWhen 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
- greatgib 18d agoFor me it is quite bad, but just we are now used to it. In the same way that when you ask Windows users about all the bugs and problems they have with their system, they often say that they don't have any. And ten seconds later, will click "ok" on a random crash popup they didn't even read the content of.
- santiagobasulto 18d agoCan you elaborate? Why is Python asyncio bad?
- LtWorf 18d agoHe's probably one of the people who didn't bother to read the documentation.
- vladms 18d agoNot the OP but my impression with asyncio was that it's great for the uses case it was built for (hence the "no problems") but if you need to do something a bit different it can become an annoyance (hence the "unexpected bugs"). I see it for a specialized solution for a specific class of problems, which can lead to surprises if your problem evolves. There are always trade-offs to be made (performance, flexibility, hardware cost, etc.), asyncio just has different characteristics than the alternatives. Maybe since a upper bound of concurrent users it is always a great (the best?) solution, someone with more experience along all the design and requirements space could comment.
- Cakez0r 18d ago> So how do you migrate 2.4 million lines of code? > Very carefully, and in multiple stages. That answer is so 3 months ago
- fy20 18d ago"Claude, migrate the code. Do it fast. Make no mistakes."
- asimovDev 18d agoNo, you gotta tell Claude that you believe in them
- BurningFrog 18d agoDoes Claude claim a gender/pronouns now?
- moffkalast 18d agoOr maybe there's multiple running in parallel.
- BurningFrog 17d agoThat's actually a good explanation!
- stavros 18d agoClaude is a man's name, so...
- prmoustache 18d agoActually no, while it is predominantly a male name, it is also a woman name. Some examples of women named Claude: https://en.wikipedia.org/wiki/Claude_Pompidou https://en.wikipedia.org/wiki/Claude_Pompidou https://en.wikipedia.org/wiki/Claude_Bessy_(dancer) https://en.wikipedia.org/wiki/Claude_Bessy_(dancer) https://en.wikipedia.org/wiki/Claude_Sarraute https://en.wikipedia.org/wiki/Claude_Sarraute https://en.wikipedia.org/wiki/Claude_Jade https://en.wikipedia.org/wiki/Claude_Jade
- hugo1789 18d agoSeems to me like a migration that should have been done 15 years ago.
- BurningFrog 18d agoEve Online used to be great. Is there anything similarly great around now?
- hyperionultra 18d agoAt the scale of EVE - no.
- progval 18d agoIf you enjoyed the industry part, you may find https://prosperousuniverse.com/ https://prosperousuniverse.com/ even better than Eve.
- tripleee 18d agoEve still is great - haven't had time lately but I got really into it last year and had a blast
- dangoodmanUT 18d agoThis feels suspiciously AI-authored
- andai 18d agoPangram: "100% of this text is AI generated."
- ryukoposting 18d agoSome basic sample code for stackless python, for those like me who had never heard of it: https://github.com/stackless-dev/stacklessexamples/blob/main/examples/factorial.py https://github.com/stackless-dev/stacklessexamples/blob/main... Say "stackless tasklet" five times fast.
- yunnpp 18d agoless task, let stack
- Bluestein 18d agoLoad-bearing bear loading.-
- all2 18d agoBode learing, for my EEs that do RF work.
- WesolyKubeczek 18d agoBoar leading load bearing bear loading.
- lelanthran 18d ago> less task, let stack More Music, Less Nessman
- 17d ago
- ufo 18d agoWhat happened with the stackless python? Did they get rid of all the stackless stuff?
- ris 17d agohttps://pypi.org/project/greenlet/ https://pypi.org/project/greenlet/
- VimEscapeArtist 18d ago[flagged]
- markkitti 18d agoIf I were Fenris Creations, I would make a copy of Allegiance https://en.wikipedia.org/wiki/Allegiance_%28video_game%29 https://en.wikipedia.org/wiki/Allegiance_%28video_game%29
- shevy-java 18d ago> Some of you may remember upgrading to Stackless Python 2.5 in 2007, then to Stackless Python 2.7 in 2010. That was the last time EVE changed its Python version. Yikes. 2010 ... python is built forever. But, ignoring this - I think when the "scripting" languages can bridge the speed penalty towards C, even if not reaching it for many reasons, then they become real contenders here.
- q8zd3 18d agoIt's kinda funny to read a headline like this in 2026
- orsenthil 18d ago> 50 uses of <>, a way of writing "not equal" so old that many working Python developers have never seen it. This hit me. Not sure when this was used and was deprecated.
- jauntywundrkind 18d agoThey also open sourced their game engine? https://news.ycombinator.com/item?id=48780387 https://news.ycombinator.com/item?id=48780387 https://www.gamesindustry.biz/eve-onlines-carbon-engine-is-now-open-source-fenris-creations-explains-why https://www.gamesindustry.biz/eve-onlines-carbon-engine-is-n... I wish there was a test instance people were allowed to play around on. I never did it but for a while the game client wasn't really secure & you could just talk to the python repl basically, and script the game. I think that would be an incredible experience all unto its own, to teach coding, to be an interesting experience. Feels like with Carbon being open source, there's need for just a little more to get back around to that halycon moment.
- bfung 18d ago1/2 troll side-galley comment: use AI and translate to Rust. If the outcome or outputs / test cases are known, AI is great at language translations.
- hoppp 18d agoNot sure if it's worth it. I don't see them complaining about speed and they use specific python dependencies then they would need to translate that to rust also.
- tripleee 18d agoTiDi is a huge problem in big skirmishes, to the point where people actively avoid large group fights: https://wiki.eveuniversity.org/Time_dilation https://wiki.eveuniversity.org/Time_dilation The server isn't fast enough and it ends up slowing the game down to 10% speed as a workaround.
- ShinTakuya 18d agoRewriting it in Rust isn't automatically faster and more importantly Eve's gameplay is constantly being iterated on and Rust has proven to be bad for that. Moreover, most of Eve's bottleneck isn't single server speed, it's mostly network IO and database queries and latency. The big TiDi skirnishes in particular are slow due to this.
- JackMorgan 17d agoCould I see your sources for how Rust is slower for iterations? I've been working in JS, Python, C#, TS, and F# for about ten years. I'd guess F# and TS are tied for me for prototyping speed. I have to wonder how much the "common knowledge" that strongly typed languages are slower for prototyping is driven by unfamiliarity with the tool.
- nicce 17d agoDepends on what you do. For prototyping GUIs without well-defined framerwork, Rust is terrible. TypeScript wins completely. For back-ends, not so clear, since it is easier to write the intent there and even prototype must be somewhat correct, and TS is not as explicit as Rust is.
- nexusagent 18d agoI thought I was a Python 2.7 holdout for a long time.
- sitzkrieg 18d agothe eve client is pretty incredibly well made these days. but when the server side solution was to exponentially reduce time , i think they fundamentally lost somewhere else. maybe something good will come out of (some?) that server c++ code being released as well
- krick 18d agoI shouldn't be surprised, given I saw plenty of nicely functioning legacy codebases, but still, somehow this isn't the news I was expecting to hear in 2026.
- ydna404 18d agoI'm surprised it's still ongoing. Kudos to the community.
- dangoljames 17d agoJust one of the coolest "we're working on stuff" status updates I've ever seen. I haven't played eve online in near 20 years, but this makes me think I might have another go.
- tapland 17d agoI've been thinking about trying it out again. I re-visited it a bit in 2012 and have lately been recommended some youtube videos for catching up on lore and larger changes. It was an amazing game back then, my only issue being my inability to not spend all free time in it.
- app134 17d agoI rebooted my 2006 character last weekend and have been having a blast
- DarmokTanagra 17d ago"EVE Online moves to Office 365"
- partomniscient 16d agoAnd doesn't render in Firefox.
- amiga386 16d agoAnd if they'd written in it in Perl 5.8 from 2002, they could stick "use v5.8.0;" at the top of all their files and run it today in Perl 5.42, because the language interpreter maintained backwards compatibility. You can't run old Python code on modern Python interpreters, and you can't write Python code today knowing whether it'll work in the future. You never know when the Python org is going to change their minds and break something essential to what you're doing today. Python appears to prioritise supporting code that hasn't been written yet above code that already exists.