On: 2009-07-03 09:41:23
By: Landon Fowles <landon@...>
To: tpclient-pyogre.git
Comment:
Made the GUI fade code friendlier to call outside of an event
On: 2009-07-02 03:44:13
By: Tim 'mithro' Ansell
To: tp.devel
Topic:
Re: tpclient-pywx errors on "Save" in the Design Window
| Users Posts | Dev Posts |
|---|---|
|
|
| SourceForge Stats: |
![]() |
| Ranking: 10591 | |
| Bugs: 68/315 | |
| Todo: 21/38 | |
| Devs: 15 |
Stand on the shoulders of giants, students wanted!
by Mithro
As you probably read from my previous post, Thousand Parsec had quite a successful Summer of Code last year. Unlike previous years, where we have concentrated on getting new stuff developed, this year we have decided to concentrate on building on the work of our previous years students. This is a great way to learn that important skill of working on other people's code.
With the deadline looming, some of the ideas on our ideas page have already had lots of attention, but there are a number of ideas which have yet to have any applications. I would like to point out these ideas because we think they are very important and have a good chance to be accepted!
Some of the most important ideas have to deal with our coolest looking last Summer of Code project last year, Eugene Tan's new 3d client.
- Adding single player support to the 3d client.
As mentioned here we have just release single player support in our 2d client. We would like to see this extended to support our other major client.
Most of the code for this support is in the libtpclient-py support library that is already shared between both the 3d and 2d clients, so it should be significantly easier then Ezod's own task.
- Create a "Simple 3d ship designer".
Spore has shown us that it is possible to give people non-professional 3d artists, the ability to create cool looking models. With a little bit of prefabed art work and some easy transforms, even programmers don't have to be scared anymore.
We would like to see a similar ability added to Thousand Parsec. It can be developed as part of the 3d client or as a stand alone program.
Another project we think is really important, is to continue the efforts to improve single player support. These include,
- Adding support for saving and restoring games.
Having to play a complete game in one sitting is a real pain, specially since some of the Thousand Parsec games can requires many hours to play. The jist of this idea would be to add save/load support found in most game types.
This would require adding saving/loading support to a number of back end projects like our primary server (tpserver-cpp) and daneel-ai.
- Adding support for single player "scenario" mode.
In some ways, this is related to the previous idea but a little simpler. This would be similar to the "missions" you get in other normal games.
An example would be something like "King Unorganised has run our intergalactic empire into the ground, we have put you in charge of restoring us to our former glory."
- Extending single player support to include "set up your own
multiplayer game".
Single player support has also paved the way towards adding support for simple wizard set up of games to be played with friends. Much of the procedure is the same and we already have an auto-discovery process created.
Getting started with the single player development should be very easy, it only takes 6 commands!
git clone git://git.thousandparsec.net/git/tpclient-pywx.git git clone git://git.thousandparsec.net/git/daneel-ai.git git clone git://git.thousandparsec.net/git/tpserver-cpp.git cd tpserver-cpp; ./autogen.sh; ./configure; make; cd.. cd tpclient-pywx ./tpclient-pywx
If you are interested, I suggest that you jump on IRC and chat with our wonderful bunch of mentors. It is also recommended that you put in an application (even if only a draft) as soon as possible, as we are happy to help you with your application and provide feedback.
Posted: 2009-04-02-1200
Single Player released! - A tale of Google Summer of Code
by Mithro
Thousand Parsec is pleased to announce our first release that includes single player support. Now all of our players can easily enjoy the game at anytime, whether or not they can find other interested players. We've made several other improvements with this release, but this feature is the most significant change for 0.3.2. Binaries are currently available for Windows and will soon be available for other systems (but you can always grab the code from our repository!).
Single player support is a huge step forward for us, as it gives players a quick way to get involved with minimal fuss. We have strived to hammer out this functionality for the past 3 years. Better still, contributions from Google Summer of Code students have allowed us to reach this goal.
The story of this release is long, and has its beginnings back in 2008 when Thousand Parsec joined Google Summer of Code for the second time. The previous year's GSoC had been very successful, and we were looking to achieve even more success in round two.
Ezod is our first Summer of Code student. He was pivotal in making this new release possible. At the start of the summer, he proposed an interesting project, "Add single player support to Thousand Parsec". Little did he know what he was getting into!
To the naive, this may have seemed like a simple project; all it needed to do was start up the server and an AI or two in the background. The proposal actually meant that Ezod would have to touch almost every part of the code base and project infrastructure, from the servers, through the AIs, to the clients. Thousand Parsec was never really designed to work in this way, as everything designed to run standalone.
We had no qualms about Ezod's skill having already started submitting patches and packaging Thousand Parsec for Gentoo, but the extent of the changes needed for the proposal to work still raised some skepticism. To make things tougher, we had received a large number of quality applications, meaning that we had plenty to choose from.
Luckily, Google blessed us with more slots then we could manage (we ended up giving back two) and it was decided to take a risk. By the end of the summer Ezod had not disappointed -- he had the basics working -- but it would take another 9 months and integrating the work of two other students before we would reach the release we have today.
One problem we faced was that a game is not fun if you don't have any competition. This is were our second Summer of Code student joins us.
Iwanowitch put in a proposal for creating a rule-based AI for Thousand Parsec. His proposal was one of the two AI projects accepted as part of the 2008 Summer of Code.
The AI originally targeted the RFTS ruleset, which was developed as part of our first Summer of Code. While functionally complete, it ended up having a number of show stopping bugs for AI development. This only became clear halfway through the summer with the mid-term evaluations coming up.
The mentors put their heads together, and the best solution we could come up with was for the AI to switch to a different ruleset. This decision would later decide which ruleset Ezod would support in single player mode.
Thanks to a good design, by the final evaluation, Iwanowitch had his AI competing against the second AI being developed over the summer. Ezod then worked with Iwanowitch to integrate the AI into the single player mode, and it has now become the major opponent that everyone who tries out Thousand Parsec will play against.
So which ruleset did they switch to, you ask? Well, that is where our third summer of code student comes in.
Jphr proposed (and was accepted) to create a new ruleset for Thousand Parsec. Not having any C++ experience at all, he choose the ambitious goal of developing a modified version of the risk board game for the C++ server. He charged through the development, and by the mid-term evaluation the core rules had already been well developed and he was working on more advanced features such as custom maps.
It made sense for us to suggest that the AI guys target this ruleset. It had already been shown to be solid and it helped relieve some of the painful process of finding bugs. This also meant that with Ezod's help, Jphr's ruleset has gone on to be the first to be fully supported by single player mode.
So that is the story of how three students' work came together to produce this release. Both Iwanowitch and Ezod will be joining Thousand Parsec as Summer of Code mentors this year. These were not our only successful projects for Google Summer of Code 2008 -- in fact, all of our projects achieved success that year and more can be read about the others on our website.
Sound like everything for Thousand Parsec has already been finished? Far from it! We are glad to be participating in GSoC once again, and I hope this story has inspired you to be part of Google Summer of Code and part of the Open Source community.
Posted: 2009-03-31-2300
TPServer-cpp 0.6.2 released.
by Lee
Hot on the heals of 0.6.1 comes 0.6.2 release of tpserver-cpp. The main reason for this release is to update the single player support files which changed since the last release. Single player client, etc are coming real soon now. Also in the release are the quickstart conf files, shave support (nice build messages), and clearer TurnTimers split out into separate ones, basic, players finished and threshold timers. 14 patches by 3 people. 47 files changed, 3363 insertions, 1480 deletions (thanks libltdl update).
TPServer-cpp 0.6.2 is on the downloads page and will be on our SF downloads page soon. The GIT repo is tpserver-cpp (branch master) and the tag is TPSERVER_CPP_0_6_2. Feedback and suggestions are always welcome.
Posted: 2009-03-31-1959
TPServer-cpp 0.6.1 released.
by Lee
This release is mostly little fixes, mostly around windows cross compiling and single player support. 38 patches by 6 people. 148 files changed, 770 insertions, 452 deletions.
TPServer-cpp 0.6.1 is on the downloads page and will be on our SF downloads page soon. The GIT repo is tpserver-cpp (branch master) and the tag is TPSERVER_CPP_0_6_1. Feedback and suggestions are always welcome.
Posted: 2009-03-25-2139
Thousand Parsec a mentor project for Google Summer of Code 2009
by JLP
After successfully participating in the previous two Summer of Code programs, Thousand Parsec is happy to announce that we will be participating again. In previous years we have had a huge amount of success, with 8 students participating last year.
To all the interested students we suggest to take a look at our Google Summer of Code Wiki page. There you should find the ideas list and all the needed information on how to go about preparing the best possible application for your project. We highly suggest you get in contact with Thousand Parsec community as soon as possible. so we can help you with your proposal. You can find us on #tp IRC channel on Freenode.net, on tp-devel mailing list or on our forum for GSoC 2009. The sooner we meet, the better for all of us.
So, no waiting, let's get brainstorming on how to make the best 4X strategy games in the free galaxy.
Posted: 2009-03-19-0020
Libtpproto-cpp 0.1.9 technology preview released.
by Lee
This release of libtpproto-cpp is really to allow tpadmin-cpp (which uses the library) to be built without having to get the source code out of git.
Having said that, this release is a preview of what libtpproto-cpp 0.2.0 will look like. The biggest different is interaction with the library is now asynchronous, using boost::signals for callbacks. The library now requires the client using it provides an EventLoop object that the library can use to look after sockets and timers (or the client can use the SimpleEventLoop provided). Also new is the start of support for TP04. The major things missing from this release are Order, Messages and ObjectParameters. The 0.2.0 release will occur when these components are in place.
Libtpproto-cpp 0.1.9 is on the downloads page and will be on our SF downloads page soon. The GIT repo is libtppproto-cpp (branch master) and the tag is LIBTPPROTO_CPP_0_1_9. Feedback and suggestions are always welcome.
Posted: 2009-01-22-1335
First Release of TPAdmin-cpp
by ezod
To accompany the recent release of tpserver-cpp 0.6.0, which is now a daemon supporting a remote administration protocol, tpadmin-cpp 0.1.0 has been released. As the internal console has been removed from tpserver-cpp, you now need an administration client (either locally on the same machine, or remotely on another) to do most configuration and maintenance while the server is running. The tpadmin-cpp client is text-based and feels very similar to the original console from previous versions of tpserver-cpp.
TPAdmin-cpp 0.1.0 is on the downloads page. The Git repository is tpadmin-cpp and the tag is TPADMIN_CPP_0_1_0.
Posted: 2009-01-13-1330
TPServer-cpp 0.6.0 released.
by Lee
This release includes all three GSoC Projects that involved tpserver-cpp. Also included are some bug fixes and MySQL persistence is working again. One thing to note is that the server is now a deamon and the internal console has been removed. The tpadmin-cpp remote administration client should be released shortly. I tagged tpserver-cpp over a week ago, I've just been busy. Happy New Year to you all too!
TPServer-cpp 0.6.0 is on the downloads page and will be on our SF downloads page soon. The GIT repo is tpserver-cpp (branch master) and the tag is TPSERVER_CPP_0_6_0. Feedback and suggestions are always welcome.
Posted: 2009-01-10-1700
Thousand Parsec Ogre client released!
by jmtan
I would like to announce a new client for Thousand Parsec. This new, true 3d client, brings Thousand Parsec into the 21st century with eye candy galore! Based on the Ogre 3d graphics engine and leveraging the already developed python libraries, this new client provides the following features:
- 3d models of ships and planets bring Thousand Parsec to life
- Zoom and rotate the starmap for a better perspective
- Sound effects
A brief history
The initial prototype for the client was first created by Tim Ansell, the project lead for Thousand Parsec. It was then used as the starting point for a Google Summer of Code project by Eugene Tan, whose job was to support the various features that are available in Thousand Parsec.
Downloading
A windows installer is available from here, while those running from source can view the documentation, for more details. The git repository tag for this release is TPCLIENT_PYOGRE_0_0_1.
Posted: 2008-10-19-1630
Summer Writeup
by Mithro
|
This was the second year that Thousand Parsec partook in the Google Summer of Code™ and we accomplished even more than we did in our very successful first year. For those who don't know, Thousand Parsec is a framework for building turn based space empire building games. Many different types of rulesets can be developed which have a wide variety of features. In 2008, we had 8 students, all of whom successfully completed their projects. Together they made a massive contribution to our code base, writing more than 130k lines of code over 5 different modules. This year we were also pleased to see a great deal more collaboration and interaction between our students and Thousand Parsec's wider community. |
|
|
One of the most exciting projects to come from Summer of Code 2008 is the new 3D client. This takes our existing libraries and couples them with the sweet Python bindings for Ogre 3D (another 2008 mentoring organization) and builds a rich client full of eye candy. Since the completion of the Summer of Code, Eugene Tan has been hard at work to make his first release happen, and plans are on track for him to do so this week. Check out these screenshots for a preview: |
|
Our primary server also got a workout, with 3 students working hard on improving its functionality. All our students work has been merged into mainline and will be in our next release (which is also being preped at this very moment). Ryan Neufeld and Dustin White both added new "quick play" rulesets, while Aaron Mavrinac added ability to remotely configure the server. This gives people a choice of 4 different games to play, 3 of which were developed as Summer of Code projects. Our prototype and backup server also got some love with Juan Lafont contributing a quick play game of his own creation called "DroneSec". This ruleset required that he also improve many of the server's features and he is in the process of preparing a release. |
|
|
Aaron, who initially worked on creating the remote configuration of tpserver-cpp, has also been working hard on adding single player support. His work touched and improved all our of sub-projects and even other students projects. Aaron is currently driving the next release of our primary client, which will include a wizard letting anyone setup a local game including the server, AI opponents and other options. Two students, Victor Ivri and Vincent Verhoeven, each worked on creating AI frameworks and testing them out on the new rulesets developed this year. Having two frameworks allows us to continually refine their abilities and skills, giving people the ability to play non-trivial game scenarios without having to find human opponents. |
|
Zhang Chiyuan's project focused on a completely different tack: adding support for Schemepy to Thousand Parsec. His project allows Scheme to be used from the Python framework. Zhang completely rewrote the existing backends and added a bunch of new backends. In the process, he created a extensive compliance suite which allows for quick checking to ensure our backends are functioning correctly. He has also ported our Python client and servers and to the new interfaces. |
|
|
Overall, we're very proud of all our student's work and it has all made a dramatic impact on the health and usefulness of Thousand Parsec. Of course, the entire community hopes they continue to contribute in the future. We would like to thank the Google Open Source Team for all their efforts in running such an awesome program. Finally, congratulations to all of our mentors and students for their many accomplishments! |
Posted: 2008-10-16-1400
TPServer-cpp 0.5.1 released.
by Lee
This release is mostly bug fixing, and a bit or refactoring. It certainly feels a lot better to have two months between releases, instead of 14 like the last one.
TPServer-cpp 0.5.1 is on the downloads page and will be on our SF downloads page soon. The GIT repo is tpserver-cpp (branch master) and the tag is TPSERVER_CPP_0_5_1. Feedback and suggestions are always welcome.






