Get the latest Education e-news
 

Go Back   Game Career Guide Forums > Programming
Forum Home Register Members List Mark Forums Read

Reply
 
Thread Tools Display Modes
Old 09-29-2009, 10:44 AM   #11
tsloper
Super Moderator

Activity Longevity
4/20 14/20
Today Posts
1/11 sssss1866
Location: Los Angeles, CA
Default

Can't some mod move this to the programming forum? That's really where this belongs...
__________________
Tom Sloper
Sloperama Productions
Making games fun and getting them done. www.sloperama.com

PLEASE do not use this website's PM feature to contact me.
tsloper is offline   Reply With Quote
Old 12-22-2009, 05:05 AM   #12
noise
Junior Member

Activity Longevity
0/20 13/20
Today Posts
0/11 ssssssss2
Location: Warwickshire, UK
Default

Hi. I know this thread is a few months old. but I thought you might like to read this regarding EVE Online.

Quote:
As you may well know, your favorite space-game owes its existence to the programming language Python and particularly, a variant thereof called Stackless Python. When EVE was released in 2003 it had version 2.1 under the hood and a year later we upgraded this to a brand new version 2.3, skipping version 2.2 in the process. Since the move to version 2.3 not much has happened, or at least as far as Stackless and EVE are concerned.
That was not the case for the Python community though. The man behind Stackless, Christian Tismer, rewrote the internals of Stackless for version 2.3, which we called Stackless 2.3.1. This would form the platform for Stackless in the later versions of Python, including 2.4 and 2.5. At that point, we had a difficult decision to make because the logistics of maintaining a large software project made it difficult for us to make a large core change in the binaries. Facing questionable benefits and a risky deployment, should we make the jump?

Then several things changed:
  • Python moved on. Version 2.4 was released and version 2.5 started in development.
  • An increased focus on performance became apparent within the Python community, which culminated in the NeedForSpeed sprint in Reykjavík in the spring of 2006, of which CCP was a co-sponsor.
  • Microsoft released Visual Studio 2005, which includes improved optimization, particularly Profile Guided Optimization, and honed it with a service pack earlier this year.
All of this meant that there was now a good reason for us to upgrade to Stackless Python 2.5.

From a programmer's perspective, the changes were not that great. On the C++ level, we needed to make minor adjustments to the low-level API of Python, as well as a revamped API for Stackless. Since we were doing C-level changes, we decided to separate the Stackless runtime out into a DLL and standardize the bindings to it. This also simplifies the process of running the Profile Guided Optimization step during the build process.

The Python programmer sees only minor changes, as all old code continues to work. The biggest change, which did cause some problems, was that Exception objects have been changed to be so-called "new style" instances, and behave slightly different. However, the Python programmer will benefit from some brand new cool features in 2.5 that weren't present in the old version, including:
  • A Ternary operator
  • Function decorators
  • Generators and Generator comprehensions
  • Sets
  • Defaultdicts
The associated changes were performed in a separate branch and thoroughly tested. We have seen a considerable performance increase. This increase is primarily due to two things:
  • Python itself has been carefully optimized and common operations made faster, and
  • Profile Guided Optimization of the Python DLL works really well.
An additional logistical benefit is now that we're back to using the cutting edge version of Stackless Python (2.5.1 to be precise), it is much easier for us to keep in step with future Python developments, including the forthcoming version 2.6.
Integration back into the main branch has been performed and counter to the associated risks, all tests indicate that the upgrade will result in a juicy performance boost.
noise is offline   Reply With Quote
Old 12-22-2009, 08:46 AM   #13
noise
Junior Member

Activity Longevity
0/20 13/20
Today Posts
0/11 ssssssss2
Location: Warwickshire, UK
Default

I also found this which mentions EVE has a Python part of the engine.

Quote:
Ten Ton Hammer: What sort of factors helped push you towards the decision to upgrade Stackless Python? You mentioned some upgrades to Python and the NeedForSpeed sprint, but why choose to upgrade the client now rather than before Revelations II or farther down the road?

Kristján: Due to various issues, mostly being swamped with day-to-day development and maintenance of EVE, we didn’t pay enough attention with keeping the Python part of the engine up-to-date. At various points we have attempted to catch up but we never had the breathing space to do so. This time we had the core technology ready and decided to go for it. It was a question of reserving a space in the release schedule for it. We wanted to apply the change in the breathing room after Revelations II when the initial flurry of hotfixes had subsided. The patch went out without any other change so that we could monitor the effects of this change in isolation.
After reading this thread, I've spent most of the day reading about Python. I think I may start learning it.
noise is offline   Reply With Quote
Old 12-22-2009, 02:57 PM   #14
smipinsmi
Junior Member

Activity Longevity
0/20 13/20
Today Posts
0/11 ssssssss1
Default

Great post, perhaps a sticky?

Thanks!
smipinsmi is offline   Reply With Quote
Old 12-29-2009, 06:13 AM   #15
ndimucci
Senior Member

Activity Longevity
0/20 17/20
Today Posts
0/11 ssssss156
Location: CT
Default

The more you know, more power to you.
__________________
Software Developer
http://www.linkedin.com/in/ndimucci
ndimucci is offline   Reply With Quote
Reply


Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off


Powered by vBulletin® Version 3.6.9
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
All times are GMT -8. The time now is 10:20 PM.






UBM Tech