Atomic Entertainment, Inc. is needing to create a program that will grab an XML document from a web server, cycle through ALL files in a parent folder (where the patcher would be installed), and decide if the user needs files downloaded. If it does, it will download them but also report progress of each individual file being downloaded, the file size, file name, and the speed of the download. When the patcher is complete, it will tell the user what changed (pre-defined text in the XML document) and execute a defined program file.
Functional Requirements (see Everquest 2's patcher):
1) When the user clicks on the patcher file, a small window will pop with our logo on it (just leave it blank or put a placeholder) and below it will be a progress bar on how the download of the XML document is. ([url removed, login to view])
2) The user will be prompted with the EULA for signature as many people currently do not go to the website to learn about the EULA. ([url removed, login to view])
3) After the patcher is done, it will load another window that shows the progress of scanning all the files looking for potential updates, downloading all the files of the XML document, and then once finished, will say the download is complete. After each action (looking for potential updates, just 2 notices.. 1 saying it is starting to look, and then another saying x amount of files to be downloaded... then 2 notices per file downloaded.. start and finish.. then the final complete), various text will be placed in a text box. ([url removed, login to view])
[url removed, login to view] and [url removed, login to view] do not have to be emulated exactly, of course. However, this is the approach we are taking with our patcher since historically our patchers for our games have been rather bland.
1) All source code must be delivered along with the compiled version.
2) A test example should be written to verify that the code is accurately written as specified.
3) C# or VB.NET is required.
Images for the patcher ARE NOT REQUIRED. We will do them ourselves. We just need placeholders so that we can verify that it works.