These forums have been archived and are now read-only.

The new forums are live and can be found at https://forums.eveonline.com/

EVE General Discussion

 
  • Topic is locked indefinitely.
12Next page
 

Stackless Python and Some EvE Tech Questions

First post First post
Author
Little Speedie
Eclipse Mining Corporation
#1 - 2015-08-17 09:26:52 UTC  |  Edited by: Little Speedie
Hello!

Apologies if this is in the wrong section. I wasn't quite sure if this was supposed to go in the technology lab section or the eve general section. Edit: After giving it some more though, I am pretty sure this goes in the tech section.

First off I'd like to say, "Wow Stackless Python!"

I've decided to post this on the forums rather than send an email, because I felt that some members of this community would also benefit from the answers to these questions as well.

Some background:

I have recently become interested in the programming/tech side of EvE. Currently, having just started my second year in my computer science degree, I've started to understand and admire the finer points of games. This is especially true for the logic and 3d aspects (Grrr WinAPI/DX COM's).

EvE's technology has been an interest of mine for a while now. I finally decided to try a little Stackless. This interest was due in part to the "Engine Tools" menu, and the fact that CCP discusses its technology with their subscribers, unlike many MMOs. After experimenting with some Stackless, even with my limited background (almost none) in game design and client/server programming, I can see some benefits from using it. After seeing these benefits, and the fact that python is pretty fun, noticeably easier to learn than C/C++, and didn't induce convulsive fits of rage like TASM/MASM: I want to learn more. I also want to learn more about EvE.


I have a few questions in regards to Stackless, the Engine Tools window, and EvE:

  • There is a lot of documentation on Python 2.7-3.4, but I have found very little on Stackless. Are there any resources that can assist in the learning process? How did the Devs learn?

  • How much of EvE is written in Stackless? How many other languages are used?

  • In the Engine Tools menu, which I am very thankful for, it has a section named python objects. Are these ALL the python objects? There sure are a lot, heh.

  • In the function call section, I see some functions that seem to have the C++ scope operator "::" in them. Does the function section list all function calls from all used languages or just python ones?


One side question:

  • EvE must be huge from both a programming and engineering standpoint. How do you get a new developer oriented with the EvE code, structure, and what ever else? How can an aspiring developer prepare? (stealth dev candidate preparation post)
Trii Seo
Goonswarm Federation
#2 - 2015-08-17 09:52:59 UTC  |  Edited by: Trii Seo
Considering the release in year 2003, it's probably somewhere around the times of Python 1.x or early 2.x.

I think Stackless is still kicking, currently at 3.x?

There are presentations on Fanfest regarding legacy code and how they cope with it actually. I think they had a custom importer written for example, to deal with cyclic imports I believe.

Proud pilot of the Imperium

Arek'Jaalan: Heliograph

mydingaling
Brutor Tribe
Minmatar Republic
#3 - 2015-08-17 09:56:50 UTC
Yeah my girlfriend handles a bit of python every now and again but she is stacked.
Little Speedie
Eclipse Mining Corporation
#4 - 2015-08-17 10:07:06 UTC  |  Edited by: Little Speedie
Trii Seo wrote:
Considering the release in year 2003, it's probably somewhere around the times of Python 1.x or early 2.x.

I think Stackless is still kicking, currently at 3.x?

There are presentations on Fanfest regarding legacy code and how they cope with it actually. I think they had a custom importer written for example, to deal with cyclic imports I believe.


I "Think" EvE uses 2.6+ now. At some point I remember reading an old engine optimization blog/post that mentioned an upgrade to 2.5.1 while having their eyes on 2.6.

Currently stackless is up to 3.4.2 which is 0.0.1 off from the mainstream release version.
Python
Stackless Python


found it:
Source
Ralph King-Griffin
New Eden Tech Support
#5 - 2015-08-17 11:29:04 UTC
mydingaling wrote:
Yeah my girlfriend handles a bit of python every now and again but she is stacked.

Badum tss
Nana Skalski
Taisaanat Kotei
EDENCOM DEFENSIVE INITIATIVE
#6 - 2015-08-17 11:39:57 UTC
CCP Explorer
C C P
C C P Alliance
#7 - 2015-08-17 12:06:56 UTC
Little Speedie wrote:
  • How much of EvE is written in Stackless? How many other languages are used?
