• Register

Rethinking the competitive first person shooter -- PC/Mac/Linux

Post news Report RSS Projectile Inheritance in Arms of Telos

For most people, this might not be something they give much thought — for Tribes and arena FPS players, projectile inheritance can be a big deal. For Arms of Telos, it will be a key component of how a lot of the weapons feel. Here's why it matters and what I'm doing differently in Arms of Telos.

Posted by on

For most people, this might not be something they give much thought — for Tribes and arena FPS players, projectile inheritance can be a big deal. For Arms of Telos, it will be a key component of how a lot of the weapons feel. And I’m a game design nerd so I like talking about this sort of thing.

What is projectile inheritance?

Line up your crosshair, pull the trigger, and hit the target? Not necessarily. In the real world, if you shoot a bullet while you’re moving, the bullet’s velocity will be relative your movement — in other words, the bullet will inherit your velocity. Consequently, you’ll actually miss a stationary target if you were aiming at it when you pulled the trigger while moving to the side. Compare these gifs where we fire at a stationary target while moving laterally:


Here, there is no inheritance. The bullet lags behind the crosshair (at the moment of impact, my crosshair is now to the right of the target) — instead of inheriting my velocity, it travels to the point I was looking at when I pulled the trigger as if I were not moving.


Here is the same shot with full inheritance. The bullet inherits my velocity and therefor stays centered on the crosshair. When the bullet reaches the target, it has also traveled sideways (as I have) and misses the target. If I wanted to hit the target, I would have to pull the trigger to the left of the target to compensate for my lateral movement.

Some of you may think “ok, I see why it’s realistic, but doesn’t that just make things harder?” — yes and no. It can really depend.


Here is another gif with full inheritance — except this time, both the target and myself are moving in the same direction at the same speed (imagine they just took my flag and I’m chasing them). Relative to each other, we’re not moving — now it’s like firing at a stationary target while not moving ourselves and we just have to point at the target and shoot. On the other hand, if that rocket did not have any inheritance, I would have to lead my target to compensate.

Inheritance is also important for the rare games that let the player move extremely fast. If you're moving at 350km/h and launch a grenade in front of you that travels only 150km/h, you're going to eat that grenade if there's no inheritance.

Games like Quake usually don’t have inheritance. The maps are usually smaller and it’s easier to read the trajectory of a target by using the ground and walls as reference points. In Tribes, the weapons usually have inheritance and this is important because you’re often flying around chasing a target in the sky and your best reference point for the target’s velocity is often your own velocity. Arms of Telos has more variety in this respect — it has both the close quarter combat of Quake with the long range combat of Tribes — so I don’t think Arms of Telos will necessarily lean in one direction or the other.

In a lot of games, projectile weapons have partial inheritance — this means it’ll essentially drag behind your crosshair. I think having partial inheritance makes things more complicated, but I assume their reasoning is that they want to avoid situations where firing backward while going very fast will result in a projectile that has no speed or even travels backward (relative to the world). In the real world, gravity makes it less awkward — when projectiles don’t have gravity, they basically just stay still until they expire. A little weird, perhaps, but I don’t think it’s really a problem.

While some situations might lend themselves better to one or the other, a lot of it also comes down to personal preference for each player. If there was an objectively superior option, this would have been settled long ago -- instead, you still see debates about how much (if any) inheritance projectiles should have in different games. Heck, some people even seem to prefer partial inheritance -- I don't know why, but they do.

What is Arms of Telos doing differently?

With Arms of Telos, I’m going to try opening it up to the players. Depending on their play styles and preferences, players will naturally have different opinions on the ideal inheritance values — so I’ll just let them tune their own weapons as they like. These are accessible through a client-side config file.

The way I see it, it’s similar to tuning your gear ratios in a racing game. Some gear ratios may be better suited for different tracks, but it also comes down to personal preference. Allowing players to tune them to their own preferences will hopefully give them a better sense of ownership over their experience.

Instead of getting into heated arguments on the forums, they’ll hopefully be helping each other find their own ideal inheritance settings. I can even use those discussions to help inform the values I choose as defaults.

By the way…

Right now the game is in private playtesting, but since I am a small indie it's not quite like a closed beta you may have experienced for larger games. You can find more info about getting involved on the official forums.

There’s various ways you can keep up with the game’s development – the official devblog is on Tumblr, and I’m often posting smaller updates on Twitter (there’s also an official twitter account for the game if you don’t want my personal tweets). You can subscribe on YouTube to keep up with new videos and I’ll be streaming stuff on Twitch as well. I welcome you to join the community on the official forums, as well as the IRC channel and subreddit. I’m on Facebook and Instgram, too. I also post updates to development communities like IndieDB and TIGSource.

Post a comment

Your comment will be anonymous unless you join the community. Or sign in with your social account: