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

Was the weapon fire bug fixed in this release? #18

Open
LethalManBoob opened this issue Mar 21, 2023 · 2 comments
Open

Was the weapon fire bug fixed in this release? #18

LethalManBoob opened this issue Mar 21, 2023 · 2 comments

Comments

@LethalManBoob
Copy link

https://www.youtube.com/watch?v=PpfpfDNFdvQ
This video shows an easy fix to the issue at the 7 min mark.

@tx00100xt
Copy link
Owner

Was the weapon fire bug fixed in this release?

I've been playing Serious Sam since 2001. For all this time I did not meet this bug. It's funny. In my opinion, this is not critical. Versions compiled with different EPSILON will be completely incompatible in multiplayer. https://www.youtube.com/watch?v=PpfpfDNFdvQ&t=465s . You can change the value in your build here:
https://github.com/tx00100xt/SeriousSamClassic-VK/blob/main/SamTFE/Sources/Engine/Network/SessionState.cpp#L697

The Serious Sem Engine has more serious bugs associated with using floating point variables. In two arrays storing positions and rotation of dynamic objects (Entities), different floating point values are observed in different compilers. Because of this, the multiplayer of a serious sem is incompatible on different platforms. This is a really serious bug. Because the developers of the Serious Sam engine wrote code for one compiler.

Here is an example of a game multiplayer stream for different compilers.
2023-01-19_170250
In this case, this array of float is responsible for the position of entities on the map. there is also a difference in the float array responsible for the rotation of the entity. As a result, multiplayer on different platforms is incompatible.
https://github.com/tx00100xt/SeriousSamClassic-VK/blob/main/SamTFE/Sources/Engine/Entities/Entity.h#L185
https://github.com/tx00100xt/SeriousSamClassic-VK/blob/main/SamTFE/Sources/Engine/Math/Placement.h#L35
https://github.com/tx00100xt/SeriousSamClassic-VK/blob/main/SamTFE/Sources/Engine/Base/Types.h#L641

https://github.com/tx00100xt/SeriousSamClassic-VK/blob/main/SamTFE/Sources/Engine/Entities/Entity.h#L186
https://github.com/tx00100xt/SeriousSamClassic-VK/blob/main/SamTFE/Sources/Engine/Base/Types.h#L668

There is a very interesting analysis of the multiplayer code of the serious sam engine, you can see it here.
https://staniks.github.io/articles/serious-engine-networking-analysis.html

@Kappa971
Copy link

Kappa971 commented Nov 5, 2024

Hi. I have never noticed this bug either, but now that I did some research and watched some videos, I can say that this is anything but "non critical". Doesn't using Serious Engine 1.10 already make it incompatible (for demos, multiplayer, etc...) with previous versions? If so, there is no point in not implementing this simple fix, so that even those who are not used to compiling and modifying the code can benefit from it. Otherwise an option (on/off) could be implemented in the game menu (if feasible).

Same thing for https://github.com/tx00100xt/SeriousSamClassic

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants