ESOC-flavored UHC2

Here you can post about your scenario's, mods, custom maps and YouTube channels!
User avatar
Czech Republic EAGLEMUT
ESOC Dev Team
Donator 05
Posts: 4515
Joined: Mar 31, 2015
ESO: EAGLEMUT
Clan: WPact

ESOC-flavored UHC2

  • Quote

Post by EAGLEMUT »

I am proud to announce public release of the next generation UHC, specifically the implementation of UHC2 provided by ESOC. A huge thanks goes out to @Kevsoft of the Age of Empires Online – Celeste Project, who has made this whole endeavor possible and done the groundwork for essentially all features provided.

In this thread I'd like to introduce the changes our UHC2 implementation brings, and how you can make use of them in your own mod.

ESOC-UHC 2.1.2 [2019-07-10]
combined changelog since UHC 1.9

Config

- customSyscalls may now be used as a multi-value property in order to specify concrete plugin filepaths to load, instead of loading all plugins found in the working directory. Default behavior when no paths are specified remains the same as before.
Example:

Code: Select all

customSyscalls UHCPluginESOC.upl


- Introduced option selectionLimit, which may be used to alter the maximum number of units selected at a time (default being 50). The maximum possible value is currently 95, attempting to go above this value will make the game crash.
Example:

Code: Select all

selectionLimit 95


Features

General
- The team selection in multiplayer lobbies (ESO/LAN) is now sorted logically, and teams 3 & 4 are properly synchronized between all players in the game room when selected.
- Default state of the Free-for-all option in multiplayer lobbies (ESO/LAN) now persists for the host indefinitely (saved in user profile).
- File transfer start and completion is now announced in multiplayer (ESO/LAN) game room chat to the local player for all of Scenarios/Maps/Savegames.
- It is now possible to replace the "Play Fast" button in record game UI with a dropdown allowing for a more precise selection of the playback speed factor - effectively allowing for faster playback than which was possible before. Value "1" is equivalent to the default speed, while value "2" is equivalent to the previously available "Play Fast" button. Note that playback speed remains highly influenced by the particular recorded game and by computer processing power.
- The game now indicates to the user machine that a high-performance NVIDIA/AMD GPU should be used to run the game, instead of an integrated GPU.

ESO game browser
- Added a new filter option to the Filter dialog; "Show games hosted on a different patch". With this option disabled, you will only see games hosted on the same patch as you're on and able to actually join. The option persists only until you leave ESO; the initial state always remains to show games hosted on any TAD-based patch.
- Added a new checkbox option above the game list; "Auto-pest inviters". With this option enabled, anyone who invites you to a custom game will become immediately pested. This option persists throughout a single game session (until the game is closed), disabled by default. The option is meant to alleviate the "invite spam" glitch, possibly making the glitch harder to execute or grant some additional time before it goes through. Absolutely no results guaranteed, previous attempts at this approach had mixed results at best. Note that the pest list has a limited size, which currently remains up to the player to manage.

Bug fixes
- Fixed a bug allowing for "knocked out" units (such as downed explorers) to wake up on command at any point by using a hotkey to change their tactics/squadmode.
- The master game sound level will no longer reset to maximum level whenever the game window regains focus.
- Fixed a bug that could cause a building foundation to be built at a much slower speed than intended when the main builder unit's action was suspended in an irregular way (garrison).
- Fixed a bug where garrisoned builders could continue to affect the maximum builder limit of a placed building foundation they were originally tasked on, resulting in less or even no other builders being able to be tasked on the building foundation.

