I could see a limited MP working but not on massive scale or with strangers/potential griefers.
The trick would be synchronizing time acceleration so that it would always be the lowest setting permitted by any of the player (so if one player has time compression set to 0, no acceleration for anyone) and all players would always have actual time acceleration at the same setting (they might click on higher settings but the game would only switch time acceleration to this level if there were no more players wanting to run slower). Of course this would rely on having few players (because the more players, the more difficult it would be to actually pull some time acceleration) and no one being asshole enough to just keep the game running with no time acceleration and walk away.
So for limited competitive/coop play it should be doable, the question is whether it would be worth the time and effort.
Are there any plans to make Pioneer online multiplayer?
-
- Posts: 1343
- Joined: Tue Jul 02, 2013 1:49 pm
- Location: Beeston, Nottinghamshire, GB
- Contact:
Re: Are there any plans to make Pioneer online multiplayer?
When I've suggested things for this it's always been for fun, not as something I think would be worth implementing.
With multiplayer I'd go for an all or nothing approach: Strip out the time acceleration completely, add in in-system hyperspace and/or fast-as-light drive, make the engines much more powerful (10x at least).
That would be the minimum required for Pioneer to work multiplayer, not MMO, just servers with 8 to 16 players.
It wouldn't be the "Pioneer" that we know now. It might still be fun, but not the same - and no-one is going to spend the time turning Pioneer into that, I think that Pioneer is what it is now..
With multiplayer I'd go for an all or nothing approach: Strip out the time acceleration completely, add in in-system hyperspace and/or fast-as-light drive, make the engines much more powerful (10x at least).
That would be the minimum required for Pioneer to work multiplayer, not MMO, just servers with 8 to 16 players.
It wouldn't be the "Pioneer" that we know now. It might still be fun, but not the same - and no-one is going to spend the time turning Pioneer into that, I think that Pioneer is what it is now..
Re: Are there any plans to make Pioneer online multiplayer?
I'm happy to have my own galaxy :)
Re: Are there any plans to make Pioneer online multiplayer?
Hi robn, I am professional c/c++ linux/unix network programmer. I think I might do this ;)robn wrote:Oh, btw, I have a HTTP/JSON client written and sitting on a branch. I haven't gotten around to pushing it to master because we don't have a server component to go with it. If anyone is interested in working on the server-side for anything like this, let me know and I'll get it cleaned up and pushed.
What are specs for this task?
Re: Are there any plans to make Pioneer online multiplayer?
No specs. The client just makes dumb HTTP+JSON RPC calls to some web server, which returns stuff. You'd need to define the wire protocol, write the server (some web service) and write the in-game code to make the calls and present the data. So everything basically :)bmaxa wrote:Hi robn, I am professional c/c++ linux/unix network programmer. I think I might do this ;)robn wrote:Oh, btw, I have a HTTP/JSON client written and sitting on a branch. I haven't gotten around to pushing it to master because we don't have a server component to go with it. If anyone is interested in working on the server-side for anything like this, let me know and I'll get it cleaned up and pushed.
What are specs for this task?
There's some ideas here: http://pioneerwiki.com/wiki/Network_features
A community/player site might be a good skin on top of this.
Here's a trivial test server I used while building the client: https://github.com/robn/pioneer-rpcserv ... erver.psgi. The most interesting bits are the last few lines where the Lua code to call these functions are shown.
Whatever you do, don't be fooled - this is a massive undertaking, as big as the game itself. It needs someone with some vision and skill and long-term commitment to make it work. Probably a small team, really. I'm happy to advise, provide support code and assist with hosting but I don't want to do the work - a large part of my dayjob is web programming, so I'm really good at it but also really sick of it by the time I get home at night :)
Re: Are there any plans to make Pioneer online multiplayer?
I think I got what you have in mind. rpc server with web capabilities. I would write multi-threaded (as it is rpc) server with some database as backend,
either home grown or some existent. Community site would be done with real web server as it no point to me to write full blown web server ;)
We could use some server side scripting (php?) on that web server to update database which will be used by rpc server backend.
Database could also be updated via game / rpc calls.
Then comes difficult part , game features itself, once we get infrastructure ;)
either home grown or some existent. Community site would be done with real web server as it no point to me to write full blown web server ;)
We could use some server side scripting (php?) on that web server to update database which will be used by rpc server backend.
Database could also be updated via game / rpc calls.
Then comes difficult part , game features itself, once we get infrastructure ;)
Re: Are there any plans to make Pioneer online multiplayer?
Way overkill. Use a regular web engine. And work on a specfic game feature to start - don't build an empty edifice :)bmaxa wrote:I think I got what you have in mind. rpc server with web capabilities. I would write multi-threaded (as it is rpc) server with some database as backend,
Re: Are there any plans to make Pioneer online multiplayer?
Which engine for c++ to use? It is not much of a problem to me to write server as Im used to that and have already code
and ideas. JSON parsing is biggest job there but I guess there are already libraries for that. All in all it shouldn;t take much time )
to start making actual game payload code. All in all I have to figure out existing engine, but with my own solution I just have to work, no exploring
or learning time ;)
Question is just what is easier and what will take less time?
I wrote with my colleague full blown web server , yes that is lot of code, but here we have just simple rpc requests ;)
To sumarize I am not sure what will take more effort to me to write rpc server or learn to utilize existing engine.
I think that c++ lacks in this area.
and ideas. JSON parsing is biggest job there but I guess there are already libraries for that. All in all it shouldn;t take much time )
to start making actual game payload code. All in all I have to figure out existing engine, but with my own solution I just have to work, no exploring
or learning time ;)
Question is just what is easier and what will take less time?
I wrote with my colleague full blown web server , yes that is lot of code, but here we have just simple rpc requests ;)
To sumarize I am not sure what will take more effort to me to write rpc server or learn to utilize existing engine.
I think that c++ lacks in this area.
Re: Are there any plans to make Pioneer online multiplayer?
Also, keep in mind that the it's good if the code is maintainable by others, with less expertise knowledge, as well.bmaxa wrote:Question is just what is easier and what will take less time?
Re: Are there any plans to make Pioneer online multiplayer?
This is a bog-standard web API project. So it should be written in a way that makes sense to the millions of web programmers out there. Which "home-spun server from scratch in C++" is not.
I'd be taking the sample I wrote, adding a storage and auth layer and deploying it. Its a very small amount of code. If you're intending to cut web servers from whole cloth then seriously, you're doing it wrong.
But also you should be focused on the goal. Start with planning the in-game feature and work your way up from there. Otherwise you have no idea what you're actually implementing.
I'd be taking the sample I wrote, adding a storage and auth layer and deploying it. Its a very small amount of code. If you're intending to cut web servers from whole cloth then seriously, you're doing it wrong.
But also you should be focused on the goal. Start with planning the in-game feature and work your way up from there. Otherwise you have no idea what you're actually implementing.