Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Don't let heroes reuse the Stone Liths and Whirlpools while standing on them #9661

Open
wants to merge 4 commits into
base: master
Choose a base branch
from

Conversation

oleg-derevenetz
Copy link
Collaborator

@oleg-derevenetz oleg-derevenetz commented Mar 20, 2025

close #7139
close #9638 (sort of)

Related to #5625 and #9578

Technically this PR seems to work just fine, but I suppose there will be some dissatisfied people who are used to the HoMM3-style mechanics of portals.

fheroes2.engine.version_.1.1.6.2025-03-20.21-11-47.mp4

@oleg-derevenetz oleg-derevenetz added improvement New feature, request or improvement logic Things related to game logic labels Mar 20, 2025
@oleg-derevenetz oleg-derevenetz added this to the 1.1.8 milestone Mar 20, 2025
@ihhub
Copy link
Owner

ihhub commented Mar 21, 2025

Hi @oleg-derevenetz , could you please create a separate pull request with your fixes for Code Checker since we have other PRs that have similar issues?

@ihhub
Copy link
Owner

ihhub commented Mar 21, 2025

@oleg-derevenetz , alternatively I can disable a mandatory check for PR gates using Code Checker for now.

@oleg-derevenetz
Copy link
Collaborator Author

Hi @ihhub

could you please create a separate pull request with your fixes for Code Checker since we have other PRs that have similar issues?

These are experimental approaches I tried to fix the CodeChecker issue. I'll open a separate PR as soon as I settle this.

@oleg-derevenetz oleg-derevenetz force-pushed the disable-teleports-revisiting branch from 1648dca to 43e88e5 Compare March 21, 2025 08:05
@oleg-derevenetz oleg-derevenetz force-pushed the disable-teleports-revisiting branch from 43e88e5 to 0bababb Compare March 21, 2025 08:07
@oleg-derevenetz oleg-derevenetz marked this pull request as ready for review March 21, 2025 14:09
@oleg-derevenetz oleg-derevenetz requested a review from ihhub March 21, 2025 14:09
@ihhub ihhub requested review from zenseii and Districh-ru March 21, 2025 14:19
@ihhub
Copy link
Owner

ihhub commented Mar 21, 2025

I've added other reviewers to gather their opinion about this change.

@Districh-ru
Copy link
Collaborator

Districh-ru commented Mar 21, 2025

Hello everyone!
I don't like this change as it leads to forcing player use many save/load (as they did in the original game and it was really annoying) to go to the wanted portal exit.
If some player don't want to use this ability then can not use the space bar - the engine does not force to use it.
And if you say that it should be disabled because AI cannot use this ability then along with this change, in example, we should not let heroes to dig for ultimate artifact because AI currently does not do it. :)

The ability to use the space bar does not break the map logic (instead of pressing the space bar you can do save and many "load and use portal" - that how it works in the original game). So technically this change will not drastically change the gameplay but sometimes this can make using many portals more annoying for a player who really wants to move their hero to a specific location.
And it is not used very often.

If the community votes for this change then so be it, but I vote for keeping the master branch logic.

... and as a compromise the space bar reuse option can be disabled for Expert and Impossible difficulties and not only for portals (if you visit a dwelling at the 7th day and buy some troops and wants to stay for the next day on these difficulties you'll need to re-enter the dwelling without using the space bar, like in the original game).

@zenseii
Copy link
Collaborator

zenseii commented Mar 21, 2025

Greetings fellow collaborators.

I agree and approve of this PR. However, the main issue I see with this is that currently players have started to make maps in the new fh2m format with the assumption that the stone liths work as they do in master... One example is the map 7 Deserts.

It is therefore obvious that we need, and players/map makers want, a portal which allows for selection of an exit, and both this and the original portals can exist together.
Now that I'm (mostly) done with button-related stuff, I'll make it my top priority to get such an alternative portal added with new graphics, so that map makers can update their maps with the new portal.

@oleg-derevenetz
Copy link
Collaborator Author

That's what I'm talking about :) It's not so easy to make such a change now, when everyone is already used to this HoMM3-style mechanics. Technically, it's nothing especially complicated, but from a psychological point of view, there is a lot of resistance to preserving the mechanics of the original HoMM2.

