StaticZ
Apprentice
Posts: 38
Likes Given: 0
Likes Received: 23 in 14 posts
Joined: May 2013
Reputation: 1
Quintessence
|
RE: Essence UCS
Version 0.09.0111 available!!
Meanwhile, Ultima Client Shell was updated. Here is the list of updates:
- Error #313: UO Intro video caused client crash;[/*]
- Error #314: Bad compatibility with Windows 8, 8.1, and Windows 10;[/*]
- Improvement #232: Added self-patching option and the client data patch feature;[/*]
- Improvement #233: Changing the contents of .emp files by client patch;[/*]
- Improvement #312: Added support to UTF with BOM encoding for *.ecd;[/*]
- Improvement #316: Created an exception window for UCS with ability to send crush report to the bug tracker.[/*]
In short, all the major errors and problems should be fixed by now, including problems with client compatibility; and the problems that negatively affected client’s stability were solved. Besides, full support of UTF8 encoding for file’s settings was added (earlier only UTF8 without BOM was working), as well as the new system of exceptions (errors) management. Users can now send the bug report via the bug tracker with just one click. However, perhaps the most fascinating aspect of the current update is the system of client updates, which includes:
- .mul files as well as the UCS package files defragmentation in real time;[/*]
- Low memory consumption;[/*]
- Patch sessions are now introduced for increase and decrease of HDD file saving. In case there are several patches available for patching, they are updated coherently, while all of the updates are saved at once in the end or earlier, in case there is a shortage of disk memory or for the management of the future patches.)[/*]
- Self-update of client files;[/*]
- The possibility to add, remove, move and rename the files in the packages;[/*]
- Added signing of files option, compression of patch packages, and the check of data integrty before and after update;[/*]
- Different approaches to data editing for the more optimal update of various data type. Here is the full list of supported algorithms:[list=*]
- Rewrited – simple file replacement;[/*]
- TextFile – Text files update by the LCS (Longes Common-Subsequence) algorithm for its lines, with encoding, where possible, in ANSI in order to lower the size;[/*]
- MulIndex – replacement and update of packages in indexed .mul files of the client;[/*]
- MulFixed – replacement and updated in .mul files of the client for the fixed size of a package;[/*]
- LocalDic – the update of the localization text of the client (cliloc.enu, cliloc.fra et cetera) with encoding, where possible, in ANSI to lower the size;[/*]
- MulFonts – the update of fonts in the client in ANSI as well as in Unicode (fonts are not .mul containers with fixed size of a package despite its extension;[/*]
- TileData – the update of tiledata.mul. Due to tiledata being one of the most updated files of the client, it requires an individual update approach;[/*]
- Surfaces – graphics files update (gampidx.mul, gumpart.mul, texidx.mul, texmaps.mul, artid.mul, art.mul). While these are the simply index files, this algorithm is preferable since it compares not the binary data, but the decoded images. In other words, we can save the same image .PNG with compression or without, where the size of an image and its binary file content will change, while the images will remain identical;[/*]
- MulAnims – animation files update (anim*.idx, anim*.mul). Frames themselves are individually compared and updated as well as their metadata (information of the position of frames). Basically, everything that was described for Surfaces is relevant here too;[/*]
- MapLands – map updates (map*.mul). Similarly to the case of tiledata.mul, the current file type is one of the most frequently updated and therefore requires an individual patching approach;[/*]
- MapTiles – update of statics (staidx*.mul, statics*.mul). Not only is this the most frequently updated type of data, it is also one of the complex one in terms of updates and data comparison. Distinctive feature of this algorithm is the analysis and update of files not by the packages of indexes, but by the groups of packages, with the unification of repeated blocks with the following update of update packages and their indexes. In other words, this algorithm is uniting the similar packages in real time thus compressing the size of statics (in case we are using the transparent water tiles, we are talking about hundreds of megabytes of data) and, therefore, the patch of statics itself becomes considerably lower.[/*]
[/*]
[*] The following algorithms are planned but not yet implemented:
- TextsLoc – the update of localization of client files (*.enu, *.jpn and others, besides cliloc.*). The size of these files are insufficient and they are rarely updated;[/*]
- UopPackg – the updated of files in containers (*.uop). Despite the impressive size of these files, they are not flexible to work with and are almost never modified; [/*]
- MapFacet – minimap update (facet0*.mul). These files are basically a single big-sized image and its partly update is complex to achieve.[/*]
[/*]
[/list]
Here is the table, which portrays the amount of code that was involved in the project, including the Ultima Client shell (which is the giant in terms of its complexity and the amount of code involved) and the client:
The table above should hint why it took so long for another UCS update as well as for the UO: Quintessence project, which is now being prepared for its early pre-alpha period.
Game isn't a dream, it is the reality, reality which is coming while we dream...
|
|