Cort's Constructs

Welcome Guest ( Log In | Register )

2 Pages V   1 2 >

AGSM v1.0 (The Allegiance Game Stats Merger)

Posted by Cort, Sep 25 2015, 06:36 PM in Tools

Cort's Constructs presents AGSM v1.0, the AllegGameStatsMerger.

Note: AGSM has already received some updates, but the link to the latest version has been edited into this post.


AGSM can take stats screenshots you made from within Allegiance (using the 'PrntScr' button on the stats page) and merge them into one complete image.

Allegiance currently doesn't allow you to export game stats. What you can do is take screenshots of the stats pages. Unfortunately, only twelve players will be shown per screenshot. But if you want to post the stats of a game on the forum, you'll want to include all players.

The usual way the community handles this is to take screenshots of all the pages, then merge them manually in some raster image editor. AGSM automates the last of these steps. It will *not* help you take the actual screenshots, it can just combine them to one image.

If you follow some simple rules, you'll end up with pretty clean images, looking like this:


AGSM is designed for taking as much work from you as possible. So almost everything is automated.

That means, AGSM will automatically try to find 'clusters' in your screenshots. It will analyse when you took those screenshots and will group all those together taken in short intervals.

It will also analyse and reorder them depending on the position of the scrollbar included in the screenshots. Therefore, it doesn't matter in which order you take them. You can go upside down or downside up or even jump around like crazy, it doesn't matter.

The screenshots can also overlap. You can take them using page scrolling (clicking the scrollbar above or below the 'thumb'), but you'll get better results if you create them with a bit of overlap. The overlapping parts with automatically be removed.