@oleg-derevenetz
Copy link
Collaborator Author

oleg-derevenetz commented Mar 21, 2025

It is therefore obvious that we need, and players/map makers want, a portal which allows for selection of an exit, and both this and the original portals can exist together.

It's not entirely clear to me exactly how this will work. What if some of the exits of this portal are in the fog of war, how are they supposed to be chosen? Or is it assumed that they highlight themselves (and perhaps some small area around them) for all players immediately from the beginning of the game? As far as I know, there are no similar mechanics in any (at least popular) game from the HoMM series.

@Districh-ru
Copy link
Collaborator

Districh-ru commented Mar 22, 2025

That's what I'm talking about :) It's not so easy to make such a change now, when everyone is already used to this HoMM3-style mechanics. Technically, it's nothing especially complicated, but from a psychological point of view, there is a lot of resistance to preserving the mechanics of the original HoMM2.

If we want to position this PR as a restoration of the original HoMM2 game mechanics then we should consider fully removing the reuse ability for heroes.
The solution in current PR makes the portal visiting to follow the original game logic, but all other action objects do not follow this rule: you can move a hero to a Windmill at the 7th day, press the space bar at the 1st day and move the hero having all his move points at the start. It gives a question - why the Windmill is better than a portal and is this a bug that I cannot reuse the portal while I can reuse all other objects. :)
The remove of reuse ability will force players to better plan their moves. And disabling this ability for all action objects looks like a complete follow-up to the original HoMM2 game rules, which I agree.

@oleg-derevenetz, @zenseii, @ihhub what do you think?

@oleg-derevenetz
Copy link
Collaborator Author

The solution in current PR makes the portal visiting to follow th original game logic, but all other action objects do not follow this rule

In fact, this PR is just a implementation of this proposal from @modo-lv. I decided to implement it and thereby initiate the discussion, because once again there were those who were dissatisfied with the current consensus between human player's UX improvements and following the logic of the original game.

@LeHerosInconnu
Copy link

LeHerosInconnu commented Mar 22, 2025

Hello everyone,

I support the @Districh-ru's point that the way the stone liths work in the original game brings frustration to the user.

In general, I'm of the opinion that if the user can bypass certain restrictions due to the game's operating design in any way (in this case saving/reloading the game before/after an action), because this allows him to remove a frustration generated by the game, one might as well directly remove the frustration generated by adjusting the game's operating design.

The way stone liths work in the original game can only be considered interesting from a player experience point of view when stone liths are not yet discovered on the adventure map (still under the fog of war).
This adds a certain amount of suspense to the course of the game at that precise moment (while the stone liths are still hidden).
After that, the player knows the possibilities of moving around with the stone liths, and the suspense disappears from the game.
When the stone liths have not yet been revealed, the gameplay of the stone liths is more like an RPG (adventure and discovery), and after the stone liths have been revealed, the gameplay of the stone liths becomes more like a strategy game (moving from one point to another).

The problem that arises at this point (when the stone liths are revealed) is that their use continues to be an RPG type action when it should be a strategy game type action.
This brings frustration to the user, as there is something “wrong” with the way the game works.
Heroes of Might and Magic 2 is first and foremost a strategy game, with some RPG aspects, true, but it is first and foremost a strategy game.

It's also true that some of the game's original scenarios also make use of the random operation of stone liths, and the fact that having to leave the stone liths' position and then return to use it again consumes movement points to bring a strategic dimension to the moves while retaining an RPG feel; but in the end this only increases the time needed to complete the scenario.
The most important thing, in my opinion, is to develop a strategy to obtain a powerful hero with a substantial army supported by solid “resources” (cities for gold, creatures, spells, position, etc., mines for resources, etc.).
The randomness of movement with the stone liths, which may have seemed fun, ends up being a constraint.

For the rest, the fact that the hero has to leave a location and then return to enter it again, all the while expending movement points, is frustrating and, by the same token, poor game design.
Let's leave this useful enhancement of revisiting a site with the associated button and space bar brought by fheroes2 present.

