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.

style="margin: 10px; border-collapse: collapse; float: right; width: 121px; height: 117px;"
border="1">

href="http://tth.tentonhammer.com/modules.php?set_albumName=album307&id=14n&op=modload&name=gallery&file=index&include=view_photo.php"> src="http://media.tentonhammer.com/tth/gallery/albums/album307/14n.thumb.jpg"
alt="14n" title="14n" name="photo_j" border="0"
height="110" width="150">

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

style="margin: 10px; border-collapse: collapse; float: left; width: 148px; height: 138px;"
border="1">

href="http://tth.tentonhammer.com/modules.php?set_albumName=album307&id=Civ_4&op=modload&name=gallery&file=index&include=view_photo.php"> src="http://media.tentonhammer.com/tth/gallery/albums/album307/Civ_4.thumb.jpg"
alt="Civ 4" title="Civ 4" name="photo_j"
border="0" height="120" width="150"> src="http://tth.tentonhammer.com/modules/gallery/images/pixel_trans.gif"
alt="" height="1" width="1">

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 href="http://www.tentonhammer.com/taxonomy/term/43">news and
features!


To read the latest guides, news, and features you can visit our EVE Online Game Page.

Last Updated: Mar 29, 2016

Comments