Welcome, Guest. Please login or register.
Did you miss your activation email?

Login with username, password and session length

 
Advanced search

1059329 Posts in 43067 Topics- by 35023 Members - Latest Member: andrew-raphael-lukasik

October 31, 2014, 09:51:48 AM
TIGSource ForumsDeveloperTechnical (Moderators: Glaiel-Gamer, ThemsAllTook)Streaming multi-seat game
Pages: [1]
Print
Author Topic: Streaming multi-seat game  (Read 583 times)
JScythe
Level 0
**


View Profile Email
« on: March 29, 2013, 02:35:46 PM »

Okay, so I want my game to run on one computer and stream, locally, to up to eight players on tablets or laptops. That's eight screens and eight control inputs to one streaming server.

Failing this, I would like to just host four players on four screens, four keyboards and four mice on one game, run on one computer.

Does anyone have any idea on how to do this? There is isn't a lot of information on coding for multi-seat (several users on one computer simultaneously) computing, let alone multi-seat gaming floating about on the interweb.

If anyone could point me in the right direction I'd be very much appreciative.
Logged
JScythe
Level 0
**


View Profile Email
« Reply #1 on: March 30, 2013, 09:09:50 AM »

Still hashing out the concept.

The only things I could find were OpenGL tutorials for writing to multiple screens with multiple graphics cards. I'm thinking more of a single card solution. In the case of streaming, I would need to render each player's screen and send it to the appropriate client at a bare minimum of 30fps. With four players, that means that I'll have to be able to render 120fps on the server side. But I'm kind of wondering if the order of player screen update might give an unfair advantage to the person that gets updated first and a disadvantage to the person that gets updated last. Then again, we can always prioritize by time to render based on player activity.

I haven't even explored the problem of video compression yet.
Logged
Belimoth
Level 10
*****


high-heeled cyberbully


View Profile
« Reply #2 on: March 30, 2013, 10:11:12 AM »

Why stream video when you could just send position/state information for each entity? Seems like what you have here is your usual multiplayer situation only via LAN.
Logged

Udderdude
Level 10
*****



View Profile WWW
« Reply #3 on: March 30, 2013, 10:36:51 AM »

Sounds like he's trying to do it w/o any LAN.
Logged

EdgeOfProphecy
Level 2
**



View Profile WWW Email
« Reply #4 on: March 30, 2013, 11:09:24 AM »

If you wanted to do it over several different types of devices, tablets and PCs and the like, I imagine you'd have to do a server-client architecture wherein you stream the video to clients and receive the input from them.  The server wouldn't be rendering at target FPS x number devices, but render out to an image and send that over the network to X devices.

If you want to stream it to a bunch of screens hooked straight into a single computer, I dunno.  No thoughts.
Logged
BorisTheBrave
Level 10
*****


View Profile WWW
« Reply #5 on: March 31, 2013, 12:50:16 AM »

Most PCs cannot connect 4 monitors, and 4 keyboard and mice would require several USB hubs. And of course the rendering requirements are rather high. So unless you are planning to build something custom yourself, I don't think this is an option.

If you have tablets/pcs for clients, then you can just run things as a normal client-server, like any normal multiplayer game. It scales much better to eight, too. You've yet to explain why this isn't sufficient.
Logged
JScythe
Level 0
**


View Profile Email
« Reply #6 on: March 31, 2013, 05:20:40 PM »

Most PCs cannot connect 4 monitors, and 4 keyboard and mice would require several USB hubs. And of course the rendering requirements are rather high. So unless you are planning to build something custom yourself, I don't think this is an option.

If you have tablets/pcs for clients, then you can just run things as a normal client-server, like any normal multiplayer game. It scales much better to eight, too. You've yet to explain why this isn't sufficient.

I'm going to take a leap and assume that you're asking why I just don't make clients for the PCs and tablets rather than streaming to the client machines. The short answer is because I want to know if it's possible. The long answer. . . .

I remember a time when buying Diablo meant that you could install a client on a friend's computer so that you could play together over a LAN. I remember a time when Command and Conquer came with two disks so that you could install the game on another machine and play your friend over a LAN. I remember some of my best multiplayer moments happening offline, over a Local Area Network.

