The online racing simulator
LFS TV idea
(62 posts, started )
Lfs Tv
While attending an online seminar today i had an idea....

Is it possible for someone to write a program that will stream their screen to an application connected to the net?

This could be used as a great spectator/TV program for League races in LFS. Someone on the server not racing could 'share' their screen and control the spectator mode (The Director). You could maybe even have a comentator!

The seminar i attended was done using 'Macromedia Breeze' which allows users to share there screens, chat, listen to audio and view webcams.

I really think this would be a cool program if it would be possible to build.

What u guys think, has this been mentioned before?
There was another thread, people were talking about setting up a relay so that lots of people could watch... cant remeber if the thread was here or RSC tho....

Ian.H or someone was involved in the discussions I think... ?
well i don't know if there is anyone working on a tool like this, but it has been brought up in the forums here and at RSC quite often and there is a huge interest in LFS-TV

so if someone wants to make a streaming-video application for LfS, it would be really great for the whole community - you could show races live on webservers and create interest for the game (talking about multi-sim racing teams/webpages/leagues where the GTR/NR/rFactor/F1C/GP4 guys could watch the races in the LfS divisions) and also could make online racing more attractive for sponsors (league/team sponsoring) since the audience could be a lot bigger
Ah, now theres a thought. Instead of reverse engineering the code and relaying, we could capture the raw output of directx, pipe it across the net, and replay it. The only problem is that a huge pipe would be required to download, and the server would need a huge upload speed.

To be honest, it sounds like your seminar used something like RDP and terminal services - not really suitable for LFS-TV. We'd get a much better response time from using the actual LFS client.
I know you could setup a web cam and point it at a spectating screen, then broadcast that, but the software is really expensive to get relaying webcam and the quality would be pretty bad....

Searching google for something, but I doubt we'll find something able to capture directX and broadcast it for cheap :s

[edit]
Found something that might "broadcast" the video, but you would need two machines, to output from one machine spectating via the video card, to capture it on the machine running the software. Would cost money for the software and no doubt would cost money to get a Windows Media Streaming server running with good bandwidth.
http://www.viscomsoft.com/products/videocaplive/

So looks very expensive to put together unless someone comes up with something via insim.
[/edit]
ouch! $200 USD
a webcam wont stream a computer screen properly because you will get lines wiping down the screen.

i have 2 machines and a 2MB line. i dont think that would be good enough though and i dont want to pay $200.
-
(KiDCoDEa) DELETED by KiDCoDEa
IPTV is certainly a good content delivery option, but still we dont have a good method for relaying at a reasonable speed. The ultimate option is to use LFS netcode.
Quote from the_angry_angel :IPTV is certainly a good content delivery option, but still we dont have a good method for relaying at a reasonable speed. The ultimate option is to use LFS netcode.

I agree. I think HLTV is the model to mimick. But that'll require implementation from Scawen. Maybe something for S3.

I mean trying to figure out whether you can have some kind of proxy that transmits the netpackets from one client to a bunch of clients is a possibility. But it really depends on the amount of handshaking that's specific to the connection that goes on. Maybe Scawen can comment whether this is possible (i.e. worth sniffing traffic to figure out) or whether network traffic is built so that a client/server handshaking is too complex to fake.
#9 - bbman
Why not using another server as a relay? The gameserver gets the updates from the clients and sends it to another server (the LfSTV-Server), where the audience connects to... Such a server-version wouldn't be hard to make (I think), as the option to just watch is already built in the normal servers...
well Scawen
Quote from bbman :Why not using another server as a relay? The gameserver gets the updates from the clients and sends it to another server (the LfSTV-Server), where the audience connects to... Such a server-version wouldn't be hard to make (I think), as the option to just watch is already built in the normal servers...

The problem most likely would be that even while you watch as a client, there is some kind of handshaking going on. I.e. the servers sends you a packet and you have to respond in a specific way for your connection to be maintained. At that point the proxy needs to be smart enough to handle those responses and also pass them on and be able to handle any requests from the clients.

Just because you're only watching doesn't mean that your machine isn't doing a fair amount of back-and-forth to sync up the simulations running on the server and client.

Of course, this is all speculation
Yeah, but since you can just watch the races on normal servers (though taking a slot which can be used from someone else to actually race), the only problem should be disable the button to join the race... And that the input doesn't come from the connected clients, but from the Racing-Server... And this data is streamed to the clients, like a video-stream... Or am I way off?
This is an idea that I've been toying with for a Loooong time...
Ever since I watched a race broadcast live for the NR2003S Virtual Racing League...

There's basically 2 things you need to do that:
- Screen capturing software
- Stream broadcasting software

