GithubHelp home page GithubHelp logo

beaverbuddies's People

Contributors

thomaswp avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

tobbythebobby

beaverbuddies's Issues

Game desyncs because client ticks before receiving events

Describe the bug

  • Game desynced after ~20m without a clear cause.
  • In the logs, the client kept ticking, without receiving events, and then received 4 at once (at which point it desycned, presumably because the random seed from 4 frames ago didn't match, though it probably hadn't diverged state)

Logs: On both the server and client computer, do the following steps:
desync server.txt

To Reproduce: If you have been able to reproduce this bug multiple times, describe the steps (or delete this section)
Cannot currently reproduce. I've tried toggling the wifi to create connection disruptions.

Desktop (please complete the following information):

  • OS: Windows 10 / Windows 11
  • Timberborn version: 0.5.9.0
  • BeaverBuddies version: 1.0.0

Client should be able to join before the Host loads the map

Describe what you want the mod to be able to do

The client should be able to join before the Host loads the map. This should be possible with the new set up by starting the ServerEventIO with a temporary Map loader that is updated when the game fully loads in.

Desync every 20 min

  • What happened: Desync
    I play with my friend, and after about 4 hours of playtime i always get a desync after 20 minutes.
  • OS: Windows 10
  • Timberborn version: v0.5.9.1-33dabbc-sw
  • BeaverBuddies version: 1.1.4

grafik

Kick Client back to Main Menu on desync

Describe what you want the mod to be able to do
When a Desync happens the Client should be kicked back to the Main Menu.

Describe alternatives you've considered
Alternatively the mod could automatically save the game on the Host, reload it and auto join the client on desync.
Another alternative would be to leave the game running on the Client so that it can save the game or play alone. This would have the added benefit to be able to recover to the current state of the game if the host crashes.

Additional context
Currently desyncs can happen quite frequently and the Client is left unable to do anything in the Game other that forcequiting by Alt+F4 or other means. This is a mayor anoyance.

MacOs & Windows CrossPlay Confirmed

  • Host: MacOs Sonoma 14.3.1 Apple M3
  • Client: Windows 11
  • Second Client: Windows 11
  • TimberBornVersion: v0.5.9.1-33dabbc-sw
  • Beaver Buddies: Version: 1.1.4
  • Bepindexpack: Version: 5.4.22.1
  • ModManger Version: Version: 2.0.0
  • TimberAPI: Version: 0.6.5.0

Played for multiple hours with "compromise(note blow)" trouble.
switching host to a windows and MacOs connecting also worked

NOTE: this was over VPN
speeding the game up in quick bursts then pausing for cpl seconds then play works fine, having it sped up longer then 30 seconds caused a desync.

NOTE 2: i and willing to do any MAC Os testing that is needed for i have both Windows machines, Mac Os machines

Swimming animation can cause crash

Describe the bug

  • What happened: Crash
  • Beaver swimming can cause an IndexOutOfBounds exception, though I wasn't able to catch the stack trace in the log :(

Desktop (please complete the following information for both Host and Client):

  • OS: Host: Windows 10; Client: Windows 11 - client had the bug
  • Timberborn version: 0.5.9.1
  • BeaverBuddies version: 1.1.4

Client should be able to join mid-game, not just at load time

Describe what you want the mod to be able to do

Currently, if the Client joins a game after the Host has played any amount of time (i.e. not at the initial load), there will be a desync within ~5s due to Beavers diverging positions. The exact cause is unknown, but likely happens because there are subtle differences between the state of the game at load time and the state of the game when the game was saved (e.g., state that is not fully captured by the save file, or initialization logic that only happens when the game is loaded).

This is not considered a "bug" because the mod explicitly does not support joining after load right now. However, adding this would be a helpful feature.

It is not clear how feasible it is to address these differences, but it should in theory at least be possible. If addressed, the instructions should be updated accordingly.

Client crashes when placing a waterwheel

Describe the bug

  • What happened: Crash
  • What were your doing right before this
    happened?: Client or Server builds a waterwheel, sometimes

Can confirm this happens for both the client and server. Doesn't actually look like a mod bug but still investigating. Does not always happen, but seems to have something to do with previewing the power connectors.

