Discuss, please: Delayed GoTo and Real Turn-Based Game

Various topics about the game, the website, or anything else Freeciv related that doesn't fit elsewhere.
Lexxie
Veteran
Posts: 52
Joined: Fri Jun 23, 2017 4:18 pm

Re: Discuss, please: Delayed GoTo and Real Turn-Based Game

Postby Lexxie » Thu Sep 12, 2019 5:30 am

Let's admit the current situation has real problems, especially for longturn. I was a proponent of something similar to all the above, because all the problems are real. But the more I talked with people and saw the side effects, I became frustrated, because I don't want to give up on solving this problem, but the solutions weren't going to happen.

Let's be realistic about the enormity of the solutions proposed so far. I believe the re-write is too involved and has too many loopholes, exceptions. Side effects where the cure is worse than the disease. What I mean is, I believe the proposals above won't happen, and if they did, would be followed by disappointment after people start discovering that the side effects are worse than the original problem.

This returns us back to where we started. We still have the original problem.

Instead of radical changes, I'd like to suggest setting the goal a little lower, and look for simple subtle changes. A good example of this was the introduction of unitwaittime. Why not brainstorm 4 or 5 other simple things like this? Maybe it's not a 100% solution but it's doable and could cure 80% of the problem?

Another is optional delayed GO TO -- NOT a forced delay -- the simple ability to tell the unit to go somewhere later. We can do this already if the unit has 0 move points. Is there some reason a unit with moves left should be forbidden? It's doable and has even been coded before.

What other little things would improve the state of affairs?

Rally points - automatic GO TO for new units coming out of a city - It's doable and has even been already coded before.

Delayed income - This has been a complaint: if you are not on at TC, you have a full treasury and are prone to get a lot more gold looted, which motivates you to log on during TC and spend your gold quickly. Under this new idea, the player receives income temporarily during TC computations, to help pay upkeep, then the remainder goes in a 'bank'. They receive the remainder the next time they log in.

Contract times - this original idea came in a form I don't like -- players simply having "gentlemen agreement" to do their attacks only once per day or at a certain time of day. Rather than throw the idea away, let's look at the good intent behind it and think of another way. People complained that unless you want to be disadvantaged, you have to log on multiple times per day to see if you should react to something. The good intent behind the original idea is this: when both players log in only once per day, there's no problem. The problem starts as soon as someone tries to get a bit more advantage by logging in more often, forcing the other to go more often, which makes the first want to log on MORE often... finally it ends with one of the players shouting in despair because they have less time than the other. Is there something super simple to solve this? Like how simple UWT solved the other issue? Let's think of something... not a final proposal but just to get the idea going ... a ''limited activity window" for units and attacks but not for other things. Say you had two windows. A move or an attack begins the window. You can continue to move and attack until the window expires. You have one window left this turn. You can still log on as often as you like, check your taxes, buy things, etc. But only two windows to do moves and attacks. Which you choose by simply giving an order.

Other super simple ideas with minimal side effects -- totally welcome and encouraged. Debate and evolution of proposed ideas, totally welcome!

CONCLUSION
My thesis is this: A massive rewrite and change of the entire structure won't happen because it's enormous and has way too many issues. Why not brainstorm and code super easy simple features, like the ones above, and maybe 3-4 others? No, it doesn't fix the problem completely. But in tandem, all the little features add up to a large net effect, with very little side effects! Delayed GOTO even cures the side effects that unitwaittime made, and we all live in a happy longturn harmony.

Lachu
Elite
Posts: 391
Joined: Sat May 04, 2013 2:19 pm

Re: Discuss, please: Delayed GoTo and Real Turn-Based Game

Postby Lachu » Thu Sep 12, 2019 12:30 pm

1. I have had an idea about some MMO + Civilization + Sims + Minecraft ;-) game, where Civilization means only possibility to research a new tech. About the game: player will select how many time per day he would play. Smaller window? He got more other bonus, like experience. Larger play window? He got possibility to gather more experience, but it's more difficult.
2. In Forge of Empires game, player could select time to select and start realizing day task, so I could select my time to realize task end at 9 pm, but at the same time I can select next task and I can realize it to 9 pm of next day.

1 + 2 + Lexxie ? Maybe allow to select play time by player, so we have got real time game, but with turn-based simulation.

About solution to build wonder the same time: allow to select in other cities help wonder project (like projects in Civ6). Player will select help build wonder and select city/wonder in next step. Production of city isn't added to wonder project, but to special counter of wonder race for selected wonder. When many players built wonder at the same time, we check each player's wonder race point count for built wonder. Player, who have more than 500 points according to other players, will build this wonder.

User avatar
Corbeau
Elite
Posts: 1040
Joined: Mon Jan 13, 2014 11:13 pm

Re: Discuss, please: Delayed GoTo and Real Turn-Based Game

Postby Corbeau » Thu Sep 12, 2019 1:44 pm

