[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/bbcode.php on line 483: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead
[phpBB Debug] PHP Warning: in file [ROOT]/includes/functions.php on line 4688: Cannot modify header information - headers already sent by (output started at [ROOT]/includes/functions.php:3823)
[phpBB Debug] PHP Warning: in file [ROOT]/includes/functions.php on line 4690: Cannot modify header information - headers already sent by (output started at [ROOT]/includes/functions.php:3823)
[phpBB Debug] PHP Warning: in file [ROOT]/includes/functions.php on line 4691: Cannot modify header information - headers already sent by (output started at [ROOT]/includes/functions.php:3823)
[phpBB Debug] PHP Warning: in file [ROOT]/includes/functions.php on line 4692: Cannot modify header information - headers already sent by (output started at [ROOT]/includes/functions.php:3823)
descentchampions.org • View topic - Old School Mouse
Page 1 of 1

Old School Mouse

PostPosted: Fri Nov 22, 2013 9:53 am
by Drakona
I've heard from some of the old school mousers that the mouse in Rebirth isn't right -- it's sluggish and hard to handle. I am attempting to fix that.

The problem -- in math/programmingese -- is that raw mouse movement per frame is translated into rotational acceleration. Descent has always done it this way, which is why the mouse was more responsive at lower frames: you can move it farther per frame, so you get a higher rotational acceleration. Since the physics engine already takes framerate into account, higher acceleration just means faster movement. Rebirth hasn't changed this mechanic (mostly . . . it's complicated.), but has given you a much larger sensitivity slider to help compensate.

The problem -- in pilotese -- isn't with the maximum turning rate. That's capped. Whether you're using mouse, keyboard, or joystick, you can do a 360 in the same amount of time. The problem is with the impulse -- with how fast you can start turning, how fast you can change direction, how fast you get up to speed in the first place. Try making a very small turn with mouse and with keyboard. Keyboard kicks you off very fast, while mouse is sluggish. This means keyboard players and low-calibrated joystick players have an advantage in making small snap turns.

Like the homers, the problem with frames dependent behavior is figuring out what to peg it to. In this case, I went with 20 FPS, to err on the side of better control. That was just kind of a guess -- I was a mouser in the D1x era, and I think I sometimes ran at 20. It was a tradeoff with overall control, but I remember 20 being the low end of what I liked.

Anyway. I had planned to do more analysis on this one -- take some demos of different controls, in Rebrith and in Dosbox Descentr 1.4a -- try to get the impulse pretty even between all the different controls. But I must admit, this one's kind of gotten away from me. When I went to get some feedback from Behemoth last night on whether I was even tackling the right issue, he fell in love with the new build right away and more and more people started playing it.

So . . . here it is. It is still experimental. I would like to do more analysis to make sure everything's fair, but I must admit -- the read I'm getting from the piloting community is that it is, and that's really good enough for me. I'd also like to see if I can get some feedback from Birdseye -- last I heard, the main issue holding him back from playing is that the mouse was "wrecked" in Rebirth. So I reserve the right to fine tune this so it feels right . . . but I must say, Behemoth's take that it does feel right (and mine) counts for a lot.

So yeah, this wasn't intended for release yet. But I'm also not going to make you guys wait, as it was clearly very BADLY needed.

I'll put together a D2 build shortly, and a source code release and a patch for the Rebirth guys once I'm sure this is the right thing to do. In the mean time, this thing's already out in the wild and people are playing ladder matches with it . . . and I can't exactly stop you. ;) So here it is.

D1:
Source:


Same story with all my mods -- until we're sure as a community that this isn't a cheat, it remains incompatible in multiplayer with anything but itself. Yes, I know we have too many executables. It's a temporary situation, honest.

To use it, put it in your D1 Rebirth directory. On the Options / Controls screen, enable the mouse control style "Old School". You will probably also need to turn your mouse sensitivity down a couple notches. In the (very unlikely) event that you find you don't like it, you can set the mouse control style back to "Rebirth", which is unchanged.

Feedback is appreciated, particulary on whether this is fair, on whether it "feels right" (if you grew up on the old mouse).

By the way, I know two core gameplay changes in as many weeks is too much change. It isn't my intent to mess with the game constantly -- just to fix broken things quickly. This is the last core gameplay issue I'm aware of . . . except the elephant in the room, peer-to-peer/hosting-requires-configuring-your-router.

-------------

TLDR:

Think the mouse in Rebirth is sluggish and broken? Me too. Here's an experimental fix that tries to make it behave like d1x at 20 FPS. Let me know if you like it, and if you think it's too good, please speak up.

D1:
Source:

Under mouse controls style, enable "Old School", and turn your sensitivity down a bit. You can only play against other people running this mod.

Re: Old School Mouse

PostPosted: Fri Nov 22, 2013 11:17 am
by Duper
I haven't tried your mod yet as I'm at work ..er.. on a break ..*wink* wink*

I had an old serial mouse WAAAayyy back in the day. the drivers had a calibration phase during install. It took both acceleration and ballistics into account as well as polling speed (iirc). The thing could keep up with turn rate of a sidewinder stick, which was really fast back then but not snap turn. That was the orb.
I'll give this a go later tonight (even though I use a stick these days). ;)

Also, back then with most mice, you had to cap at 30 fps (just for ref).

Re: Old School Mouse

PostPosted: Fri Nov 22, 2013 1:39 pm
by Drakona
Update:

The 20 FPS sensitivity seems to be pretty overkill, and people are having to turn sensitivities way down in base windows / mouse drivers. Which is good, I guess. Practically everyone had them cranked to unreasonable levels before. ;)

Here's a revision that lets you control that on a slider. In the Sensitivies & Dead Zones screen, fiddle with the slider labeled "Old School Mouse / Base Sensitivity". Cranked all the way to the right is how the old version was. All the way to the left is equivalent to base Rebirth.

D1:
Source:

. . . yeah, no D2 just yet. I think this version is pretty good, though, so soon.

Re: Old School Mouse

PostPosted: Fri Nov 22, 2013 4:08 pm
by Ryguy
I will have to try this when I get home. I felt mouse was unusable back in the day, so I'll be interested to see how it feels compared to the mouse settings I use now.

Re: Old School Mouse

PostPosted: Fri Nov 22, 2013 10:48 pm
by bahamut
Thanks so much drakona, we've been waiting for stable mouse control for a while and you helped us reach it; I'm looking forward to plenty of plasma/fusion dogfights now!!

Re: Old School Mouse

PostPosted: Fri Nov 22, 2013 11:34 pm
by Duper
Hm. Seems legit!

Controls are smooth with the Rebirth selection. Sputtery with old school.

Re: Old School Mouse

PostPosted: Mon Nov 25, 2013 1:08 am
by Drakona
It seems to be widely played, and no one seems to think it's a cheat. So here's D2:

D2:
Source: