Welcome, Guest. Please login or register.

Login with username, password and session length

 
Advanced search

1411275 Posts in 69323 Topics- by 58380 Members - Latest Member: bob1029

March 28, 2024, 05:25:08 AM

Need hosting? Check out Digital Ocean
(more details in this thread)
TIGSource ForumsDeveloperTechnical (Moderator: ThemsAllTook)Beat-Em-Up Best Practices?
Pages: 1 [2]
Print
Author Topic: Beat-Em-Up Best Practices?  (Read 18071 times)
gimymblert
Level 10
*****


The archivest master, leader of all documents


View Profile
« Reply #20 on: February 25, 2013, 11:38:00 PM »

you are the best

I have a question ... what do you think about "lite beat'm all" like fighting system that appear in game like zelda, and how knowledge about beat m all could help made them better without turning them into huge diversion?
« Last Edit: February 25, 2013, 11:45:25 PM by Gimym TILBERT » Logged

Fallsburg
Level 10
*****


Fear the CircleCat


View Profile
« Reply #21 on: February 26, 2013, 06:19:56 AM »

I have a question.  Do you guys change the capsule size ever (say when going into a roll the player is shorter, or something like that)?  If so, how do you handle making it not fall through the floor or something like that.
Logged
Matthew
Rapture
Administrator
Level 3
******


Milling About


View Profile WWW
« Reply #22 on: February 26, 2013, 10:13:59 AM »

I have a question.  Do you guys change the capsule size ever (say when going into a roll the player is shorter, or something like that)?  If so, how do you handle making it not fall through the floor or something like that.

We don't change sizes.  And we actually don't have a concept of defining hurtboxes during moves.  The character hurtbox is always the same slim capsule used for physical collision.  We do sometimes toggle some collision on/off entirely for certain moves (in your roll example, you can actually go through enemies entirely).

If we were doing a fighting game I'd want to worry about defining hurtboxes for accuracy, but for Aztez we've been fine with the capsule approach.

If we were, though, I would separate the capsule (physical collision) and hurtboxes (triggers used to detect moves connecting).  For any kind of platformer I would consider using two capsules, upper and lower, and toggling the upper off for things like crouching movement.
Logged

Matthew Wegner
Currently: Aztez
Founder, Flashbang Studios
Partner, Indie Fund
Editor, Fun-Motion
Co-Chair, IGF
Fallsburg
Level 10
*****


Fear the CircleCat


View Profile
« Reply #23 on: February 26, 2013, 11:21:32 AM »

Yeah, I was already separating hurtboxes from collision, but the separate upper and lower is a pretty great idea that I hadn't thought about.
Logged
Matthew
Rapture
Administrator
Level 3
******


Milling About


View Profile WWW
« Reply #24 on: February 26, 2013, 11:33:19 AM »

Yeah, I was already separating hurtboxes from collision, but the separate upper and lower is a pretty great idea that I hadn't thought about.

In Unity, toggling the actual colliders will trigger center of mass recalculation, and probably screw with inertia and movement too.  Might be better to change the collision layer (although I'm not sure if compound colliders use individual layers from the colliders or just the rigidbody's layer--something to test!).
Logged

Matthew Wegner
Currently: Aztez
Founder, Flashbang Studios
Partner, Indie Fund
Editor, Fun-Motion
Co-Chair, IGF
sonjool
Level 0
***



View Profile
« Reply #25 on: February 26, 2013, 01:38:32 PM »

Not sure if this counts as a technical question, but how did you guys do the animation for the effects in 3D? Are they series of two-sided planes with textures that's been animated in maya/max/blender?

Because I looked at this post, http://aztezgame.com/blog/2010/12/22/aztez-weapon-effect-sprites/
and saw that the attack effect is 2 dimensional, but some of the other effects seem more like 3D particle animation but 2D with planes being each of the particles.
« Last Edit: February 26, 2013, 01:49:54 PM by sonjool » Logged

Lith
Level 0
***


Stand tall and shake the heavens.


View Profile WWW
« Reply #26 on: February 26, 2013, 03:35:33 PM »

you are the best

I have a question ... what do you think about "lite beat'm all" like fighting system that appear in game like zelda, and how knowledge about beat m all could help made them better without turning them into huge diversion?

Games like Zelda fit into a category of games I call "kill 'em ups", although they are definitely closer to the beat 'em up category than something like Strider or Actraiser.

http://aztezgame.com/blog/2013/01/03/on-genre-distinctions/

While they've got mechanical similarities, they're different beasts. Enemies in beat 'em ups have a lot of nuance that directly affect the way you play, where enemies in kill 'em ups are very insect-like with their super simplified movement/attack instructions. I guess it comes down to what it is from that type of game you're trying to bring in.
Logged

Creative Director, Team Colorblind
www.aztezgame.com
gimymblert
Level 10
*****


The archivest master, leader of all documents


View Profile
« Reply #27 on: February 26, 2013, 03:37:56 PM »

So there is no real name for this sub category? I just wanted to have your opinion.

Thanks!
Logged

Lith
Level 0
***


Stand tall and shake the heavens.


View Profile WWW
« Reply #28 on: February 26, 2013, 03:50:34 PM »

Not sure if this counts as a technical question, but how did you guys do the animation for the effects in 3D? Are they series of two-sided planes with textures that's been animated in maya/max/blender?

Because I looked at this post, http://aztezgame.com/blog/2010/12/22/aztez-weapon-effect-sprites/
and saw that the attack effect is 2 dimensional, but some of the other effects seem more like 3D particle animation but 2D with planes being each of the particles.

The weapon swing effects are NOW 3d objects. They were sprites made from the legacy effect system but now they're 3d objects animated in Maya/Unity that cooperate with our time dilation tech.



All that's happening here is a root bone is rotating the mesh object x degrees while the mesh object scales itself up and then down.
Logged

Creative Director, Team Colorblind
www.aztezgame.com
sonjool
Level 0
***



View Profile
« Reply #29 on: February 26, 2013, 06:26:37 PM »

Thanks for taking the time to post that, it's very helpful.

Was the time-dilation set in place to let players savor their feats of awesomeness?
Logged

gimymblert
Level 10
*****


The archivest master, leader of all documents


View Profile
« Reply #30 on: February 26, 2013, 06:44:22 PM »

I have read your article on different subgenre, it's funny 2d zelda is undoubtedly kill m all but 3D zelda seems to fit grind m all (few move, enemy and character focused on defense and damage area) while darksider is a straight up beat m all.
Logged

Matthew
Rapture
Administrator
Level 3
******


Milling About


View Profile WWW
« Reply #31 on: February 26, 2013, 09:32:19 PM »

Was the time-dilation set in place to let players savor their feats of awesomeness?

We haven't used it too much yet.  Some moves slow global time (think some of the jumping attack scenes in 300).  Character time can be scaled, too, which we haven't played much with yet...
Logged

Matthew Wegner
Currently: Aztez
Founder, Flashbang Studios
Partner, Indie Fund
Editor, Fun-Motion
Co-Chair, IGF
gimymblert
Level 10
*****


The archivest master, leader of all documents


View Profile
« Reply #32 on: February 28, 2013, 03:02:34 AM »

I'm reading 24 Difficulty In Beat ‘Em Ups and I find the analysis of ninja gaiden a bit disappointing. What the player can do is to use very weak shuriken to control the attack pattern by canceling and resetting the wait pattern of enemy, for exemple. At hi level it's even mandatory. That and orb management.
Logged

gimymblert
Level 10
*****


The archivest master, leader of all documents


View Profile
« Reply #33 on: February 28, 2013, 03:58:55 AM »

BTW you know a game you should study? Ninja gaiden DS, seriously, do it, it might start as too easy but just do it and unlock higher difficulty level.

edit:
Wait wait wait
everytimes you speak about ninja gaiden my brain go WHAT?
On blocking, I need to check it, but in my memory the true defense is perfect blocking (parrying), it allow the flow to continue, you are discourage to use the regular blcok with throwing enemy and explosive kunai enemy, and the jump is the dodge more than often, but generally purely defensive/evading tactics is punished they more like "counter starter". Too bad I have no more the game to check back.
BTW ninja gaiden is closest to a fighting game in my mind that a brawler.

edit2
Impact effect link is dead
« Last Edit: February 28, 2013, 05:30:12 AM by Gimym TILBERT » Logged

Copywright
Level 0
***


Vague Katti Wielder


View Profile WWW
« Reply #34 on: February 28, 2013, 04:23:43 PM »

Wow, this is great. Seems way more efficient too do things based on layers.

You're asking some pretty broad questions, so I'm not quite sure how best to guide you.  I'm the programmer on Aztez, which is a beat-em-up made with Unity.  Some footage:  http://www.youtube.com/watch?v=efwB-pv3QV4 (that's Ben, the artist, talking over the video).

Some random pieces of info.  Feel free to ask any direct questions about how I've set any of this up:

- Everything is 3D, rendering to a normal perspective camera

- Characters are a single RigidBody with a capsule collider.  We don't use CharacterController

- Enemies don't collide with each other, or hit each other.  We use layers and the "Layer Collision Matrix" in physics setup to do this.  Layer-wise, we have:

* Player, Player No Collide, Player Attack, Player Sensor
* Enemy, Enemy No Collide, Enemy Attack, Enemy Sensor

- Player is for the player, which collides with Enemy and Enemy Attack.  "Player No Collide" is a layer that doesn't collide with Enemy.  Some moves set this (ie a dash or a dive roll you want to move through an Enemy).

- Most everything in the game is a "Move", including some non-attacking animations (getting up, etc).  A move is a character animation clip synced with a prefab.  The prefab contains all of the hitboxes, links, etc.  The hitboxes are sometimes animated within Unity.  We animated quite a lot of things in the animation editor (like toggling booleans for when hitboxes are active).

- Unified architecture helps.  It's actually not a small amount of code, which makes it pretty densely packed, but it means I only have to write debug/etc tools once

- Gizmos are your friend for visualizing all of this.

- We use animation events to trigger code-related changes during move animations.  These are super great: http://docs.unity3d.com/Documentation/Components/animeditor-AnimationEvents.html

- The game has a very generic list of "states" for characters.  Really, it's just an array of strings.  Moves can ignore collisions based on states, or require a state to fire in the first place, etc.

- There's a list of moves that are always available to the player.  There are "link" objects as part of a move that will add to the list of possible moves for a short duration.  All combos are handled this way.

- The same input may trigger multiple moves at any given time.  Moves have a priority, which determines which move actually fires.

- Required states are used heavily to manage different moves from the same input.  An opening (always available) move might require the "Airborne" state, and have a higher priority, which means the same button is a simple ground swipe or an air swipe, depending.

Let me know how else I can help!

How do the Enemy layers work? With multiple enemies, how's it set up so that enemies don't collide with each other? I'd also be interested to know how the Sensor layers function.

EDIT: Oh I see. You must have it set so the Enemy can only collide with the Player and Player Attack layer. Do you use Unity's gravity then, for things like jump?


« Last Edit: February 28, 2013, 04:29:51 PM by Copywright » Logged


Matthew
Rapture
Administrator
Level 3
******


Milling About


View Profile WWW
« Reply #35 on: March 01, 2013, 01:56:24 PM »

How do the Enemy layers work? With multiple enemies, how's it set up so that enemies don't collide with each other? I'd also be interested to know how the Sensor layers function.

EDIT: Oh I see. You must have it set so the Enemy can only collide with the Player and Player Attack layer. Do you use Unity's gravity then, for things like jump?

We use a mix.  Usually global gravity is handling everything, but for some character/move time scaling I modify gravity per-object (just ForceMode.Acceleration on an AddForce call).  The moves themselves can also have translation objects that override all gravity temporarily, for i.e. an air dash move.

On collision, you can also do things discretely with Physics.IgnoreCollision and Physics.IgnoreLayerCollision.  I find it's much more sane to just use more layers, though, and shift the active layer around on the objects you want to screw with on the fly.
Logged

Matthew Wegner
Currently: Aztez
Founder, Flashbang Studios
Partner, Indie Fund
Editor, Fun-Motion
Co-Chair, IGF
Pages: 1 [2]
Print
Jump to:  

Theme orange-lt created by panic