We use C++ for performance intensive tasks (e.g., the physics simulation and graphics rendering) and all operating system level interfaces (disk, network, database). We use CCP Stackless Python (our own slightly modified version of Stackless Python) for all game feature code. We use T-SQL (Microsoft SQL Server) in stored procedures for all database logic.

Erlendur S. Thorsteinsson | Senior Development Director | EVE Online // CCP Games | @CCP_Explorer

Rain6637
GoonWaffe
Goonswarm Federation
#8 - 2015-08-17 12:09:49 UTC
I enjoyed this article from 2005. I'm thinking you may not have seen it, Little Speedie, due to its pub date.

http://kalogirou.net/2005/08/10/multithreaded-game-scripting-with-stackless-python/

The people you want to talk with about the real deal are former, not current, CCP programmers.

Or I can save you time and summarize their sentiment for you: run.
Rain6637
GoonWaffe
Goonswarm Federation
#9 - 2015-08-17 12:22:20 UTC
Felo Maxun
Felmax Trade Inc
#10 - 2015-08-17 16:43:46 UTC
Rain6637 wrote:
I enjoyed this article from 2005. I'm thinking you may not have seen it, Little Speedie, due to its pub date.

http://kalogirou.net/2005/08/10/multithreaded-game-scripting-with-stackless-python/

The people you want to talk with about the real deal are former, not current, CCP programmers.

Or I can save you time and summarize their sentiment for you: run.



I couldn't agree more that you should RUN towards their jobs page : http://www.ccpgames.com/en/jobs

I wish they would list more developer jobs as i've been waiting to apply for MONTHS!!
Unsuccessful At Everything
The Troll Bridge
#11 - 2015-08-17 17:35:50 UTC
Im sure with all the spagettified legacy code in there for this and that, and the fact that no one knows what some of it actually does anymore, im sure its more like 'Stackless Monty Python' at this point.




Since the cessation of their usefulness is imminent, may I appropriate your belongings?

Felo Maxun
Felmax Trade Inc
#12 - 2015-08-17 18:24:05 UTC  |  Edited by: Felo Maxun
Unsuccessful At Everything wrote:
Im sure with all the spagettified legacy code in there for this and that, and the fact that no one knows what some of it actually does anymore, im sure its more like 'Stackless Monty Python' at this point.






Perhaps i'm a masochist, but that sounds like a fantastic environment to start working in, some much improvement to have, so many forgotten truths to relearn / decipher. Sometimes its difficult to appreciate why something has been programmed they way it has, doesn't make it wrong, just means its may not be suitable for the current requirements or they have changed with the implementation lacking behind.

As someone who's job it is to unravel these balls of yarn, I can tell you its surprising how much you learn from what others consider "dead/legacy code".

Even if all your are learning is how it should never be done :P
La Rynx
School of Applied Knowledge
Caldari State
#13 - 2015-08-17 18:38:42 UTC  |  Edited by: La Rynx
Felo Maxun wrote:
Rain6637 wrote:
I enjoyed this article from 2005. I'm thinking you may not have seen it, Little Speedie, due to its pub date.

http://kalogirou.net/2005/08/10/multithreaded-game-scripting-with-stackless-python/

The people you want to talk with about the real deal are former, not current, CCP programmers.

Or I can save you time and summarize their sentiment for you: run.



I couldn't agree more that you should RUN towards their jobs page : http://www.ccpgames.com/en/jobs

I wish they would list more developer jobs as i've been waiting to apply for MONTHS!!


You didn't read the glassdoor pages, did you?
Interesting.

However:
I always wonder: Python is a scripting language. Is the code somehow compiled?
If the project gets a certain size, i consider scripting languages sub-optimal.

Unsuccessful At Everything wrote:
Im sure with all the spagettified legacy code in there for this and that, and the fact that no one knows what some of it actually does anymore, im sure its more like 'Stackless Monty Python' at this point.

Python was derived from "Monty Python" and not from the snake.

Atomic Virulent : "You can't spell DOUCHE. without CODE."

