Welcome, Guest. Please login or register.

Login with username, password and session length

 
Advanced search

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

March 28, 2024, 12:35:27 PM

Need hosting? Check out Digital Ocean
(more details in this thread)
TIGSource ForumsCommunityDevLogsThe Tyrant of Blades (Sword and Shield Beat-Em-Up)
Pages: [1]
Print
Author Topic: The Tyrant of Blades (Sword and Shield Beat-Em-Up)  (Read 1767 times)
Valar05
Level 0
***



View Profile
« on: August 28, 2016, 07:12:23 AM »




The Tyrant of Blades is a 3D beat-em-up, or character action game if you prefer, in the style of Ninja Gaiden and Devil May Cry.  Destroy hordes of foes with blistering combinations from your sword and shield in your quest to take down the Tyrant of Blades, a man so mighty even the monstrous hordes bow to his will.

Some of those combos available to you include lightning-fast cuts:



Block-breaking shield bashes:



Last-minute counterattacks, and brutal stabs:


And of course, juggling aerials:



With many more planned!  

I'd like to include some images of the AI at work as well, as I'm trying to go for that satisfying challenge shared by Ninja Gaiden and Dark Souls- but at the moment the player doesn't have a death animation, so I can hardly show a death montage  Wink


What you can see in these gifs is pretty the entirety of the game so far.  I intend to include a ranged attack to encourage some DMCish combo flow and of course many more enemy types (and a non-placeholder level, the list goes on), but all that is secondary to tightening up the game feel at the moment- things still feel a bit loose.  As the sole person working on the project, and while working full time, I have to pick my battles!  You can expect slow but steady progress here, I'll try to keep updated with interesting things.
« Last Edit: August 29, 2016, 12:09:22 PM by Valar05 » Logged
Fervir
Level 4
****


JustLikeMakeGame


View Profile WWW
« Reply #1 on: August 28, 2016, 07:28:54 AM »

This game looks pretty sweet already!
Great animations, looking forward to what you come up with!
Logged

   
Valar05
Level 0
***



View Profile
« Reply #2 on: August 28, 2016, 12:20:31 PM »

Thanks very much!  Here's a running attack for your trouble Smiley (used Screen-to-gif this time, think that did make it easier).



Surprising how much fluidity that one move added actually.  Undecided on whether I want to have a heavy attack variant - right now I just have it skip some windup frames if you do it during a run.
Logged
thekosmonaut
Level 0
***


View Profile
« Reply #3 on: August 28, 2016, 02:47:18 PM »

love the aerial juggling. That's the awesome stuff every fighting game needs
Logged

Valar05
Level 0
***



View Profile
« Reply #4 on: August 29, 2016, 06:19:52 AM »

It's kind of my greatest conundrum right now.  For one thing, I think I need to use an animation with root motion to properly position the enemy during the launch - I'm doing it with phsyics right now, and the result is very inconsistent- sometimes they go too high, usually they go too low, and sometimes they just get stuck underneath the player - that gif was a rare case of things just working nicely Smiley

The best feeling input method is also a puzzle for me.  Right now it's in the style of DMC Devil May Cry - with it's own dedicated button.  Tap it to launch the enemy but stay put yourself, hold it to fly up with them.  The problem here is that this means I'm using up all the face buttons without including a ranged attack yet (X = Light Attack, Y = Heavy Attack, B = Launcher, A = Jump).  It also begs the question of what to do when you hit the launch button while you're in the air.  The obvious solution would be to make you smash back down, but the heavy attack already does that.  I could make the heavy attack do something else though, and that might be a good solution if I can think of something - there's plenty of other buttons I can use for shooting after all.

The DMC1-4 approach always feels fluid, and doesn't require an extra attack button, but High Time in those games requires a lock-on feature, which doesn't fit my vision of the game.  To me it just doesn't make sense for the style of camera I'm using.

