Multiplayer Development

Everything about development and the OpenMW source code.
User avatar
krugman25
Posts: 19
Joined: 16 Jun 2015, 18:16
Location: Small town in Iowa
Contact:

Re: Multiplayer Development

Post by krugman25 » 16 Jun 2015, 21:53

psi29a wrote:Hey krugman25, if you wish to work on it, don't let anyone here stop you. :) We've always said (search for yourself) that multiplayer was on the roadmap for post 1.0, but if you would like to get a jump on it, then feel free to do so.

There is a bit of discussion as how best to handle this, but last thing I remember that most people wanted a sort of co-op where one person's client becomes the de facto server for everyone else. This way state is shared in a client/server fashion, the server then acknowledges and processes requests and the clients are just GUIs.

I would recommend using (apache) thrift to allow the clients to talk to the server, but perhaps google's protocol buffers could do the job as well.

KISS
Thanks for the comment psi29a. I didn't want to get into details here because I know multiplayer is not at all the focus of OpenMW development right now and I didn't want to side-track anything going on here. I know how large development projects go and wanted to respect that here. Since you mentioned it, I think the best and most simple way to introduce multiplayer into a game that wasn't designed for multiplayer, is coop mode as you mentioned above. That actually off the bat solves many problems and works pretty naturally into single player mechanics. A good example I am thinking of is Divinity:OS which implements coop beautifully and single/coop game mechanics are almost identical. Also in coop one person becomes the server and also the save game source. It also allows for one person to continue to play even if the other person is not connected. Thank you for the the client/server technology ideas, I will look into those.
I have not failed. I've just found 10,000 ways that won't work. - Thomas Edison

User avatar
psi29a
Posts: 4896
Joined: 29 Sep 2011, 10:13
Location: Belgium
Gitlab profile: https://gitlab.com/psi29a/
Contact:

Re: Multiplayer Development

Post by psi29a » 16 Jun 2015, 21:59

Funny you mention Divinity:OS, the developers are from Gent (Belgium) where I live. ;)

https://en.wikipedia.org/wiki/Larian_Studios


Yeah, try to keep it simple as possible... I'm sure people would enjoy just a limited 4 player experience.

User avatar
krugman25
Posts: 19
Joined: 16 Jun 2015, 18:16
Location: Small town in Iowa
Contact:

Re: Multiplayer Development

Post by krugman25 » 16 Jun 2015, 22:26

Haha, they are a great dev. team. I am looking forward to their Divinity OS Enhanced Edition or whatever they are calling it. My primary job in my career right now is to take large complex problems and come up with very simple solutions. I have been doing that for almost 5 years now and am getting really good at it 8-) Now that I have been in the industry for a while, Bill Gates comment really makes sense to me when he said he always looks for the laziest applicant when hiring software developers because lazy people always come up with the most simple solutions.
I have actually done about every type of development under the sun, and working with scenes, models, graphics, etc just has never interested me. I always liked working under the hood where the engine is, so naturally the prospect of finding solutions for the networking and game engine problems to get multiplayer working really intrigues me. This weekend I may get the environment set up and the source successfully built so I can start playing around with it. I may stumble around in the dark for a bit while I understand whats going on but it shouldn't take me long to get things figured out.
Naturally if I build the multiplayer on the OpenMW source I will want to keep others posted about it here. Where is the most appropriate place in the forums to post that kind of stuff? Maybe get a single thread going about it and just keep all updates in it.
I have not failed. I've just found 10,000 ways that won't work. - Thomas Edison

User avatar
psi29a
Posts: 4896
Joined: 29 Sep 2011, 10:13
Location: Belgium
Gitlab profile: https://gitlab.com/psi29a/
Contact:

Re: Multiplayer Development

Post by psi29a » 16 Jun 2015, 22:45

Well... the ball is yours, have fun. :) Keep us posted here.

If you have technical questions, feel free to ask them here as well.

User avatar
wareya
Posts: 338
Joined: 09 May 2015, 13:07

Re: Multiplayer Development

Post by wareya » 17 Jun 2015, 00:40

> I am not really looking for resources on how to implement it. I am already experienced with network API's and network theory at a code level.

Yeah, the problems with networking a game really have nothing to do with code at all. They're all domain-specific, theoretical design problems. That's why I linked that: your exposed background is totally unrelated from games, and network programming for monitoring and utility software is fundamentally different from something like this.
paying attention to #1751 #2473 #3609 #3862/#3929 #3807 #4297 #4623

User avatar
FiftyTifty
Posts: 56
Joined: 15 Oct 2014, 21:02

Re: Multiplayer Development

Post by FiftyTifty » 17 Jun 2015, 00:51

Oh my. This sounds rather inspirin'.

I also advocate for keeping the multiplayer in the state where the host has all the magic happening, and the other players are controlling characters in the host's game; that was how Baldur's Gate handled it, and that worked just fine.

My main want for multiplayer, is the facilitation of player-player roleplay. Pre-written dialogue and AI can only go as far as the writers and programmers have accommodated; in all aspects, characters being controlled by actual humans aren't anywhere near as limited.

A stickler would be the handling of dialogue. The default dialogue system is to have one or two lines of text at the bottom of the screen; my recommendation would be to make it so that dialogue appears above the character's head, and in a chat box at the bottom of the screen; much like Neverwinter Nights.
CPU - i7 6700k @ 4.0Ghz
GPU - Vega 56
RAM - 2x16GB DDR4 3000MHz
Mobo - Asus Z170 Pro Gaming
Soundcard - Creative Soundblaster X-Fi Titanium Fatal1ty Pro
OS - Win. 10 LTSC 2019 x64

User avatar
krugman25
Posts: 19
Joined: 16 Jun 2015, 18:16
Location: Small town in Iowa
Contact:

Re: Multiplayer Development

Post by krugman25 » 17 Jun 2015, 00:56

wareya wrote:> I am not really looking for resources on how to implement it. I am already experienced with network API's and network theory at a code level.

Yeah, the problems with networking a game really have nothing to do with code at all. They're all domain-specific, theoretical design problems. That's why I linked that: your exposed background is totally unrelated from games, and network programming for monitoring and utility software is fundamentally different from something like this.
I mentioned in my last post that my exposed back ground is just about everything, both in technologies and languages. Again I am not concerned about my own knowledge, but rather limitations I may run into trying to build on OpenMW. I am just trying to tap the ones here who would know the answer to that question.
Although from the helpful posts I've already received here it sounds quite possible if not already something that has been talked about for future versions of OpenMW. I think that's enough chatter for now, time to get to work on it :)
I have not failed. I've just found 10,000 ways that won't work. - Thomas Edison

User avatar
sjek
Posts: 440
Joined: 22 Nov 2014, 10:51

Re: Multiplayer Development

Post by sjek » 17 Jun 2015, 01:20

yeah xP

all in due time and when peoples are online
what library gonna use and also engine can be tweaked a little.
much on the fly.
Well... the ball is yours, have fun. :) Keep us posted here.

If you have technical questions, feel free to ask them here as well.
game sync design choises on pathofexile. just have been following.
they are keeping the calculations on server with rubber or deterministic
http://www.pathofexile.com/forum/view-thread/1262596
http://www.pathofexile.com/forum/view-thread/889669
"life is crazy"
"craziness has beauty which only crazies understand" some movie clip in the head.
https://wiki.openmw.org/index.php?title=Testing

User avatar
openmwfan27
Posts: 113
Joined: 23 Apr 2015, 22:11

Re: Multiplayer Development

Post by openmwfan27 » 17 Jun 2015, 06:33

Tinker wrote: To start with MW was designed as a single player game, it would not translate easily to multiplayer and secondly I do not want my playing enjoyment to be ruined by some snot nosed kid whose mother told him to turn of his computer and go to bed.
I don't understand what your problem is Tinker, if MP did come to OpenMW it would be entirely optional as MW is a single player game, I would also imagine there would be no centralised server like there would be with XBL or PSN so unless that 'snot nosed kid' was on your LAN and you chose to do MP with them, I can't see how your enjoyment could be ruined just by the fact MP was a feature in OpenMW unless you willingly chose to use it.

Having MP in OpenMW would not only be interesting to see in MW, but would be a really useful feature for OpenMW when it comes to people creating stand-alone games on the OpenMW engine, it would increase the audience the engine appeals to and result in more people working on more stand-alone content for OpenMW post 1.0. Your negativity put's people off who may be thinking of contributing to the project and community which is the last thing anyone wants, although I can't wait for OpenMW 1.0, seeing what non-MW creations the community comes up with after that point excites me more.

Chris
Posts: 1583
Joined: 04 Sep 2011, 08:33

Re: Multiplayer Development

Post by Chris » 17 Jun 2015, 07:07

Making OpenMW as an engine multiplayer-capable probably won't be that huge of an issue. The problem is that the MW game assumes only one player is running around with autonomy. Scripts and condition checks assume there's only one 'player' ID, and assumes one player is activating all the dialog and journal updates, and assumes one player is in or adjacent to a loaded cell. Certain behaviors expect gametime to pause while in dialog (e.g. crime, NPCs become hostile and attack you while guards attempt to talk to you; when the guard talks to you everything stops, so you're given time to read and respond without everyone continuing to attack you), and it assumes certain dialogs can't be exited from without picking a choice (which would need to happen if dialog was real-time).

Fixing this would require additions to the scripting engine and NPCs behaviors, and very invasive mods to remove these sorts of assumptions in the game data.

Post Reply