Opened 10 months ago

Last modified 5 months ago

#12750 new defect

REMORSE: Enemy AI does not exactly match original

Reported by: mduggan Owned by:
Priority: normal Component: Engine: Ultima
Version: Keywords:
Cc: mduggan Game: Crusader: No Remorse

Description

Although the NPC AI in Crusader: No Remorse ScummVM is workable, there are some small differences in the way they act relative to the original game. This causes them to sometimes behave in strange ways like rotating back and forth.

The causes of this are currently unclear, but probably due to differences in the AttackProcess or the way that some NPC flags get applied (eg, are they applied before or after the relevant animation). I haven't yet tracked down all the differences when compared with the disassembly.

Change History (3)

comment:1 by Thunderforge, 6 months ago

Can you give some examples of "some small differences in the way they act relative to the original game"? And are there ways to reliably reproduce them (savegame, sequence of actions, etc)

comment:2 by mduggan, 5 months ago

A good example of this can be found by starting a new game in No Remorse difficulty level. The first guard will walk up to his position, then back, then draw his weapon and turn to attack the silencer.

  • In the original after he turns, he just fires at the silencer repeatedly.
  • In ScummVM after he turns, he steps forward, draws again, and finally starts firing.

This should be an easy enough case to trace through so I can work out why he's deciding to move forward and inspect that code closely.

comment:3 by mduggan, 5 months ago

I just pushed a few fixes which make that first guard behave *nearly* identically in dosbox and scummvm. I am still not sure why he pauses on a different angle during the initial pace in dosbox, but that seems to be part of PaceProcess rather than AttackProcess. I'll keep looking at it.

Note: See TracTickets for help on using tickets.