There's also the God of War approach, where you just hold the triangle button to turn any combo into a launcher.  While I like this in theory, it excludes the ability to keep yourself grounded (unless you wanna have two levels of long-press, but that sounds clunky).  I always loved combos in DMC that include knocking up the enemy and then juggling them with ranged attacks while you stay on the ground, so I definitely want to keep that in for when I have ranged attacks.

The Ninja Gaiden approach is definitely one I'm thinking of trying though.  In ninja gaiden, you have two ways to launch enemies.  You can either X -> Y to do a very quick knockup, without the option to stay on the ground (I think, maybe you can hold Y to stay rooted?) or you can tap on the analog stick in a direction and hit the heavy attack button.  A short tap will knock up the enemy, while a long press will send you up with them (or maybe it's the other way around?).  I typically used the former approach, partially because ninja gaiden's enemies are very dangerous, and less time spent on the ground means less time getting mauled by them, but also because the stick + Y attack had a much bigger windup, so it was very easy to get hit while executing it.  If I kept the short window for my current launcher (which does include some i-frames at the moment), and allowed you to use the launcher at any point in a combo (as DMC does), it might work rather well.  I'll definitely have to play around with it.

Edit: Realized I didn't include Bayonetta in my breakdown.  Mainly because it has the same problem as Ninja Gaiden - the launcher is tied to specific combos, which you have to remember.  Combo lists in Bayo are so huge that I never quite was able to memorize them completely- normally I ended up using the launcher by accident as much as on purpose.  While I have no problem with approach in these games, I want to follow the DMC approach for my game, because I feel like being able to take the fight airborne at will is bit part of what makes the game feel so free-form.
« Last Edit: August 29, 2016, 06:37:20 AM by Valar05 » Logged
Valar05
Level 0
***



View Profile
« Reply #5 on: August 30, 2016, 07:35:51 PM »



Whew!  That was a ton of work, tweaking the launch part to be more reliable and feel nicer.  Ended up using a rather bastardized solution where, at the point where the game determines that the player is going to do the follow-through on the launch, it'll position the enemy you hit at a specific spot in front of the player - so as to avoid the issue I was having where one would get stuck under the other.  Then while the player's knock up animation is playing, the root motion from their animation will be transferred to the enemy.  There's some synchronizing logic there where if the player gets higher than the enemy, the enemy speeds up, and if the enemy gets ahead, they slow down.  This is mostly to deal with variances in when the enemy got hit during the actual attack.  As you can see from the gif - I added knock-up, bounce and recovery animations, which was fun.

On a side note, I'm torn whether to continue using Screen To Gif.  The initial gifs I posted came out very smooth because I recorded them using OBS on my desktop, split into an image sequences using blender, then made them into gifs with GIMP.  The past two gifs I made were using Screen To Gif on my laptop, which was much easier overall, but resulted in a much less consistent framerate.  Anyone else have any suggestions for low spec gif recording?
Logged
Juskelis
Level 1
*



View Profile
« Reply #6 on: August 30, 2016, 08:21:07 PM »

These animations are top notch, the game feels tight and springy just from looking at it. Are you planning on adding other weapons and customization?
Logged

Valar05
Level 0
***



View Profile
« Reply #7 on: August 30, 2016, 08:50:31 PM »

Thank you! The weapon animations are definitely the most fun part, so I have been kicking around the idea of either alternate weapons, or alternate characters (old school arcade style).   The idea of a halberd-wielder intrigues me in particular.  Probably won't mess with that till I've filled out my combo list and enemy roster some more though, and figured out some more level design XD.  

Alternately, I was also considering having some special moves you could choose from, similar to what a fighting game might have that would consume a meter, but hadn't really fleshed the idea out yet.   Something else to play around with once I have a more solid base.
« Last Edit: August 31, 2016, 03:19:39 AM by Valar05 » Logged
Valar05
Level 0
***



View Profile
« Reply #8 on: September 06, 2016, 07:03:06 PM »

Gone on vacation at the moment, so I've had a bit more time to work on this.  Pardon the huge uncropped gifs, I'm working with rather limited resources out here, and image editing is particularly awkward at the moment.

First up, we've got a little more action for the enemies, with a handy gap-closer:



Also a finishing move, when the enemies have been knocked down:




And a couple more combos:

the light -> heavy -> heavy -> heavy one is fun, and will probably cause knockdown in the future



The light -> heavy -> light ended up looking nicer than anticipated (though the recording is jerky)



And finally the light -> light -> heavy, which should ultimately be a powerful guard-breaker or something:




Logged
Davi Vasc
Level 1
*



View Profile WWW
« Reply #9 on: September 07, 2016, 10:19:03 AM »

Looking good! Following  Smiley
Logged

Davi Vasc - Video Game Composer
Website: www.vascmusic.com     
Twitter: https://twitter.com/VascMusic
Pixel Noise
Level 10
*****



View Profile WWW
« Reply #10 on: September 07, 2016, 04:36:49 PM »

Dude, yeah. It already looks/feels good. Nice animating, and I like how you're considering the various combos systems/options for launching, etc. Good stuff - following  Beer!
Logged

Pixel Noise - professional composition/sound design studio.
 https://soundcloud.com/pixel-noise
 https://twitter.com/PixelNoiseMusic
 https://pixelnoisemusic.bandcamp.com/

Recently completed the ReallyGoodBattle OST!  https://www.youtube.com/watch?time_continue=2&v=vgf-4DjU5q
Valar05
Level 0
***



View Profile
« Reply #11 on: September 09, 2016, 04:25:07 PM »

No sweet gifs today, just did some awesome refactoring.  Had this really ugly logic calling "animator.GetCurrentAnimatorStateInfo(0).isName..." stuff everywhere, because of how many things key off of which animation is playing.  Now some things I was handling with Unity's animation events and/or MachineStateBehaviors, but while those have their place they were just really clunky to use all the time.  

To replace all the calls to get the current state, I instead put all the data I needed into a hand-written JSON file - with stuff like the damage value of the current state, whether it was a launcher, whether it used root motion, that kind of thing, and also a name field containing the full name of the animation as it appears in mechanim.  EG. "Base Layer.Idle".  I marshal this json into an object using SimpleJSON (nice script, easy to use), then stuff all those objects into a Dictionary (think Map if you're familiar with Java) and set the key as the Animator.StringToHash value of this name.  Then every frame in Update, I do this number:

state = states[myAnimator.GetCurrentAnimatorStateInfo(0).fullPathHash];

The fullPathHash matches the hashed name from my flat file, and out pops my state object with all my animation specific data.  Hurray!  I replaced so much ugly code that way, and I've already found it much easier to add more animation specific stuff.
Logged
Valar05
Level 0
***



View Profile
« Reply #12 on: September 18, 2016, 05:27:16 AM »

Been a little while since I've posted, but I haven't been idle.  Biggest thing you'll probably notice is the background is very different.  Still very much a work-in-progress (texturing is not my strong suit!)  But I think it at least looks better than it did.


So first up we have a new move I added - it follows up the light->heavy->light move I posted earlier



Something that you may not be able to see in this gif is the screenshake I added.  Apparently it's a bit too subtle for a gif recorded at 30fps - but for multi-hit attacks like this one, it definitely feels good.

I've also continued to make tweaks to the launcher move - it's by far the most problematic of all the things I've programmed in so far.  What's different from before is that now you execute it a little differently- you tap the analog stick in a direction and hit heavy attack right as you do it, like a smash attack in Super Smash Bros.  This can be used at any time on the ground, and it cancels your current action.  I like it better than having a discrete button for sure- though it is a bit easier to accidentally execute it, it just feels better not having to stretch for another button.



Logged
Pages: [1]
Print
Jump to:  

Theme orange-lt created by panic