Observer Mode
- The incredible Aizamk's Spectator UI may now be bundled in your patch and automatically activated for players who are spectating a match, according to their current game resolution. If the spectator's game resolution isn't supported, no version of the spectator UI will be activated. The Spectator UI will be automatically activated in live matches as well as while playing back recorded games on a UI-enabled map (working on all post-UI 2.2 maps and post-UHC2 recs). The Japanese branch of Aizamk's Spectator UI is also supported in all its resolutions, but requires manually creating file "isjapaneseversion.txt" in the root game folder in order to activate it in place of the English one.
- The "minimized UI" game option will now become automatically enabled while observing, in order to ensure no display issues with the spectator UI. Upon leaving the match, this option will be returned to its original state in the case it's been force-switched. This should allow for seamless observing even for users who prefer maximized UI during regular gameplay.
- We are introducing a separate checkbox option "Observer Mode" to activate observer mode, available only in multiplayer lobbies (ESO/LAN). The new option is properly synchronized between players in a game room, and its default state will persist for the host indefinitely (saved in user profile).
- Whenever a "team observer mode" game room is joined by a player, default teams as appropriate for the Observer Mode logic will be preselected for all players. For these purposes, a "team observer mode" game room is defined as a room with 4 or more players, FFA disabled, and Observer Mode enabled. With 4 to 6 players, 2v2 tvb is assumed. With 7 to 8 players, 3v3 tvb is assumed. Observers are placed on team 3.
- The amount of experience received for deleted units/buildings is no longer affected by the number of observers in a match. Players will now always receive the full bounty award as if there were only two opposing teams.
- Take note that Aizamk's Spectator UI was primarily made to support the official game version and may not be able display much information about custom content introduced by your modifications.

Diplomacy / Locked Teams
- Diplomacy can now be toggled using the "Locked Teams" option in ESO/LAN multiplayer game rooms, as is common in other Age games. Since AI players are not currently able to utilize this feature intelligently, it is not available in singleplayer Skirmish.
- Diplomatic stance change notifications are included natively.

Multiplayer save/restore
- Added "Save" option into the main game menu of multiplayer matches. Works the same way as in Singleplayer.
- The game will now be automatically saved on each player's computer upon encountering an OOS (out-of-sync). The savegame filename is in the format "oos_recovery_", followed by date and time of OOS occurrence.
- The "Unresponsive Player" dialog now allows any player to save the game on their computer using a new Save button (this does not affect the voting). In this case, the savegame filename is in the format "unresponsive_recovery_", followed by date and time of save.
- Players are now able to host a multiplayer game of the "Savegame" game type, which will allow them to select a savegame file to restore. A "restored" game room can only be joined by players who participated in the original game (verified by player name, including the host), no game room settings can be altered before launching the restored game.
- A "restored" game room must be hosted by the same player who had hosted the original game.
- All players in a "restored" game room must select a homecity of the same civilization they have originally played with.
- Remote transfer of the savegame file between players in a game room is handled automatically, similarly to Scenarios or Custom Maps.
- All restored games will be unrated on ESO.
- Note that a restored game which was played on any mapset will display with an unselected map in the game room. This does not signify that there is anything wrong with the savegame.
- Note that loading a foreign savegame in general can cause some of your game settings to change (such as camera zoom distance), similarly to loading recorded games.

Additional notes

- If you currently have Aizamk's Spectator UI manually installed, you will still need to uninstall it in order to get on the regular game UI. Unless you are intending to observe games not played on the environment of ESOC-UHC2, you should not need to install it again.
- Game resolution for Aizamk's Spectator UI is decided upon match start, and will not react to further resolution changes applied during the course of a match. The game resolutions supported by Aizamk's Spectator UI are:
  • 1920 x 1080
  • 1680 x 1050
  • 1600 x 900
  • 1366 x 768
  • 1280 x 800
  • 1280 x 768
  • 1280 x 720

Requirements

- Visual C++ 2017 redistributable has to be installed.

Some of the introduced features require altering UI definition files in order to work properly; failure to do so can result in a game crash. Your mod should provide the following UI alterations in some way (complete example files are provided in the release package):

