fcornaire / tf.ex Goto Github PK
View Code? Open in Web Editor NEWRollback netcode for TowerFall
License: GNU General Public License v2.0
Rollback netcode for TowerFall
License: GNU General Public License v2.0
ggrs panic with the message above on spectator mode for some reason
The Spectate button displays the RT icon, but to trigger it you have to press LT.
The Refresh button displays the LT icon, but to trigger it you have to press RT.
(sorry about the discord ping in the video)
Miasma can cause a desynchronization by dissipating
If a kill happen by something else than touching the miasma, it dissipate
Right now, it's not properly tracked and just ignored causing one player to still have an active miasma while the other doesn't
Will be fixed in #52 when i did some reel test
Inputs can still happen, such as selecting a mode, while the "Failed to Connect to Server" message is displaying. For example, you can still use the arrow keys and the Z button (not the confirm button) to move through menus while this message is displaying.
Server side bug
The current auto updater always DL the latest release to check if there an update or not.
A feature should be a way to check without donwloading as since it happen after the game load, it can interfere with the game.
One solution is to use the Github Api but this one require a token, which isn't optimal for the mod.
The second solution is to instead get the last tag from the repository since a release is always tied to a tag
Add some sort of of custom logger (Singleton ? Transient ? ) on top of FortRise Logger :
Selecting the "Netplay Username" option in the in-game options does nothing.
The mod assume the player is using a controller (XInput) while letting the keyboard as player 2
This is obviously not optimal since it bypass several cases.
What needed is :
If you select Versus, sometimes you will get a "Failed to Connect to Server" message before selecting Quickplay. If you exit out of the message using the confirm button, then you get to the archer select screen. This shouldn't happen, as you haven't selected a mode yet. If two archers are selected, you can start the game. For some reason, players are required to choose teams, even if you were never in Team Deathmatch, and even if there are only two players. Then, a "Syncing" message appears at the top of the screen, and the game freezes, I assume because it's trying to connect two local players to the server. At this point the game softlocks.
Add a quickplay mode like in the older versions of this mod, where you can just queue in and play against anyone else in quickplay
A random map would be automatically selected and the game would default to tournament settings, 1v1 Last Man Standing
Not sure if this is intended, but I think it's probably a bug. It's probably meant to automatically select a random stage. If it isn't a bug, it's not a very good feature.
When i try to play local coop with this mod enabled it chooses the level automatically and when the match starts the game freezes
If the game failed to connect and retry with (same ?) opponent, despite making the connection, the game doesn't start and freeze at the initial connection dialog before aborting
I believe the game keep the state disconnected from the previous , thus preventing to connect to someone
bump version to 0.8.1
To enter the archer select screen, you do this:
Main menu -> Gamemode select screen -> Archer select screen
When you exit out of the archer select screen, you go back to the main menu instead of to the gamemode select screen.
If the first initial connexion failed for X reason, the WS instance is in a state unable to try to attempt to re connect again.
Versus replays appear to have many bugs. I was able to replicate each of these in all of my saved replays.
When a SFX is played, a SoundEffectInstance
is created then played
We can grab all of SoundEffectInstance
created to save them somewhere to be able to stop it when needed
The real problem come to when a Rollback happen.
Let's admit we save the SoundEffectInstance
related to an archer in the game state, we should at least save the time played and what SFX being played
The real problem come to how to restore a SoundEffectInstance
to a specific time ?
Look likes SoundEffectInstance
has a FAudioVoiceState
with SamplesPlayed
being the value we want but trying to modify it that value crash the game
So if anyone has an idea how to fast forward a SoundEffectInstance
using FAudio ๐
(there is this branch that started something https://github.com/Fcornaire/TF.EX/tree/feature/track-sfx)
Using Fortrise 4.7.5, no other mods loaded, TF.EX 0.8.2.
Using Kubuntu 23.10
[INFO] Ln: 15 Initializing Steam...
[INFO] Ln: 20 Setting up steam app ID to 251470
[INFO] Ln: 603 [RESOURCE] Initializing resources...
[INFO] Ln: 603 [RESOURCE] Initializing Metadata: TF.EX by DShad 0.8.2 resources...
[ERROR] Ln: 226 System.ComponentModel.Win32Exception (0x80004005): Access denied
at System.Diagnostics.Process.StartWithShellExecuteEx (System.Diagnostics.ProcessStartInfo startInfo) [0x00102] in <32fc020d7373456995b3d44fa885e01a>:0
at System.Diagnostics.Process.Start () [0x00032] in <32fc020d7373456995b3d44fa885e01a>:0
at (wrapper remoting-invoke-with-check) System.Diagnostics.Process.Start()
at System.Diagnostics.Process.Start (System.Diagnostics.ProcessStartInfo startInfo) [0x0001b] in <32fc020d7373456995b3d44fa885e01a>:0
at System.Diagnostics.Process.Start (System.String fileName) [0x00006] in <32fc020d7373456995b3d44fa885e01a>:0
at TowerFall.TFGame.OpenLog () [0x00012] in <6a4b78a95e324850a35a269a354e702e>:0
at TowerFall.TFGame.InnerMain (System.String[] args) [0x0018e] in <6a4b78a95e324850a35a269a354e702e>:0
at TowerFall.TFGame.Main (System.String[] args) [0x00325] in <6a4b78a95e324850a35a269a354e702e>:0
[ERROR] Ln: 227 at System.Diagnostics.Process.StartWithShellExecuteEx (System.Diagnostics.ProcessStartInfo startInfo) [0x00102] in <32fc020d7373456995b3d44fa885e01a>:0
at System.Diagnostics.Process.Start () [0x00032] in <32fc020d7373456995b3d44fa885e01a>:0
at (wrapper remoting-invoke-with-check) System.Diagnostics.Process.Start()
at System.Diagnostics.Process.Start (System.Diagnostics.ProcessStartInfo startInfo) [0x0001b] in <32fc020d7373456995b3d44fa885e01a>:0
at System.Diagnostics.Process.Start (System.String fileName) [0x00006] in <32fc020d7373456995b3d44fa885e01a>:0
at TowerFall.TFGame.OpenLog () [0x00012] in <6a4b78a95e324850a35a269a354e702e>:0
at TowerFall.TFGame.InnerMain (System.String[] args) [0x0018e] in <6a4b78a95e324850a35a269a354e702e>:0
at TowerFall.TFGame.Main (System.String[] args) [0x00325] in <6a4b78a95e324850a35a269a354e702e>:0
Or at least give the player the choice.
When the level is loading, the 2 clients are trying to etablish a connection. This might fail or take some time.
Investigating why sometime it take some time but the idea is the game should let player disconnect after some amount of time
If you exit the mode selection while selecting a mode other than Quickplay, such as Last Man Standing, and go back to Quickplay, then the player counter at the top left disappears.
If you exit the mode selection while selecting Quickplay and reselect Versus, the mode will already be set to Quickplay and the player counter disappears. If you try and move the cursor upwards to change modes, the cursor will disappear. From here, you can't do anything except hit Z to exit the Quickplay screen, which (only sometimes) takes you to the archer select screen. This also shouldn't happen because the archer select screen should only show after you've already selected a mode. You also can't select an archer or use the arrow keys to change archers, only exit the menu.
I had many inconsistencies while trying to replicate this again, so expect weirdness.
The Quickplay screen without the player counter or the cursor shown.
Versus awards are shown that are incorrect, such as Comeback King when a comeback never happened. Versus awards are also not synced between players, with different players seeing different awards.
Rematch work now but could be better since we don't have any clue yet what the opponent want to do/have no way to send the opponent our choice. Idea :
Right now at the end of a round, the screen looks too bright because the HUDFade is removed.
It should be tracked instead
Got this error after connecting to another client on the same network. However, one client was able to see the other client's lobby and connect to it, only after the game started it dropped the connection.
[ERROR] Ln: 21 [MatchmakingService] Error while listening to server message : An internal WebSocket error occurred. Please see the innerException, if present, for more details.
[ERROR] Ln: 21 [MatchmakingService] Error while listening to server message - InnerException : A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond
[ERROR] Ln: 21 [MatchmakingService] inner exception : A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond
[ERROR] Ln: 21 [MatchmakingService] Error when connecting to server : Unable to connect to the remote server
[ERROR] Ln: 21 [MatchmakingService] Error when connecting to server - InnerException : The remote name could not be resolved: 'tf-matchmaking-server.herokuapp.com'
Further testing is probably needed, it might be on my end
One player is frozen at end round while the other still advance round
They are both still connected.
Digged a bit last time and it's turn out that the level is frozen (intended at end round) but no VersusRoundResult
spawned.
Going to remove the replay recoder since it can mess with adding the VersusRoundResult
No player spawned when changing round. for one player
But both games appear to still be connected.
No idea whats happening, but looks super rare
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.