The setup I was thinking about was Windows Media Server (which comes standard with Windows 2000 Server) that receives a broadcast from the PC running the game, and in turn broadcasts it around the internet.
This is a setup I've had working for NR2003S, and it worked beautifully.
There was 1 problem... The internet in our homes works on Unicast. Which means each packet gets sent to each individual client. So for a 768K stream (which I can easily manage on my pipe) and 50 people watching, the upload needs to be 768K * 50... Which I can't manage.
The only solution for that is streaming it to a paid Stream server on the internet, which works on multicast... Meaning each packet gets sent only once, and gets broken up into multiple packets by the routers on the way to the clients. So for that server a 768K stream will only be 768K upload regardless of the number of clients at least until the first router.

This could be setup though, no problem... It's not too expensive, and work nicely. We get to the second problem, though.

How do we control the visuals? Should there be a director that switches the views manually? Or should we come up with a program that decides what to show for us? Of course the option to override the program should be included.

3rd problem: Integrate graphics into the stream... Watching a race is nice, but it's boring when you can't see who's who, and running where, and stuff like that. So a second program needs to be written that is able to overlay position graphics over the DirectX images. Of course it needs to get the position matrix from LFS, and be able to handle custom graphics, and different types of effects. I'm thinking about the A1GP graphics which are displayed in a different manner from the F1 graphics, which in turn are a lot less intuitive to understand than the NASCAR graphics of a banner at the top of the screen.
This program would need to be able to communicate with the "director" program, so it can display some graphics that correspond with the action we're following... So if say [XP]-TagForce- spins and we see it, it would be able to show a graphic that tells us it's him (me) spinning off, just like in real life.


As I said, I've been thinking about this for a long time. The problem is that nobody felt like it would be doable, but I really think it is. It needs to be very well planned though. So if any of you feel like it's worth having a discussion about let me know.
Quote from TagForce :The problem is that nobody felt like it would be doable, but I really think it is. It needs to be very well planned though.

Yes your method is a solution, but its still a half assed solution in my opinion. Why stream images when you could stream true LFS netcode to an LFS client and let the user be their own director? Plus if you wanted to stream at a decent resolution you'd need a much higher amount of bandwidth than you've calculated.
Quote from bbman :Yeah, but since you can just watch the races on normal servers (though taking a slot which can be used from someone else to actually race), the only problem should be disable the button to join the race... And that the input doesn't come from the connected clients, but from the Racing-Server... And this data is streamed to the clients, like a video-stream... Or am I way off?

It may be as simple as that, but I have a feeling it is not. The data isn't really streamed to you as in the sense of a video. What's really happening is that the servers sends you information for running your simulation and keeping it in sync with all other clients. Because of this, i have to assume that the client does a fair bit of responding where it's at. The reason why I can see this not being easy to proxy is that i bet that depending on your processing speed, network speed, packet loss and a number of other factors, your conversation with the server is going to be quite a bit different from the conversation another client has with the server.
Quote from the_angry_angel :Yes your method is a solution, but its still a half assed solution in my opinion. Why stream images when you could stream true LFS netcode to an LFS client and let the user be their own director? Plus if you wanted to stream at a decent resolution you'd need a much higher amount of bandwidth than you've calculated.

Although I see what you mean, I think you're missing the point of WHY I'd like to see a video stream rather than a LFS proxy system (as you are suggesting).

