Game engine migration

Please explain to me what is so modern in this modern way of using old python, what could have not been done in it earlier.

first if you explain what the programming language has to do with it in the first place.

example: when the multicore era started, a more modern way of programming as using multiple cores. it has nothing to do with the language.

i mostly write assembly code. anyone telling me that’s “an old way” i would just laugh at.

though, hell, idk about “modern ways”. this line of thinking infected everyone with OOP back in the days and now it’s as if everything has to be written OOP, as if that made any sense.

2 Likes

Of course, just as I though, functionality, efficiency and compatibility is something what developers should strive for. I dont know what modernity have to do with it, when you dont have modern tools. Just like with hammer, it excells in hammering, if its brand new or old.
I have never heard about EVE python code being ported, so the compatibility with new tools for DEVs is not an issue I think.

1 Like

hm… this part of the conversation has its base on the wrong use of “modern ways”, by someone who has a hard time expressing his thoughts properly?

i need to gather people who can convince CCP to let me touch their code…

image

Since you don’t have or almost basic knowledge in topic you try discuss. Read something about it and decide on your own what that “modern programming language” can give to EVE. But remember that change will take months or more.

Maybe after that lecture you realize that there are more important things than version numbers.

https://wiki.python.org/moin/Python2orPython3

Porting to a new Python version would easily become a gigantic amount of work for little gains. For large gain at this point, the engine itself would have to be re-written and nobody in their right mind want to do that on a product like EVE. I mean, how are they even supposed to re-write the part they admitted they don’t even know how it work? And with a few comment from CCP we had before, there is definitely a non-0 chance for those currently unknown part of the code to actually be needed for completely unrelated function elsewhere in the game.

EVE isn’t an iphone fart app. You don’t just decide to re-write it on a whim. Especially if the stability of said code is highly related to your ability to have revenue.

On top of that, if you o for a re-write, your coders don’t work on new feature to add to the game during that time. People got ass-blasted when month of dev time gave us Incarna. Do we really want them to throw month of dev time on nothing because they just re-invent the wheel before final resuming additional developmental once they migrated the live game to the new engine?

I have read that few days ago actually and part about updating code too.
Still dont know from where you got the idea that CCP want to port EVE. It will not happen.

And players realized it years ago, when CCP devs realized it and told us so.

2 Likes

So what about that modern way? What is that and why they would use it?

Do you possibly have something like this on the mind?
http://video.kiberpipa.org/py_swizec_modern_python_idioms/
That was back in 2012. Nothing really modern about that.

Anyway, how do you know how CCP is programming things?

Lets start from beginning:

  • Programming language

A programming language is a formal language that specifies a set of instructions that can be used to produce various kinds of output. Programming languages generally consist of instructions for a computer. Programming languages can be used to create programs that implement specific algorithms.

source - Wikipedia

That means Python for EVE is just probable 10-20% of all code. Everything else is made on modules, plugins, third party software like Direct X etc. Standard Python not even allow to use 3D graphic.

The modern thing in development proces is that devs probable are using new and modern modules to write new or rewrite old stuff to make game compatible with new computers and other stuff.

Because how normal developers work on entire globe. There is no other metod to keep software updated to modern standards without shutting it for months.

Now all IT stuff is changing so fast that even if CCP or any company will try to stop they product and start porting it will become outdated again before they complete that proces.

TL;DR I really want to see EVE working under vulcan API or any new solutions. But this not gonna happen because will cost huge amount of cash that CCP probable will never see again.

Ps. sorry for my language and how I explain things, but english is not my native. I’m still learning it.

That thing I know and what is programming language, as I even wrote few programs in my life, of course nothing complicated, but still have basic knowledge. Also can understand that the new things are constantly emerging on market, but what company can use is different thing entirely, as in work I use programs that are not supported for years for example and can still do things modern programs can do, but you need to put more work into it.

That is actually interesting. I actually was thinking that them using different languages is influencing their way of designing things in python also. Or maybe they dont even like to touch it after those years, fearing it will break and there will be no one to reprogram it, so they “program things around it”. Legacy code strikes again? :thinking:

