Regrettably, making these special features exclusive has become the only viable option to sustain the project. For over 10 years, Dr.MonaLisa was providing a wealth of features, which required an immense amount of work, free of charge.
Despite these efforts, player support through donations has been minimal, eventually becoming insufficient to cover the costs of our multiplayer services' relay servers. While the servers incur a modest expense of approximately $40 per month, the donation amounts received have been disappointingly low and somewhat disheartening.
Historically, only about 1 in 2000 players chose to donate. Presently, Dr.MonaLisa is gathering funds for a crucial eye surgery, prompting her to prioritize her well-being and reassess the distribution of the Enhanced Features.
The performance of Empire Earth II hinges on the clock speed of a single CPU (processor) core, while the GPU (graphics card) is often underutilized, operating at around 30%. The Enhanced Features are designed to leverage more graphics card memory (VRAM) and additional system RAM. Consequently, we recommend a system with at least 3GB of GDDR5+ VRAM and 6GB of RAM to ensure an optimal experience with the Enhanced Features.
The minimum CPU core speed in boost mode should be no lower than 4GHz. While it is possible to run the Enhanced Features on less powerful configurations, we cannot field complaints from users with low-end hardware. It is important to note that the Enhanced Features do not impede the original EE2 performance on systems that meet the necessary requirements.
Once you have unlocked the Enhanced Features, we advise keeping them enabled as they are not the source of game lag. For further information on addressing game lag issues, please visit our help section on lag.
Seasonal Enhanced Features:
When option "Use AI-Enhanced and upscaled UI textures" is enabled, the Launcher will download the seasonal textures for special occasions and events such as Halloween, Christmas, Easter, Valentine's Day and more.
Enhancing the game User Interface was an extremely time consuming process which required a heavy motivation, patience and knowledge about the EE2 files structure & content. Everything was created in 2 months, without a single day of break.
1. All textures were extracted from the original .texcache files to .dds format. This required additional research and fixing the AOS textures which couldn't be opened in Nifskope. Unfortunately, Nifskope (the program for opening .texcache textures) doesn't support the batch processing. Therefore, every texture had to be extracted manually. To workaround it, I created a software that loops files in directory, automatically opens them in Nifskope and simulates the keyboard key presses to automate the work. Sounds simple, but the program also had to handle errors, verify if extracted files are correct, and repeat in case of problems. The entire process was done on several virtual machines, because every extraction takes around 5 seconds, and there were over 8700 textures to progress.
2. Extracted .dds textures were converted to a .PNG format in order to be accepted by enhancement programs. After that, they were AI-Enhanced and upscaled using 6 different AI engines and models, with various settings, to make sure that EE2 gets the best possible ones.
3. In order to be able to integrate new textures with the game, I had to create a new C++ program which at the end became over 10 000 lines of code. Among other things, the program had to:
* Convert enhanced PNG images to .dds format that EE2 works best with, respecting mipmaps where needed, and preventing mipmaps where they would make it look worse.
* Convert the enhanced .dds files to a .texcache format (obviously after days of researching how .texcache files work). Looking for information, I contacted a person who created dds2texcache software, and he was very kind to upload the source code of his converter on GitHub. It was in C# language which I don't like, so converting to C++ was also challenging. There still were many minor problems, such as incorrect format IDs, but it was very helpful, especially, because I tried to do exactly the same thing alone, but in the end failed with how mipmaps are interpreted.
* Automatically adjust sprites files (the ones that define which textures are used, and what's their size), respecting differences between EE2 and EE2: AOS, support the newly added textures which I created, e.g. for the Multiplayer Lobby, and dozens of other operations that required hours of researching and testing.
* Automatically adjust files which define game widgets. The widgets definitions contain a lot of values that often had to be adjusted for the new texture size. During this process, some of the game UI elements totally broke up, making me almost lose hope for this feature to be ever possible. At the end, the entire process ended with a definition of additional ignore list, custom "find and replace" and remappings to different "sprites". All these things had to be verified manually by testing the game, catching errors, correcting them in the program and repeating all the steps.
* Automatic packing of modified files to the new archives or folders. * Additionally, all the things that the program was doing were working in multiple threads (maximum CPU cores I had) in order to speed up the process and allow faster in-game testing. Multithreading adds a lot of extra work to the programming, but at the end it was worth it.
5. In the final days of the enhancement procedure, I was selecting the best textures from all different AI models. This required manually comparing around 2300 textures. It ended up that one of the models had the best versions available. After I mixed it with the other ones, some parts in the game looked worse than before, so most of the picking work was wasted, with small exceptions for the startup splash images, map editor loading screen and game win/lose background images.
6. It was important to separate the Enhanced and Non-Enhanced version, to make sure that low-end hardware users won't get affected by the update. This required deep tests and smart adjustments in the Launcher / GameHelper, tricking the game, while keeping the multiplayer compatibility, allowing both version users to play together.
7. Trolling the community. On 21th of October 2023, I posted the following message on EE2News media:
"Unofficial Patch 1.5.9.013 was the last UP1.5 release. All good things must come to an end. The Multiplayer services will be active for UP1.5 users until mid-November. Unfortunately, this decision won't be changed. Please download UP1.5 installer before it's removed from website."
While the message was 100% truth, it made many players sad and multiplayer users worried. It was my intention to make the post sound this way, just to make the UP1.6 announcement taste better. Unfortunately, I sent this post too early, thinking that UP1.6 will be released within the next 2 days. Unfortunately, the release had to be delayed due to problems with antivirus programs, which didn't like the integrated textures converters in UP1.6 Launcher. I wanted to deliver the .texcache converter to all users, so the modders could easily convert and pack textures to the format natively supported by the game. At the end this feature had to be fully removed from the Launcher, and will be available later as a separate program on the forum. It was not worth to risk false positives at all patch users, just to satisfy a very small number of active modders.
Unfortunately, even when in the summary it sounds like a well-organized project - it was not. All the things I described above have changed at least 2-3 times. For example, we suffered from many crashes after converting textures to the .texcache format, decided to revert back to the unpacked .dds / .tga files as in Unofficial Patch 1.5. Then after analyzing it longer, gave another chance to .texcaches. Meanwhile I also helped NVIDIA to fix two bugs in NVIDIA Texture Tools Exporter, which actually made it harder for me, because I was relating issues with the game, not the Texture Tool itsef. At the end everything was corrected with a huge attention to details, but the process of researching was extremely annoying and stressful. I would not do the same thing again knowing how complicated it became.
Special thanks for help in testing to Loewenherz, who was the only person aware of this project, and tested new versions almost every day.
The screenshots below are showing some of Interesting parts of the entire enhancement procedure. I hope some players enjoyed reading this diary.