Concerning the possible new types of stone liths with different functions proposed by @zenseii, I'm not in favor.
In Heroes 2, there's only one type of stone liths, no one way stone liths as in Heroes 3, etc.
Heroes 2 (fheroes2) is a simple game in that respect and should stay that way.
A single type of stone liths (in its functioning) is sufficient.
In Heroes 2, stone liths are more like shortcuts for moving around (strategy game aspect) than traps for moving around (random movement, or forced movement in the case of one way stone liths, etc., RPG game aspect).

Now that players are used to this enhancement to revisit a site, it's going to seem like a step backwards, bringing frustration, without a real addition to the game even if it is to function as the orinal game, as @oleg-derevenetz also points out.
Keeping the original way the game works just to keep the original way the game works doesn't really make sense, especially if things can be improved without drastically changing the original way the game works.

For the operation of stone liths, here's how it could work:
With a single stone liths.
Normally this shouldn't happen, this case should be reported to the scenario creator in the scenario editor when he saves his work so that he can remedy the situation.

With two stone liths.
In this case, there's no need to present a destination selection window.
This should remain fluid in use.

With three or more stone liths.
One stone liths revealed, the others hidden by the fog of war.
Here again, no need to present a selection window, the hero is sent to one of the other stone liths at random.

Several stone liths revealed, at least one hidden by the fog of war.
In this case, a selection window is presented (in the same way as for the town portal spell).
One entry is displayed for each stone liths already revealed.
Another entry, displayed first in the list and selected by default, indicating, for example, "Unrevealed location", sends the hero to the last stone liths or one of the other stone liths not yet revealed.

When all stone liths are revealed, it is no longer necessary to display the entry offering a stone lith not yet revealed.

With all this in mind, moving with stone liths shouldn't consume any movement points.
This is considered more of a strategic move from a location where the hero doesn't move (the hero stays on the same square, allowing him to move to the destination of his choice from among the possible ones).
Players who want a more RPG style movement can still do so by randomly choosing a destination from the list of available destinations.
Naturally, the AI ​​should use the ability to choose the destination that suits it best, whether it's to reveal the adventure map, or to move faster.

@oleg-derevenetz
Copy link
Collaborator Author

The problem that arises at this point (when the stone liths are revealed) is that their use continues to be an RPG type action when it should be a strategy game type action.
This brings frustration to the user, as there is something “wrong” with the way the game works.
Heroes of Might and Magic 2 is first and foremost a strategy game, with some RPG aspects, true, but it is first and foremost a strategy game.

In my opinion, people came here to play HoMM2 - as they remember it. I don't think there's a real need to introduce any mechanics that have fundamental differences from the original game, especially those that will be available on original maps one way or another. If the original game has a certain balance between the strategic component and the RPG component that was developed by its creators, then we need to keep it as is as much as possible, and not arbitrarily shift it to one side "just because we can".

@modo-lv
Copy link

modo-lv commented Mar 22, 2025

I don't like this change as it leads to forcing player use many save/load (as they did in the original game and it was really annoying) to go to the wanted portal exit.

Getting a bad result in combat also leads players to save/load and try again to get a better result. That's player choice -- accept the result you got or savescum to get a better one. Players using save files to avoid risks is not a reason to remove those risks from the game.

