View Full Version : LFS TV idea
nikimere
29th September 2005, 15:25
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?
ButterTyres
29th September 2005, 15:30
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... ?
DasKlee
29th September 2005, 16:18
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
the_angry_angel
29th September 2005, 17:26
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.
ButterTyres
30th September 2005, 10:48
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
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.
nikimere
30th September 2005, 11:30
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.
the_angry_angel
4th October 2005, 11:18
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.
sdether
4th October 2005, 18:36
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.
bbman
4th October 2005, 20:10
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...
nikimere
4th October 2005, 20:10
well Scawen :shrug:
sdether
4th October 2005, 21:02
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 :)
bbman
5th October 2005, 01:12
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? :D
TagForce
5th October 2005, 13:17
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.
the_angry_angel
5th October 2005, 17:19
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.
sdether
5th October 2005, 21:39
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? :D
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.
TagForce
5th October 2005, 23:34
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.
the_angry_angel
6th October 2005, 09:28
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.
TagForce
6th October 2005, 10:36
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?
Jos Belgium
11th January 2006, 20:25
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
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.
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.
KeiichiRX7
31st January 2006, 04:36
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
the_angry_angel
31st January 2006, 11:04
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.
SamH
31st January 2006, 13:44
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?
the_angry_angel
31st January 2006, 15:53
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.
Anarchi-H
31st January 2006, 18:41
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.
KeiichiRX7
31st January 2006, 19:22
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.
Dygear
3rd February 2006, 18:30
It can be done with video lan as the streaming server, you connect to video lan and send it the video, then the video lan server connects to the rest of the clients that want the information. 4,228,250,625 Users is the max ammout of users that can connect to that server in IPv4 even if the routers could have that large of a stack. I know my linksys gose into meltdown when ever I get near 1000 connections to my home computer. So there's not quite infinite bandwidth but if there is some one on here that has bandiwth to connect to over 4 billion computers then they are not going to ask us how to do it. It is possable, but you have to make the plan fit your situation. Idealy, you would want to have the end user watching LFS in the LFS exe, then you could make a HLTV style video service. That would decrees the bandwidth needed by 10 fold.
KeiichiRX7
14th February 2006, 05:11
the only way i could see that happening is if demo users could spectate s1 and s2 races, but not participate
Xixx
26th February 2006, 18:20
I agree that letting a user control thier own client to watch whatever they want to see is a beter option for usability. However the bandwidth problems as described here may be a problem. The best soluton in my opinion is to have somebody direct the race and stream it over video. Check out this website for a possible solution to video bandwidth related isssues.
www.sopcast.org (http://www.sopcast.org)
The program comes bundled with a server option which simply takes any local or remote video stream and rebroadcasts it to connected clients. Those clients then rebroadcast it to other clients connected to it (peer to peer). The protocol is based on Bittorrent and is quite frankly great.
Dygear
27th February 2006, 18:44
I would like to know why LFS : TV was not apart of the orignal LFS code. It would seem to be a logical step in the programming of LFS.
I would like to see the LFS exe be able to set a host TV server IP and Port. ex "/lfstvs 24.46.196.135 20022" That would send the LFS : TV packets to that IP and Port. Then that server would send on the packets to who ever logs on with the server in LFS with the simple command "/lfstv 24.46.196.135 20022" So, devs what do you guys think? The TV Server it self would log into the race server and act as a spectator. It would be like watching a replay, but in real time.
the_angry_angel
27th February 2006, 19:04
I would like to know why LFS : TV was not apart of the orignal LFS code. It would seem to be a logical step in the programming of LFS.That boils down to what I've been trying to get at... :Looking_a Although to be honest why it isnt part of the original code we have, is that age old phrase "Keep It Simple Stupid".
Dygear
27th February 2006, 20:27
That boils down to what I've been trying to get at... :Looking_a Although to be honest why it isnt part of the original code we have, is that age old phrase "Keep It Simple Stupid".
KISS KISS.
the_angry_angel
27th February 2006, 21:25
:d
EeekiE
28th February 2006, 00:30
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 don't need two PC's. I've streamed myself playing a game over MSN by taking a cable from a TV out, into a TV in, which can be used as a webcam. Then you set your recording source to WAV.
JimBRA
6th March 2006, 03:08
it appears that the problem here would be what camera should be used to show the race. LFS TV would need someone controlling which camera is active and what is being showed.
That is one of the reasons why this LFS TV should be integrated with the original LFS code, or at least another program with the ability to process all the information. Another important thing is that streaming requires much larger band than simply sending small packets to LFS.exe when you are connected as a spectator. On the other hand, although it uses less band, its not possible for a cheaper pc with no graphics card to exhibit the show of LFS running the original software, and it would require licensing for everyone.
Anyway, I think its important for this game to show up to the world of spectators some way.
Squelch
17th May 2006, 05:00
Hi guys,
It was me over on RSC that I think you refer to. My idea was to somehow use the replay file encapsulated and broadcast to clients. The current method of spectating does take up a slot on the server. Using a one way lfs data stream would allow connected clients to set camera postions localy.
If it's possible, a seperate spectator client would be ideal, similar to the current viewer. All cars and tracks could be rendered regardless of license. The client would be passive in that synchronisation packets would not be required and the only control be for view. A cut down LFS if you will.
All of this could be run from a broadcast server that is connected to the original game server as a spectator. The "in race" packets retransmitted to spectator clients so as not to impact gameplay. I dubbed it "Live to Spectate" (http://forum.rscnet.org/showthread.php?t=207900&highlight=live+spectate), although life, and other projects have called a halt to it.
I talked about using the replay file, but this has it's problems. There is no timing information present, the positions of cars are generated asynchronously. This makes for smaller file sizes but isn't any good for live viewing. The header (footer) isn't generated until the file is closed either.
It would be really useful to have something like this. I want to have a full 360 degree display. Someone else has posted on these forums a method of connecting more than one machine, and setting the camera view to suit. This is a little wasteful of both bandwidth and server slots. As the data is already available for the connected playing client. A way of tapping into, and re using this data locally for different viewpoints would be excellent.
I'm sure there is a way of reverse engineering LFS to do this, but I have no desire to tread on sacred ground.
one small idea i have had is that if you want a cheap low bandwith solution to the problem is that for each "client" to use outsim data and then transfer each of these to another host, which then could stream too another server
and then use in sim (i think this is caperble) to get coordinates and have it overlayed on a map (like replay analyser)
dunno if this is possible but just an idea, kinda like the pit boards that F1 would have also another cool use s that for th eple with dual monitors to use a seperate monitor for all the rubish like map's, tyre temps, fuel etc and whack them on yur second screen leaving your main screen clutter free!
Squelch
18th May 2006, 05:53
LFS Spectator (http://www.lfsforum.net/showthread.php?t=1578) is what I think you suggesting there doso. The F1 style overlay is being worked on too, now that outguage is available.
Dygear
19th May 2006, 00:37
I have an F1 style GUI for LFS Spectator. It's to be used in the SimFIA events ( if team teams want it ) Here it is for you guys.
F1GUI-Spectator.zip (http://www.SimFIA.com/downloads/F1GUI-Spectator.zip) - 3.76 KB (3,851 bytes)
f1r3b4ll
28th May 2006, 14:33
I know this sounds really daft but its so simple! right the broadcaster needs two pcs, one pc to spectate in the race - actually connected to the server, then feeding the video and sound to a second pc via a capture card.
You could easily add effects, commentary or really anything else, this would work with Windows Media, RealServer or even (the most likely) WinampVideo... its so easy to setup a winamp server and you can easily adjust a hirable music server to stream the races, if anyone wants more details then give me a shout
the_angry_angel
28th May 2006, 17:04
I know this sounds really daft but its so simple! right the broadcaster needs two pcs, one pc to spectate in the race - actually connected to the server, then feeding the video and sound to a second pc via a capture card.Oh dear god why didn't we think of this?!?!!!!111oneoneonetwoeleventwelve!! Even better this can be done on 1 PC, rather than 2.
:x (yes, I'm a little tetchy today).
Edit:
I know that it probably sounds harsh, and I apologise, but I think you've missed the discussion on this entire thread and / or probably not read it.
Squelch
2nd June 2006, 13:15
It's all a question of bandwidth. Yes it's possible to take the output from a race, digitise it, then broadcast this info. This would use so much bandwidth that the gameplay would suffer. LFS has a tight netcode that would be completely swamped by what you propose f1r3b4ll.
All of the information required to render a race is already there and being transmited to the connected clients. If this same information can be tapped and multicast (a one way communication) then we would have a TV like situation for people wishing to only watch a race. Presently the only way is to connect as a full client, which has the downside of taking up server slots, and two way comms. A passive replay like client that is connected to a multicast server could be the ideal. My programming skills don't allow me to explore this further, but imho it is very possible.
Dygear
2nd June 2006, 16:18
In the very first Live For Speed replay editor (Yea, that's not it's name, but you'll know what I'm talking about once I explain it), you had the Live For Speed application running inside the main application. It was easyer to see what was going on while you were editing. Live For Speed Movie Maker?
Anyway, you could use the same setup. The main application would call in Live For Speed, and the application would simply get the InSim packets and get the players position from there. Then you could send packets to Live For Speed by translating the InSim packets into normal race packets. Live For Speed would think that it is connected to a normal Live For Speed server like a normal client. You'd have to reverse engineer the LFS packets to send to correct information, but it can be done :).
You could also get commentary over the same application.
the_angry_angel
2nd June 2006, 16:55
Anyway, you could use the same setup. The main application would call in Live For Speed, and the application would simply get the InSim packets and get the players position from there. Then you could send packets to Live For Speed by translating the InSim packets into normal race packets. Live For Speed would think that it is connected to a normal Live For Speed server like a normal client. You'd have to reverse engineer the LFS packets to send to correct information, but it can be done :).Over complicated imho.
If you're going to reverse engineer the LFS server <-> client protocol you might as well just hack some packet rewriting in to trick the connecting clients into believing they're connecting directly to the server, and rejecting any requests to be "full" racers, instead of spectators. Plus this solution would require all "real racers" to have InSim clients to talk to a "master distributor" (which does all the magic).
It assumes I've understood you correctly...
Does anyone else get a sense that we're going round and round with this discussion? If anyone has started reverse engineering the server <-> client protocol, perhaps we should all pool our resources and actually make this possible (third party)?
Squelch
2nd June 2006, 17:36
Over complicated imho.
If you're going to reverse engineer the LFS server <-> client protocol you might as well just hack some packet rewriting in to trick the connecting clients into believing they're connecting directly to the server, and rejecting any requests to be "full" racers, instead of spectators. Plus this solution would require all "real racers" to have InSim clients to talk to a "master distributor" (which does all the magic).
It assumes I've understood you correctly...
Does anyone else get a sense that we're going round and round with this discussion? If anyone has started reverse engineering the server <-> client protocol, perhaps we should all pool our resources and actually make this possible (third party)?From my clumsy investigations the same data that is transmitted over the server <-> client channel is the same data within a replay. I have tried to pipe a current temp replay into another client. The replay showed up but cannot be played because the final finish posiitions are required. I've tried a little hacking to fool it into submission but no go so far.
If the temp replay data can be broadcast, and a replay file can be made to look complete to the client, this might achieve the end goal. The user just needs to start the top file in the list. The data is asynchronous, and only the positional information is sent on top of the username, setup etc. Hacking the complete data stream may be complicated or even not even required.
sdether
2nd June 2006, 17:43
The question with the data stream is, how active a role does a "spectate" client have in the server communication. If it's simply listening, then you could set up a proxy that multi-plexes the spectate packets to any number of listeners, a la HLTV.
If the spectate client still has to do a lot of handshaking, but that handshaking is deterministic (i.e. it's the same each time), the proxy connects with its first client and it's all that the server really sees and voila you get your handshaking. All clients beyond that would connect to the proxy, and get the duplicate server data stream, but their responses would be thrown away, since they'd be the same as the responses from the initial client that's really talking to the server.
If the chatter is non-deterministic, then we're probably screwed and only dev involvement (by either creating the proxy or changing the spectate data stream) could help.
In the end, i think that LFS TV needs to be in-simulator, not a video feed, but I think that's generally agreed on anyhow.
the_angry_angel
2nd June 2006, 18:43
Hacking the complete data stream may be complicated or even not even required.Having not poked around much, I assumed that there maybe some fundamental difference between the replay and server <-> client communication, which is why I'd not really thought about this solution. Definately worth poking more at though...
Perhaps we could use this, and its just a case of replicating the initial handshaking, to get it to play nicely?
The question with the data stream is, how active a role does a "spectate" client have in the server communication. If it's simply listening, then you could set up a proxy that multi-plexes the spectate packets to any number of listeners, a la HLTV.
If the spectate client still has to do a lot of handshaking, but that handshaking is deterministic (i.e. it's the same each time), the proxy connects with its first client and it's all that the server really sees and voila you get your handshaking. All clients beyond that would connect to the proxy, and get the duplicate server data stream, but their responses would be thrown away, since they'd be the same as the responses from the initial client that's really talking to the server.I've got a few captured frames of tcp data, to start debugging this (or at least I did a few versions ago). Only with my client however. From my hazy memory I think that all the connections were "similar" by default.
If the chatter is non-deterministic, then we're probably screwed and only dev involvement (by either creating the proxy or changing the spectate data stream) could help.I think we'd have to fiddle with the stream at some stage tbh. The client at the other end needs to think that its directly connected, and have no knowledge of the proxy. This would only hold if the assumption that the per-server users limit is hard coded into the client. I imagine it barfing pretty badly, if a client joined and saw a pile more people (a la HLTV), than expected.
Is it more of a question as to which way to go, if this is attempted?
We trick the normal client into thinking its on the server, as it normally would be (by rewriting packets)
We go the HLTV route, as in you can see all the other spectators; and allowing inter-spectator chat? This would require a hell of a lot more work, and possibly not work if theres a hardcoded server limit, within the client.
Use the replay data, and "fake" the initial and final handshakes?
Any other ideas?Technically both the first two ideas are the same, multiplexing, with a twist.
In the end, i think that LFS TV needs to be in-simulator, not a video feed, but I think that's generally agreed on anyhow.Hopefully... we've been banging on about it for long enough :D
The other question is, do we bother attempting it?
Squelch
2nd June 2006, 18:59
Hopefully... we've been banging on about it for long enough :D
The other question is, do we bother attempting it?It will:-
Enable team events to be viewed without server load
Enable multiview cockpits to work without bandwidth issues
Allow more spectators than available slots
Events based around LFS can be broadcast/viewed by real spectators
Enable non regged users to view "Full" races (would require a light client)I think it's worth doing.
sdether
2nd June 2006, 19:27
It will:-
Enable team events to be viewed without server load
Enable multiview cockpits to work without bandwidth issues
Allow more spectators than available slots
Events based around LFS can be broadcast/viewed by real spectators
Enable non regged users to view "Full" races (would require a light client)I think it's worth doing.
I agree with everything you say, but doubt the last will come to pass. The issue being that until you reg, the content is encrypoted, or at least otherwise not accessible. That's why demo racers can't watch replays of races with cars and tracks they don't have (ok, i admit, i don't know for sure this is true.. is it?)
Squelch
2nd June 2006, 19:42
I agree with everything you say, but doubt the last will come to pass. The issue being that until you reg, the content is encrypoted, or at least otherwise not accessible. That's why demo racers can't watch replays of races with cars and tracks they don't have (ok, i admit, i don't know for sure this is true.. is it?)Yes it is the case.
I was thinking along the lines of the car viewer which allows all cars to be viewed regardless of reg status. If the rest of the track can be viewed in a similar way via a replay only setup, it would be nice. As there wouldn't be any connection to the master, nor would there be any requirement for the client to send data, registration shouldn't be needed. If it's possible, the full program could allow replay view.
Much further down the line that one.
Spudster
2nd June 2006, 20:53
LFSTV should be IMO like this:
faster111
2nd June 2006, 22:02
cool yes it should be and they could watch us race and at the end but the lfs website on .
Spudster
2nd June 2006, 22:05
cool yes it should be and they could watch us race and at the end but the lfs website on .
err...what????? :pillepall
i didnt understand that sentence at all :shrug::shrug::shrug:
traxxion
2nd June 2006, 22:50
but = put I guess
Guess he means that after the coverage has ended there should be "www.liveforspeed.net"
Anyway, I really like that idea mate, looking good
Dygear
2nd June 2006, 23:34
Can more then one InSim client connect to the server at once?
the_angry_angel
2nd June 2006, 23:51
Can more then one InSim client connect to the server at once?
Only via a relay, either the "offical" LFSW relay, or the third party one written in python, thats banging around.
I think it's worth doing.Me too :D Unfortunately, like sdether hints at, some of your ideas will need the dev's on board. Considering the silence, I guess it would be safe to say that either its already been done, or they're not interested at this stage *shrugs*..
Dygear
3rd June 2006, 00:20
Devs? Please don't tell us you don't care about the non racing community. We can call the specator client Love of Speed.
"That's open to any one who wants to use it, I'm letting Love of Speed just fly out there, I don't want any copyright of it".
the_angry_angel
3rd June 2006, 00:35
Devs? Please don't tell us you don't care about the non racing community. We can call the specator client Love of Speed.
"That's open to any one who wants to use it, I'm letting Love of Speed just fly out there, I don't want any copyright of it".
Now, now. I didn't imply that they didn't care. Well....maybe I did. Which was incorrect. What I meant was that its probably not a priority right now :)
Dygear
3rd June 2006, 02:40
Now, now. I didn't imply that they didn't care. Well....maybe I did. Which was incorrect. What I meant was that its probably not a priority right now :)
Yea, sure ya did, we all know what you ment.
Yea, I think I'll stop now, don't want to start a dev fight in the programmer forums. They'll never come around the mod development then :(.
I'm installing Ubuntu while I'm typing this to you. Now your thinking "Ya so what, you have a lap top or your using a second computer, big deal". No, I'm installing Ubuntu on THIS computer, the computer I'm using to type into the input box is also going about formatting one of my hard drives. I really think this is the best thing that has happend to installing an OS. They have the LiveCD and if you like the OS you can then install it to your hard drive, while still using the LiveCD part. I've got to say, I'm really very impressed.
Yaamboo
3rd June 2006, 10:37
LFSTV should be IMO like this:
Hehe, my pic with that added channel info ;)
f1r3b4ll
10th July 2006, 14:44
Oh dear god why didn't we think of this?!?!!!!111oneoneonetwoeleventwelve!! Even better this can be done on 1 PC, rather than 2.
:x (yes, I'm a little tetchy today).
Edit:
I know that it probably sounds harsh, and I apologise, but I think you've missed the discussion on this entire thread and / or probably not read it.
I'll remember not to bother contributing to further posts then
SamH
10th July 2006, 15:01
I'll remember not to bother contributing to further posts then
Or at least.. not without first reading the thread you're contributing to :)
(which is clearly the point being made in the post you quoted, in point of fact)
the_angry_angel
10th July 2006, 15:21
I'll remember not to bother contributing to further posts then
I didnt mean to put you off posting, and certainly not contributing. Please, if you have a suggestion bring it up to the table, call me a moron and tell us your views. I'm really sorry I was tetchy, and I'm really sorry I took it out on you, but I've read your comment multiple times in multiple places, by multiple people and I was fed up; even so thats no excuse, and I can only apologise.
f1r3b4ll
10th July 2006, 15:50
lol its cool, and i did read the first post, just didnt understand that you lot were wanting a client side program for specating races.
vBulletin® v3.8.6, Copyright ©2000-2012, Jelsoft Enterprises Ltd.