- Aizamk's Spectator UI files should be included in your mod in the same structure as demonstrated in the release package (all files in Art/spec + files in data/ containing "observer" in their name).
- The "Team ?" (random team) option must be moved below Team 4 to the last position in multiplayer room UI files (uiMPGameSetupPage.xml, uimpesogamesetuppage2.xml). Furthermore, the multiplayer room UI files must define the following checkButton gadgets: "mpsetup-ObserverModeCheckButton", "mpsetup-LockedTeamsCheckButton".
- The ESO game list UI file (uimpesogamelist.xml) must define the following checkButton gadgets: "MPESOGameList-InviteShieldCheckButton", "MPESOGameList-FilterDlg-CRCFilterCheckButton".
- You may include the enhanced gadget for selecting record game playback speed factor as demonstrated in uimain.xml in the form of "RecordGameCtrl-PlayFastFactor" gadget.
- It is highly recommended to use the included uiplayerstatusdialog.xml file (diplomacy UI window), as it is much more polished compared to the one provided in official game version. It is also recommended to redesign the "PlayerStatusButton" gadget in both uimainnew.xml and uimain.xml as demonstrated in the example files, otherwise it will be displayed as a black square.
- uimainnew.xml should be updated with the added Save button for multiplayer menu as demonstrated in the example files.
- uimpvotedialog.xml should be updated with the new Save button as demonstrated in the example files.

Installation

In order to distribute UHC2 with your mod, the mod's game executable must be "patched" to load the UHC library. For this purpose, you can utilize the original UHC1 patcher program (download it and drag your exe over onto the patcher). You can skip this step if your exe has already been patched due to using UHC1.

Once that's done, you simply need to have the UHC.dll file (the one attached to this post as part of the release package) in the game installation folder and fulfill the requirements stated above. If you're using a renamed UHC configuration file, don't forget to update the dll using a hex editor to reference your custom config.

Feedback

You are welcome to provide feedback on the features offered, as well as submit feature requests to have us look into hardcoded game behavior that ails you.
Attachments
ESOC-UHC 2.1.2.zip
(2.85 MiB) Downloaded 277 times
ESOC-UHC 2.1.1.zip
(2.85 MiB) Downloaded 49 times
ESOC-UHC 2.1.0.zip
(2.85 MiB) Downloaded 49 times
ESOC-UHC 2.0.0.zip
(2.83 MiB) Downloaded 70 times
User avatar
Romania mandosrex
Musketeer
Posts: 57
Joined: Mar 22, 2015

Re: ESOC-flavored UHC2

  • Quote

Post by mandosrex »

Thank you for your amazing work and contribution to the community!

However, you asked for requests so here I go:

- Increase selection limit from 50 units to 100 units, not a ridiculous number but far better than the current limit
- Add a game setup option for Normal and Large maps (which the map scripts support with code from AoM. the same codes are found in the editor "New Scenario" window when you generate a new map and they work with the AoM map codes, they just need to be transfered to single and multiplayer UIs; this was successfully tested), to maybe remove separate Large maps and then make it able for any map to be Large
- Add a new game mode for Regicide, because Regicide can be scripted on normal maps and activated with a game mode, like King of the Hill, thus making Regicide available on any map
- Make the UI independent of screen resolution, so the UI doesn't stretch ridiculously. The same thing was done in AoM EE and was accomplished without editing the actual UI files (which are mostly the same as the ones from 2003, except for the new textures and changed layout), so it's an engine thing
- Fix more hardcoded bugs like the hero knocked down bug you just fixed, for example the ability RoF bug
- Maybe try to improve game performance, model and texture memory issues, AI stutters and so on
- Also add the new features to singleplayer/skirmish, please do not ignore it
- Having multiple unit types selected that share a tactic or command and selecting that tactic or command activates it on all unit types, with either a simple click or shift+click (example: having Musketeers and Skirmishers selected and clicking on Stagger should change it for both).


I will add more to this list as they come to mind.

Thank you again!
User avatar
Czech Republic EAGLEMUT
ESOC Dev Team
Donator 05
Posts: 4515
Joined: Mar 31, 2015
ESO: EAGLEMUT
Clan: WPact

Re: ESOC-flavored UHC2

Post by EAGLEMUT »

