[tp-devel] Thousand Parsec goals and direction

[tp-devel] Thousand Parsec goals and direction

Tim Ansell mithro at mithis.net
Mon Jan 2 16:53:58 EST 2006

Hi everyone and Happy New Year!

As Lee has said what his plans are for tpserver-py, I thought I might as
well tell everyone what my plans are for the parts of Thousand Parsec
I'm in charge of (plus my goals of Thousand Parsec overall).

Firstly some history
I originally started Thousand Parsec (it wasn't originally called
Thousand Parsec) a long time ago. Originally it was going to be a simple
clone Stars!, however I quickly got tired of trying to do it by myself.
I played with the idea on and off for half a year.

I decided to try starting an full open source project to become the
"Worldforge" of space empire games. I thought that this would encourage
other people who didn't want to just clone Stars! to help out with the
project and give it a broader appeal. This was in 2002 :P Lee was the
only person who joined the project after I announced it (and in fact
been the only other major contributor).

It's now 2006 and Thousand Parsec still is no where near where I
envisioned it. I thought by now we would have a complete system and a
thriving community and multiple playable games based on the framework. 

Partly the problem has been I have underestimated the amount of work and
partly because, despite my best effort, we have not attracted any

I feel however that things are slowly changing now. Thousand Parsec has
a huge code base of framework which is rapidly accelerating us forward.
The number of feature left before full games of the complexity of Stars!
can be produced is extremely small.

So where too now?
I see there are 3 main things left to do before we are at a game
building time. 

Step 1 - Finish the Design support
Design support is almost 90% complete and just needs a working client.

Step 2 - Get economy going
This should be trivial to add support for, Resources are already in the
protocol. The implementation of factories and mines (and other planetary
installations) should not be too taxing.

Step 3 - Figure out research/advancement
This is going to be a bit harder but overall I can not see any major
problems with this.

I don't feel as if these should take too long, at the current rate of
progress maybe one to two years. If others start helping maybe even
less. During these stages we need to keep doing mini-games (which fully
utilise the new features) and regular releases (including easy
installation stuff like binaries).

After these stages are finished I think we will need to go back and
re-evaluate the overall design. One thing which will need to be looked
at is adding support for things like proper revision history in the

So what am I doing?
At the moment I have 4 major projects going on, they are

tpclient-pywx	- The oldest an most mature of the clients
tpclient-pyogre	- New flashy client
tpsai-py	- An AI client
tpserver-py	- The BEST Thousand Parsec server ;)

Most of my work at the moment is (and always has) been in the clients.
(I originally wrote tpserver-py in a weekend as Lee was busy and I
needed a server with which to test some new features :)

My first priority is to get tpclient-pyogre up to a point where people
can login, view the universe and do some simple operations such as issue
orders. My goal is to show how quickly and easily a client can be
produced using the existing code base. I also hope to attract a few more
developers (and artists) using the more flashy looking interface. 

The overall plan is to leave the client as unfinished but still usable.
Hopefully the people who prefer to use it will pick it up and continue
work on it and produce a polished professional client. 

It should also be useful for attracting artists who like to see there
work in action. 

My second priority is to finish the Design support in tpclient-pywx.
This has been a long standing thing on my TODO list and I think that the
fact I have not finished this is holding us back.

My third priority is to create a simple AI bot. Another big problem we
have is that there is nobody to play with on a server. This is specially
important for people who want to just have a quick "test" game or
similar. Having an AI would greatly increase out testability. The
problem is kind of overwhelming however. 

>From the point of view of making a sane AI, the shear complexity of even
such a simple game as MiniSec is frightening. Every time I sit down to
try and work out how to do stuff I am amazed at the number of decisions
humans are able to make quickly and easily. This is one of the reasons I
keep putting off doing major work on this.

My fourth priority is to get a "portal" setup and running. This is why I
started libtpproto-php. I would like a page which lists what servers are
up and stats about them (number of players, there score, etc). I even
hope to eventually generate web viewable starmaps and similar. 

With this is also setting up web interface to setup new games. I had
planned to hack together a system which allowed people to start new
MiniSec games on a tpserver-py (and add players, generate the universe
and such) before I left Germany, but it didn't happen.

My last priority is to add support for MTSec to tpserver-py. This may
happen earlier depending on my net access. (If I need features of MTSec
for client development)

Just in case you don't know, I hate GUI programming :). I much prefer to
do non-interactive coding (such as server or library) and ruleset
design. I'm trying my best to get other people interested in helping out
so I can go back to doing what I enjoy more. Overall I guess this is one
of the reasons the development is so sporadic, my enthusiasm for
developing clients is directly related to current need to fiddly UI

What else is up?
Over the next month I am travelling in Eastern Europe. I'll be catching
lots of trains from place to place and I have found these are excellent
places to get code done. When I do have net access you should see a
large stream of commits. It does however mean I don't be very
contactable. Email will work best. 

After that I travel to Egypt for a month. I do not think I will be
getting any coding done and most probably have even more limited net
access. This is for most of February.

I then return to Australia and go back to Uni. I'm unsure of my work
load next semester but hopefully it won't be to high and allow me some
free time to work on Thousand Parsec. I go back to Uni as soon as I
return home.

Anyway I hope this gives you some in site into what I think is


More information about the tp-devel mailing list