Rain6637
GoonWaffe
Goonswarm Federation
#14 - 2015-08-17 18:40:14 UTC
Pick a better game with healthier revenue and a good bit of popularity for the sake of job security

Then make sure they have locations in first world job markets for the sake of your pride.
Felo Maxun
Felmax Trade Inc
#15 - 2015-08-17 18:43:35 UTC  |  Edited by: Felo Maxun
La Rynx wrote:


You didn't read the glassdoor pages, did you?
Interesting.


I did, but I take sites like that for what they are, a place that is likely to get far more negative posts than positive.
La Rynx
School of Applied Knowledge
Caldari State
#16 - 2015-08-17 19:02:42 UTC
Felo Maxun wrote:
La Rynx wrote:


You didn't read the glassdoor pages, did you?
Interesting.


I did, but I take sites like that for what they are, a place that is likely to get far more negative posts than positive.


It's not about the single posts.
It is about the picture behind all posts.
I did read them all.
I know what you mean. You would expect a lot of disgruntled employees. But i am talking about the picture that comes to existence when you where watching CCP and EvE over the years. I also happen to work in small companies growing big, so i can understand some problems with some managment ppl.

"make it more psssshhhhhh.."
Still it looks like a nice workplace. Just not perfect, maybe even with a lot of flaws.

What makes me sad:
I don't get the feeling, that someone in the managment has a "Vision of EvE". Without Vision, there can only be minor advances for EvE. Without Vision, it is hard to attract ppl.

On a sidenote: Chris Roberts sold just a Vision of SC.

Atomic Virulent : "You can't spell DOUCHE. without CODE."

Nana Skalski
Taisaanat Kotei
EDENCOM DEFENSIVE INITIATIVE
#17 - 2015-08-17 19:09:03 UTC  |  Edited by: Nana Skalski
A lot of reviews is from Atlanta, This is relevant.

And EVE is made by fans, Python is compiled. I always read it is subpar than C++ because its slower. It have been used in few games for AI, but the only game using Python to that extend is only EVE. You have to be a great fan of the game to work on it. Because I dont see why else would you take this job. Working in programming environment that you cant easily fransfer/apply experience from and shift easily to other job in gaming industry. Maybe in job where python is used, but not like in EVE for sure.
Steve Ronuken
Fuzzwork Enterprises
Vote Steve Ronuken for CSM
#18 - 2015-08-17 20:08:36 UTC
Ahh, the old 'scripting language' chestnut. It's a total red herring. If you're not using Bash or powershell, you're probably not using a scripting language

The terminology you're actually looking for is compiled vs interpreted.

Of course, then you you get into the more complicated territory of byte-code compilation. Which is what happens with CPython. The environment you run it in is important, when defining the answers to questions.

Woo! CSM XI!

Fuzzwork Enterprises

Twitter: @fuzzysteve on Twitter

Frostys Virpio
State War Academy
Caldari State
#19 - 2015-08-17 20:24:53 UTC
CCP Explorer wrote:
Little Speedie wrote:
  • How much of EvE is written in Stackless? How many other languages are used?
We use C++ for performance intensive tasks (e.g., the physics simulation and graphics rendering) and all operating system level interfaces (disk, network, database). We use CCP Stackless Python (our own slightly modified version of Stackless Python) for all game feature code. We use T-SQL (Microsoft SQL Server) in stored procedures for all database logic.


Which one of those is the worst "spaghetti" plate to deal with?

If you don't mind sharing of course.
La Rynx
School of Applied Knowledge
Caldari State
#20 - 2015-08-17 21:03:12 UTC
Steve Ronuken wrote:
Ahh, the old 'scripting language' chestnut. It's a total red herring. If you're not using Bash or powershell, you're probably not using a scripting language

The terminology you're actually looking for is compiled vs interpreted.

Of course, then you you get into the more complicated territory of byte-code compilation. Which is what happens with CPython. The environment you run it in is important, when defining the answers to questions.


oh my, if you read my post with open eyes, you could see, that i asked, if the code gets compiled.
no cigar!

Atomic Virulent : "You can't spell DOUCHE. without CODE."

12Next page