[spoiler=2.0.0 (historical)]ESOC-UHC 2.0.0 [2019-06-08]
combined changelog since UHC 1.9

Config

- customSyscalls may now be used as a multi-value property in order to specify concrete plugin filepaths to load, instead of loading all plugins found in the working directory. Default behavior when no paths are specified remains the same as before.
Example:

Code: Select all

customSyscalls UHCPluginESOC.upl


Features

General
- The team selection in multiplayer lobbies (ESO/LAN) is now sorted logically, and teams 3 & 4 are properly synchronized between all players in the game room when selected.
- Default state of the Free-for-all option in multiplayer lobbies (ESO/LAN) now persists for the host throughout a single game session (until the game is closed)
- It is now possible to replace the "Play Fast" button in record game UI with a dropdown allowing for a more precise selection of the playback speed factor - effectively allowing for faster playback than which was possible before. Value "1" is equivalent to the default speed, while value "2" is equivalent to the previously available "Play Fast" button. Note that playback speed remains highly influenced by the particular recorded game and by computer processing power.
- The game now indicates to the user machine that a high-performance NVIDIA/AMD GPU should be used to run the game, instead of an integrated GPU.

ESO game browser
- Added a new filter option to the Filter dialog; "Show games hosted on a different patch". With this option disabled, you will only see games hosted on the same patch as you're on and able to actually join. The option persists only until you leave ESO; the initial state always remains to show games hosted on any TAD-based patch.
- Added a new checkbox option above the game list; "Auto-pest inviters". With this option enabled, anyone who invites you to a custom game will become immediately pested. This option persists throughout a single game session (until the game is closed), disabled by default. The option is meant to alleviate the "invite spam" glitch, possibly making the glitch harder to execute or grant some additional time before it goes through. Absolutely no results guaranteed, previous attempts at this approach had mixed results at best. Note that the pest list has a limited size, which currently remains up to the player to manage.

Bug fixes
- Fixed a bug allowing for "knocked out" units (such as downed explorers) to wake up on command at any point by using a hotkey to change their tactics/squadmode.
- The master game sound level will no longer reset to maximum level whenever the game window regains focus.
- Fixed a bug that could cause a building foundation to be built at a much slower speed than intended when the main builder unit's action was suspended in an irregular way (garrison).
- Fixed a bug where garrisoned builders could continue to affect the maximum builder limit of a placed building foundation they were originally tasked on, resulting in less or even no other builders being able to be tasked on the building foundation.

Observer Mode
- The incredible Aizamk's Spectator UI may now be bundled in your patch and automatically activated for players who are spectating a match, according to their current game resolution. If the spectator's game resolution isn't supported, no version of the spectator UI will be activated. The Spectator UI will be automatically activated in live matches as well as while playing back recorded games on a UI-enabled map (working on all post-UI 2.2 maps and post-UHC2 recs). The Japanese branch of Aizamk's Spectator UI is also supported in all its resolutions, but requires manually creating file "isjapaneseversion.txt" in the root game folder in order to activate it in place of the English one.
- The "minimized UI" game option will now become automatically enabled while observing, in order to ensure no display issues with the spectator UI. Upon leaving the match, this option will be returned to its original state in the case it's been force-switched. This should allow for seamless observing even for users who prefer maximized UI during regular gameplay.
- We are introducing a separate checkbox option "Observer Mode" to activate observer mode, available only in multiplayer lobbies (ESO/LAN). The new option is properly synchronized between players in a game room, and its default state will persist for the host throughout a single game session (until the game is closed).
- Whenever a "team observer mode" game room is joined by a player, default teams as appropriate for the Observer Mode logic will be preselected for all players. For these purposes, a "team observer mode" game room is defined as a room with 4 or more players, FFA disabled, and Observer Mode enabled. With 4 to 6 players, 2v2 tvb is assumed. With 7 to 8 players, 3v3 tvb is assumed. Observers are placed on team 3.
- The amount of experience received for deleted units/buildings is no longer affected by the number of observers in a match. Players will now always receive the full bounty award as if there were only two opposing teams.
- Take note that Aizamk's Spectator UI was primarily made to support the official game version and may not be able display much information about custom content introduced by your modifications.

