xenoxols, on 03 June 2018 - 06:55 PM, said:
I've always stuck to doom modding, and I don't know if it's an engine thing but gzdoom has a lot of mods with really good weapon animations, and I've never seen any Duke3d mod with animations that are better than the original game.
It's not an engine thing, it's a cultural difference between Doom and Duke. In our community we have had very few artists over the years who specialize in sprite weapons. The best example I can think of is Cage, who has made some great weapons with very detailed animations for EDuke32 projects (for example, his double-barreled shotgun which was first used in Zombie Crisis and then later in WGR2). But of course Cage is himself mainly a Doom guy, so that only makes your point.
In the Duke community creators tend to focus more on making big, detailed levels with lots of cool effects in them. We do care about weapons, but our weapon work tends to be more focused on the
effects of weapons rather than the hud sprites. There's no good reason why our priorities have to be that way, but historically that has been the case.
What James is talking about with most older mods is they would just replace the base game art with different art, so of course it's not going to have more frames. But even nowadays with advanced scripting capabilities, weapon animation is often lacking due to a lack of weapon art that is suitable for Duke.
There's a lot of precedent in Duke mods of putting in weapons that have no animation at all. I've done this myself sometimes, where you literally just have the idle frame of a weapon (usually ripped from a screenshot of some game) to start with. You slap on a muzzle flash sprite to make a firing frame, and when it fires you add some code to make it jiggle. Done! If it needs to reload, you just add some code to make the weapon lower on the screen and play reloading sounds. It sucks, but if you have no artistic ability like me, and that's all you could find, then that's what you do.
I don't think that the 30 fps limitation is a factor, since if you actually had a different frame of animation 30 times per second it would look amazingly smooth. On the few occasions I have been lucky enough to have more animation to work with, I can attest that even having 10 different frames to show in a second will look very smooth, especially if you code in movements on the in-between tics.
One more thing -- looking at it from the coder's side who puts the animation in the game, I can tell you it can be a major pain, depending on how the frames are presented. For example, if you have a 20 frame animation of a shotgun firing and cocking, naturally the pics are going to be of different dimensions both x and y. But if you just put those straight in the game at the same coordinates, they will appear to jump all over the place. Ideally the sprites should all have transparency padding so that they are all the same dimensions and can be shown as a smooth animation without us painstakingly going through it frame by frame and adding x and y offsets. Unfortunately, that's not usually the case. Typically when we get an animation, it (1) is already cut out with transparencies removed, so the tedious offset process must be undergone, and (2) it has various pixel issues having to do with palette conversion and whatnot.