"Demoders Patcher" - Progress Report!

AO is the main topic, but you can also talk about things like the latest console game you've played, web comics, movies, music, etc. as they pertain to your AO experience.

Moderators: AOU Team, Forum Moderators, Site Managers

Post Reply
User avatar
Demoder
AOU 3rd Party Developer
Posts: 201
Joined: Fri Apr 30, 2010 9:24 am

"Demoders Patcher" - Progress Report!

Post by Demoder » Mon Oct 11, 2010 9:41 pm

Description
"Demoders Patcher" is my main AO project at the moment. Its purpose is to replace the now defunct PHP application with the same name.

The idea is to create a generic library (Demoder.Patcher) which will be usable by applications such as the patcher itself, in self-update routines of other applications, as well as for creating installers & other tools which require the features this library provides.

The core functionality of this application is to spot differences between the users version of some software (map/GUI/application/other), and the application developers central "patch server" for the software in question.
In order to be as efficient as possible, the patcher has routines to see which parts of an Anarchy Online .bin file has changed, so that it only has to download the changed parts; usually resulting in much smaller downloads compared to downloading the whole file.

The new version of "Demoders Patcher" is written in C#.
Support for *nix users through the use of "Mono" is prioritized.

Progress Report
I've had a "working" development version for some time. After through testing, and after considering various scenarios for use of the application, I've ent up halting development on the user front-end until the library supports all features I need.

I am currently in a restructuring phase. This involves rewriting core aspects of the patching routine so that it will be easier to use the library, and possible to check & download missing parts for multiple pieces of software at the same time. In other words: It will be more streamlined once this restructure is done, and the application as a whole will be more robust.

In order to test the changes in the restructure as I go, I am developing a console application. This application will be useful for automated distribution. The initial plans for this console application were created upon request from a 3rd party developer in the community whom wanted to automatically update a patch server one a day for the development branch of their software.
Once the core library & console application is feature-full, I will aim my full attention towards the GUI application.

Plans
The GUI application will automatically check for new versions using a resource-light check routine, and notify the user in a discrete way when installed software needs to be updated.
This application will also be able to install software upon users request when no previous version is installed.

I plan to implement a "standalone" feature which may be used as a traditional patcher. This means you can make a .zip file containing the patcher, patch definition file & resource files, and offer this for download. The patcher would use the boundled resources to patch the local installation. If there are some missing parts, it will fetch those from the patch server specified in the patch definition.

tl;dr
Making a c# port of the PHP-based application was simple enough.
Making a good c# application is slightly harder. I am still hard at work, one year after starting on the project, and still don't know when this piece of software will be complete. But I do know it will be user-friendly, intuitive, and feature-rich.

End report.
Image

Post Reply