Latest Posts

Topic: build path during pause

GunChleoc
Avatar
Joined: 2013-10-07, 15:56
Posts: 3324
Ranking
One Elder of Players
Location: RenderedRect
Posted at: 2019-02-17, 16:03

Syncstreams are only for debugging desyncs. One loads an out-of-sync multiplayer game from an emergency save that gets created automatically.

Nordfriese wrote:

Is it possible to reduce the gamespeed in single player to 0.1x or 0.5x? If you build many paths/buildings it can be anoying press play and pause all over again, thats the reason why I use pause.

I think there was a suggestion some time ago about having PageUp/PageDown change the speed by the factor 2 or ½ instead of adding or subtracting 1; that would also solve this…

I think that might be the easiest solution

WorldSavior wrote:

teppo wrote:

In multiplayer, you need to trust a bit. If having a break, the other person can save the game, load it in another instance, with controls of your tribe and inspect your land, to gain competitive advantage.

face-sad.png Are there any possibilities to make this impossible?

Only if we completely get rid of the replay feature, because even if we should some up with something strict for the savegames, replays are always in spectator mode.


Busy indexing nil values

Top Quote
kaputtnik
Avatar
Joined: 2013-02-18, 20:48
Posts: 2433
OS: Archlinux
Version: current master
Ranking
One Elder of Players
Location: Germany
Posted at: 2019-02-17, 16:41

teppo wrote:

kaputtnik wrote:

I think when the game pauses, it is paused face-grin.png and triggering any request should be prevented.

Question of taste. As of now, you can do lots of inspections and plannings, and also you can build lots of stuff:

  • Build many buildings.
  • If a flag is already present, you can build a road from there.
  • If a road is already present, you can place flags on it.
  • Tune economy settings, warehouse preferences, productionsite preferences.
  • etc

I would consider this as a bug.

One reason for my opinion:
When playing mutiplayer and all participants agreed for a pause, e.g. because one player has to go the toilets, the other players have some time to do some things and get some advantage then, while the absence player can't do anything.

In multiplayer, you need to trust a bit. If having a break, the other person can save the game, load it in another instance, with controls of your tribe and inspect your land, to gain competitive advantage.

Trust has to be...

Anyway: If we would like to implement "build while paused", advancing the game for one tick would me my way of implementing the feature. I think that it is a sensible request. Even if implemented, this feature could be disabled in multiplayer. The problem would also more or less go away if we replaced the "paused" text with "paused since [timestamp of latest gametime advance, in local wallclock time]".

As far as i know, the problem exists only for singleplayer games, and personally i play such games mostly with 2x speed all over the time. For multiplayer games one participant can always press Page-Up for a short time when the game has paused, and i bet the one who is absent will not notice it.

Can we agree that we will have two issues here?:

  1. Pausing the game should restrict any requests (userinput)
  2. Add possibility to set the game speed to 0.5 (or 0.1) for singleplayer games

While 1. is difficult to implement, as GunCheloc described, 2. can maybe implemented with different steps:

  1. Pressing Page-down with normal speed sets seed 0.5 x
  2. Pressing Page-down with 0.5 x speed sets speed to 0.1x
  3. Pressing Page-down with 0.1 x speed sets speed to pause
  4. Pressing Page-up will react vice versa
  5. Pressing Page-up from normal speed and above increases game speed with 1.

But i can think of a partial solution for the first issue: Maybe we can have a dialogue box were the host can set a time how long the game should pause. For the set time, any user input will be prevented then. This does not solve the problem evil people can start the last savegame though. But as you said: In multiplayer, you need to trust a bit.


Fight simulator for Widelands:
https://wide-fighter.netlify.app/

Top Quote
teppo

Joined: 2012-01-30, 09:42
Posts: 423
Ranking
Tribe Member
Posted at: 2019-02-17, 18:01

kaputtnik wrote:

I would consider this as a bug.

I guess that some not-so-talented players put the game to pause after enemy attacks (for example), to inspect the situation. Should that be impossible too?

Anyway: If we would like to implement "build while paused", advancing the game for one tick would me my way of implementing the feature. I think that it is a sensible request. Even if implemented, this feature could be disabled in multiplayer. The problem would also more or less go away if we replaced the "paused" text with "paused since [timestamp of latest gametime advance, in local wallclock time]".

As far as i know, the problem exists only for singleplayer games, and personally i play such games mostly with 2x speed all over the time. For multiplayer games one participant can always press Page-Up for a short time when the game has paused, and i bet the one who is absent will not notice it.

Yes, the first post in this thread was about single player game.

  1. Pausing the game should restrict any requests (userinput)

I abstain from voting.

  1. Add possibility to set the game speed to 0.5 (or 0.1) for singleplayer games

Yes for me.

But i can think of a partial solution for the first issue: Maybe we can have a dialogue box were the host can set a time how long the game should pause. For the set time, any user input will be prevented then. This does not solve the problem evil people can start the last savegame though. But as you said: In multiplayer, you need to trust a bit.

I still think that changing the "paused" string would be really easy way to allow the other people to easily detect if somebody has been advancing the game during agreed breaks.

WorldSavior wrote:

In multiplayer, you need to trust a bit. If having a break, the other person can save the game, load it in another instance, with controls of your tribe and inspect your land, to gain competitive advantage.

face-sad.png Are there any possibilities to make this impossible?

Depends on the level of paranoia. You always have to trust something. We could modify the code so that non-host participants will not write savegames or replay streams. Some people might not like that, and also you still need to trust the host (and believe that the other end has not patched his client to always have "no-fog" or whatever).

It could be made more difficult, but not impossible.


Top Quote
TuStudent
Avatar
Topic Opener
Joined: 2015-05-02, 23:30
Posts: 22
Ranking
Pry about Widelands
Posted at: 2019-02-17, 18:59

WorldSavior wrote:

Could you please explain how one could demolish military buildings by building roads? I don't see any possibilty there?

I ment you can prevent the fog/black area, by adding roads, because every person/carrier has a radius of light. Even if there is a dark place in the middle of your land you can add a road (but not flags) though the fogy arrea, then again a person/carrier will lighten up this road(if it is connected to other roads), and you can add a flag there.

https://homepage.boku.ac.at/jokalliauer/Internet/shot0001.png

Add possibility to set the game speed to 0.5 (or 0.1) for singleplayer games

I agree to a slow play feature (0.5x and 0.1x-Speed). Sometimes it happens that you play too fast Singleplayer and suddenly you notice what you have to change several things.


Top Quote
GunChleoc
Avatar
Joined: 2013-10-07, 15:56
Posts: 3324
Ranking
One Elder of Players
Location: RenderedRect
Posted at: 2019-02-18, 11:12

I have created a bug for the game speed: https://bugs.launchpad.net/widelands/+bug/1816378


Busy indexing nil values

Top Quote
WorldSavior
Avatar
Joined: 2016-10-15, 04:10
Posts: 2091
OS: Linux
Version: Recent tournament version
Ranking
One Elder of Players
Location: Germany
Posted at: 2019-02-19, 20:55

Nordfriese wrote:

I think there was a suggestion some time ago about having PageUp/PageDown change the speed by the factor 2 or ½ instead of adding or subtracting 1; that would also solve this…

Imho this could be a feature if this wouldn't replace the PageUp/down function, but if it works by ctrl+PageUp/down or something like this. It's already a very nice feature that any natural number can be picked for speed, and not only the few ones of the form 2^n. So what's the point of to destroying this feature?

GunChleoc wrote:

Syncstreams are only for debugging desyncs. One loads an out-of-sync multiplayer game from an emergency save that gets created automatically.

Ok

Nordfriese wrote:

Is it possible to reduce the gamespeed in single player to 0.1x or 0.5x? If you build many paths/buildings it can be anoying press play and pause all over again, thats the reason why I use pause.

I think there was a suggestion some time ago about having PageUp/PageDown change the speed by the factor 2 or ½ instead of adding or subtracting 1; that would also solve this…

I think that might be the easiest solution

What about leaving pageUp and pageDown like they are and implementing this idea with the help of the ctrl button? And by the way: We should think about what should happen in multiplayer, because it's not desirable that anybody can force the game there down to 0.25 or even slower... The possible choice of minimal and maximal speed could be a solution here. (adjustable before each match)

WorldSavior wrote:

teppo wrote:

In multiplayer, you need to trust a bit. If having a break, the other person can save the game, load it in another instance, with controls of your tribe and inspect your land, to gain competitive advantage.

face-sad.png Are there any possibilities to make this impossible?

Only if we completely get rid of the replay feature, because even if we should some up with something strict for the savegames, replays are always in spectator mode.

You don't like replays? face-wink.png Maybe one could partly lock replays and savegames until the game is finished? Or would that be too complicated?

teppo wrote:

WorldSavior wrote:

In multiplayer, you need to trust a bit. If having a break, the other person can save the game, load it in another instance, with controls of your tribe and inspect your land, to gain competitive advantage.

face-sad.png Are there any possibilities to make this impossible?

Depends on the level of paranoia.

Is that really about paranoia? Just look at the sayings "trust is good, control is better" and "opportunity makes a thief"

You always have to trust something. We could modify the code so that non-host participants will not write savegames or replay streams. Some people might not like that, and also you still need to trust the host (and believe that the other end has not patched his client to always have "no-fog" or whatever).

Or multiplayer saves and replays get partially locked somehow which will make abuse impossible without hacking, but that could be a little bit too complicated.

TuStudent wrote:

WorldSavior wrote:

Could you please explain how one could demolish military buildings by building roads? I don't see any possibilty there?

I ment you can prevent the fog/black area, by adding roads, because every person/carrier has a radius of light. Even if there is a dark place in the middle of your land you can add a road (but not flags) though the fogy arrea, then again a person/carrier will lighten up this road(if it is connected to other roads), and you can add a flag there.

So it has nothing to do at all with "demolishing"?


Wanted to save the world, then I got widetracked

Top Quote
teppo

Joined: 2012-01-30, 09:42
Posts: 423
Ranking
Tribe Member
Posted at: 2019-02-19, 21:23

WorldSavior wrote:

Is that really about paranoia? Just look at the sayings "trust is good, control is better" and "opportunity makes a thief"

Exercising all the control makes the gaming experience worse. We should prevent spectators: you could not know if my best friend was in the same room, with laptop as spectator, telling me your weak points. Should prevent savegame for non-host. Prevent things while paused. There is also the issue of patching the game; very difficult to prevent in floss game like this. Gameconsole folks spend huge effort to make playing without paying impossible, and even they are struggling.


Top Quote
GunChleoc
Avatar
Joined: 2013-10-07, 15:56
Posts: 3324
Ranking
One Elder of Players
Location: RenderedRect
Posted at: 2019-02-20, 17:39

Locking replays until the game is won would mean that if there is any desync or somebody's connection drops, no replay for the first part of the game.

I understand why you're keen on people not cheating, but preventing all possible cheats takes a lot of effort which I'd rather spend in other areas at the moment.


Busy indexing nil values

Top Quote
WorldSavior
Avatar
Joined: 2016-10-15, 04:10
Posts: 2091
OS: Linux
Version: Recent tournament version
Ranking
One Elder of Players
Location: Germany
Posted at: 2019-02-22, 14:25

teppo wrote:

WorldSavior wrote:

Is that really about paranoia? Just look at the sayings "trust is good, control is better" and "opportunity makes a thief"

Exercising all the control makes the gaming experience worse. We should prevent spectators: you could not know if my best friend was in the same room, with laptop as spectator, telling me your weak points.

It could be possible to limit spectators to one player. In that case the spectator would only see what that player sees face-smile.png

Should prevent savegame for non-host.

The savegame could be locked in a way that it can only be loaded under circumstances which mean "this game is continuing", and unlocked after the game is over.

Prevent things while paused. There is also the issue of patching the game; very difficult to prevent in floss game like this. Gameconsole folks spend huge effort to make playing without paying impossible, and even they are struggling.

What do you mean with "patching"? Sorry, I cannot translate...

GunChleoc wrote:

Locking replays until the game is won would mean that if there is any desync or somebody's connection drops, no replay for the first part of the game.

In any case?

I understand why you're keen on people not cheating, but preventing all possible cheats takes a lot of effort which I'd rather spend in other areas at the moment.

Okay


Wanted to save the world, then I got widetracked

Top Quote
teppo

Joined: 2012-01-30, 09:42
Posts: 423
Ranking
Tribe Member
Posted at: 2019-02-22, 21:22

WorldSavior wrote:

What do you mean with "patching"? Sorry, I cannot translate...

Someone could modify (="patch") the source code to gain some advantage, and compile the modified sources for private use. Since the source code is freely available, this could even be rather easy.

Example: Let's assume that we now modify the game so that savegame while multiplayer no longer happens. Somebody could find those modifications by browsing the commit messages, undo that modification and gain advantage. You do not even need programming skills for that. A person who knows the source code and can write some could gain more boost for himself, by adding more powerful cheats that leave no traces into the syncstream.

In short, just don't play widelands for large amounts of money. T-shirts are probably okay..


Top Quote