Welcome Guest:


MMO Coverage

255 MMOGs and counting...


EVE Online Stackless Python Upgrade Q&A - Page Two

Posted August 10th, 2007 by Cody Bye

Ten Ton Hammer: From an internal standpoint, how will Stackless Python help further development of EVE Online? Are there options available to you now that weren’t available several months ago?

Kristján: From the programmer’s perspective, the language has had some features added that make programming in Python even more pleasant. Defaultdicts, for example, function decorators, generator expressions, ternary operators. All address common minor irritations and increase efficiency. We have also relaxed our position on multi-threading Python and the new Python core supports multi-threading there. We will start experimenting in the use of Python threads in conjunction with tasklets to try to reduce client side lag.

14n

The enhancements to Stackless Python have also reduced lag.

Ten Ton Hammer: How has the community response been to the upgrade? Are people experiencing a performance boost of what you’d expect or were there some lingering issues that have caused problems?

Kristján: In spite of rigorous internal testing on the Singularity cluster, there were some initial problems with the launch. Some users experienced crashes, for example, which we hadn’t seen. This required us to release an immediate patch which addressed most of the problems. Despite this, people have been very enthusiastic about this whole business and given the shocking lack of negative feedback filtering its way down to my desk, people must be pretty happy.

Ten Ton Hammer: In the developer log discussing the Stackless Python upgrade, it was mentioned that CCP has sponsored Stackless Python events in the past. How close is CCP with the group that creates Stackless Python and how has CCP contributed to that coding language thus far?

Kristján: Stackless’ creator, Christian Tismer, is a good friend of ours. In fact, the first viably working version of Stackless he hammered together in a few days at our old office according to our requirements. Until then, the project had been largely academic but we suddenly put all sorts of strange real-world requirements on it. The fact that it has worked so well for us has been a big encouragement for Christian to keep developing it, even though he is now more heavily involved in other projects. We regularly meet and discuss the future of Stackless Python. For example, we would like to see the Stackless functionality integrated into mainstream Python one day.

Ten Ton Hammer: Will there be any further “NeedForSpeed sprint” type events going on in the Stackless Python community in the near future? Or is that a fairly uncommon occurrence?

Kristján: CCP continues to take an active interest in core development of Python, and Stackless Python in particular. We regularly attend developer conferences and discuss issues of performance and functionality with other developers. I think the “Need for Speed” sprint was a pretty unique thing though. Instead of focusing on implementing a particular feature as such sprints generally do, it was a broadly scoped housekeeping action which brought together very varied people from as far away as Australia to contribute their knowledge and talent to the project. This happened mostly because there was a perceived decrease of performance with Python 2.5 when it had entered beta stage and the community really wanted to reverse this. I think it went very well, but the next such pulling-up-of-pants action is not very likely to happen until version 2.6 nears its final stages; 2.6 is scheduled to be released in mid-2008

Civ 4

The best known game that uses "Python", according to porkbelly, is probably Civilization IV.

Ten Ton Hammer: Is Stackless Python a fairly common programming language? Are there any other gaming companies that use Stackless Python? Would you recommend programming in this language to companies that are entering the MMOG market?  

Kristján: Although Python is a very common and increasingly popular language, it must be admitted that Stackless Python is relatively unknown. Games are increasingly developed using high-level languages such as Python to program game logic, while using low-level optimized routines for performance sensitive issues such as graphics. Quite a few regular games rely on Python these days, the best known probably being Civilization IV. I seriously recommend any large game project to use a good high-level language such as Python for its central logic. The benefits in terms of development efforts can be huge.  In addition, we have found Stackless’ tasklet concept extremely useful to structure both client and server into separate tasks to perform and to enable high-throughput IO.  Thinking about problems in terms of tasklets often simplifies complex machinery such as a game engine.

Ten Ton Hammer: Will there be another Stackless Python upgrade within the next year? Will each subsequent Stackless upgrade increase performance as much as this one has?

Kristján: Now that we have caught up with the mainstream release schedule of Python, we are likely to perform upgrades as new versions are ready.  There are likely to be bug fix releases every six months or so, for example, but we probably won’t be making any fuss about them when we do so.

It is difficult to say what will happen when version 2.6 comes out. It certainly won’t be slower than 2.5 and if we manage to summon people to do a new Need for Speed sprint, it may even be faster but I am hesitant to promise such things. We should also keep in mind that part of the performance increase is due to our use of more advanced development tools, such as VisualStudio 2005 with its profile-guided optimizations, so that is a one-off benefit. There is a new set of tools on the horizon slated for next year and who knows what they may bring.

 Ten Ton Hammer:. Finally, what’s next on EVE Online’s programming plate and what should we expect from the development team in the next few months?

Kristján: My team (Core Development) will now focus our attention on the server-side of EVE to make room for additional players. We need to redesign some of the cluster infrastructure and this is no minor feat. If successful, it will benefit us all.  Everybody wins!


Ten Ton Hammer is your unofficial source for EVE Online news and features!