• Advertisement

Recommended Posts

Advertisement

Almost any combat mechanic can be applied to open-world PvP - you'll have to be a little more specific in what you are looking for.

In contemporary MMO or MOBA combat models the concept of grappling tends to be represented more as some combination of root/stun/displacement effects instead, but the underlying mechanic is basically the same (restrict an enemy's movement and/or displace/damage them).

Share this post


Link to post
Share on other sites

Nothing prevents a team of very skilled programmers from implementing such a feature, if that's what you're asking. No such pre-built system exists that can just be plugged into a game, and the animation requirements and programming effort would be such that it'd be a very difficult task (and certainly beyond my meager capabilities, so the rest of my post is just me thinking).

The "open world" part is irrelevant (the layout of the world doesn't affect the combat), but expanding it to online PvP (rather than just online PvE or even easier, single-player PvE) makes it harder, definitely.

I'd imagine such a system would ultimately behave similarly to the Uncharted series of games: basically, a bunch of context-sensitive pre-scripted animations that can play out based on your position relative to the enemy and the enemy's current state (orientation, and combat state - e.g. throwing a punch at you), as well as the immediately-surrounding shape of the environment.

 

 

If you haven't played the game (I've only played Uncharted 1 and 2 myself), none of that video is a cutscene - it's all gameplay. BUT you lose control for short blips of time during certain moves - i.e. once a more complicated move begins, and the player' and enemy's animations need to be synced together (for example, pulling the enemy off a roof, or grabbing onto them in any way), you lose temporary control until the synced animation plays to completion. Basic attacks like punches and kicks, and so on, don't have you lose control. But for the duration of e.g. grabbing an enemy's head and smacking him with your head, you lose momentary control. With longer moves this is more apparent and noticeable to the player (the reason why I said you "don't lose control" during basic kicks and punches is really because they are so fast you don't notice you lost control - most action games are like this while a quick animation plays out (for example, a sword-swing in 3D zelda games)).

In Uncharted specifically, you only have two or three buttons that help decide what type of move to do, and the final move chosen is based on context, not explicit player choice. So it's very interactive, but sacrifices more interactivity than most games do specifically to enable the cinematic movie feel that you seem to also be interested in that requires the animations of more than one entity to sync up together.

 

Edited by Servant of the Lord

Share this post


Link to post
Share on other sites

Yeah "open-world" is probably not the right term, but in a sense of spontaneous combat engagements between two players, four, or more.  Thanks for the info though, I guess that's why DCUO's system had them encase a player in a simple object (block of ice, force field, etc) to be used as a projectile by another player. 

Share this post


Link to post
Share on other sites

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


  • Advertisement
  • Advertisement
  • Popular Tags

  • Advertisement
  • Popular Now

  • Similar Content

    • By Ovicior
      Hey,
      So I'm currently working on a rogue-like top-down game that features melee combat. Getting basic weapon stats like power, weight, and range is not a problem. I am, however, having a problem with coming up with a flexible and dynamic system to allow me to quickly create unique effects for the weapons. I want to essentially create a sort of API that is called when appropriate and gives whatever information is necessary (For example, I could opt to use methods called OnPlayerHit() or IfPlayerBleeding() to implement behavior for each weapon). The issue is, I've never actually made a system as flexible as this.
      My current idea is to make a base abstract weapon class, and then have calls to all the methods when appropriate in there (OnPlayerHit() would be called whenever the player's health is subtracted from, for example). This would involve creating a sub-class for every weapon type and overriding each method to make sure the behavior works appropriately. This does not feel very efficient or clean at all. I was thinking of using interfaces to allow for the implementation of whatever "event" is needed (such as having an interface for OnPlayerAttack(), which would force the creation of a method that is called whenever the player attacks something).
       
      Here's a couple unique weapon ideas I have:
      Explosion sword: Create explosion in attack direction.
      Cold sword: Chance to freeze enemies when they are hit.
      Electric sword: On attack, electricity chains damage to nearby enemies.
       
      I'm basically trying to create a sort of API that'll allow me to easily inherit from a base weapon class and add additional behaviors somehow. One thing to know is that I'm on Unity, and swapping the weapon object's weapon component whenever the weapon changes is not at all a good idea. I need some way to contain all this varying data in one Unity component that can contain a Weapon field to hold all this data. Any ideas?
       
      I'm currently considering having a WeaponController class that can contain a Weapon class, which calls all the methods I use to create unique effects in the weapon (Such as OnPlayerAttack()) when appropriate.
  • Advertisement