(if you visit a dwelling at the 7th day and buy some troops and wants to stay for the next day on these difficulties you'll need to re-enter the dwelling without using the space bar, like in the original game)

I don't agree that it's the same, as I explained in my original comment.

to use it again consumes movement points to bring a strategic dimension to the moves while retaining an RPG feel; but in the end this only increases the time needed to complete the scenario.

It also increases the risk that the enemy (AI or human player) will gain advantage. While your hero is wasting movement points trying to get to the right portal exit, their heroes can spend theirs on exploring the map, acquiring resources etc.

I believe that the randomness, combined with having to move away and return, is/was a way to limit stone lith use, similar to how spell points limit teleportation spells like Dimension Door. Being able to just teleport across the map to any lith you want can be a very powerful feature in a game where movement is limited, so having some cost associated with it makes sense. I feel this was intentional by the original developers (as evidenced by maps specifically designed with this limitation in mind) and should function as in the original. Especially if it also makes human and AI gameplay rules more consistent.

As for the PR itself, I think that it is crucial to have an informative message pop up when a player tries to use spacebar on a portal, letting them know that the exception is intentional. I'm not seeing that in the PR, which could make this change come across as a bug or at the very least confusing for players unaware of these discussions.

P.S. Spacebar activation also didn't exist in the original HoMM 3, it was added with Armageddon's Blade expansion. I wonder if NWC developers had as much discussion as fheroes2 about portal balancing. :D

@oleg-derevenetz
Copy link
Collaborator Author

oleg-derevenetz commented Mar 22, 2025

As for the PR itself, I think that it is crucial to have an informative message pop up when a player tries to use spacebar on a portal, letting them know that the exception is intentional. I'm not seeing that in the PR, which could make this change come across as a bug or at the very least confusing for players unaware of these discussions.

Regarding this: the game UI already has an indication of whether you can reuse the object you are standing on or not - the image on the "continue movement" button (with the horse) serves for this purpose (because this button is used to re-visit the object on platforms that may not have the hardware keyboard - e.g. Android). Therefore, if the question concerns whether the fact that the spacebar does not work on this object is intentional or not, then the state of this button should resolve all questions of this kind. Another question is why this is intentional (i.e. the rationale). In this regard, I doubt that one or the other explanation of "why" in this case will be enough, because it will exceed the size of this discussion :) And even so, there will still be dissatisfied people, so I consider the explanation of "why" in a dialog window superfluous. As well as a dialog window that simply says "you cannot do this", which will simply duplicate the already existing information from an already existing button in the UI.

@modo-lv
Copy link

modo-lv commented Mar 22, 2025

Oh, and I'm still not opposed to making this a setting -- as a last resort, if that's what it takes. @oleg-derevenetz explained why he's against it, and I completely agree that having a bunch of game mechanic variations is a bad idea, but maybe a rare exception could be justified for this, if a consensus can't be reached. As long as it is made very clear in the code and everywhere else that it is not done casually just because someone asked, but only for a controversial, long-debated issue where the original mechanics and those who prefer them directly and irreconcilably conflict with those who prefer the modernization.

@modo-lv
Copy link

modo-lv commented Mar 22, 2025

Therefore, if the question concerns whether the fact that the spacebar does not work on this object is intentional or not, then the state of this button should resolve all questions of this kind.

In general you're right, I'm just thinking about the fact that players are used to the spacebar teleportation. If this PR goes through and the portal "spacing" stops working, it might lead to a bunch of superfluous bug reports, Discord questions, etc. A popup saying something like "you must step away from the liths and gather your scattered mind to be able to use them again" would leave zero doubt about the intentionality of the change.

Copy link
Collaborator

@zenseii zenseii left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If Mozart wrote that a part of a composition had to be repeated/played twice then that was his intention, if someone doesn't like that then they can simply find something else to listen to.

In a similar vein, you have the map Alteris 2, which puts a bunch of portals with the intent to slow you and the enemy down. I don't like this design choice so I always delete this map from my maps folder and move on.

@oleg-derevenetz
Copy link
Collaborator Author

If this PR goes through and the portal "spacing" stops working, it might lead to a bunch of superfluous bug reports, Discord questions, etc.

I have an impression that there will be a lot of "Discord questions, etc" in any case - "but why???". And to explain this "why" is not an easy task at all, there always will be dissatisfied people.

@modo-lv
Copy link

modo-lv commented Mar 22, 2025

I have an impression that there will be a lot of "Discord questions, etc" in any case - "but why???". And to explain this "why" is not an easy task at all, there always will be dissatisfied people.

The "why"s will need links to discussions, yeah, there's no way to explain something that meta in-game. It just seems like a flavor text popup could help with transitioning to a new behavior process for players (and also for new players, who know/discover the spacebar first, and then think they've encountered a bug when they get to a portal). But of course it's not functionally necessary.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
improvement New feature, request or improvement logic Things related to game logic
Projects
None yet
Development

Successfully merging this pull request may close these issues.

AI heroes get stuck in portals Adventure map, AI should use spacebar to re-visit objects
6 participants