A collision doesn't occur just because pixels are overlapping.It surely can, and is the most sensible way to handle it in various situations (like the one I've already listed). Flash's hitTest takes a simple boolean argument to determine whether it uses per pixel hit detection or a bounding/hit box. Example, obviously that would be somewhat lame/inaccurate if you were just running the detection based on a rectangle. And unless BYOND added some highly functional rotation features, it would be failish to try and pull off hit-box based hit detection in most situations.
The problem is not that the questions Lummox posed cannot be answered, the problem is that there is rarely a single answer that would satisfy everyone. Saying "bump is called on the lower atom" is easy, but it has consequences that aren't desirable.I listed several possibilities. If it just returns a list then the developer can handle it however they want. As I said, he should play around with it to determine which way works best, the other alternatives should be easy for developers to handle, this is no different than half of the features currently implemented.
Another big question is: how does the default movement scheme work and what new procs need to be added to allow for customization of movement?It shouldn't need any new procs and should work almost identically to how it does now. It also shouldn't need anything additional for customization, but should automatically become 32x more customizable. The only real question about the base movement is how to maintain speed without needing to destroy the game by altering tick_lag.
Built-in support for client side lighting is the better solution. You'll have this problem whether pixel movement is built-in or not.This depends quite heavily on how you're calculating lighting. A global lighting system shouldn't benefit from client sided processing. And there's a chance local lighting would just make the clients lag themselves instead of the entire server - yielding similarly fail results
The server is still handling the movement, so it'll still have increased CPU costs above the basic tile-based, 10 fps game.Why? You're still only moving once per tick
To some extent this is a non-issue.From the sounds of it, your pixel movement is wasting 10% CPU per player, even with optional efficiency systems enabled. Sounds like a pretty big issue to me.
You will always be able to find a large enough set of features that cannot all be feasibly implemented in the same game.And that number of features here is 2?
BYOND games will run unto this problem earlier than otherThe problem is that BYOND runs into it on the most basic of features, like movement? Unity can run such features at 1,000 FPS (while rendering a fully 3D scene), but BYOND can barely handle them at 10?gamesengines, but its an issue that any game development environment can have.
A collision doesn't occur just because pixels are overlapping.
The problem is not that the questions Lummox posed cannot be answered, the problem is that there is rarely a single answer that would satisfy everyone. Saying "bump is called on the lower atom" is easy, but it has consequences that aren't desirable.
Another big question is: how does the default movement scheme work and what new procs need to be added to allow for customization of movement?
Bravo1 wrote:
Built-in support for client side lighting is the better solution. You'll have this problem whether pixel movement is built-in or not. The server is still handling the movement, so it'll still have increased CPU costs above the basic tile-based, 10 fps game.
To some extent this is a non-issue. You will always be able to find a large enough set of features that cannot all be feasibly implemented in the same game. BYOND games will run unto this problem earlier than other games, but its an issue that any game development environment can have.