-
Notifications
You must be signed in to change notification settings - Fork 48
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
Can't play mutliplayer without using command line #11
Comments
Hey there, just asking out of curiosity, but is it possible to include some kind of compatibility feature that enables one to play with the W3Champions people on their Flo servers using the Warsmash engine? Even if it was only possible with Warsmash to Warsmash & not crossplay, it would still be a beautiful feature to have. You can check out the Flo project here: https://github.com/w3champions/flo Edit: Maybe W3Champions can be forked & adjusted to offer another ladder that only focuses on Warsmash? Like a copy of it that co-exists with the difference that it's focusing on the Java version. |
This sounds like a potential new issue but ill answer this nevertheless from my noob perspective: Highly unlikely given that: |
I would even go farther than what @berserkingyadis said, to say that Warsmash 100% fitting the behavior of Blizzard's game client is not only "very far in the future" but actually simply not possible or not within the scope of this project. In order to do that, the entire project would need to restart from the ground up with a different philosophy. To achieve that, you would need someone to create a system that exactly matches Warcraft III. Warsmash doesn't, and it won't. I can invent an experience that might feel similar and look eerily similar, but it's not the same. As just one example, I don't know how to interpret what the Orientation Interpolation setting of a unit should mean. In almost all other cases in Warsmash, I invented the meaning of things based on how I felt using Warcraft III: World Editor for years and based on my ideas for how things should be. But with the Orientation Interpolation setting stored in each unit, although it evidently affects the unit turn rate, the exact information for how it does so is information that I do not have. As a matter of principle when writing Warsmash, instead of trying to somehow obtain Blizzard-only information about how the Orientation Interpolation worked in their game to define unit turning, I simply made something up: Line 8 in ba2eb05
You can see this is already a really arcane table of numbers that I made up. And in many cases these numbers produce similar turn rates to what feels good for when we load Blizzard Warcraft III assets onto the Warsmash engine. However, these numbers are not the originals from Blizzard -- indeed, there is probably not even a table of this form in Blizzard's engine -- but I don't really know, and I don't have any time efficient way to find out, so it's outside the scope of my interest to care. These are just a few examples, by my point is that even if I had infinite development time or a team of dedicated and helpful contributors willing to do whatever I asked, matching 1:1 the behavior of Warcraft III is simply not within the scope of what interests me and would take a prohibitively long time to do given this codebase as it already exists. And, because multiplayer on this kind of strategy game is typically a parallel simulation and lock step solution, not matching 1:1 to the behavior of Warcraft III means that we can never play multiplayer with it. So, the only case where Flo would be relevant would be Warsmash to Warsmash play, not with cross-play to Warcraft III since cross-play will never happen. But even then, to host Warsmash across Flo would require Warsmash to use the same network protocols. I am not familiar with the structure of Warcraft III's network protocols; if you have seen the recent video of Warsmash multiplayer network gameplay, notably the code running in that video uses my own network protocol to communicate. So, if there was ever going to be a future where Warsmash would connect and play on an existing server system like that, Warsmash would probably need a lot of patching to do it. However, unlike the impossibility of achieving 1:1 likeness and cross-play with Warcraft III (impossible because in many cases no one on Earth outside of Blizzard actually knows how Warcraft III works), connecting to a server like Flo is possible as long as Flo is open source so a developer could read through how it works and determine how to connect to it. Based on your link it looks like Flo is open source and maybe using W3GS protocol, although I do not have extensive experience reading Rust lang and I did not spend very long looking through your link yet. Someone else suggested that Warsmash should use W3GS protocol so that Warsmash could connect to PvPGN servers too, but I didn't do that yet because I am not familiar with the details of the W3GS protocol and adhering to them would likely take longer than inventing my own stuff. Maybe if this interests you, you could fork Warsmash and make a version that communicates with the W3GS protocol. In summary: Short Term: Long Term: |
This sounds very promising. Unfortunately I don't have any programming skills, but it's good to know that this is an option that could be considered in the long term. |
Hi, I would love to see multiplayer games were players can join a running game. This would be an incredible awesome feature which Warcraft III does not provide. I have a map in which the games can take several hours and joining/leaving players would be cool. Savecodes alone are not the same since I won't store ALL map information in a savecode. |
Would probably be best to file your request for dynamic game joining into its own github issue instead of hijacking this one. Because of the nature of lock step, joining a running game would likely amount to pausing the game, saving the game, sending the save to the new guy who wants to join, then getting him synced into the same lock step simulation state. I think this would be rather complicated to do, and I am going to focus on making sure the engine is able to do multiplayer at all first, before I try to do something more advanced like that. But feel free to modify the engine and add whatever you want and make pull requests out of it if you think you have a really good feature, etc. |
We need a UI for normal users to have access to the multiplayer feature without using the command line to set it up.
You can see how this would be fun:
https://www.youtube.com/watch?v=2YDPQW7uyQ8
The text was updated successfully, but these errors were encountered: