Notifications
Clear all

The Science Behind a Multiplayer Version

Page 2 / 3

fluffyfreak
(@fluffyfreak)
Captain Registered
Joined: 7 years ago
Posts: 1306
 

My main problems so far, apart from the fact that i am not a C++ developer although i know the basic concepts of OOP,  have been the understanding of concepts and way of implementing things of game (i tried this via looking at code and some .lua files and the part of documentation that exists), the fact that i am lacking some inside info on general design things - for example i know about StarSystem / CustomStarSystem/SystemBody classes, but now (suddenly to me) we have also Spacestation, ie i mean the break/adoption of classes that influences greatly the database schema but i guess some closer monitoring the mail list could alleviate this.. Also, it would be good if there exists constraints on design on randomness as it is looks now, ie the main instances of entities could be random via seed, or

hash_random() so they are deterministically repeatable and can be reproduced outside game via same parameters so they can be logged and stay same between different games/versions,

Hi DionisisK,

 

Most of the game is deterministic, star systems, planets, space stations and everything else is all generated from the same seed number each time, meaning that nothing is actually stored about the universe, only about the player.

 

So in my opinion the best place to look for information that would go in a database would be the current save game system which stores information about the player. That's the only information I would start by storing. Or perhaps it's better to say that it's the information I'd be interested in at first.

 

Things like the players ship, what equipment it has - engines, lasers, fuel, and all types and amounts of cargo are all just "equipment". Then where they are currently, perhaps a history or where they have been, what crimes they've committed - if any. Currently I think we also save information about other ships in the area (/StarSystem) but in an MMO these would just be NPCs and so would have their own entries in the database including their current activities eg; trading/attacking/fleeing/docking/etc.

 

Once you have the players ship, their history, and the AI ships stored you've pretty much got Pioneers save data figured out 🙂

 

You'll also have made a good start into figuring out what "state" needs to be persisted to a database since an a player logging into a MMO-Pioneer would essentially need to get their own data, then the data of whatever other players/NPCs were in the same StarSystem and that's it.

 

Well, I say "that's it", I mean that then all of the MMO-Pioneer games architecture would have to take over but as far as the initial data goes that would be enough to start.

 

Andy


ReplyQuote
fluffyfreak
(@fluffyfreak)
Captain Registered
Joined: 7 years ago
Posts: 1306
 

Actually now that I've posted that I've just thought, some of the scripts do update the equipment stock/ships and mission boards on the space stations. That stuff is probably in the save game data as well though so the overall approach is probably still valid 🙂


ReplyQuote
NeuralKernel
(@neuralkernel)
Warrant Officer Registered
Joined: 12 years ago
Posts: 262
 

I have to say I have absolutely no interest in a multiplayer version of Pioneer, the very idea of having to deal with actual humans while I'm just trying to fly along is horrifying! You would think that DEEP SPACE would be the ONE place you could exp[ect some frakking privacy!!

But everything I'm reading here sounds like it would be extremely useful and bring a lot of inherent flexibility for single player modding, too! 😀

A persistent "universe server" able to handle multiple clients would allow some very interesting 'bot interactions, I'm thinking of things along the lines of strategic fleet battles, like Homeworld but with proper physics and distances. I would actually prefer a smaller "tactical" level scale, myself... but as a stress test I'd say that any engine that can handle a couple dozen human players simultaneously should be able to handle a handful of bots...


ReplyQuote
fluffyfreak
(@fluffyfreak)
Captain Registered
Joined: 7 years ago
Posts: 1306
 

@everyone

 

"Pioneer is Pioneer" doesn't mean that asking these questions and discussing these ideas are a bad idea, plus this is an open forum, and the discussion is about what someone wants to see in Pioneer.

 

You've (Vuzz, NeuralKernel, etc) all got ideas of your own too so please don't be negative towards someone elses.


ReplyQuote
Marcel
(@marcel)
Captain Registered
Joined: 7 years ago
Posts: 1188
 

If you want to play a lonely game of space exploration you should just go away. No, I'm not being negative.  😛  The galaxy is a huge place. Considering the number of potential online players the chance of meeting one out in the periphery would be very slim indeed.


ReplyQuote
DionisisK
(@dionisisk)
Petty Officer Registered
Joined: 12 years ago
Posts: 19
 

@everyone

Reading through all previous post, if i put aside the constructive one that having concerns on modifying current physics model, it seems that i have not been understood or i have not stressed enough that the possible ability  of multiplayer of Pioneer would not remove the ability of single player. Just download the server, connect your client to it instead of the public one and then you will never be able to face/deal with any human player - your privacy is guaranteed, i don't know how to express this more simply or clearer way.

I would like to thank fluffyfreak for the info, it is invaluable on the design of the database i am currently developing. This is the sort of post/communication i would like to see/have, so i could focus on (speeding up and not re-inventing the wheel in the) development i am doing and not wasting any time on responding to negative ones.

Best Regards.

 


ReplyQuote
Brianetta
(@brianetta)
Commander Registered
Joined: 13 years ago
Posts: 863
 

Reading through all previous post, if i put aside the constructive one that having concerns on modifying current physics model, it seems that i have not been understood or i have not stressed enough that the possible ability  of multiplayer of Pioneer would not remove the ability of single player. Just download the server, connect your client to it instead of the public one and then you will never be able to face/deal with any human player - your privacy is guaranteed, i don't know how to express this more simply or clearer way.

It isn't quite that simple, for full multiplayer. Full multiplayer is not compatible with time acceleration, including both the Stardreamer and the hyperspace jumps. This has consequences, and means that one of the following must be the case:

  • Single players must accept that fundamental game mechanics have changed, or
  • Game developers must effectively maintain two games, using two different mechanics.

Since the second one isn't likely, the first is what's seriously being suggested. I for one would consider this a negative development.

That's quite aside from letting the riff-raff into my galaxy. (-:


ReplyQuote
Cody
 Cody
(@cody)
Captain Registered
Joined: 7 years ago
Posts: 1957
 

"That's quite aside from letting the riff-raff into my galaxy."

 

<chortles merrily>

 

Oolite Naval Attaché


