Page 1 of 1

Multiplayer Test Session

Posted: Thu Apr 09, 2020 1:50 pm
by loboLoco

We are making good progress with multiplayer. Today’s video features snippets from the dev team’s test session this week, which shows both overall progress and some new bugs arising from parallel development of a new physics/collision system by Tommi and Mikko’s work on multiplayer movement.

I asked Mikko to summarize some of the core challenges in WolfQuest multiplayer development. Here are his thoughts:
An unfortunate fact of multiplayer games is that due to network latency things can never be synced quite perfectly. It gets worse the faster motion and more sudden changes there are. My principle here is that appearance is more important than accuracy to an extent. That's why I developed the movement algorithm which, while not 100% accurate, attempts to produce pleasantly smooth movement paths for animals. I prefer syncing things at a higher level, because knowing the intent of an action in advance makes it easier to reproduce the same action on other clients.

That movement algorithm is probably he largest single piece of work in WQ multiplayer so far. I guess another challenge which is constantly present (to my detail-oriented brain at least) is various performance aspects. C# does a good job of hiding memory management, but unfortunately it also hides the costs incurred by it. Various APIs like BitConverter will happily return dynamically allocated arrays without concern for performance. Closures are another thing where it's easy to accidentally allocate memory. Not to mention various Unity APIs - did you know that the property creates a new Vector3 every time it's called?

One multiplayer-specific thing is making sure that things get synced in the right order. Animals need to have a flock, so the spawn event for the flock should be sent before that of the animal. Carcasses need some data from the origin animal, so the spawn of the carcass needs to be sent before the despawn of the animal. When a new player joins the game, care needs to be taken that various events regarding pre-existing objects are sent exactly once. That last one still needs a bit of tuning; if there are already at least two players in the game and another one joins they will get a duplicate spawn message for their own wolf (but the duplicate gets safely ignored, so it's mostly just an annoyance for me).

And then there's the actions which require some kind of confirmation from the other party. Like picking up a chunk from a carcass needs a request to the host to spawn the chunk. The existing code expects that it can get a result immediately, and at least in the chunk-spawning case there's no suitable special value to indicate that it's not yet ready. So I created a network future system where a request is sent over the network and a future object is returned which encapsulates the result together with the readiness state. The caller can then poll that object for readiness and continue with the operation once the result is available.
While Mikko works on multiplayer, Tommi is focusing on Slough Creek, so we’re making progress on both simultaneously. Which will be released first? Whichever one is ready first!

We have released the first episode of WolfQuest 3: Anniversary Edition (Amethyst Mountain) for PC/Mac on Steam and, as Early Access. While in Early Access, we are updating the game frequently with more features, multiplayer, and ultimately the Slough Creek episode with pups. The mobile version will come after the game is completed on PC/Mac platforms. We’ll then resume development of the next episode, Tower Fall (DLC).

Re: Multiplayer Test Session

Posted: Thu Apr 09, 2020 2:22 pm
by -Wolfdog-
This is so exciting! MP is coming along very nicely. :)

Re: Multiplayer Test Session

Posted: Thu Apr 09, 2020 4:31 pm
by elkhunter123456
Thanks, ive been wondering about the sleeping system for a while now :) fighting should be very interesting as well in multplayer

Re: Multiplayer Test Session

Posted: Thu Apr 09, 2020 9:27 pm
by DinoDogDude209
This Developer's Blog was unexpected, but also welcomed. It's nice to get some insight into how the team works on multiplayer and some of the issues faced by the team in regards to multiplayer. Integrating multiplayer functionality well, especially in a game as complex and robust as WolfQuest Anniversary Edition, is obviously quite a difficult and daunting task, even if the gameplay itself in multiplayer is not very complex in comparison to the singleplayer component. One does not need to look far in order to see the reasons why multiplayer games need to be well-polished and well fleshed out in order to have a good lasting impact on the player experience. Judging by the gameplay footage seen in this devblog, multiplayer functionality is definitely far from being finished at this time, and it is likely that multiplayer won't be publicly available anytime soon, for there are clearly a lot of refinements to be done and bugs to be fixed at this point.

I do have a few important questions regarding multiplayer functionality though. Will the cooperative Raise-Pups game mode from WolfQuest 2.7 make a return, and if so, when will it be included? Will it be added in a future update after both multiplayer and Slough Creek are finished? In addition, will there be any type of "Freeplay" sort of mode in multiplayer which allows players to explore freely across any map, without hostile wolf territories or any main objectives, sort of like Pack Life in 2.7? Such a mode would allow players to explore all these big new maps with no barriers to their fun and would be useful to players who want to play however they like with specific types of roleplay or minigames like hide and seek. I feel that the freedom to explore and hunt together however you want was a key part of WolfQuest 2.7's multiplayer that should be faithfully brought back in some form in the Anniversary Edition, even if other modes that allow players to claim territory and fight other wolf packs are also included.

I also have a couple ideas for multiplayer in WolfQuest AE which I think would greatly improve the experience and would allow players to customize their experience a little more. I believe that both of these have been suggested by other community members before, but these ideas are in my opinion, pretty important features to include that would make multiplayer much more player-friendly and convenient.
First, I think an option to drag and resize the chatbox is necessary to prevent the chatbox from impeding gameplay. As seen in the video, the chat box is relatively large, and I think it should be movable and able to be resized to fit the player's liking. In addition, players should also be able to choose the text color you want to chat with from a small submenu, just like users can do right here on the forum. This would allow each player to choose a different text color they want to use in that game in a convenient way (which would make it easier to tell who said what and would help to make your text pop).
Second, I think an option to add a description to your multiplayer game that can be viewed by other players from the server menu is a must. This would allow the host to at least set some ground rules, explain what the server is about, and would help players who are looking for a server to figure out which server they would like to join. This feature is almost a must-have feature and would make finding a server to join much easier and more convenient.

Those are all my thoughts on this devblog. Once again, it's great to see a progress report regarding the team's progress on multiplayer and the challenges involved. I hope that my suggestions above are taken into consideration. I look forward to future devblogs regarding the team's further progress on multiplayer.

Re: Multiplayer Test Session

Posted: Mon Apr 13, 2020 12:35 pm
by GreenCrystal19
Wow, I’m so excited for multiplayer! Maybe I won’t constantly die hunting. It looks tough. I am planning to get the game on my lab top when I find time to 1) go to google 2) get the game 3) persuade my mom to buy it. XD. I find it sad that so many people hate wolves—Disney hates them (cough-Mary Poppins #2-cough), Jack London didn’t exactly portray them accurately...It’s cool how WolfQuest is so realistic and actually portrays wolves well, unlike the many other wolf simulators out there. Keep up the nice work! (PS: I tried to model a wolf in Blender; I gave up at the sculpting part. No idea how you guys model wolves, wolf pups, birds, trees, grass, elk, cougars, etc. without ruining it.)

Re: Multiplayer Test Session

Posted: Fri Apr 17, 2020 2:09 pm
by TimberRaven
This is so exciting, eeek!
It's also fun watching you guys work, seeing how to spot and try to fix bugs, and working on SC, and models, etc.... Thank you Dave!!