Diplomacy / Locked Teams
- Diplomacy can now be toggled using the "Locked Teams" option in ESO/LAN multiplayer game rooms, as is common in other Age games. Since AI players are not currently able to utilize this feature intelligently, it is not available in singleplayer Skirmish.
- Diplomatic stance change notifications are included natively.

Additional notes

- If you currently have Aizamk's Spectator UI manually installed, you will still need to uninstall it in order to get on the regular game UI. Unless you are intending to observe games not played on the environment of ESOC-UHC2, you should not need to install it again.
- Game resolution for Aizamk's Spectator UI is decided upon match start, and will not react to further resolution changes applied during the course of a match. The game resolutions supported by Aizamk's Spectator UI are:
  • 1920 x 1080
  • 1680 x 1050
  • 1600 x 900
  • 1366 x 768
  • 1280 x 800
  • 1280 x 768
  • 1280 x 720

Requirements

Some of the introduced features require altering UI definition files in order to work properly; failure to do so can result in a game crash. Your mod should provide the following UI alterations in some way (complete example files are provided in the release package):

- Aizamk's Spectator UI files should be included in your mod in the same structure as demonstrated in the release package (all files in Art/spec + files in data/ containing "observer" in their name).
- The "Team ?" (random team) option must be moved below Team 4 to the last position in multiplayer room UI files (uiMPGameSetupPage.xml, uimpesogamesetuppage2.xml). Furthermore, the multiplayer room UI files must define the following checkButton gadgets: "mpsetup-ObserverModeCheckButton", "mpsetup-LockedTeamsCheckButton".
- The ESO game list UI file (uimpesogamelist.xml) must define the following checkButton gadgets: "MPESOGameList-InviteShieldCheckButton", "MPESOGameList-FilterDlg-CRCFilterCheckButton".
- You may include the enhanced gadget for selecting record game playback speed factor as demonstrated in uimain.xml in the form of "RecordGameCtrl-PlayFastFactor" gadget.
- It is highly recommended to use the included uiplayerstatusdialog.xml file (diplomacy UI window), as it is much more polished compared to the one provided in official game version. It is also recommended to redesign the "PlayerStatusButton" gadget in both uimainnew.xml and uimain.xml as demonstrated in the example files, otherwise it will be displayed as a black square.[/spoiler]
User avatar
Czech Republic EAGLEMUT
ESOC Dev Team
Donator 05
Posts: 4515
Joined: Mar 31, 2015
ESO: EAGLEMUT
Clan: WPact

Re: ESOC-flavored UHC2

Post by EAGLEMUT »

ESOC-UHC 2.1.0 [2019-06-28]
changelog since UHC 2.0.0

Config

- Introduced option selectionLimit, which may be used to alter the maximum number of units selected at a time (default being 50). The maximum possible value is currently 95, attempting to go above this value will make the game crash.
Example:

Code: Select all

selectionLimit 95


Features

General
- Default state of the Free-for-all, Observer Mode, and Locked Teams options in multiplayer lobbies (ESO/LAN) now persists for the host indefinitely, as the options are saved in the standard way in user profile.

Bug fixes
- Fixed an issue in the LAN game room UI where the "Allow Cheats" button was partially overlayed by other gadgets.
- Fixed an issue where diplomacy stance change notifications would unnecessarily announce a change to the same diplomacy state (when triggered by triggers).
- Fixed a UI issue where diplomacy towards the sixth player could not be changed.
- Fixed a possible client crash upon joining/leaving a multiplayer game room.

Multiplayer save/restore
- Added "Save" option into the main game menu of multiplayer matches. Works the same way as in Singleplayer.
- The game will now be automatically saved on each player's computer upon encountering an OOS (out-of-sync). The savegame filename is in the format "oos_recovery_", followed by date and time of OOS occurrence.
- The "Unresponsive Player" dialog now allows any player to save the game on his computer using a new Save button (this does not affect the voting). In this case, the savegame filename is in the format "unresponsive_recovery_", followed by date and time of save.
- Players are now able to host a multiplayer game of the "Savegame" game type, which will allow them to select a savegame file to restore. A "restored" game room can only be joined by players who participated in the original game (verified by player name, including the host), no game room settings can be altered before launching the restored game.
- A "restored" game room must be hosted by the same player who had hosted the original game.
- All players in a "restored" game room must select a homecity of the same civilization they have originally played with.
- Remote transfer of the savegame file between players in a game room is handled automatically, similarly to Scenarios or Custom Maps.
- All restored games will be unrated on ESO.
- Note that a restored game which was played on any mapset will display with an unselected map in the game room. This does not signify that there is anything wrong with the savegame.
- Note that loading a foreign savegame in general can cause some of your game settings to change (such as camera zoom distance), similarly to loading recorded games.

Requirements

Some of the introduced changes in this update require altering UI definition files in order to work properly. Your mod should provide the following UI alterations in some way (complete example files are provided in the release package):

- uiMPGameSetupPage.xml should be updated with the gadget overlap fix.
- uiplayerstatusdialog.xml should be updated with the fix for diplomacy towards sixth player.
- uimainnew.xml should be updated with the added Save button for multiplayer menu.
- uimpvotedialog.xml should be updated with the new Save button.
User avatar
Czech Republic EAGLEMUT
ESOC Dev Team
Donator 05
Posts: 4515
Joined: Mar 31, 2015
ESO: EAGLEMUT
Clan: WPact

Re: ESOC-flavored UHC2

  • Quote

Post by EAGLEMUT »

ESOC-UHC 2.1.1 [2019-07-08]
changelog since UHC 2.1.0

Features

General
- File transfer start and completion is now announced in multiplayer (ESO/LAN) game room chat to the local player for all of Scenarios/Maps/Savegames.

Image

Bug fixes
- Fixed a client crash upon joining a non-restored LAN multiplayer game room.
- Fixed a bug that would prevent players from joining a restored LAN multiplayer game room.
- Fixed an issue where players could ready up in a restored multiplayer game room (ESO/LAN) before the savegame file transfer was completed. This would result in an error when attempting to launch the game.
No Flag kami_ryu
Retired Contributor
Posts: 2196
Joined: Jan 2, 2017

Re: ESOC-flavored UHC2

  • Quote

Post by kami_ryu »

you never stop do you?
User avatar
Czech Republic EAGLEMUT
ESOC Dev Team
Donator 05
Posts: 4515
Joined: Mar 31, 2015
ESO: EAGLEMUT
Clan: WPact

Re: ESOC-flavored UHC2

  • Quote

Post by EAGLEMUT »

Nope.

ESOC-UHC 2.1.2 [2019-07-10]
changelog since UHC 2.1.1

Bug fixes
- Fixed a bug where the last line in uhc config was sometimes ignored.
- Fixed an issue where "bin" was assumed to be the game's installation folder name for certain config options.
- Fixed numerous issues with unit behavior after applying the selectionLimit config option.
User avatar
Austria Kevsoft
Retired Contributor
Posts: 28
Joined: Feb 3, 2018

Re: ESOC-flavored UHC2

Post by Kevsoft »

A quick not regarding selectionLimit: Depending on the value change it may break recs. Don't think that it would on an increase of the selectionLimit, but could break on an decrease of the value. We will do some tests to see if it is safe on an increase of the limit.

Who is online

Users browsing this forum: No registered users and 5 guests

Which top 10 players do you wish to see listed?

All-time

Active last two weeks

Active last month

Supremacy

Treaty

Official

ESOC Patch

Treaty Patch

1v1 Elo

2v2 Elo

3v3 Elo

Power Rating

Which streams do you wish to see listed?

Twitch

Age of Empires III

Age of Empires IV