The Project Gamma Development Progress Blog


Jan 07, 2011 by DX-MON
Aside from the post I just made, I've not really been able to keep this blog up to date on the progression of the project. Progress has been sketchy, partially because of some intense workload demands placed on me by my University. The demands are fine - I'm paying for them to educate me after all - but it does mean that I've not got as much done as I'd hoped.

AutoUpdater: The server-side components of the automatic update service are all complete. client-side is a different story. The automatic update program itself (AutoUpdater) builds on both Linux and Windows (and likely, therefore, Mac OS(X) too). It has a database of all the installed software and the version numbering of those installations at hand. It can check the version numbers of all the pieces of software against that held in the database and correctly determine if an update is required. It can correctly ask the server for all the files needed in the update of a package, including Operating System specific ones. But: it cannot download the files - that's just a small task of programming on my part, or actually perform updates yet, only the pre-install component works. There are also questions over how we might structure the game's files so that administrator privileges are not required to run an update on the game itself and where we might store files downloaded from the update server while they are pending placement and/or execution.

MapMaker: It is known to me that the MapMaker version of glGenericWindow is broken (it has been for some while) and that MapMaker needs porting over to the far better and far newer glGenericWindow that the game engine itself holds. As soon as this port is done, some legacy code which is also fairly broken can then be removed from GTK++.

GTK++: This is probably the item with the least number of problems. The OpenGL side of it needs a rewrite to get the structure corrected so I don't have massive duplication of the inheritance hierarchy (which gets worse the further down the tree you go on the OpenGL side). However, that rewrite won't take long and is actually rather trivial (besides needing to make a data pointer abstract in the base OpenGL class that will emerge from the rewrite).

Chat: Although my personal copy is now stable on both Linux and Windows, a new Windows release needs to be made and soon. However, this is blocking on AutoUpdater's completion as I want to get the update service distributed to the project admins. NB: The latest version requires the installation of an extra driver which must not be deinstalled. This driver fixes Microsoft's inability to program a proper operating system with regards to Thread Cancelation and Cancelation Points that can be used by a POSIX Threads implementation such as the one the project uses. This driver fixes a plethora of crashes in Chat.

PokeLegends (the client): This is still pending a total rewrite, blocking on the Future Consciousness test program testLayoutEngine. Once that program works correctly, much of the code from that can be ported directly to the client and finalised into a working product. As per the original designs of the client's "Connecting" screen, GTK++/GTK+ allows, far more easily than native Windows APIs ever did, for us to have a transparency gradient on the screen.

Future Consciousness: Due to my Uni work, I've put almost all development of this core component on hold. After exam week this next week (Monday 10th to Friday 15th), I will have another go at fixing the Layout test application and get Python working. For the purposes of the PokÚLegends client itself, however, I will disable all Python support on Linux in order to finish fixing the de-initialisation and exit on clicking the "X" button and answering "Yes" to the "Are you sure?" that appears via glGenericWindow/glMessasgeBox.

Signing off with a clearer mind,


No comments yet

Add Comment

This item is closed, it's not possible to add new comments to it or to vote on it