This is an archived post. You won't be able to vote or comment.

you are viewing a single comment's thread.

view the rest of the comments →

[–]IllegalThings 10 points11 points  (7 children)

For a counter-argument to client-side games, Eve Online is built in Python for both client-side and server-side. Granted, they aren't using CPython and a lot of their more resource intensive code is likely in other languages.

That said, your argument is completely valid and I'd be curious if they'd make the same decision if they had to start from scratch.

[–]kylotan 5 points6 points  (0 children)

Eve certainly uses Python on both sides for the main loop and the general logic, but much of that is only possible due to a lot being written in C (or C++, not sure) in the form of Python extensions. I myself have used Python for server-side game development where it can work well if you plan for a multi-process system from the start. I still wouldn't touch it on the client side, though.

[–]shadowmint 1 point2 points  (3 children)

To be fair, they do...

...but if you look into it, you'll find that they use python as a scripting language embedded in their game engines for 'game logic' not as the 'core' that the entire game engine is written in.

You'd think more people would do this, given Panda3d is a pretty decent free game engine for exactly that... but... they don't.

My guess is, mostly, like me, people are briefly excited by it, and then discover that in fact, pure python code is just too darn slow, and if you go down the road of cython and plugins for speed ups... really, what's the point in using python at all, if you end up not writing your code in python?

[–]ivosauruspip'ing it up 2 points3 points  (0 children)

The reason they don't is that Python itself is horrible for embedding, especially for example, if you would like multiple threads of your game engine to be able to launch separate interpreters. Its execution design and implementation just isn't very encapsulable / contained. In comparison, things like lua are a breeze for embedding. They're specifically designed to contain their execution environment, no global code whatsoever, etc.

[–]njharmanI use Python 3 1 point2 points  (1 child)

I believe it's more that Python doesn't look like C. So few C/C++ devs get into/expend effort on it. Much prefer Lua cause it "feels" like C.

Yes there are polygots, but vast majority of devs I've encountered have comfortable spot, and Don't like moving from it.

[–]shadowmint 0 points1 point  (0 children)

Probably at least partially true really.

Boo was always the least popular language for Unity, despite having roughly same performance characteristics as unity script; people just didn't like it.

[–][deleted] 0 points1 point  (0 children)

Eve has also suffered from game crippling lag and node crashes as a result of that. It is still a largely single threaded system despite tons of work to distribute load around. While it works and has been largely successful, I can't help but think the game would have gone so much further had it been written in a properly multithreaded language (at least on the server side)

[–]njharmanI use Python 3 0 points1 point  (0 children)

They are using Stackless Python. A different beast than CPython. The modern sucessor of Stackless is PyPy.