The Project Gamma Development Progress Blog

Progress behind the scenes

Feb 14, 2012 by DX-MON |
Quite a few things to cover really:

Lots of bugfixing for libAudio. The module mixer now implements all sorts of things such as Offset (aka Delay) right, and is generally looking much better for some major rewriting of various bits.

GTK++ has seen being moved from SVN to Git as part of a transfer programme I've started for the team to move from SVN to Git as our Version Control System. It has also seen various additions that allow it to present things like slider bars.

libImage has also been moved from SVN to Git in the last couple of days. This has given us the unique opportunity to merge it's two development pasts into one repository so we can see everything that happened to the entire library via Git's logs.

We now have a clear idea of how to graft MapMaker to the new QuadTree system and once I have time (I have ongoing practical assessments this term of Uni as well as lab-based exams), QuadTree will be implemented into the game engine and MapMaker and the map IO subsystem updated.

Signing off for now as that should be all,

Happy 2012!

Jan 01, 2012 by DX-MON |
To start the year's first post off, Happy New Year everybody!

First things first.. libAudio. In the last week, 16-bit sample mixing has been implemented, tone portamento has been fixed, and channel persistent volume controls have been implemented, meaning that S3M support is nearly complete along with it's own lovely set of bugs (although much fewer in number than MOD had when I completed support for it, and many probably attributable to the missing commands)

With this, I can proudly say that with the help of the programmers in the PokéLegends team, we can now use chip-tune music in the game.

Secondly, PokéCave. Please go take a look and sign up as doing so actually helps us accelerate development of PokéLegends as it'll buy us the much needed server capacity and such as well as allow me to start giving the team some remuneration that they much deserve for all their voluntary work.

With that, till next time,


Dec 06, 2011 by DX-MON |
There has been yet more progress, libAudio's module mixing engine now plays a truckload more songs right thanks to our new member, marinu666.

Further to that, he has been busy generating a small side-site so you have something to play and talk over while the main project continues. The site is called PokčCave. Playing helps to fund this project and the servers we have to run for PokčLegends as we have 4 servers to run to even have the game


October Updates

Oct 29, 2011 by Cthulhu |
Hm, think this is the first time I've done a front page update. Lets make this short and sweet and pray I don't break something in the process.

So, lets see...updates..updates.....ah, here we are.

First and foremost, icon support has been added for GTK++. Essentially, this means our programs will have their icons loaded at runtime once they're finished.

Secondly, as far as the game itself is concerned, full-screen support has been corrected, as well as a bug in the library GTK++ that crashed the game when it attempted to detect and apply the current desktop resolution to the game window. Fairly self explanatory, but this means that you'll be able to run full-screen at your current desktop resolution, or in windowed at a resolution of your choice.

We'll be sure to update the blog here as things go on, so stay tuned for our next update!



Mar 02, 2011 by DX-MON |
Since my last post, the following has happened, along with the completion of enough of my desktop's Cross-compiled Linux From Scratch builds to allow me to build 32- and 64- bit executables of the various components on it:

MapMaker: glGenericWindow-based code has been ported to Future Consciousness' glGenericWindow. This has actually fixed a load of bugs in MapMaker such as exit bugs caused by the old methods.

GTK++: The legacy Subclass/Unsubclass methods have been removed, which means the library is far less broken than it was. The OpenGL classes rewrite is also complete which provides a much nicer inheritance hierarchy and removes several more methods that were introduced to get around how the old hierarchy worked.

Future Consciousness: Having been highly unsuccessful with Python, and having mashed up some of the code by accident during the move from my laptop to my desktop, I have decided that it'll be easier to completely rewrite things like the layout engine for Future Consciousness, drop Python, and find another, different, scripting language to work with - maybe even make a byte-code language which allows programming the engine for certain handlers and associates a byte-code snippet with an action on a button, etc.. It certainly has the advantage of speed over what Python had/has. During moving the code to my desktop, though, I regrettably have to admit that certain non-Python components do not currently link due to some problems in the build system. I should be able to resolve this, though, through the removal of Python which will be the next thing I do. I can, however, say I know for certain why glMessageBox has a crash in it. (I won't say right here right now, but it has to do with two flags in glGenericWindow and a spurious GTK++ call in glMessageBox) The transparency for the connecting screen, as mentioned last post, will be served though adding one extra image and content descriptor member to the layout format. This image must be a grey-scale bitmap of some kind, stored where the Python table used to be (most likely), which can then be directly used with GTK+'s transparency systems, for which one of the functions should be one that takes a bitmap as a transparency map.

Signing off after what will likely be a slighly cryptic and a fairly hard-to-read post,
PS: Sorry that it is cryptic in places and likely to be fairly hard-to-read, I try not doing posts like this one, but it's the only way I can document this progress this time.


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,

Various things

Oct 31, 2010 by DX-MON |
Ok, this entry will cover quite a few things as I've been a bit busy with the software for the project..

1) There is a pending release of Chat 0.1.1b1
2) The project now has an automatic update facility and an updates location on the server through which I will now be performing releases once the update facility is installed
3) Future Consciousness now supports Python scripting, completing the circuit of how to control layouts on screen once they're loaded into the engine
4) The Layouts test application is nearly working again, though I'm still having problems fixing the exit code - this is the problem of having more than one thread in an application, small bugs can escalate..
5) Work is pending on MapMaker's Regions mode, and glGenericWindow screens due to there being pending work on moving MapMaker to using Future Consciousness' implementation of glGenericWindow rather than it's own as it's own is technically wrong.
6) Work is also pending on getting MapMaker able to properly work on Windows 7 as currently none of the glGenericWindow based screens allow you to do anything and you have to crash MapMaker to get out the loop

I plan to get this all sorted out by next weekend

More progress on Chat

Oct 18, 2010 by DX-MON |
New release (again, in only 24 hours!) of Chat,
This one shaves another 1984 bytes off the connection startup transmissions by optimising one of the response commands that is issued.

This release is backwards incompatible, so the server that is now running requires you upgrade again.


Chat 1.1.0a1 is out!

Jun 26, 2010 by DX-MON |
After finishing my exams, I've been quietly working away at completely rewriting the GUI of Chat and doing various upgrades and feature requests as well as preparing to continue on with game-engine development.

Admin members of the team are advised to come and talk to me and get the upgrade as soon as possible as it does have many of the requested features and bug-fixes the old version needed but couldn't support due to needing a new GUI model.

I will resume work with the actual engine sometime next week with the advent of re-introducing Python into the mix and creating a brand-new Python interface to the engine that can be used directly from layout files.


May 22, 2010 by DX-MON |
After a long break from doing any mapping, I have got the fresh copy of MapMaker for Linux and Windows compiled on Windows again, and have been taking a look at one of the more neglected maps, fixing a few MapMaker bugs in the process.

Note for Tori: I have specifically been looking at your map, getting the textures to match up with their current location. This has given me the excellent opportunity to fix some bugs in the texture loader. When I have updated the map to match what it should look like, I will email you.

signing off for the last time before his exams (they finish in about 3/4 of a month),