Pixel movement limitations? in Design Philosophy
As I mentioned before, The Planet's server of HU2 is running native pixel movement at only 20 fps. It is essentially 4 times as responsive as it was with tile based movement, due to the fact that I had already overridden BYOND's flunky movement systems. Aside from 2 quick popups that you have to close, you can instantly move around after logging in (double tap to sprint), so getting a feel for pixel movement over a network shouldn't really be a problem. There are currently ~50 people online, and practically no network lag issues.
Do you use key repeat events for movement? Or just key press and release events?
Key down/up & a movement loop. Even when the game was using tile based movement, it had such a system implemented. The default repeat macros are so broken when used for movement.
Or was that before bandwidth profiling was available?
A higher framerate will lower the latency.
As I mentioned before, The Planet's server of HU2 is running native pixel movement at only 20 fps. ... There are currently ~50 people online, and practically no network lag issues.
I tried HU2 again. But all I saw was movement there's nothing else going on, how's it like when there's actual fighting involved?
When I logged in and walked around the game was extremely choppy.
I assume you were holding down the movement keys, and not tapping them?
Could you try toggling hardware mode through the pager and joining again to see if that makes any difference?
At the cost of burdening the host's connection. A 120ms player at 10fps will have his commands delayed one server tick while a 120ms player at 30fps will have his commands delayed by four ticks. What's worse, being behind by one step or four steps?
* it still fails
I'm not sure what "120ms player" means.
The number of ticks shouldn't matter. If one step is 32 pixels at 10 fps and 8 pixels at 30 fps, being one 100 ms tick behind is the same as being four 33 ms ticks behind.
The difference is with tile movement BYOND is still able to animate the slide from one tile to the next. With pixel movement the atom will appear to leap however many pixels were lost between updates. Sliding from one tile to the next certainly looks a lot better than leaping 32 pixels.
If BYOND is TCP protocol based, shouldn't my movement be "acted" upon later, when I lag?
Just thought about that after I tried to jump three times in 'A Miner Adventure' and it only jumped twice.
Hrm. I'm still a bit wary about all this; making a fast-paced action shooter really doesn't seem like one of BYOND's strengths. Maybe I'm just worrying too much though. If I do attempt this I'm going to have to take a step back and figure out how to effectively do this without sacrificing gameplay for performance (or the other way around, maybe?).
I'm not familiar with networking, but isn't this also something that BYOND can improve internally? I'd assume games like WoW, despite handling far more than a BYOND game, run a lot more smoothly due to optimized networking or latency handling. Maybe there are optimizations BYOND can make to make experience smoother in certain styles of games.
Wait, can't we program it so that the player do not receive packets from players X pixels away from the player?
I also thought that resources were saved on the client after the player loads them once.