Scawen, blue and red colors on Russian flag aren't radioactively bright. Blue is like that in Finnish flag in LFS, red is like that on Chech flag. I guess, the same applies to Slovenian flag.
IMO, it wasn't a pure racing sim even that time. There were wreckers going wrong way (before the wrong way kick was introduced), there were those who dragged. Drifters were there in LFS 0.2, cruise-like servers appeared yet in 2003 after S1 release (C&R then) and became kinda mainstream in 2006.
I can't say that racing is cleaner or dirtier than that time. I clearly remember that as soon as the serious people bought S1 licenses, most of the demo hosts became a cesspit (in 2004 I used to go there to practice agressive driving ). But in S1 and S2 there were good and bad races all the time. In public hosts once you would meet a group of insanely fast drivers. Another time there would be a couple of sly wreckers.
LFS is like a growing city: once it was a group of more or less similar interests. Now there are more people and more niches.
SamH: maybe start the first race as a qual instantly, without waiting? And then let join to everybody who wants? That would even look more naturally, as people who are quicker will be able to change setups, send sets etc.
Search "mysql erorr 10061" gives hints to what may happen: in MS Windows it is when a port is closed or a firewall. In case of web servers, I guess it means the port is closed.
Let me reply basing just on my memory: In LFS settings you can set camera heading and pitch relative to car body. So I assume they are relative to car body as well.
Found it. I've talked to Knu, the guy who found this. That was very helpful from him to make the research.
Here I'll make an irresponsible suggestion to Scawen to modify network code. That's the simplest solution to the currest situation that I see.
1. Let a client send retrospective data to the host, i.e. not only current position, but also from the middle between current moment and the moment the previous packet was sent. That increases the upload ratio twice, but upload isn't a concern for a client. Host's download will double, but host's main concern is upload, which will remain the same (clients don't need retrospective info).
2. Let dedicated host provide retrospective data (storing just NLP/MCI info), maybe half a second earlier than current moment. This way the InSim on dedicated host's side can see twice more detailed information.
3. Last thing (don't believe it may happen, but will tell) is to calculate physics in a fat dedi (with cars' properties and tracks). It would make it heavier and CPU consuming, but making reliable data for host's controlling software.
Ok, well, I'll better go make some code instead of public speech...
[edit] 0. I want everything in MCI to be in 3D, just like in OutSim
Interesting thing. Was it discussed in this section? http://www.lfsforum.net/showthread.php?t=33360
Personally I'd prefer a "fat" dedicated host with physics calculations, just because interpolations are at average physics-based estimations are more exact and it is almost the same what the players see themselves.
Learning things described in that thread really dissapointed me. Now I write an MCI wrapper in PHP that would interpolate positions between "real" packets and take into account the time of packet delivery. I HOPE, just hope, it won't consume much CPU.
[edit] I set an InSim connection to LFS with Interval parameter equal to 50, which means an MCI packet every 50 ms. But in fact I receive a packet each 60 ms. Guess what I get if I try to calculate speed or acceleration by XYZ?
Compare dX/50^2 and dX/60^2 where dX is equal in both expressions. First differential (mathematical) is greater than expected by the factor of 1.2, second diff is 1.44 times greater! According to these calculations, a free falling car accelerates at 11.78 m/s^2 (first diff) or 14.4 m/s^2 (if you take second diff).
This made me feel really paranoic for an hour or two, because I searched for errors in the calculations that produced incorrect results, but were correct. I spent much time before I finally dumped all the data in tabbed txt and reproduced the calculations in Excel, and they made incorrect results as well (and only after that I noticed the 60/50 and (60/50)^2 "scaling" factors in the figures).
So, apparently the interval in LFS is taken as your parameter + 1ms. If Scawen reads this, please document this thing or fix it.
Well, AFAIK, virtual machine can be limited in CPU time. For example, you not more than 10% CPU for a particular VM. If the host hardware has 4GHz CPU, then 10% of it will be 400 MHz, and your virtual machine can't exceed that.
Khm, you apparently don't know what you are talking about. By definition, virtual private server is a virtual machine, and that's what I'm searching for.
I'd like to find a VPS hosting somewhere in Europe or US (in one that would have reasonable latency with Europe). Can anybody recommend any particular company?
One thing that is important is - no faxing or other paperwork for non-EU-US citizens, everything done online for everybody.
(Why I don't aim at 500servers is simpe: I need to run additional software, and 500servers do not provide a virtual machine).
Another version, now with Livedb plugin, a "database", which is actually a set of arrays that copy data from some packets. Tested just to function in general. As I've seen, it writes data that seems ok. To test it more, I've added outputting of the whole db into db.log file.
So, Dygear speaks of a special addition that may allow writing text in more readable or more human style than me. I, on the contrary, implemented the simplest interface, just a copy of InSim structures and names, and the values are InSim constants. Consequently you need to know InSim well to navigate well in this db. It's not about my style or minimalizm. I just want to make it work as quicker as possible and leave making a comfortable interface for later. The good point is that knowledge of my db is compatible with InSim, and by learning to work with one thing you learn the other one.
P.S. In the version published yesterday, I've found and fixed an error: unpackStructure didn't work as was supposed with complex multi-level arrays.
["Connection"] element is a reference to $this->livedbConnection.
Though, this way looks ugly and requires more code than get_player_name(), suggested by Dygear. I think, I'll stick to references, because right now a standalone function needs to know the objects or to use a general naming convention.
Right now it works the following way: $conn is a Connection class object. $conn->plugin is an array of plugins, for example $conn->plugin["Speaker"] is a Speaker class object. In each plugin object there is a reference to $conn and to $conn->plugin to shorten the queries to them.