So how significant is this milestone, relative to the big scheme? It sure sounds like great progress, but I can't tell how great.
This is a major step for getting the real physics engine integrated into the engine. It's one of the big things holding back more progress. Code-size-wise, Physics and AI are a couple of the single biggest pieces. And Physics is especially hard because it takes so long to re-wrap my brain around it every time I have to do something major. So progress of any kind is pretty monumental already.
I'm really pushing hard to get the physics engine integrated. Ships, proper water, lava, fire, falling trees, and even character animation are sort of all depending on this. Even things like crafting and the magic system depend on how well this goes. It's kind of a cornerstone of lots of things.
Tonight's update: (actually cut and pasted from the JME forum so may be a little more technical than even normal)
Just added some support for adjusting the up and down channel packet loss rates. I can move a slider from 0 to 100% loss and so packets are randomly dropped within the threshold. This is good because sometimes Math.random() is bursty and you’ll lose a whole bunch of packets in a row… just like in a real high-drop connection.
At 50% drop rate with a minimal amount of objects moving, the simulation is still playable. There is some jerkiness when there is a stream of drops but for the most part the protocol handles it. I will note that there is no latency built in yet… that will make things much worse because the latency will eat up most of the view-delay window that currently allows non-visible recovery for a few lost packets.
At 15% drop rate, it’s hardly noticeable at all.
At 75% drop rate, you can still play but it’s very frustrating as there is a lot of teleporting. I certainly wouldn’t want to do any combat that way.
It will be worse with latency.
After I add simulated latency adjustment (and requisite view delay sensing) then I may post a video.
Tomorrow I hope to add the latency tests with GUI controls for playing with different latency. I will also add the connection stats support so that the server and client know how well a particular connection is doing (or not) hopefully with some kind of nice visual. This is also necessary to figure out how far to lag the visuals to keep things looking relatively smooth. Assuming I get all of that done tomorrow night then I will probably make and post a video and also post a new release of the prototype up to the donators group.
Then I could actually make a client server version for testing but after all of the above, I'll consider networking basically done... at least enough to really integrate. So I'm not sure yet if I'll bother creating a true multiplayer version of this prototype unless I see some inconsistency in my tests that I think only a real network connection will properly test. Though there is a part of me that wants to do it anyway so that we can shove each other around.