Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
  • 0
RoboticRocketeer

Wondering Why Id Monsters Double Each Walk Frame

Question

While exploring the DECORATE definitions for monsters, I noticed each walk frame occurs twice consecutively, in nearly every monster. For DoomImp:

 

Quote

TROO AABBCCDD 3

 

My first reaction was to wonder why not use something cleaner like:

Quote

TROO ABCD 6

 

Then I theorized that Id did this to split each frame into two half-length segments, to allow a monster to change direction more rapidly... so it won't be as locked into a particular course.

 

Is that true, or am I ignorant?

Share this post


Link to post

8 answers to this question

Recommended Posts

  • 3

In the original game, monster movement wasn't interpolated. Traveling more often, but at less distance = less jerky. Also better maneuverability in tight spaces.

 

If they had twice as many sprites for walking, they'd make it so that each movement is accompanied by a change of sprite, but that would require more work and more memory to store the graphics.

 

Monster aggression also depends on how often you call the movement codepointer. I'd say it's all tied together, but the smooth movement was probably the main reason.

 

Edited by Da Werecat

Share this post


Link to post
  • 1
2 hours ago, bzzrak said:

Just a little (DEH) question, if I combine all of the "split" frames, will I get any side effects? Sounds like a good way of getting a few extra states.

If all frames in the animation loop have the same duration and call the same function (which is not the case with monsters like Arachnotron / Cyberdemon / Mastermind, who call a different function on certain frames to play stomping sounds), then you can combine the frames while keeping the duration the same (so for example, "AABBCCDD 3" will be changed into "ABCD 3", and NOT "ABCD 6"), and the resulting change will be purely cosmetic (faster animation, seemingly jankier movement), whereas all gameplay-related characteristics of the monster will remain the same (movement speed, aggressivity, exact walking pattern, RNG-dependent actions, everything).

 

You could even change the loop "AABBCCDD 3" into just "A 3", or "YXOIKBNSDHFUQN 3", and there would still be no gameplay change, only appearance change.

Edited by scifista42

Share this post


Link to post
  • 0

To make the walk sequence appear smoother.

 

TROO ABCD 3 - erratic walk

TROO AABBCCDD 3 - 'normal'walk

TROO AAABBBCCCDDD 3 - slow walk

 

And, of course, the duration can be altered as well.

Share this post


Link to post
  • 0

Probably also a remnant from a time when Doom was meant to run at 70 fps #inb4Blastfrog

Share this post


Link to post
  • 0
16 minutes ago, Da Werecat said:

In the original game, monster movement wasn't interpolated. Traveling more often, but at less distance = less jerky. Also better maneuverability in tight spaces.

 

...

 

Monster aggression also depends on how often you call the movement codepointer. I'd say it's all tied together, but the smooth movement was probably the main reason.

 

Thanks. This answer also let me infer what interpolation means in reference to monster sprites, too. Now it all makes sense.

Share this post


Link to post
  • 0

Just a little (DEH) question, if I combine all of the "split" frames, will I get any side effects? Sounds like a good way of getting a few extra states.

 

edit: scifista42 is the best, thanks pal.

Edited by bzzrak

Share this post


Link to post
  • 0

Coffee or excitement for human blood.

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×