And then there are things like Nvidia's Project Shield that streams games from your PC so that you can play them on the couch. Gabe Newell talks a good game about home streaming being the wave of the future as well. Question: Why? Just why the hell am I streaming my games over my own wireless LAN if I'm only going to be playing single player. Sure, it'll reduce fights over who gets the TV in the living room, but if I'm running a game on my PC it's not like someone else can log in and use the computer while the game runs in the background.

Multiplayer is where consoles had PCs beat for a long, long time. If you wanted to play Gauntlet Legends, Perfect Dark, or Halo with three of your friends (or your wife and two kids) all you had to do was plug in four controllers. Yeah, split screen sucked but it was a damn sight more convenient than setting up four desktops on an ethernet hub in the same room and installing the same game on all four machines.

And yes, I'm fully aware of things like SoftXpand that let two players play the same game on the same machine at the same time. That's a work around. I really don't see there being a need for home streaming until games are built from the ground up with multiseat gaming in mind. Until I can stream the game to four players on tablets and cheap Chromebooks simultaneously, there will be no need for home streaming.

There are plenty of open source projects to test this kind of thing out with. The real problem, for me anyway, is that I don't know dick about video streaming or networked video compression. It doesn't help that there isn't much in the way of tutorials or code snippets floating around the interweb.

Executive summary: I feel that multiplayer gaming would be much easier, from the player's point of view, if they could just connect via a small web app on their device and instantly be in the game session rather than having to install the code and content resources beforehand. Also, my PC can crank out way better graphics than an Andriod, iOS, or ChromeOS device.
Logged
JScythe
Level 0
**


View Profile Email
« Reply #7 on: March 31, 2013, 08:58:22 PM »

A little more research and I'm closing in on an answer.

Question: if I use an H.264 library do I have to pay some kind of licensing fee? I know I don't have to if the project goes open source since it's GPL. But if I were to use it in a commercial project. . .
Logged
BorisTheBrave
Level 10
*****


View Profile WWW
« Reply #8 on: April 01, 2013, 01:33:35 AM »

I remember a time when buying Diablo meant that you could install a client on a friend's computer so that you could play together over a LAN. I remember a time when Command and Conquer came with two disks so that you could install the game on another machine and play your friend over a LAN. I remember some of my best multiplayer moments happening offline, over a Local Area Network.
Those games weren't streaming video of any kind - they were straightforward client server setups. The second CD contained the same game, just crippled so it couldn't host or play single player.


Have you considered the latency associated with the round trip from thin-client to streaming server? Most real time multiplayer games include client side predicition precisely because this is such a problem.
Logged
JScythe
Level 0
**


View Profile Email
« Reply #9 on: April 01, 2013, 07:37:28 PM »

I remember a time when buying Diablo meant that you could install a client on a friend's computer so that you could play together over a LAN. I remember a time when Command and Conquer came with two disks so that you could install the game on another machine and play your friend over a LAN. I remember some of my best multiplayer moments happening offline, over a Local Area Network.
Those games weren't streaming video of any kind - they were straightforward client server setups. The second CD contained the same game, just crippled so it couldn't host or play single player.


Have you considered the latency associated with the round trip from thin-client to streaming server? Most real time multiplayer games include client side predicition precisely because this is such a problem.

I'm fully aware that the games I mentioned had full on clients. The point was that developers, both on the PC and consoles, have almost unilaterally decided that offline multiplayer is not in their best interest. I can certainly see their point. If four players are on the same machine then at least three of those players aren't paying for the experience. We jumped through some serious hoops to get that offline LAN play. Now, the industry is hinting that they want us to do the same thing for single player games. I don't see that happening.

As far a latency is concerned. . .

The Wifi in my home has way fatter pipes than the slow drip that connects my home network to the interwottsit. Yes, serving up the data over local Wifi is going to introduce latency. I have no idea how much because I haven't gotten that far yet. In a perfect world, this wouldn't introduce any more latency than running split screen with wireless controllers. This isn't a perfect world so I'm going to have to see how it works and tweak, and see how it works, and tweak, etc., etc.

I haven't actually gotten to the point where I can run one client streaming because I'm trying like hell to find the libraries and techniques for streaming video and audio information in real-time. Sending input over the network has been done to death, so I'm not worried about it. But I can't answer any of those questions until I get this running at least one client.

Again, if you know anything about video compression and streaming, or know where I can find more information on the subject, let me know.
Logged
Pages: [1]
Print
Jump to:  

Theme orange-lt created by panic