ReplyQuote
DionisisK
(@dionisisk)
Petty Officer Registered
Joined: 12 years ago
Posts: 19
 

    @Brianetta

    Well, I never said that there won't need to be any adaptations on time acceleration/some mechanics issues.

    I suspect both Stardreamer and hyperspace jumps consequences you mentioned have to do on this effect. On your consideration of this change/adaptation seen

    as a negative development (from users perception right ?), all i can say i have a different opinion. I am personally thinking on how to find the best way to

    adapt to the multi thing in order to minimize the changes from the current single model tbh. 🙂

        

    On the last saying, i can't speak it's very personal and sentimental.

    @Vuzz

    As far i can think at this moment (it' getting VERY late here and i have to log) there can be only one server/real time. Missions for example can't have parameter the final point in time, but a time duration based/added on current server time. Obviously if you keep the current influence on time acceleration based on the current way stardreamer/hyp jump works, there can' be  consistency if you think time space continium independently upon each user. All users in this abstract should refer to same server's real time. For example an elegant solution to this problem was given in EVE with gates (much same as pressing hyperjump here, but we don't need gates) and the time is the server's. The only thing actually we have to solve is the time acceleration issue adaptation (either by stradreamer or hyp jump). But, you are right on the point that this is a deviation from the current mechanics implementation of the game - basically it needs a different good abstract (not disastrous, just different and good 🙂 ).  

    

    Ps: I am sorry, i am not  a native speaker (thankfully i have online dictionary correction) but i can't speak any French at all.

 Best Regards

 


ReplyQuote
NeuralKernel
(@neuralkernel)
Warrant Officer Registered
Joined: 12 years ago
Posts: 262
 

Woah... didn't mean to pluck so many nerves.. or maybe I had nothing to do with it... meh 🙂

I'd like to say that I am COMPLETELY on board with the client / server setup, to hell with "breaking" the single player game I very much like the idea of having my own local server that I connect to without ever crossing the Wild, Wooly Internet (or letting it intrude...) with the option to invite a special friend over occasionaly for a freefall throwdown 😀


ReplyQuote
robn
 robn
(@robn)
Captain Registered
Joined: 13 years ago
Posts: 1035
 

Just going to throw a spanner in the works, albeit a small one. The majority of the developers aren't especially keen on the idea of true multiplayer, and that's after a huge amount of discussion on the topic over the last year or two (which sadly isn't really documented). We did boil it down to <a href=""" a single FAQ item once though.

 

But, as always with Pioneer, this is a community project, and code talks. If an enterprising programmer turns up with an implementation (even a prototype), then things could change very very quickly. So by all means continue to debate and discuss, because its useful to talk about it and consider the pros and cons and think through the problems. Even if Pioneer never becomes a multiplayer game, the discussion is worth having and will likely generate ideas that are useful and implementable on their own.


ReplyQuote
fluffyfreak
(@fluffyfreak)
Captain Registered
Joined: 7 years ago
Posts: 1306
 

Focusing on an eventual change to the physics / time acceleration is to throw out all of the other possibilities, which are numerous and diverse, over fear of a possible change which only applies to a subset of outcomes.

 

Or to put it another way;

  • There are lots of ways of bringing elements of multiplayer/collaboration into Pioneer none of which would affect the physics or time acceleration which could all be implemented quite simply.
  • There are then lots of ways of bringing actual ship-vs-ship multiplayer into Pioneer also without changing the physics/time elements.
  • The ONLY kind of multiplayer that would require a unified time and thus changes to physics is the full MMO, or otherwise persistent servers.

 

Only at that final point would it be worth forking Pioneer and calling it PioneerMMO or something, I.e; Pioneer would be a close relative, 99.9% same code and assets, including any networking code written for all the rest of the "multiplayer" options. Any changes to Pioneer gradual and only add new features to Pioneer.

 

Imagine something like a map of crashed ships that gets updated from a server when you start a new game and gets added to by you when you go smashing into a planet etc, cargo options, equipment salvage, could you recon the ships then get a lifter to bring it to a starport for repairs? Retrieve the ships log and find out where Commader Vuzz had found a profitable trade route, or how Commander Robn frequented a lesser known Aussie' backwater Star System 🙂 That's all multiplayer to varying degrees without affecting anything.

 

So no it doesn't require Pioneers physics/time management to change, no that won't happen to Pioneer. A lot of good could happen to Pioneer though just by discussing these things even if some of them only ever happen to a fork of Pioneer at some point in the future. If at all.

 

Andy


ReplyQuote
NeuralKernel
(@neuralkernel)
Warrant Officer Registered
Joined: 12 years ago
Posts: 262
 

Why not have everyone aboard the same ship? Multiplayer as in the crew of a ship, not multiple ships... Helm, Tactical, Engineering...

Replace "Missiles" with "Drones" and allow players to control them, and ECM...

Actually... just make a TONNE of options for various ship controls available and make the whole interface network accessible (web interface?) and you could relatively easily hack together either an elaborate simpit with a bunch of moniters,keyboards and custom HOTAS rigs... or have a couple buddies help operate the different systems over the net to help fly a crazy complicated ship with tonnes of different devices and weapons!

Single ship... multiplayer...

Just a thought...


ReplyQuote
fluffyfreak
(@fluffyfreak)
Captain Registered
Joined: 7 years ago
Posts: 1306
 

I shall direct you to post #9 in this very thread 😉 in which I direct you to another two posts in another thread!

http://spacesimcentral.com/forum/topic/2960-the-science-behind-a-multiplayer-version/#entry30942

Mostly this post in particular.

 

Just a few of many possible ideas and yes you could do something a lot like Artemis whilst keeping all of the time acceleration and physics perfectly intact.

 

That's why I like the discussion about multiplayer, even the MMO stuff, it's a good spawning ground for ideas and alternatives for sharing data and hopefully finding ways of enhancing the gameplay even for people who don't want to play against/with others.


ReplyQuote
Brianetta
(@brianetta)
Commander Registered
Joined: 13 years ago
Posts: 863
 

That's what I meant by "full multiplayer." I'm all for enhancing the game using network features, including the use of bones files and shared BB content. For those unfamiliar with NetHack and the like, by bones I mean where fluffyfreak described: "Imagine something like a map of crashed ships that gets updated from a server when you start a new game and gets added to by you when you go smashing into a planet etc, cargo options, equipment salvage, could you recon the ships then get a lifter to bring it to a starport for repairs?"

I do think that bones should only show up in a game after the date and time at which the ship crashed.


ReplyQuote
NeuralKernel
(@neuralkernel)
Warrant Officer Registered
Joined: 12 years ago
Posts: 262
 

Bones files would be awesome!! I can't remember if I already posted the idea myself... wouldn't be surprised to hear someone else has already raised the idea, "The Simpsons already did it" 😉

What if persistent multiplayer servers only covered a single solar system? Remove FTL for multiplayer and disable time compression, a multiple star system with lots of planets and moons is a plenty big enough playground for a few hundred players... it would be a different game, but not a very drastic change from the current setup.


ReplyQuote
Brianetta
(@brianetta)
Commander Registered
Joined: 13 years ago
Posts: 863
 

Disable time compression? You're prepared to spend days flying to the next planet?


ReplyQuote
Loki999
(@loki999)
Master Chief Registered
Joined: 11 years ago
Posts: 165
 

Disable time compression? You're prepared to spend days flying to the next planet?

Or even months... damn those binary/triple/quad systems...


ReplyQuote
shadmar
(@shadmar)
Warrant Officer Registered
Joined: 7 years ago
Posts: 301
 

Maybe have a synced timecompression in a co-op mode, if one uses it the rest will have forced timecompression. Or be "desynced" and have an option to time sync later with the group.

Or maybe just allow engines to have 10x power.

I can see alot of issues either way.


ReplyQuote
NeuralKernel
(@neuralkernel)
Warrant Officer Registered
Joined: 12 years ago
Posts: 262
 

Yes, it SHOULD take days to fly to the next planet in multiplayer (or have a voter based time compression scheme, instead of being limited by proximity to a planet, it's limited by consensus among the players)... you want to hang out with other players you can either set up a meeting place in deep space WELL in advance or stay close to planetary bodies. Witjh a nmetworked interface you could leave the game running at home and just check in with a smartphone or web interface through the day if you need to...

I'd guess you would probably need to either track down procedural systems that have planets with LOTs of moons, or build custom systems specially for multiplayer.

Just my two cents... and they're Canadian cents at that 😉


ReplyQuote
Marcel
(@marcel)
Captain Registered
Joined: 7 years ago
Posts: 1188
 

I think that if you simply changed the time compression into a 'warp-drive', and made hyperspace jumps take only the actual few seconds perceived by the player you could make it work without changing gameplay too much.


ReplyQuote
DerrickMoore
(@derrickmoore)
Petty Officer Registered
Joined: 12 years ago
Posts: 44
 

Argh! Time is relative, duh... I honestly wouldn't worry about "local time" at all. Sure it'd mean that someone you wanted to kill, could fast-zoom-accelerate away from you in multi=player combat, but it's a nessecary consequence of not having a "C" speed limit and the time dilation that comes with that.

 

what would be nice, though is a beacon that my ship could drop, or someway to name those planets out there, so that my favorite planet could be called "Murder" or "Cremetoria" maybe some sort of voting system, so there wouldn't be 1000 planets named "butt-munch". That way people could share with others fine stuff they've found.

 

But the passengers on 2 different spaceships traveling at ultra-high speeds will not be observed to have the same local time.


ReplyQuote
Brianetta
(@brianetta)
Commander Registered
Joined: 13 years ago
Posts: 863
 

Marcel, that would change the game quite radically. When you speed up time, planets also get sped up, as do other ships. Making the player's ship able to achieve high speeds relative to all the other stuff is, in and of itself, a big change in gameplay. It would turn Pioneer into I-War. I-War was a good game, but it wasn't nearly the same as Pioneer is.


ReplyQuote
fluffyfreak
(@fluffyfreak)
Captain Registered
Joined: 7 years ago
Posts: 1306
 

I agree that it would change the character of Pioneer a lot but I'm tempted to hack something in and provide an exe for people to suck-it-and-see.

Some things would get easier, some things would actually get harder. I'm not convinced that it would be as big a change as people are expecting.


ReplyQuote
Marcel
(@marcel)
Captain Registered
Joined: 7 years ago
Posts: 1188
 

I've never played I-War but I found it on gog.com for $2.99. I bought two other games for the same price and got several others for free! Clicking on their ad probably gave Space Sim Central a farthing or two too, so I gave them a plug.


ReplyQuote
Page 2 / 3