diasurgical / devilutionX

Diablo build for modern operating systems
Other
8.03k stars 791 forks source link

[Question] Will be possible to add 60FPS? #953

Closed Marcelo20XX closed 3 years ago

Marcelo20XX commented 3 years ago

Hi guys! thank you for the awesome work on this project. As for the question will there be plans to add 60 FPS to the project down the line? a mod called Beelzebub already has it implemented but it comes with a lot of custom changes, thank you in advance for any response

Trihedraf commented 3 years ago

There is already unlocked FPS in the game. If you add the switch -f when launching from the command line it will display your fps in the top left.

screen00

Marcelo20XX commented 3 years ago

That is not what I mean, unlocked FPS for the mouse pointer does not equal to true 60FPS for the game and animations. As a typed before, Beelzebub achieved this via frame interpolation but since its closed source one can only guess what they did change...

AJenbo commented 3 years ago

I don't believe Beelzebub has frame interpolation, it has smoother camera update and things like floating numbers. Things like that can eventually be done but require some rather major rewrite of the render. We also have smooth scrolling of texts and some other parts.

galaxyhaxz commented 3 years ago

You can't really have "true" 60 FPS. The game may be drawn at any frame rate, and scrolling may be updated quicker, but animations are 20 FPS unless you re-render all the graphics with more frames. Frame Interpolation sounds like a cool feature, one used in the Resident Evil port for Nintendo 64. Belzebub/tcherno just draw at 60 FPS and as Ajenbo said update scrolling every frame instead of 20 FPS.

UPDATE: added MVG's video where he explains frame interpolation. It might be possible to generate new assets with this technique, to add 3 frames in between for an even 60 frames.

qndel commented 3 years ago

@AJenbo it definitely has something, animations feels much more smooth floating numbers aren't that hard, I made them for infernity after all (infernity never stops giving xDD)

AJenbo commented 3 years ago

Record it count it, and compare it. Some animations are sped up and could maybe give you 30fps when played back, but that would only apply to a few different animations. Async animations might also give the illusion of higher fps.

Try running devilutionX at 30 or 60 ticks and see how that feels in comparison.

Marcelo20XX commented 3 years ago

Yeah I noticed too that animations maybe a bit faster on Beelzebub so they didn't interpolated but overall it looks very smooth and most importantly very easy to the eye. Because 60FPS cause less visual strain than 20FPS...

AJenbo commented 3 years ago

Well game speed is adjustable in devilutionx so you can increase it to something similar if you prefer.

For now it doesn't really make sens to have an issue to track such a remote target.