EP 22.214.171.124 Beta4 [2018-05-19]
First off, what's the UHC? UHC is a community project by kangcliff and danielpereira, aiming to "unhardcode" parts of the AoE3 engine, make more things configurable than what has ever been possible before, add new features to the engine, fix bugs, that sort of stuff: https://github.com/danielpereira/AoE3UnHardcoded
In the past, we've collaborated with UHC when they made the extended teams patch
, which is included in current EP. However, UHC opens up many more possibilities than just that, and it is time we take advantage of them. Now, let's take a look at what those possibilities are.UHC Plugin system
Through the UHC Plugin system, we gain access to an environment where the entire set of AoE3 engine functions is available to utilize for either creating new functionalities, or exporting existing functionalities into a scope where they were not available before.
What does exporting functionalities mean exactly? Well, the way it works there are different sets of functions for various scopes of the game such as UI design scope, AI design scope, map generation scope and so on. With UHC we can easily export functions from one scope to another where such functionality was previously missing and impossible to replicate. First area we plan to utilize this for is improving the way Observer UI maps work as well as the Observer UI itself. Custom cheat codes
One feature of the plugin system is the option to easily implement new cheat codes into the game. At first, this might not sound very useful; aren't we trying to block cheats, after all? Well, here we're talking about "regular" cheats which can only be used in singleplayer or when they are specifically allowed in the multiplayer room, just like the other built-in ones; "x marks the spot" and so on.
What does this bring to the table:
- just giving more fun things to the players
- we can create cheats that help speed up development and testing of maps or game changes
- we can utilize this in certain competitions and have "design your own cheat code" be amongst the prizes, or perhaps have small competitions entirely centered around designing the most fun new cheat codeUIx map project
Saving the best for last, something I'm personally most excited about; I call it the "UIx map project". The idea here is to overhaul how we handle Observer UI maps in a big way. On the ESOC Patch, all maps are to be progressively converted into "UIx" maps which support both observer mode and regular play. These will be included in the "official" dropdown list of preinstalled maps on EP and functionally replace both the previous version of a map on this list (ex. ESOC Arkansas) as well as the custom UI map version which is currently downloaded separately as a custom map (ex. UI 2.2c ESOC Arkansas). On a UIx map, observer mode will be activated by selecting "Sandbox" difficulty when hosting a game room (Sandbox will also be renamed on EP to make this clearer). Other than this, the observer mode works the same way as before by selecting FFA for 1v1 matches and so on.
As the UIx maps use features implemented through UHC plugin system, manually copying them as-is onto official RE patch will not be possible (map will crash on load). For usage of ESOC maps on non-ESOC patches, we will continue to generate hardcoded versions of the maps with observer mode permanently disabled (ex. ESOC Arkansas) and permanently enabled (ex. UI 2.2 ESOC Arkansas).
Why are we doing this at all, what are the benefits?
- The custom map system is extremely clunky to use during ESOC competitions, causing massive delays and headaches to both participants and admins due to all players needing to obtain the same version of the map. The p2p system of sharing custom maps on ESO is often slow or outright bugs out and requires players to jump through hoops to get the correct map version.
- All changes to map scripts essentially need to be implemented twice with the old system, which often causes inconsistency when UI map version is ahead of non-UI version or the opposite. This is both causing confusion to the players and requires more work from the devs/mapmakers.
- Using the custom map system at all opens up ESOC competitions to additional security vulnerabilities.
- Once finished, this change will allow players to utilize mapsets for play on randomized maps in Observer UI mode.
- It will be easier to implement special non-RE-compatible features on maps and add fallbacks for them (ex. custom trees on ESOC Iowa).
That's it for the intro, now for where we are in terms of actual progress:UHC Plugin progress
- kangcliff of UHC team patched EP to add support of the UHC Plugin system, along with providing a special UHC version that is compatible with EP's modified executables
- ESOC's own UHC Plugin is prepared with the changes needed for UIx maps, changes for Aizamk to implement new UI features, as well as the following newly implemented cheat codes:
The process of converting maps to UIx entails essentially merging the old UI version with the non-UI version and wrapping UI-specific code in conditional statements. I've also been checking each map for runtime errors using the RMS debugger and fixing those - this should cause smoother map loading and prevent some random bugs in how the maps spawn. The merging will notably enable KotH functionality in observer mode on maps where that change was not yet ported to UI version before.
List of converted maps:
UIx ESOC Arkansas
UIx ESOC Kamchatka
UIx ESOC Hudson Bay
UIx ESOC Gran Chaco
UIx ESOC Tibet
UIx ESOC Manchuriachangelog since EP 126.96.36.199 Beta2ESOC Patch
- Added UHC Plugin support (see explanation above).
- Changed default diplomacy stance to Enemy in diplomacy mode.
- The "Sandbox" difficulty setting has been renamed to "Observer Mode / Sandbox".ESOC Patch map changes
- Fixed gaia unit selection bug on ESOC Bonnie Springs.
- Fixed ESOC Gran Chaco minimap thumbnail image.
- Converted the following maps to UIx (see explanation above): ESOC Arkansas, ESOC Kamchatka, ESOC Hudson Bay, ESOC Gran Chaco, ESOC Tibet, ESOC ManchuriaESOC Treaty Patch map changes
- Added minimap thumbnail images for all special Treaty Patch maps.Anti-cheat
- Protect UHC plugin files from external modifications and disallow external plugins.