Let's have a look at a screenshot of the GUI and talk about the controls and what they do.

  1. Here you can select the source directory, i.e. the directory your screenshots are in. The Allegiance directory should be entered there by default, so there's normally nothing to do.
  2. The 'screenshot timeframe' determines how your screenshots are grouped into clusters. Two screenshots will be considered as being in different clusters if the first screenshot of one cluster has been taken more than the amount of seconds you enter here after the last screenshot of the previous cluster. Another way to look at it would be that if you put 60s here, you'll have to wait 60s after taking one set of screenshots before you start the next. In general, this value should do fine and there shouldn't be any need to adjust it.
  3. Click the 'Process' button to start the processing. This will fill the list box marked with (4). (It's empty when you start the application.) Click it again to abort it.
  4. You'll get a list of the detected clusters and when you started to take them. Pay attention to those being marked with '[WARNINGS]', something went wrong there. Those having '[FAILED]' can't be saved. (Probably because it's not a cluster of stats screenshots.) Select a cluster here to see the merged image in (5).
  5. You can see the final image here. Make sure no player is missing.
  6. The log will tell you everything the application has done to merge the screenshots together. Pay attention to lines like 'merging failed' or 'file discarded' (but those also generate warnings in the cluster list).
  7. The application will suggest to save the file in the directory your screenshots came from and will suggest a filename based on the time the screenshots were taken. This filename is also 'URL-compatible', i.e. you can upload the file and link it without having to do any escaping of special characters. Nevertheless, you can change it if you want.
  8. Click on 'Save' to write the image you saw in (5) to the disk.

Usage summary

Launch the application, click on 'Process', select cluster, click on 'Save', upload file and post.

  • Screenshots using Slipstream GUI are not supported.
  • Whether there are general problems with merging, only your tests will tell. I couldn't produce any with my screenshots…
  • Processing is rather fast, but might take some memory. I have a maximum memory usage of 75MB for a short time with about 90 screenshots in my directory. It completely depends on how many of those have to be merged and how many are actually stats screenshots, so YMMV. But yeah, optimisations would most probably be possible.

Tips for getting best results
  • You can use page scrolling (clicking the scrollbar above or below the 'thumb'), but you'll end up with the white lines following the first player of a page then. You'll get better results if you scroll with some overlap, e.g. by taking a screenshot every half page.
  • Make sure you move the mouse cursor away from the stats region and also don't have it hovered over the scrollbar. Just flick your mouse so the cursor moves to some corner of the screen, then press the button. smile.gif
  • Don't have a line in the stats selected. If you accidentally did select one, just switch to the game lobby and back to the stats and it will disappear.
  • Don't change the sorting order while taking your set of screenshots (duh).
  • Screenshot in fullscreen mode. (I actually haven't tested what happens when you screenshot in windowed mode.)

Reporting bugs

When you're reporting bugs or incorrect merge results, PLEASE also upload/e-mail me the files you tried to process (no worries, BMPs are compressed to tiny archives, even when using a crappy format like ZIP, and I can uncompress pretty much anything) and the shown log. If I can't reproduce it, your report is pretty worthless. sad.gif


Download: AGSM v1.11 installer [Release Notes]
(Access to the source code repository on request.)


Whether I'll proceed working on this depends on whether there's actually any interest in using it. An excerpt from my to-do list:

    • define minimum size for window
    • change mouse cursor to hourglass while processing?
    • second colon in output filename leads to weird bug
    • replace the ugly file/dir pickers with editbox+icon
    • double-buffering / get rid of preview flickering
    • save GUI window size/position
    • do some profiling on the actual merging process and optimise progress bar
    • free cropped images asap / reduce memory usage
    • add button to open merged image in image editor
    • optionally delete merged images
    Error handling/reporting:
    • catch&log any unexpected exceptions occuring during merging
    • show proper error message for unexpected exceptions from the GUI
    • log exceptions from processing or GUI and allow them to be automatically submitted
    • implement 'check for updates'
    • optimise process of creating empty preview imagebox (or get rid of imagebox and use wxDC, f.e.)

    • Installer: optionally create desktop/quicklaunch shortcut (see Components/Tasks pages), run application at the end when installation is finished

Final remark: Yes, indeed, it would have made more sense to just add f.e. CSV support to the Alleg client. But this was a lot more fun and I learned more from it. smile.gif

-- Cort

[EDIT 2007-09-30: Updated post to v1.1 (screenshots unmodified)]
[EDIT 2007-12-03: Updated post to v1.11 (screenshots unmodified)]

Polishing GlassHUD and moving towards CortUI 1.80

Posted by Cort, Feb 5 2011, 03:21 PM in CortUI

Hello everyone,

Bunnywabbit and me are pretty much moving into the polishing phase with GlassHUD now. There are quite a number of minor things left to fix and I decided to try an approach that has become fairly common in the open source space (see Mozilla and LibreOffice for example) and mark some bugs with the keyword 'goodfirstbug'. These are ideal for someone who's interested in learning MDL and/or supporting GlassHUD/CortUI.
Of course, if you want a real challenge, you can also grab a bug that does not have this keyword. You should probably get in contact with Bunny or me then regarding design issues.

Everything that is in the state 'new' or 'assigned' (but not 'accepted') is generally free to work on. You should 'accept' a ticket before starting work on it though, to avoid others working on the same issue simultaneously.

List of all open Good First Bugs.
List of all 1.80 tickets.

The main way to get your change in, is to attach a patch file to the corresponding bug. We'll gladly help you create these if you've never done it before. If really necessary, you can also just attach the modified file, but integrating those can in the worst case make us more work than you could've saved us.

The latest installer build can be found on the CortUI website:
The Modulus package has not yet been updated to include GlassHUD.

Looking forward to your contributions!

PS: I started writing a guide and a list of first steps if you want to help out with CortUI: Feedback welcome, please tell me what you find hard to understand so I can improve it.

CortUI 1.77

Posted by Cort, Mar 25 2010, 03:59 PM in CortUI

I have just released a CortUI 1.77 installer.

There hasn't been as much testing as usual this time, but considering that it's a very small maintenance release, I hope there are no new issues. It primarily fixes a few problems with ParciHUD, lessHUD and JelloShot in R5. I would like to add that they have been contributed months ago and it is entirely my fault that the new release comes so late.

For the changes I'll just point you to Milestone 1.77 this time, but it's really not that much of an interesting read. Just some fixes, hardly anything new.

Contributions mostly by Parci and Bunnywabbit this time.

Download and more information at as usual.

CortUI 1.76

Posted by Cort, Mar 17 2009, 01:53 PM in CortUI

I'm announcing with pleasure that the maintenance/bugfix release CortUI 1.76 is ready -- three days before the scheduled release date.

The biggest change was probably that the installer has been heavily refactored and deployment simplified. That should make future releases easier indirectly. Additionally, problems with the cloak status indicator on the map and with lessHUD and ParciHUD have been fixed.

The full list of tickets gone into this release:

  • #1: Create a CortUI Trac
  • #2: Cloak status indicator does not appear on the in-flight map
  • #4: Vertical 'pillars' appearing out of the stat bars of ParciHUD
  • #5: Create separate speed and signature indicators for ParciHUD
  • #6: Hull and shield gauges of lessHUD stay black
  • #10: Add logo and favicon to the installer
  • #11: Build installer with the latest NSIS and update uninstallation files
  • #12: Investigate disappearance of the mission briefing modification
Or go directly to the milestone 1.76.

#7: 'Assumed incompatibility between CortUI and the R4 DX9 client' has been postponed as there has been no considerable interest and the problems could not be reproduced in a way that could have led to a fix. See the ticket for more details.

Special thanks of this release go to Myotis for the first patch submission not coming from a HUD developer (he fixed #6). wub.gif I'm sorry that it took so long until your fix was released. Will be faster next time, promised!

Download and more information at as before.

-- Cort

PS: Note that the hangar screen modification is no longer selected by default -- although still recommended when playing on 800x600!

CortUI site released

Posted by Cort, Mar 6 2009, 03:51 PM in CortUI

I've already hinted at it in my last release post -- CortUI finally has a proper site. (One and half years isn't so bad for a Two Weeks announcement, is it? mrgreen.gif)


No, don't party just now, there's no new release yet.

I'll skip explaining what it is for and how to use it, because the starting page mentions all that anyway. I'll just close with a request to those who have been reporting CortUI bugs in the past: please go into the issue tracker (e.g. via this report) and make sure there's a ticket for your bug. I've tried to add everything I could find, but it was kinda hard to understand for me at times what you reported there after such a long time.

You're very welcome to create new tickets, but please read the start page and the article linked there.

-- Cort

AGSM v1.11

Posted by Cort, Dec 3 2007, 02:48 PM in Tools

Here's a small service release for AGSM that should add support for screenshots done with R4 (R3 screenshots are still supported!). Running the installer over previous installations (without uninstalling) should work just fine. Thanks to aarmstrong for reporting it.

If you don't know what AGSM is, please refer to this entry.

Changes from v1.1 to v1.11

  * fixed issue that caused AGSM to fail to recognise all screenshots created by Allegiance R4 (added R4 stats screen detection template)


Download: AGSM v1.11 installer [Release Notes]
(Access to the source code repository on request.)

-- Cort

CortUI 1.75

Posted by Cort, Nov 23 2007, 05:21 PM in CortUI

This is the release of CortUI 1.75.

As usual I'm asking you to read the Release Notes, knowing that nobody will. smile.gif But you should... (I guess I should hide some hints to easter eggs there. wink.gif)

It's probably a good idea to run the installer of an older release before installing this one. If not, you might end up with files left over from previous versions. You probably should not select Slipstream GUI during uninstallation. If you're not planning to keep Slipstream GUI, but still have it from pre-R4 times, it might be a good idea to back up your artwork directory and reinstall Allegiance before installing CortUI 1.75. (If you insist to keep Slipstream GUI *and* want to use CortUI, I'm not supporting that configuration.)

The big changes are these:

  • Supports all R4 features. (And 'fixes' some that I thought could have been done better, for example there are no more overlapping text lines now.)
  • Includes lessHUD and JelloShot (i.e. CortUI 1.71 RC1, as released by FlingPu).
  • Slipstream GUI is no longer supported and no longer included in the installer. (Read up on the reasons here.)
  • JelloShot has issues with transparency. I'll look into it.
  • Improved displays of who your pilot is when in a turret.

The rest you can find in the Release Notes. What I'm most proud of is that CortUI 1.75 comes without any BMP.MDLs. It's all PNG now, and they aren't littering your artwork directory, but are stored in mods/CortUI/media/, so it's using all the cool new features.

I'll be gone over the weekend, so I really hope there are no major issues. I tested (with help) as much as I could, but there's always a configuration/situation you don't think about. As usual, I recommend doing a backup of your artwork directory – just in case.


Download: CortUI 1.75 installer [Release Notes]
(Access to the source code repository on request.)

I'm planning to set up a site for CortUI that also includes screenshots and stuff, but you know how it works around here... Two Weeks™.


This release is dedicated to Denga. Get well soon, brother! smile.gif

Special thanks for this revision go to Grzegt, Wyld, badp, Wurf, Andon, Baker, Squire and Bard for helping me test in various ways. It's always a big help, and if it's just holding a server open so I can run many tests in a short time.

I know I've been saying it about every release, but I just can't emphasise on this enough: There's no way CortUI would have been possible without Ksero's docs. I'm still using them as much as I did in the beginning. There's no single CortUI development session I don't open them at one point.

-- Cort

ASGS Google Gadget v1.0

Posted by Cort, Oct 3 2007, 09:50 AM in Tools

Ozricosis Random Software Requests
The ASGS Google Gadget v1.0
Now with improved layout and proper caching.

Google Gadgets (Java devs might know the concept as 'Portlets') are small Javascript applications for Google's portal, called iGoogle. This Google Gadget shows a list of all players currently logged into ASGS. Most of the code isn't my work, the whole GUI is a subset of Squire's Advanced ASGS Online List [thread] Greasemonkey userscript (branched from version 0.81).

Therefore, just as the Advanced ASGS Online List, the ASGS Google Gadget might rely on special Firefox features and/or just contain bad Javascript code (the library part Squire has *not* written) that only works in Firefox. I made a quick test in Opera: it doesn't show anything, but doesn't report any Javascript errors either. *shrugs*

To use it, just click this link click the big colourful button there and you're set. I think you need a Google account to have it permanently on your iGoogle page.

-- Cort

PS: You don't have to care at all, but here's what the info text at the bottom means:
"Last cache update from ASGS", the local time on the cache server when it syncronised with ASGS. This time is not necessarily in sync with your time!
"Age of cache at last Gadget data update", how old the data was at the time your Gadget talked to the cache server. This value can only change when your Gadget is talking to the cache server, of course.
"Time until next Gadget data update from the cache", a countdown until the next time your Gadget asks for an update from the cache server.

AGSM v1.1

Posted by Cort, Sep 30 2007, 05:11 AM in Tools

As promised, here's AGSM v1.1 which primarily fixes the "612 pixels width" issue. Merged stats should now be displayable on the forum (in full quality) as they are created by the application. If you don't know what AGSM is, please refer to this entry.

If you already have v1.0 installed, this installer should automatically upgrade to v1.1. But I'm new to Inno Setup (and I have to say: not very impressed, if anyone cares), so please report any problems related to an upgrade.

Changes from v1.0 to v1.1

  * merged images are now exactly 600 pixels wide
  * fixed issues causing the preview window to cut off some pixels of the image
    on all sides (switched from wxImageBox to using the DC on a wxPanel)
  * fixed issues causing the scrollbar parameters to be incorrectly set after
    the window has been resized
  * improved installer:
    + can now optionally create desktop icon
    + can now optionally create quicklaunch icon
    + can now optionally launch executable after installation has finished
  + application now aborts if required external files are missing
  * minor improvements of the About screen


Download: AGSM v1.11 installer [Release Notes]
(Access to the source code repository on request.)

-- Cort

[EDIT 2007-12-03: Updated post to v1.11 (screenshots unmodified)]

Towel Day!

Posted by Cort, May 25 2007, 07:10 AM in Misc

This was my first Towel Day as a participant. smile.gif I had been aware of the tradition for two or three years now, but I had never noticed when the time came around.

With my university being just a few meters from the Lake Constance and temperatures of about 30°C, I actually got way less weird looks than one might expect. This bunch of illiterate strags mostly didn't know about it and why towels are so useful for hitchhikers and laughed about it. mad.gif

In the discussions with the few people I've talked to about it, I definitely didn't show enough self-confidence about my towel and the appreciation and mourning of an ingenious author. Hopefully, I will be able to change that next year, which unfortunately is a Sunday.

MeAndMyTowel are now going to play some, trying to spread the word in the Allegiance community.

*bows in humble adoration before DNA*

So, have you brought your towel today? Confess!

-- Cort

PS: No, this blog isn't abandoned. But I'm still freakin' busy, so don't expect much activity here for another 2-3 months. sad.gif

2 Pages V   1 2 >