How is the EVE Online client written?

EVE Online looks like a Linux desktop environment running on a 3D background. Its widget set is rich with checkboxes, text entry boxes, selection, copy/paste, icons, rich text, links, file-explorer-like interfaces, window management, and more. All works pretty well, which makes me think that it is likely that some of these things come from an open source widget library, like those from the KDE project or Enlightenment, instead of having been developed in-house. Is this the case? How is the EVE Online client codebase? I don’t seem to find anything about it online.

Best guess is they don’t want us to poke around in it, and that’s a very wise decision … for all of us.

No intention to poke around the code. Else I could use tools and time to learn about the internals. I just want to satisfy some high-level curiosity. Don’t you want to know how the sausage is made?

Not really as such attempts, if you really mean it, quickly violate the EULA of almost any game I know of. So, no. Besides, I’ve been a software developer for most of my life. It’s just not that interesting to me. When you’ve seen a few projects, languages, tools and libraries, then you kind of seen them all. The magic fades after a while…

I can tell you that EVE was “worse” in the past. It’s design was deliberately based on providing players with a productivity tool for controlling a game over other designs. That we now have a few more features and gimmicks, like the radial menus, are just little steps to a slightly more intuitive interface. But the interface has been more or less the same for as long as I can remember. The sausage itself is based on a stackless version of Python and the window management is likely their own code. Other games have their own implementations of window managers, too. Theirs isn’t that much ahead of others and they had plenty of years to work on it to get it to where it is now.

As far as we know, the EVE client is written in C++ and Python. C++ handles all the low-level stuff like 3D rendering, network communication, input handling and such. (Stackless) Python is used for everything else, which includes the user interface and even the management of graphic resources (you can see this in the debug window by pressing ctrl+alt+shift+m). This technology mix is quite unique, so I’d suggest CCP implemented the EVE GUI in-house, not using a (open source) widget library. I’ve been playing EVE for many years now, and the GUI has evolved a lot since the days I first tried EVE (around 2005). This also strongly suggests that the code was written by CCP.

There are two articles mentioning technology used in the client:

5 Likes

That’s interesting. So Stackless Python is used in the client as well. I’ll check those posts.

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.