It does seem to be cause by the mod, but not by networking (can happen with only the server open in host mode, but doesn't seem to happen if not in host mode).

My guess is that delaying the building of the waterwheel until the end of a tick, as happens, violates some assumption of the preview, which causes the NPE.

Logs: On both the server and client computer, do the following steps:
Sever:
LogOutput.log

Add IPv6 support

Describe what you want the mod to be able to do
Allow clients to connect using IP v4 or v6, without any configuration.

Replace random

I haven't had a chance to test out the mod yet, but after reading some of the documentation I have noticed room for two improvements that could be made with a single change.

The documentation states that you had to reroute everything away from the random function to keep it consistent across all users. What I suggest is to simply outright replace the call to the RNG entirely with a simpler method.

Let be honest, why risk desync errors throughout the game from weird bugs when you could have the mod simply double check its work for any given tick against a static list? Let say pi as an example. At the start of the game have the host make a single random call for where to start reading in the massive string of numbers and simply progress from there?

By making the call once at the start you still get a pseudo random series of events while completely cutting out the chance that a dysnc occurs because someone didn't update on the tick correctly and tried to play catchup with incorrect info. This isn't a Vegas casino, we don't need true random and I highly doubt most players will ever notice any kind of pattern in the tree growth or beaver injuries.

The second part of this is that by doing it this way you could allow for players to join mid game simply by having the host send the position in the number string for the connecting players to sync up to.

Doing it this way not only makes it much easier to fix some existing problems but would allow for so many other features and other mod developers to add content without utterly breaking the entire thing.

As a non-programmer I'm obviously simplifying things, but if I'm understanding everything I've read then this seems like the best solution to properly synchronize everything.

Don't format JSON events for networking

Describe what you want the mod to be able to do
To improve latency, when events are serialized for networking, they should not be formatted.

(Side note: should consider more efficient encodings to further reduce size)

Floodgates and changing water levels may cause desyncs

Describe the bug

  • What happened: Desync
  • Messing with floogates and water levels seems to rarely cause a desync. Could be a cooincidence, but I've reproduced it enough times to doubt that.

My guess is that when water dynamics are changing, it intersects with trees reproducing, which alters the random state. As a result it doesn't happen all the time and doesn't always happen immediately (e.g. if a tree reproduces in one game but not the other, or is able to in one game but not the other, it may take a minute for the state to get desynced). But it could be something else.

Logs: The logs show nothing out of the ordinary - just a random state mismatch with nothing out of the ordinary preceding it. Would need more fine-grained debugging and a directly reproducible issue.

To Reproduce:

  1. Build a levee + floodgate system.
  2. Mess with it a bunch until desync occurs.

Desktop (please complete the following information for both Host and Client):

  • OS: Windows 10 / 11
  • Timberborn version: 0.5.9.1
  • BeaverBuddies version: 1.1.2

Desync at a random time after my friend join the game

Host and Client

  • OS: Windows 11
  • Timberborn version: v0.5.9.1-33dabbc-sw
  • BeaverBuddies version: v1.1.7-beta

Hello,

Immediately after my friend join the game I host on hamachi, there is an error who says that a player has been desync.

please find the log attached and the screenshot of the error message
screenshot
client.txt
server.log

Few crashes detected while playing for a couple hours

Important: Do not restart Timberborn after your bug has happened. This will overwrite your log file, which is important for diagnosing bugs! You can close the game, but do not restart it until you have submitted this report.

Describe the bug

  • What happened: Occasional crashes, we couldn't find a pattern to consistently reproduce. Looking at crash reports seems to be related to spawning entities and adding twice to a dictionary.
  • What were your doing right before this happened?: nothing specific

Logs: On both the server and client computer, do the following steps:

server.log

To Reproduce:

No steps to reproduce identified.

Desktop (please complete the following information for both Host and Client):

  • OS: Windows 11 server and Windows 10 for the client
  • Timberborn version: 0.5.9.1
  • BeaverBuddies version: 1.1.5-beta

Crash logs:

error-report-2024-04-01-09h17m52s.zip
error-report-2024-04-01-09h28m29s.zip
error-report-2024-03-31-20h09m11s.zip
error-report-2024-03-31-20h22m26s.zip
error-report-2024-04-01-08h53m07s.zip
error-report-2024-04-01-09h12m51s.zip

Game crashed

Describe the bug

  • What happened: Crash
  • What were your doing right before this happened?: Just running the game 2x speed. Last we built a fire pit and some stairs and at the moment it crashed we both did nothing, just waited for the buildings to be finished and watched.
  • Crash happened yesterday in hamachi too, today we didn't use hamachi (same network so it worked also without.)

Desktop (please complete the following information for both Host and Client):

Instant Desync on connect after 2 hours of multiplayer

Describe the bug

  • What happened: Desync,
  • What were your doing right before this happened?: placing a bakery

Logs
only have my own (host)
LogOutput-copy.log

To Reproduce

  1. Download Multiplayer - Demelza (15).txt
  2. rename the file "Multiplayer.-.Demelza.15.txt" to "Multiplayer - Demelza (15).timber"
  3. Make a folder named 'Multiplayer - Demelza' in the saves folder of Timberborn and save the file there.
  4. Play the savegame and let someone connect and wait a minute or click on 1x speed and after seconds or a minute u will get a desync, perhaps place a building down to trigger it.

Screenshots
Firstly, your mod is really cool man! Thanks for it!
Through the playthrough we had some desync issues but not a huge problem until +- 2 hours in the game that we always desynced on connect, even thought we didn't do anything. i suspect for the beavers not being able to reach power shafts it caused an issue somehow. (in the save i had already deleted those)
timberborn-shafts

Desktop (please complete the following information for both Host and Client):

  • OS: Windows 10
  • Timberborn version: 0.5.9.1-33dabbc-sw i think (played yesterday)
  • BeaverBuddies version: current (downloaded yesterday)

Host sometimes hangs after client quits

Important: Do not restart Timberborn after your bug has happened. This will overwrite your log file, which is important for diagnosing bugs! You can close the game, but do not restart it until you have submitted this report.

Describe the bug
Sometimes when a client disconnects the host's game will freeze, seemingly in an infinite loop.

Logs: Unfortunately, nothing gets written to the log.

To Reproduce: I'm unable to reproduce consistently, but times it has happened include

  1. The client exists while loading the map.
  2. The client desyncs and then quits.
  3. Possible when tabbing out for a while on client/server during disconnects.
    Not clear if these are all the same issues.

I've tried to look for possible infinite loops, but the only while loops I can find are in async Tasks or in dequeuing loops, which seem relatively save...

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.