Hi folks. I have a unique project nearing release on STEAM
Although single player at the moment, the intention is for it to eventually have a (unique ?) form of MP.
Could be described as Isolated MP or relay play
I need help in defining the requirements so I can offer out a sub contract.
The intended MP will be via IP connection.
(the reason being that “friends” that you know and trust will get together as opposed to the general free for all that is likely using STEAM MP)
The project is physics based, and as a result of not wanting to go through client side prediction etc, each client will be alone in his/ her own world (map)
this means that trains will spawn only on the client the server will not be involved.
Each client can be playing a different map / game, however all the maps / games have a common set of connections that relay information ( bell rings, instrument positions, spawn information etc).
I forsee, a dedicated server that relays the information to and from the clients as per the connections established.
It also has a cetain amount of logic to select and construct the make up of each train according to a timetable.
On begining a session.
The host would start the dedicated server,
The host and other clients would start their individual games and connect to the server via IP
When all present the host would connect the players in linear fashion
autospawn1 ---- Player Alpha—Player Beta----Player Charlie-----autospawn2
The server on instruction from a Timetable/ clock prepares a service to spawn at the requ auto spawn . the service is then offered to player alpha.
(there is an exchange of bell communications and instrument settings) Tasks.
When all tasks completed successfully the train should spawn on player Alpha (or Charlie if rev direction) game.
Player Alpha will then follow a range of tasks with Player B
When the train has transited player A map it is destroyed and server informed.
the server checks that player B has completed all Bell and instument tasks correctly
and then intructs Player B to spawn an identical train from where it will be passed along to player C in an identical fashion.
The server has control of spawning plus relays and checks the bell signals and instruments between clients.
The client obeys spawning instructions from the server.
Sounds really complicated I know, but in reality it is a much stripped down MP communication system.
Key points are
Each player can be playing a differnt game ( that has a common communication module)
each spawned train only exists on its own client.
Only the bell signals, the SB instruments and make up of spawn trains is passed around the network.
Only clients present at the launch can play no late joiners.
Existing logic in each signal box means if it is NOT occupied it reverts to automatic responce,
it should be possible that this would cover the event of someone leaving the game and breaking the chain.
I only work in BP and could do the server spawning and relaying/checking logic, however am I correct in thinking that a dedicated server would have to be written in C++ ?
If by any chance , someone has some good ideas and would be willing to take on the task PAID, drop me a line
Is this even possible ?
Many thanks and sorry its gone on a bit