Yes, we’ve noticed. I believe you two are not really talking to each other, but it is not really anyone’s fault.

Because, CCP and staff of CCP have discussed things over the years.

For example, these posts from CCP Foxfour on Reddit almost 2 years ago now, that I can immediately find:

Just these show CCP has been moving away from continued use of older versions of Python to 2.7 (still supported through to 2020) and 3.4 (possibly 3.5 now also) and Go.

Go is one of the most modern and trendy (and performant in the right situation) languages around at the moment and I am fairly certain, though I can’t find a current reference, that they are also using C++ on the backend as well, and for the client.

Modern programming is less about the specific language used and more about how the language is used and even for something like Python 2.7, even as no new features are added to the language, the existing core libraries have continued to be optimised until recently and the interpreter has continued to be supported. It’s just as possible to write “modern” code in 2.7 as it is in 3.x

For a long time the Python community almost refused to switch to 3.x because it was so broken when it was first released. It’s taken a long time to build trust in its use and only now, with 2.x support ending at PyCon 2020 have major libraries been ported to version 3.

That aside, EVE seems to be heading towards using less Python now anyway, towards more “games performant” languages and languages that support concurrency better without a global interpreter lock.

The most recent stats I looked at showed Python 2 still in greater use than Python 3, with that not expected to change until the end of this year. There’s a lot of modern applications with large Python 2 codebases.

So why would CCP port older working Python 2 code to Python 3? What benefit are they going to gain just from porting? There are definitely advantages to be gained if there are bottlenecks, but what if the code isn’t a bottleneck at all? What’s so wrong with not porting?

2 Likes

New game engine might add some extra functionality, or least better graphics capability, object interaction, whatever the engine says it does best.

Most of the issue with the game is in old code, so if they did move over to say… something new, faster, and superior… Even if it is better the old code probably wouldn’t work and need to be re-written, this would fix a lot of underlying bugs and enable us to log out and in without a windows shutdown.

As it stands, CCP won’t be changing anything as major as that, not because it is simply hard, just the fact they don’t want to (or probably can’t, they’d lose a lot of money if making a “new game” offlined the servers by accident)

Outside view of the engine. When you look at it it can run relatively smooth with major ship battles due to the fact it doesn’t do many hard calculations. acc=x, dmg=y, target=54 hit=true/false. If Eve were to lose all graphical capability the game likely wouldn’t change, it is like a text game but with 3d pictures to show you what is happening even if those pictures don’t matter much. [they could squeeze out a lot of performance with a “text only” mode]

Beyond that, they’ll change the game engine eventually, or the code, due to the fact they have to. They have said they can’t add certain features due to the way Eve is built (like the log off without exit). Once they reach the limits of what their engine/code can do they will have to move on. Though by the time it gets there they might have shut down Eve already… The game isn’t the best source of income a dev could want, or even something they would want on a resume (this game has bad news and horrible rumors tied to its name)

Short answer:

new engine = pretty

Code sucks more than engine

They don’t want to migrate

They’ll have to when they reach the limit of what they can do currently

You guys crack me up. :smiley:

I don’t think the computer cares what it’s doing once the Python, C++, etc. is compiled on its end. It just reads the set of instructions that it’s given from the compiler and acts on them, even if they’re utter garbage.

Sometimes it’s the programmer, other times it’s concessions made in the language itself as it compiles to allow it to work with as many devices and people as possible.

You want a language that lets you get up close and personal with the compiled code and massage it in cruel and unusual ways if you want it to go fast. Eve needs to move that code fast as it’s processing thousands of inputs across the globe simultaneously per tick for a single battle. The choice isn’t based on shiny, it’s based on how fast and thoroughly the new compiler can beat the hardware in to submission. If it can’t do a better job, then the only reason you update is if the old compiler is so worn out and unloved it wouldn’t work anyways.

i’m sorry, Andrew, may i ask how old you are?

  1. First computer was a Tandy 1000 with special needs.

and you’ve learned to wholy rely on the compiler?

do you write lots of OOP?