clipmove / NotBlood

Gameplay Mod For NBlood
https://github.com/clipmove/NotBlood/releases
59 stars 3 forks source link

Small Enemy Hit Reg Issue #106

Closed snekyo closed 5 months ago

snekyo commented 5 months ago

I feel like hitting smaller enemies is much harder than in other source ports, like Nblood. Might be going crazy or not, but it can be very difficult to hit them. Even if this is the exact same in every other source port, I think it might be a good idea to improve this.

tmyqlfpir commented 5 months ago

Hi, which enemies are considered difficult? Have you tried changing autoaim settings? Demo verification confirms that the hitscan logic is exactly the same as DOS, including the autoaim logic.

snekyo commented 5 months ago

I mean the smaller enemies like hands, spiders, and rats and such. I have autoaim disabled. I guess I am going crazy then lol.

tmyqlfpir commented 5 months ago

The aiming logic and behavior is the same as NBlood (which is game tick accurate to DOS), NotBlood does not change that.

There already exists an option to only autoaim for fish and rats. I recommend you use try that feature.

snekyo commented 5 months ago

Uh, just wondering, what do you mean by "demo confirmation"? By the looks of things, none of the demos that play on Blood's menu feature any small enemies. Did you guys make a new demo on DOS OUW Blood and bring it into NotBlood?

tmyqlfpir commented 5 months ago

Demo confirmation can be tested locally by using the command line argument -validate.

snekyo commented 5 months ago

I can't check right now, but what does it do? Does it allow me to choose a demo?

tmyqlfpir commented 5 months ago

It's a unit test to ensure that NotBlood is demo accurate to DOS.

snekyo commented 5 months ago

Well, I tested it and it goes by really fast. It's impossible to see specific issues when a level is over in 5 seconds.

tmyqlfpir commented 5 months ago

If it completes without error then it means NotBlood/NBlood is accurate to the original DOS version's game logic regarding AI, physics, collision, hitscan, autoaiming, etc.

snekyo commented 4 months ago

Yes, but it's possible that an enemy could get missed like a spider and it would be hard to tell.

tmyqlfpir commented 4 months ago

Random seed, position and health values are captured from DOS, and compared. If a single bit is not synced it will produce an error report. As everything in the game uses the random seed value, it is a good variable to use to ensure the gametick is 1:1 with DOS. This includes AI direction, random weapon spread, etc.

snekyo commented 4 months ago

Ah, so say, if an enemy doesn't die, a message will be printed?

tmyqlfpir commented 4 months ago

Dying enemies will call a lot of functions that in turn call upon the random seed generator, which due to entropy will cause a desync. Even blood particles will randomize their vectors, or their death announce sfx will use a random selection across various sound effects. It's virtually impossible for a desync to happen across 11 hours of demo verification using this method.