Slightly offtopic: solution to city capture lootis actually simple. Don’t tie the sum to the current stateof treasury, but instead tothe yearly budget. Yes, this could mean that a nation may end up in the negative. Allow this for one turn, meaning, delay disbandment for one turn, but demand back pay the next. End of story.

As for the general topic, yes, the s9lztion is complicated. It would take hundreds, probably thousands of lines of code. And yes, not my effort because, looking at the code, I’ve given up all hope I’d be able to contribute, ever. But iT all depends on what kind of game the developers want this to be: a copy of a 30 year old legend with all of its inherited flaws (or, more accurately, inadjustments to new circumstances) or something compact and possibly more original.

I’m not forcing anybody to do anything, simply reasoning and giving ideas. If they are picked up, it will be done, if they are not, it will not, simple as that. But don’t give me the “it can’t/won’t be done” excuses. It canbe done, and whether it will or won’t is out of my reach and definitely out of reach of anyone saying it can’t/won’t. You don’t have to pull forward, but why are you pulling back?

Lexxie
Veteran
Posts: 52
Joined: Fri Jun 23, 2017 4:18 pm

Re: Discuss, please: Delayed GoTo and Real Turn-Based Game

Postby Lexxie » Fri Sep 13, 2019 7:36 pm

Corbeau -- regarding pulling "forward" or "backward", I don't think you see clearly which direction I'm pulling.

If you know what's involved in the project, then however you look at it, it's a greater probability that this entire topic will be like so many others, fading into nothingness because it was all hypothetic theory of what could be done, but no one rose to take on the enormous task successfully.

The direction I'm pulling is this: Forward Reality. Forward Results. instead of hoping and dreaming for something two years from now, with theoretic debates that don't turn into actions, to face this problem with REAL RESULTS that can be up and going by the end of 2019, the result of which is an 80%+ improvement to all the issues that I think we all agree on.

My prophecy is this. This topic will die unless it becomes a brainstorm for real doable immediate-term fixes. With that said, I will start a new post below which operates under this principle.

Lexxie
Veteran
Posts: 52
Joined: Fri Jun 23, 2017 4:18 pm

Re: Discuss, please: Delayed GoTo and Real Turn-Based Game

Postby Lexxie » Fri Sep 13, 2019 8:24 pm

1. Looting - The proposal of Corbeau has these benefits: the amount looted will more accurately reflect the wealth of the nation being looted. I personally like it. But as someone who has worked on a ruleset team for almost 2 years, and a server operator trying to get improvements done, I can tell you a sad thing that happens. Setbacks: it introduces a radical mechanical change to gameplay and rules, which raises the questions of "political buy-in." My own observations about even the slightest changes to traditional mechanics, is that it creates wild in-fighting. Changing the mechanics in the server itself would make an even higher degree of disagreement. Note how an OBVIOUS improvement to a MAJOR flaw in airlift behaviour, recently got people screaming and stabbing each other. But there's a way out. A voluntarily selectable server OPTION for looting_style. NOTE: This idea still needs some modification and forward thinking to finalise it. It currently does not respect the nightmare complexity it would create for the TC sequence and handling of exceptional cases. Proposed evolution: Gold can never go negative when looted. This reduces the complexity of the solution by a huge amount.

1a. The first proposal I made for looting, preserves the exact existing dynamics for looting. This means political buy-in and less infighting. It only changes the influence that login time-of-day had for looting. This matches the mostly agreed longturn community goals, that changes are acceptable when not altering mechanics of the game itself, but they only help remove unfair and unrealistic issues around time-of-day, frequency of login, etc. Simply collect your gold WHEN you log in. Ultra simple, no extra complications. One adequate idea that really happens is better than 100 brilliant ideas that never happen. ;)

2. Slider for time online vs other benefits: It's interesting. But a bit radical and complex? It would transform a lot of game mechanics. Transformations to game mechanics, in my experience, usually don't get political buy-in. It also has issues of needing to be balanced. It will create a scenario where, setting the slider to X is optimal and anyone else who has different schedule will suffer a side-effect disadvantage. OK those are issues on first thought, but let's not throw the baby out with the bathwater. This idea might have some good DNA. Let's preserve the unfinished idea as "slider for movement/attack time which in some way allows player to self-regulate his limitations to his schedule, in a fair way."

3.
In Forge of Empires game, player could select time to select and start realizing day task, so I could select my time to realize task end at 9 pm, but at the same time I can select next task and I can realize it to 9 pm of next day.
This is fabulously great!!! Let's discuss how this might look inside a freeciv longturn game!

I really think something like #2 or the earlier idea of "time windows" for unit move/attack, is the biggest part of solving the Original Problem. The Original Problem is the one that makes people want to rewrite the whole engine as "pure-turn-based." So far, we have no winning solution. Let's please think more on it. Please more suggestions and ideas, for how to limit the negative-feedback loop where one player logs on more often, forcing the other player to either do the same, or suffer unfair advantage.