Yes, sure, it would be cool to just tune in to a live race, and have LFS render it for us. But isn't all this about promoting LFS? Showing the world that what we do is really simulating the real world, including TV broadcasts? How can you promote LFS only with people that already bought the product? How would you like to follow a league you're not in yourself? By changing your own camera's and coming up with your own commentary, or by clicking a link and watch a broadcast including a presenter and graphics, and quite possibly a java based timing system with a nice track graphic that has dots representing each car's position on the track (like NASCAR's broadcast system)? And which of the two would you more likely be interested in joining? The one that simply has a proxy running, or the one that makes it all that extra bit more realistic?

My solution has always been about reaching the largest group possible. Not just those that we know are interested, but also those that may become interested. How do you get people interested? First by reaching them, and secondly by showing them something that looks professional, and exciting, and doesn't require them to do anything but watch.

As for the bandwidth I chose: 768K is more than enough to show a fairly accurate broadcast without too many annoying artifacts of a computer screen. You must remember that the number of colors in a single frame of LFS footage doesn't come near the number of colors in a real camera still. Simply because the colors are taken from a preset matrix of colors. The amount of detail in lighting and texturing will never be close to photorealistic until we can render full fletched 3DS Max scenes at 25fps, including raytracing all objects. Compression will be better with LFS, trust me on that. 768*480 (NTSC) will be impossible to reach, but we're watching on a computer screen, not a TV set. 512*384 is pretty acceptable, and that is very possible at 768K. Nor are we listening to 7.1 surround, but simple 44.1k stereo.
Even so... I can upload a stream at 2Mb these days, and most high bandwidth connections are over 1Mb... So the 768K is not set in stone, although that was what I used a few years back because that was the limit at that point.

Besides, isn't there already a proxy system for LFS? Or was that put in the fridge?

EDIT:
A few years back NASCAR would put up RealVideo files of entire races a day after the race where you could watch certain events on the track at will. If you knew the correct addresses of those files, you could watch the entire 3 hour races completely through a 768k stream. This wasn't as good as watching the race on TV, but it was acceptable, and even most of the graphics were readable. As I'm from Holland, and NASCAR is a cuss-word in racing here it seems, that was the only way for me to watch those races. Trust me, it worked great, and even with the lower resolution it was a lot of fun watching races, even on a beamer on a 8 foot screen.
Quote from TagForce :Besides, isn't there already a proxy system for LFS? Or was that put in the fridge?

Unfortunately not

I do understand your point about streaming video, but as you have said that could already be acheived, and I believe the ESL already does a similar thing from time to time.
Quote from the_angry_angel :Unfortunately not

I do understand your point about streaming video, but as you have said that could already be acheived, and I believe the ESL already does a similar thing from time to time.

Alright... I know there was talk about a proxy a while ago. Maybe this is a good opportunity to get one going. There really should be one, for more than just being able to watch a race with more than 20 people.

Yes, the streaming could already be achieved, but I can't imagine it being quite the way I described. Doesn't matter, though. Needs some looking into. Maybe someone from the ESL could shed some light on the subject?
Quote from ButterTyres :I know you could setup a web cam and point it at a spectating screen, then broadcast that, but the software is really expensive to get relaying webcam and the quality would be pretty bad....

Searching google for something, but I doubt we'll find something able to capture directX and broadcast it for cheap :s

[edit]
Found something that might "broadcast" the video, but you would need two machines, to output from one machine spectating via the video card, to capture it on the machine running the software. Would cost money for the software and no doubt would cost money to get a Windows Media Streaming server running with good bandwidth.
http://www.viscomsoft.com/products/videocaplive/

So looks very expensive to put together unless someone comes up with something via insim.
[/edit]

Sounds very similar to the principle found on www.videolan.org. Maybe that's an idea to use? http://www.videolan.org/streaming/ for more information.
heres an idea, one computer spectating and using a video out on it's video card, another with a capture card (recognized as a webcam by some programs) streaming teh video it captures
You mean, as has already been suggested. Yes this is a good idea, but no its not practical. Streaming video requires a massive pipe. I'd like to see ordinary people able to stream a game out, and then relay to another server, in effect creating a massive "grid". Potentially infinite bandwidth.
-
(thisnameistaken) DELETED by thisnameistaken
#22 - SamH
Quote from the_angry_angel :You mean, as has already been suggested. Yes this is a good idea, but no its not practical. Streaming video requires a massive pipe. I'd like to see ordinary people able to stream a game out, and then relay to another server, in effect creating a massive "grid". Potentially infinite bandwidth.

I'm not quite so hot on this stuff.. I come at the technology from a different angle, so feel free to pooh-pooh the following:

We have a sever with a fairly fat pipe - 100mbit on a backbone. We're frequently sucking info off the net at 7 megabytes/second directly onto it. I know it has the same capacity in the opposite direction.. so, using Unicast (as you've mentioned before), isn't the problem cured, if I were to host a game on our server AND stream an LFS window? Using WebcamXP, it's quite possible to stream a Windows "window", although I've noticed that isn't using Unicast.. so isn't the problem just a case of sourcing an application that does Window streaming using a Unicast (this is UDP, right?) broadcast method?
Yes and no. Unicast'ing (i.e. transmision without verification - yes UDP does that) does use a lot less bandwidth, but its still just video. And its still going to be MASSIVELY more if you have lots of people wanting to watch, than if it was LFS' own [optimised] netcode. The whole idea of LFSTV would be to lower the minimum required bar. How many people have dedicated / shared 10Mbit plus servers (that doesnt just run LFS)? I know of about 4, not including myself, on the forum (although theres probably more).

Dont get me wrong I've looked into reverse engineering the netcode in LFS more than once, and its a bit of a minefield - this isnt something we can do without some input, or at least notes, from Scawen, and it certainly isnt something 1 person could do within a realistic timeframe by themselves (unless they were on the dole).

Plus what if a user wants to watch 1 particular person, not whatever the guy whos recording wants to see? Plus you still need a minimum of 3 things: LFS Game Server, LFS Spectator / Director to record and change view, Video Relay server.

I'm not saying that you shouldnt use streaming video, I just dont think its the right path. Just like pure video replays are bad; they dont fit into LFS' philosophy according to the way I see it.
I'm with TAA on this one. Streaming LFS via video is a pretty nasty way of doing things. I'm not so sure it would be worth the effort & resources required, especially given that scawen mentioned something about research in to a potential (and I emphasise that because it was nothing concrete) dummy client exactly for the purpose of spectators when this was raised on RSC.
how about the idea that broadcasting via video stream means that someone just has to have a copy of media player to watch, while rebroadcasting via an HL tv style application means that your audience is limited to just sim racers

Someone mentioned sponsors earlier. Sponsors like large audiences. Spectators like things to be easy. Simple means that some of these spectators might be convinced to get into sim racing themselves.

LFS TV idea
(62 posts, started )
FGED GREDG RDFGDR GSFDG