Ignatus
Hardened
Posts: 230
Joined: Mon Nov 06, 2017 12:05 pm
Location: St.Petersburg, Russia
Contact:

Re: Discuss, please: Delayed GoTo and Real Turn-Based Game

Postby Ignatus » Sat Sep 14, 2019 3:26 pm

Caedo wrote:Secondly, and more importantly, however, this matters when multiple players build the same Great Wonder and finish it at the same time. I honestly have no idea how the game decides who gets it. Thirdly, and more relevant to the issue at hand, there's goto orders. At the beginning of a turn, all units with goto orders move; again, I don't know how the game decides on the order

See https://freeciv.fandom.com/wiki/Turn: there is a random order of players designated when a turn begins, and units of each player move in their player list order (they are prepended to the list as soon as the player obtains them AFAIK). Each player has his cities processed each turn end in some random order.

We can mark one point that we surely can and want to resolve: goto orders shall not be cancelled for TC at unitwaittime but postponed to the next server pulse after the wait time ends (pulse timer exists in 2.6), or how somebody has already coded it.

Ignatus
Hardened
Posts: 230
Joined: Mon Nov 06, 2017 12:05 pm
Location: St.Petersburg, Russia
Contact:

Re: Discuss, please: Delayed GoTo and Real Turn-Based Game

Postby Ignatus » Sun Sep 15, 2019 12:39 am

My own idea: since player of alliance A moved a unit into sight of a unit of alliance B, this A's unit sight area (or even all tiles it has seen this turn) becomes alliance A's zone of initiative: any transferring of units of alliance B by paths including this area will be postponed for the next 10-20 minutes when alliance A will be able to finish its operation. Each tile may fall into ZoI between two alliances (or better two players?) only some time after previous timeout from either side expired (or once in a turn for each side?). In multiplayer games with non-stable alliances ZoI should be postponing for all units not allied with A, maybe with some option of temporal "local alliance". This all should be checked for exploits though.

Another thing much needed to balance a game with net addicts: let units remember what movement have they seen and be able to tell when their owner connects (stored at least until the end of the next turn). Or even more (in 3.0 can be coded with Lua) - let at least heavy units leave short-expiring trace extras when they move in the open, so we can notice that we crossed a way of some army passed.

User avatar
Corbeau
Elite
Posts: 1040
Joined: Mon Jan 13, 2014 11:13 pm

Re: Discuss, please: Delayed GoTo and Real Turn-Based Game

Postby Corbeau » Mon Sep 16, 2019 9:35 pm

I'll just put some old ideas here so that they are in one place:

Tile Wait Time.
If an action was done on a tile:
- unit ended its movement in the tile
- combat happened there
- especially if a tile was worked on (road/fortress)
no action is possible on that tile by the player who performed this action while Wait Time is active (under usual definition of Wait Time)

A way of combating RTS: Deliberate Server Lag.

In order to provide that a player (A) can move his units in peace without real-time interference from another player, the server doesn't send information to other clients connected at that time. Information about unit movement is delayed for, say, 60 seconds or more.

It is possible that another player (B) may move units in the same area at the same time. The result is that both players' units that just moved are effectively invisible (not on locations that are reported by the client), but players move normally and normal rules apply; the server has all the necessary information and conducts movement and combat according to the situation in the field

A useful variant may be that, if player A moves first and player B tries to move a unit into a tile or into an adjacent tile containing player A's unit that was still under lag cover (server didn't send the info to the client yet), he gets a pop-up saying "There is enemy movement reported in the area, proceed with caution or wait for reports". Then player B has the option to proceed blindly or wait for the said lag time.

Wahazar
Hardened
Posts: 256
Joined: Mon Jul 02, 2018 1:49 pm

Re: Discuss, please: Delayed GoTo and Real Turn-Based Game

Postby Wahazar » Tue Sep 17, 2019 9:58 am

Fixing some core feature by adding small patches is not a good idea, in my opinion.
It is like playing Yenga - pulling one piece of code and inserting another - easy to produce new bugs, loopholes or breaking balance.
Especially fixing one issue by spoiling whole game (for example above-mentioned artificial lag) doesn't sound good.

In my opinion, original civ's were turn-based game, and freeciv should be the same, regardless of singleplayer or multiplayer mode.
The main factor against such approach is only that people get used to existing hacks and flaws.

User avatar
Corbeau
Elite
Posts: 1040
Joined: Mon Jan 13, 2014 11:13 pm

Re: Discuss, please: Delayed GoTo and Real Turn-Based Game

Postby Corbeau » Tue Sep 17, 2019 10:14 am

Wahazar wrote:The main factor against such approach is only that people get used to existing hacks and flaws.


Yes and a thousand times yes! This sentence should be carved in stone. It is something I realised many times.

That said, I disagree with what you said before that :D Imagine people playing in turns, not simultaneously. In that situation, the artificial lag is completely unnoticeable. It's as if it doesn't exist. Why do you think it would "spoil the whole game"? There is absolutely no reason to say this.