Search Unity

Games Ghost Knight Victis - Heroic Dark Urban Fantasy - Action RPG

Discussion in 'Works In Progress - Archive' started by AnomalusUndrdog, May 1, 2017.

  1. AnomalusUndrdog

    AnomalusUndrdog

    Joined:
    Jul 3, 2009
    Posts:
    1,553


    Ghost Knight Victis is a single-player action RPG where you play as a terminally-ill superhero, fighting against Lovecraftian horrors invading the real world.

    Inspired by the henshin hero genre (Kamen Rider, Karas, Garo, etc.), you play as a guy whose terminal disease awakens dormant powers, letting him transform into magical armors and fight monsters.



    The catch is that his health deteriorates every time he uses his powers. As the player, you need to ensure the main character stays alive until the end of the year, when the final boss appears. You'll also need to maintain your secret identity, and prevent endangering your friends. But standing with you are individuals who are in the same predicament.





    I'm doing this solo for now. While I do co-own an indie dev studio, this is a pet project of mine that I do in my free time. I've been working on this for a while, and now I feel like it's in a state where I can share the work-in-progress. Cause I know getting feedback is valuable, even this early on.

    Here's a compilation of my progress since the start:



    Right now, my focus is on building up the combat part of the game, as a demo. But in the future, it will have a world map with story that plays like a life sim of sorts.



    The combat is real-time action, but the world map part will play like some sort of digital board game, where you choose what activities to do per day (work on your job, hang out somewhere, do exercise, etc).







    I’m doing the programming, I also do the art. 3d models are made in Blender, and textured in Substance Painter. But I try to use free generic assets I get online when it’s appropriate.



    I can only work on this game every weekend, but I do try to make an update every week.
     
    Last edited: Sep 28, 2017
  2. bart_the_13th

    bart_the_13th

    Joined:
    Jan 16, 2012
    Posts:
    498
    This is absolutely cool looking project for one solo developer. The feel, the camera work, and all other technical aspects is just awesome. One request if I may ask, I would love to see the sword wielding hero in action :), oh and maybe putting some effect when attacking(like weapon trail or some sort) will be nice...
     
  3. AnomalusUndrdog

    AnomalusUndrdog

    Joined:
    Jul 3, 2009
    Posts:
    1,553
    Thanks! The sword-wielding armor will come in later, I haven't made the 3d model for it yet. I think I'll add a few more animations for the enemy, add a 3rd player weapon (warhammer), then move on to making the sword-wielding armor. By then it should be more interesting, because you can swap armors anytime during combat.
     
    Last edited: May 3, 2017
  4. AnomalusUndrdog

    AnomalusUndrdog

    Joined:
    Jul 3, 2009
    Posts:
    1,553
    In Ghost Knight Victis, you can swap between multiple armors (I originally planned for 4 but reduced it to 2). Your powers (and all magic in the game) come as thoughtforms (thoughts made real by willpower).

    The idea with the armor swapping is like Dante's Styles in Devil May Cry 3. They change your play style so you can adapt to the situation.

    Similar to the Emotional Spectrum powers in DC Comics (i.e. Green Lantern), this one is based on sadness. Its name is Desparo.

    Desparo



    In combat, Desparo’s role is mainly defensive. He employs hit-and-run tactics, counterattacks, attacks that push the enemy away, and is mainly useful for one-on-one combat.



    His battle cry, “Alone this path I take, from perdition myself I will liberate” hints at how ridiculously impossible his goals are.

    “Perdition” means a state of eternal damnation from which there is no escape, but Desparo is the embodiment of the idea that you can free yourself from that.

    Dementero

    This armor is based on rage.

    I actually think his name is too long, so I’m open to any suggestions for a better name.



    From the start, I had in my mind a character that was about raw power. Lacking finesse and grace in posture and movement, but having overwhelming strength that makes up for it.

    He’s the offensive part of the main character, and favors charging in battle, hitting multiple enemies at once, and keeping the DPS as high as possible.



     
    RavenOfCode likes this.
  5. AnomalusUndrdog

    AnomalusUndrdog

    Joined:
    Jul 3, 2009
    Posts:
    1,553
    Here's a few more of my art before I go back to posting progress on the game:

    Some other armor concepts I made:

    Since I first planned the player to have 4 armors (one for each d-pad button), these were the other armors that I was making. I've since cut it down to 2 armors, because I realized it'll take more time for me. Perhaps I'll include these later on as enemy or NPC characters.

    This armor is called Fortis, it's combat role would be defensive as it's the only armor that has shields.





    ____

    This armor is blind, but the floating swords around him have eyeballs which he uses to see. In combat, it was intended to be for crowd control.

    I'm thinking of making this a boss fight because his weapons are potentially OP.




    Enemies

    Wooden Mannequin

    This is a regular mook enemy.



    ____

    Rat King

    I'm planning this to be the first boss fight.

    The rats below are blind, so the one at the top is the only one coordinating all of them. It also rotates slow so you can take advantage of that by flanking it.



    ____

    Alchemist

     
    Last edited: May 3, 2017
    RavenOfCode likes this.
  6. AnomalusUndrdog

    AnomalusUndrdog

    Joined:
    Jul 3, 2009
    Posts:
    1,553
    Here's some previous progress on the first non-placeholder enemy I made: the Wooden Mannequin. I'll be posting a few more of my previous progress before I post the latest ones, so that we're all on the same page.

    I tested the rig first in Unity to make sure it animates properly. This is just some free animations from the Asset Store.



    When I'm satisfied with the skinning and rig, I moved on to making the textures using Substance Painter.



    Then I tested it in-game. Thanks to the way I set up the character system, I can easily swap the 3d model of an enemy character. So using the previous placeholder enemy, I changed it to use this 3d model.

    It just reuses the animations, thanks to Mecanim.



    I added ability to have dual-wielding attacks in a single animation (like a one-two punch) where you can specify when the right hand and left hand deal damage (independently of each other), or you can make both hands deal damage at the same time.

    This can also be used to let other body parts deal damage, as long as they've been set properly. Later on, I'll use this for monsters' tail swipes, bite attacks, etc.



    Then I made attack animations for it. I create the animations in Blender then view it in a test scene where nothing else is happening, so I can quickly see anything wrong with the animation.



    And here I'm testing it in-game. This is recorded from a standalone build of the game so the framerate is far more acceptable.

     
    Whiteleaf likes this.
  7. AnomalusUndrdog

    AnomalusUndrdog

    Joined:
    Jul 3, 2009
    Posts:
    1,553


    So I had feedback that the dash particle effects were obscuring the vision too much and gets in the way of fights.

    There was also feedback that it was weird that there's lack of visual effects with him floating.

    Which I all agree to, so I took time to change it. I added some blue fire effects on the feet (even when you’re not doing a dash). And I now keep the effects for dash close to the ground, so it wouldn't obscure your vision of enemies.

    Will experiment more on this in the future with some ideas (thicker lines for the trails with some fire texture, an afterimage when you dash, your character turning transparent when dashing through walls, etc).




    The trail module in the particle system is actually pretty nice. I ended up with this when I was experimenting. Will probably use this for something else. Perhaps an enemy’s spell, or just some effects in the place instead of on a character.
     
  8. AnomalusUndrdog

    AnomalusUndrdog

    Joined:
    Jul 3, 2009
    Posts:
    1,553
    New playable demo for my game is out! Please try it out and leave feedback.

    https://anomalousunderdog.itch.io/ghost-knight-victis-agdg-demo-day-14

    (Linux and Mac builds to follow)



    Changes (since last AGDG Demo Day release):

    1. Added graphics options to change screen resolution, and toggle various effects.
    2. Added "swoosh" trails on normal weapon attacks. This is to help the player see the arc of the motion of weapon slashes, useful since the game is mostly in the dark.
    3. Smoothened the camera tracking on targets. Previous behaviour was a little too dizzying since it made the camera move too fast.
    4. Added health and stamina bar overlays on enemies.
    5. Started improving the combat AI for the Wooden Mannequin enemy.
    6. Changed look of Phase Dash. Previous one was obscuring your vision of enemies during fights.

    Notes:

    1. You can't restart the game yet. If you die, close the game then run again.
    2. There's nothing much to do yet except kill the enemies. This is only a test for the combat part.
    3. Can't customize key bindings yet.
    4. There are no sounds yet.
    5. The difficulty right now is not yet representative of the final goal. Enemy AI is still too simple, and no tweaks/balancing for damage and stamina cost yet.

     
    RavenOfCode likes this.
  9. Ironmax

    Ironmax

    Joined:
    May 12, 2015
    Posts:
    890
    Amazing work... really good partial effects, i like how you did the blood effect.
     
  10. theANMATOR2b

    theANMATOR2b

    Joined:
    Jul 12, 2014
    Posts:
    7,790
    Really cool concept and great progress shown so far.
    The camera to me - looks like it is kind of jerky. It 'looks' like its updating at 30fps or less while the game is updating at 60fps, or it is locking to the 8 cardinal directions - or something else. Might also be due to the recording software lag while playing the game.
    Just looks like it could be improved/smoothed more to make the gameplay more enjoyable.
    Great work so far!
     
  11. Ironmax

    Ironmax

    Joined:
    May 12, 2015
    Posts:
    890
    I think the camera was ok, the controller abit stiff , maybe its intended for mobile so i can't tell since i only tried only PC, the game was also challenging :) at least the demo, maybe add some more "grind" feeling if you know what i mean? Love the monster and the the asset work
     
  12. AnomalusUndrdog

    AnomalusUndrdog

    Joined:
    Jul 3, 2009
    Posts:
    1,553
    @theANMATOR2b: Thanks! I don't have any code that locks the camera to the 8 cardinal directions. If you tried out the game and that was your experience, video recording might indeed be slowing down the game, if you were doing that. I haven't taken any steps into optimizing the game for low-spec hardware, but it's in my todo list.

    @Ironmax: Thanks! The game is intended for PC (Steam, hopefully, in the future, but I'm not holding my breath). I'm intending the game to be similar to Bloodborne/Dark Souls in terms of combat and difficulty. There's still a lot that I've planned that hasn't been implemented yet.
     
  13. Ironmax

    Ironmax

    Joined:
    May 12, 2015
    Posts:
    890
    I never really liked Dark Souls, but i am an great fan of asian arcade styles so i liked this style better. Your also adding something new and unique, mysthic and spookey. I hope to see more of this. gl :)
     
  14. AnomalusUndrdog

    AnomalusUndrdog

    Joined:
    Jul 3, 2009
    Posts:
    1,553
    Thanks. My initial intention was to take the tactical combat of Dark Souls, combine with the combo-centric combat of Devil May Cry/Bayonetta/etc. That was how Bloodborne felt to me, in terms of the combat part. And Nioh as well, now that I remember it.

    All those games are my inspirations for this, as far as the pacing and feel of combat goes. I don't know if it'll end up good so I'm still experimenting on it.
     
  15. Ironmax

    Ironmax

    Joined:
    May 12, 2015
    Posts:
    890
    Well your done really great so far :) Have you checked out DarkSider ? maybe some more inspiration :)
     
  16. AnomalusUndrdog

    AnomalusUndrdog

    Joined:
    Jul 3, 2009
    Posts:
    1,553
    Yup! I've played both games. It's nice to see it's getting a 3rd installment.
     
    Ironmax likes this.
  17. theANMATOR2b

    theANMATOR2b

    Joined:
    Jul 12, 2014
    Posts:
    7,790
    Sorry I should have clarified - I was noting based off the video, though have the link to test the game when I get a couple moments.
    Thanks for the heads up! Didn't know Darksiders was coming back. Gonna go check out who is working on the development since
    RIP :(
     
  18. PjTheIndieDev

    PjTheIndieDev

    Joined:
    May 5, 2017
    Posts:
    17
    Decided to go ahead and try your demo. I would recommend optimizing the game... For the amount, on screen, it should not be giving me 10-30 FPS.

    I would like to see possible shops each round and upgrades. I think having shops and upgrades would be cool. Maybe a bigger level where there are traps.

    Combat is okay. I would make it more fluent if you know what I mean? Smoother animations, less response time.

    But yeah, I'll be following your project. I would like to see it be optimized though.
     
  19. AnomalusUndrdog

    AnomalusUndrdog

    Joined:
    Jul 3, 2009
    Posts:
    1,553
    @theANMATOR2b: That may be because I was only moving the camera slowly while I was testing (I was using a gamepad at the time, not a mouse).

    @PjTheIndieDev: Thanks for trying it out! I have not made any steps for optimization yet, but it's in my todo list. This is only the combat prototype but I intend to have a single-player game around it. I certainly have upgrades planned (skills, spells, etc.).

    I don't know what "less response time" means but, the attack animations are meant to be the way they are. In principle, the attacks have either long buildup time (portion of the attack animation before damage-dealing occurs), long recovery time/follow-through (portion of the attack animation after the damage-dealing happened), or a little bit of both.

    The point is that it's important to choose when and where you attack, because if you mess up your timing or distance, you'll be open and vulnerable. It's kind of how it works in martial arts. And it's how it works in Dark Souls, Bloodborne, Nioh, etc.
     
  20. AnomalusUndrdog

    AnomalusUndrdog

    Joined:
    Jul 3, 2009
    Posts:
    1,553


    Enemies now have a resistance to flinching.

    The rapier no longer immediately flinches the enemy, making it less useful (and giving it a sort of equal value to the spear). Instead, it will take a few rapier attacks in succession until the enemy will finally flinch (or you could attack with the spear, which will immediately flinch the enemy on hit).

    Enemies now have a sort of “resistance meter” to flinch, which drains when getting hit with attacks specifically meant to build up to a flinch (i.e. the rapier attacks). This resistance meter naturally restores slowly over time (similar to the stamina).

    Also not noticeable here, but I’ve integrated PoolManager (got it before when it was on sale), a pooling system, making the game run faster as resources like blood hit particle effects, and health bar displays are recycled as needed. This is my first step to make the “restart after game over” feature working properly.

    ________________​

    I recently needed to update because my game was getting compile errors when trying to build to Mac OS X. So I updated my project to Unity 5.6.0f3, but as I was testing it a few times, this happened. There’s these strange boxes on some characters in my TextMesh Pro labels.



    Actually, at first, none of the labels in the dropdown box were appearing at all, because of a bug with Unity UI (RectTransforms getting NaN values). I updated to Unity 5.6.0p4, which fixed it, but I got those boxes.

    I found out recently there’s actually a 5.6.1f1, so I’ll download that and try it too. But for now, I reverted to using 5.5.2f1.

    It’s easy to blame Unity and say this is why it’s better to make your own engine but, to be honest, it’s not as if I can make a bug-free engine in comparison. So I’ll just wait until the new versions get more stable before I update again.
     
    Ironmax likes this.
  21. John3D

    John3D

    Joined:
    Mar 7, 2014
    Posts:
    441
    Awesome work! Congrats!
     
  22. AnomalusUndrdog

    AnomalusUndrdog

    Joined:
    Jul 3, 2009
    Posts:
    1,553


    So I got player respawning to work. I'm still not sure how the Game Over screen should look like, other than I want it to be fast, so no drawn out animations. Because I want to let the player get back in the game as fast as possible.

    I'm considering adding a heartrate monitor flatlining sound with some accompanying animation (like the game over screens in the Metroid Prime games, as some people have suggested), provided I can make the whole thing fast and snappy enough.

    @John3D: Thanks!
     
    RavenOfCode likes this.
  23. AnomalusUndrdog

    AnomalusUndrdog

    Joined:
    Jul 3, 2009
    Posts:
    1,553


    Based on the suggestion of a fellow developer, I’ve allowed the player to rotate in-between attacks (while not targeting an enemy).

    I've also fixed a bug with enemies constantly facing the player even while the enemy is attacking (they shouldn’t). Where the character is facing (their rotation) should essentially be locked once they start an attack animation.
     
    Last edited: May 27, 2017
    RavenOfCode likes this.
  24. Ironmax

    Ironmax

    Joined:
    May 12, 2015
    Posts:
    890
    looks smooth :) momentum looks good and natural, keep up the good work. What i do with enemy facing the player is to lerp the rotation look at, so doesn't flip constant but yet have general direction towards the player. This is also goes for where the enemy knows the player position, i delay it for more natural combat.
     
    Last edited: May 27, 2017
  25. AnomalusUndrdog

    AnomalusUndrdog

    Joined:
    Jul 3, 2009
    Posts:
    1,553
    Thanks! I already smooth the rotation, that wasn't the problem. Characters should not be rotating while in the middle of an attack animation. But the enemies were still rotating, that was the problem. It meant that if the player evaded the enemy attack by moving quickly to the enemy's left, the enemy would face to their left while doing the attack, which shouldn't be.
     
  26. AnomalusUndrdog

    AnomalusUndrdog

    Joined:
    Jul 3, 2009
    Posts:
    1,553


    New features on my Attack Editor: instead of hit detection coming from the weapon as a raycast/spherecast, you can now choose to use capsule, sphere, and box shapes. This can also be mixed and matched as needed (various different attacks would use different shapes).

    The shape can be attached from the character's root (between their feet), or from the weapon they are dealing damage from. And various other options for positioning and rotating the shape.

    The reason I made this is because the player later on will have an attack where he pounds the ground with his warhammer, creating a circular AOE attack that knocks back enemies.
     
  27. AnomalusUndrdog

    AnomalusUndrdog

    Joined:
    Jul 3, 2009
    Posts:
    1,553


    Added ability for enemy AI to cancel their attacks, letting them execute their combos faster.

    Also being shown here is the real-time AI editor.
     
    RavenOfCode likes this.
  28. Bakuda

    Bakuda

    Joined:
    Dec 7, 2015
    Posts:
    31
    this is looking really nice. The battle animation is nice and slick and the artwork is fantastic. I also love the story. Terminal illness is a subject that's not always easy to approach. I find it fascinating that you've coupled it with such a power.
     
  29. AnomalusUndrdog

    AnomalusUndrdog

    Joined:
    Jul 3, 2009
    Posts:
    1,553


    Originally, the thumbnails in my Attack Editor were actual 3d models in the scene, resulting in some dead weight during runtime. In deployed builds, this isn’t really a problem since the Attack Editor won’t be there in the first place. But when I’m testing the game in the Unity Editor, they’re there.

    So I created some editor scripts to generate a spritesheet for any animation needed to be displayed on any character. They are saved on disk, so that they aren’t generated over and over.

    It’s then the spritesheet that’s being used, instead of a 3d model being rendered in the GUI.



    At first I was using a C# script to play back the animation of the spritesheets. When more than one of them was playing, it really lagged.

    So I took this one step further and created a shader that does the same job. Since it’s now offloaded to the videocard, the CPU load is now really low, even when a lot of these animated sprites are being drawn.

    I don’t know if it ends up distracting that the thumbnails are all playing at the same time. I’ll probably add a setting later on that users can toggle so that only the thumbnail hovered by the mouse will be played (like the original functionality).

    _______________________________​

    This weekend was also bugfixing weekend so a lot of bugs were worked on. Like this one:


    I’m surprised no one who played my demo day builds have noticed it.


    I use Hacknplan to keep track of things.
     
    RavenOfCode likes this.
  30. AnomalusUndrdog

    AnomalusUndrdog

    Joined:
    Jul 3, 2009
    Posts:
    1,553
    Thanks! One of the pervading themes I'm making for the game is the idea of "desperate struggle". I try to put that in both gameplay mechanics and story.
     
  31. AnomalusUndrdog

    AnomalusUndrdog

    Joined:
    Jul 3, 2009
    Posts:
    1,553
    I added the ability for enemy AI to dodge the player’s attacks, and they’re more competent now, even when taken on one-by-one. I tried taking on three at a time here, just to see how it is. You can see in the lower-right how frantically I’m pressing the buttons.



    And with that, I think I'm done with refining the combat system for now. I switched to my artist hat and finally started working on the player's third basic weapon: the two-handed Warhammer. Here are some studies I made.



    Eventually I settled on the ball-pein type. Having the usual claw as the other end of the warhammer is something I plan as an upgrade later on. The claw would allow either tripping or pulling in an enemy.

    It has to Not Look Too Awesome Yet™ since it’s a starting weapon.

    This weapon’s special property will be knock-back (attacks push enemies back to create space for you if you are overwhelmed). Meanwhile, the Rapier will allow you to parry (time your attack at the right moment and the enemy’s attack will be disrupted and allow you an easy counterattack), and the Spear will impale (impaled enemies are helpless while you duke out combos to it).

    Here are some thumbnail sketches for the attack animations.

     
    RavenOfCode likes this.
  32. AnomalusUndrdog

    AnomalusUndrdog

    Joined:
    Jul 3, 2009
    Posts:
    1,553


    Finished making the 3d model of the warhammer.



    After getting feedback from yonder esteemed /agdg/, an anon was kind enough to provide a video demonstration of how a sledgehammer would be used in real life. Since I’m really just winging it in terms of the animations here, I was happy to check it out.

    Out of all the lively and colorful replies I got, there were two opposing schools of thought:
    1. the video game style animation where it should be exaggerated with significant windup & follow-through, and the idle pose should look cool
    2. the realistic style where movement should be conservative, attacks should not overswing to prevent making yourself open to counterattacks (very HEMA), and letting gravity help with moving the (heavy) weapon when swinging
    In the video above, the right stance is how I initially animated him, as it’s typical of what I see in other videogames. The stance on the left however, is how this warhammer might be held in real life: close to your chest (your center of balance), so you can move around easier.

    Also in the left stance, the weight of the warhammer is distributed to both arms (very clever, even though someone called it a ridiculous “big lollipop pose”), while in the videogame stance, the right arm is shouldering majority of the weapon’s weight (it looks cool though).

    In a real life context, how the weapon is carried is important since it will be held in your hands for an extended period of time, and you don’t want to tire yourself out before even getting to the fight. Remember that the head of the warhammer is a solid hunk of metal, so it is very heavy. But I fully acknowledge that as a videogame, this issue isn’t that important.

    However, all things considered, I’m pretty open to experimentation. So my current plan is: the first 1 or 2 attacks in the warhammer combo will be more on the realistic side with conservative movements. The final attack in the combo will then do an exaggerated wide-sweeping swing. Hits on the warhammer will send enemies flying, if not push them back significantly, so that should help address the concern with leaving yourself open after overswinging.

    In defense of wide-sweeping strikes that leave you open, I’ll let Alan from Sword’s Path explain it:


    From a gameplay perspective, it makes sense to purposefully make the player open to counterattacks, because it gives computer-controlled enemies a fighting chance. A game where the player’s moves are always perfect would make the combat system too easy and boring. But leaving you open after attacking will make it a fair challenge, especially since enemies are subject to the same rules (their attacks leave them open as well).

    Also, as a last point, the realistic way of fighting applies very well with human, armed opponents. Against gigantic monsters (which I’ll certainly include in my game), the attack motions that are seen as overkill and needlessly exaggerated by HEMA practicioners might just be bare minimum when fighting monstrosities.



    And this is the first attempt at the warhammer attack animation. As mentioned, this is following the more realistic style, where movement is conservative.

    The weapon is held upright, so that the weight of the warhammer is distributed to both arms.

    There’s no windup in the start of the attack animation because what’s really happening here is he’s letting the weapon fall down using gravity (this is a solid hunk of metal after all; very heavy, you can let gravity do some of the work for you), and then directing that momentum into a swing.

    The swing produces forward momentum, so to keep up, he steps forward to maintain balance (although since he’s floating, he more of just raises his right leg). I’m making the animation in-place, so the forward step isn’t discernible here (I add the forward movement later inside Unity using my Attack Editor).

    Once the swing reaches down in front of him, he stops the weapon, and brings it back to the original stance. This is to prevent from overswinging and leaving himself open to counterattacks.
     
    Last edited: Jun 27, 2017
  33. AnomalusUndrdog

    AnomalusUndrdog

    Joined:
    Jul 3, 2009
    Posts:
    1,553


    Tried my hand at creating a level when I realized I have no idea what I should do. This is the first time in my project that I leaned back and thought, “Wait, how am I supposed to do this?”



    A level was not in my milestone target anyway so I won’t work on this yet. For now, I’ll do some self-study on level design, architecture, and urban planning (the game takes place in a modern day city).

     
    Whiteleaf likes this.
  34. Fleech

    Fleech

    Joined:
    Jan 9, 2017
    Posts:
    17
    hey, neat seeing you here, i didn't know you liked HEMA as well. looking extremely polished as always.
     
  35. AnomalusUndrdog

    AnomalusUndrdog

    Joined:
    Jul 3, 2009
    Posts:
    1,553
    Hey Fleech, thanks! Didn't know you had a Unity forum account too, watching your game's thread now ;)
     
  36. AnomalusUndrdog

    AnomalusUndrdog

    Joined:
    Jul 3, 2009
    Posts:
    1,553


    Hi, my Demo Day 15 build of my game is uploaded for playtesting! This is only the combat protoype for now. Please try it out!

    Downloadable demos here: https://anomalousunderdog.itch.io/ghost-knight-victis-agdg-demo-day-15




    Changes since last release:
    1. Rapier attacks now do not immediately flinch enemies. Enemies now have a resistance which is whittled down at each hit of the Rapier, until they will finally flinch. This means enemies can freely fight back when you are attacking with the Rapier. (This will be compensated in the future by the fact that the Rapier will be able to parry incoming attacks)
    2. There is now a game over screen. Right now it works similarly to Dark Souls but I have plans for it (you will have limited number of lives, depleting those will force you back to the world map).
    3. Player can now rotate freely in-between attacks, as long as they are not targeting anything.
    4. Enemies now "cancel" their attacks. This means the enemies are now executing combos.
    5. Enemies can now dodge incoming attacks from the player.
    6. Fixed bugs with player input messing up the attack combos.

    Notes:
    1. There are no optimizations yet. There are toggles for the graphical effects, but they are there more for your personal preference. If you're running the game on a toaster, consider yourself warned. Try running the game in a low resolution (800x600 if need be).
    2. There's nothing much to do yet except kill the enemies. This is only a test for the combat part.
    3. There are no unique combo strings. Attacks in this game works similar to Dark Souls and not God of War.
    4. I know the impression right now is there are not a lot of attacks. There will be more variety of attacks you can perform in future versions of the game, as I implement more features (the warhammer, weapon abilities, spells, a 2nd set of weapons).
    5. As some of you have mentioned, you can hit enemies through fences/obstacles. You are not supposed to be able to do this, but I haven't fixed it yet.
    6. Some of you suggested keyboard controls for switching targets. I like that idea, but I have not implemented it yet.
    7. Some people do not understand how the stamina bar works. In the future I may add a simple tutorial to explain this.
    8. You will die quickly if you allow yourself to be surrounded. This is intentional.
    9. Can't customize key bindings yet.
    10. While I added some simple ambient music, there are no sounds yet.
    11. The difficulty right now is not yet representative of the final goal. Attack animation speeds, Enemy AI, Damage values, and Stamina costs are continually subject to tweaks/balancing.





     
    Last edited: Jul 2, 2017
  37. AnomalusUndrdog

    AnomalusUndrdog

    Joined:
    Jul 3, 2009
    Posts:
    1,553


    Worked on an experimental 2-swing combo for the warhammer. The idea here is using the momentum gained from the first swing to continue into a second swing.

    Heavy weapons like these have their center of gravity (majority of the weight) at the head/tip, requiring considerably more effort to stop or redirect their movement once you get them swinging. Because of this, the way they are used is very different from balanced weapons, like swords (where the center of gravity is closer to the handle, where you grip it).

    The windup animation is minimal: instead of exerting effort to move the weapon back for a swing, he simply tips the weapon over to let gravity propel it downward, then guides that that into a swing. With a heavy weapon like this, getting hit even when it’s only propelled by gravity will already hurt a lot.

    When that first swing is finished, instead of bringing the weapon back up to a neutral stance for the next swing, he rotates his body to make ready for the second swing (it helps that the character has the supernatural ability to float). That’s because when making the next swing with a heavy weapon like this, it’s lesser effort to move your body around the weapon, than having to move the weapon around your body.

    The second swing is more powerful, as it has a full circle spin behind it. But stopping all that momentum equally requires a lot of power. So I emphasized that in the recovery portion of the animation.

    For anyone worried that this long recovery period would leave them open, you can cancel this to a lighter attack so you can move sooner (as is typical of some action/fighting games).



    Finished adding the idle, move, dash, and hurt animations for the warhammer.

    The attack right now is only for testing (because the game will bug out if I don't add at least one). Will work on the warhammer's combo attack animations, tweak damage and pushback values next weekend, among other things.

    And with that, the player finally now has three weapons. Technically, this hits my milestone: a combat demo in a closed arena with 1 enemy type, and the player having 3 weapons. But I still have a lot to do before I wrap this up.

    He can freely mix the three weapons during combos because it’s part of his magical ability to conjure weapons at will. There’ll be more attacks later on that capitalize this with weapon-based spells (spear walls, flying swords, warhammer tremors, etc.). There will also be more weapons much much later on, for variety (some planned ideas include: bident, basket-hilt sword, falchion, sledgehammer, iron-shod staff, etc.)
     
    RavenOfCode likes this.
  38. AnomalusUndrdog

    AnomalusUndrdog

    Joined:
    Jul 3, 2009
    Posts:
    1,553


    Making the charged ground pound combo for the warhammer. There’s a slight pause at the start because that’s when the warhammer will be engulfed in blue flames before the attack.

    This will work if you hold the warhammer attack button long enough for the code to recognize it as a charged attack, and normally it would just be one attack. But I'm going to make it that you can keep pressing the button right after that to continue the pound attack into a combo, up to a 4th very powerful pound.
     
    RavenOfCode likes this.
  39. AnomalusUndrdog

    AnomalusUndrdog

    Joined:
    Jul 3, 2009
    Posts:
    1,553
    Just about recovered from a fever, so momentum slowed down a bit.



    Fixed a bug with blur-behind-GUI effect not working if near a bright light source.

    Also added a few tweaks like slowed down fading of movement animations if you're rapidly twiddling the left thumbstick, and stopped attack push if your attack hit an enemy.
     
    RavenOfCode likes this.
  40. AnomalusUndrdog

    AnomalusUndrdog

    Joined:
    Jul 3, 2009
    Posts:
    1,553
    You guys are probably sick of seeing posts of these animations (I am kind of getting tired of making warhammer animations myself), but I want to get this working at least passably before I move on to the next task.

    This is, for the moment, the finished 2-hit combo for the warhammer (standard attack).


    For its standard attacks, I needed wide arcs that hit multiple enemies coming from different sides, because this weapon is meant to give you a bit of breathing room if you're surrounded. So I made simple horizontal swings. This is really a gameplay need, more than anything else.

    I've been basing the timing from warhammer attack animations in Fable 3 and Bloodborne.

    I've made all the necessary warhammer attacks for now. I'll add them in-game and just tweak afterwards as necessary.

    Here's the version where he only attacks once:
     
    RavenOfCode likes this.
  41. AnomalusUndrdog

    AnomalusUndrdog

    Joined:
    Jul 3, 2009
    Posts:
    1,553


    Added warhammer attack animations for testing.

    The enemy's hurt/death animation when getting hit by the warhammer is incorrect, I will perhaps make some new hurt/death animations for this.

    Also, the pound attack at the end of the video is supposed to add flame particle effects on the weapon since it's a charged attack, but I haven't added it in yet.

    _______________​



    One thing I like about Blender is just how customizable it is. Here's some add‑ons that I made that made my life easier when I’m making animations. I released all of them in MIT License so feel free to make use of them if any of you use Blender!
     
  42. AnomalusUndrdog

    AnomalusUndrdog

    Joined:
    Jul 3, 2009
    Posts:
    1,553


    Here I have a two-hit combo, but the second attack doesn’t transition back to the first attack smoothly. This was already using cross-fade in Unity, so a manual tweak to the animation is necessary.

    I created a variation of the first attack animation, this time it flows from the second attack much better. This variation is then used if coming from the second attack.

    In the Attack Editor, this is a new animation property I call "Wrap-around". It should work even for combos that have more than two attacks in it. But it’s really only needed if the last attack animation in the combo doesn’t transition back to the beginning attack nicely.



    ______________________​



    Fast movements cause the cape to get stuck inside the character’s colliders. So I added a Boolean (on/off) property to Attack files that would forcibly reset the cape’s cloth simulation to its initial state when that Attack is performed. It’s not perfect, there’s still some unpleasant looking sharp bends where polygons look like they’re being crumpled (I think to really fix that, I need to redo the weight painting for the cape’s cloth simulation), but it’s better than before.

    Also shown here is the Warhammer pound combo.



    Got a visual effect for the Warhammer's charging loop. It's still lacking the visual effects on impact, and I'll probably tweak the colors, but I'm happy with how it looks like so far.

    I activated the Rapier's charged attack in the video for comparison.

    Also shown here: I’ve moved the player’s health and stamina bar from the top-left to the bottom of the screen. I’m experimenting with this since having to dart your eyes to the top-left is a little annoying; it takes your gaze out of the action for a moment. This is important when you're fighting: you wouldn't want to get hit while your focus was somewhere else.

    I'm not definitely sure if moving it to the bottom is going to be better overall, so that's why I'll test it. I’ll leave it like this for the next Demo Day to gather feedback.
     
  43. AnomalusUndrdog

    AnomalusUndrdog

    Joined:
    Jul 3, 2009
    Posts:
    1,553


    Finally added a nice looking impact visual effect for the Warhammer's charged attack. Also got an appropriate swoosh trail for this (kinda plain looking but at least it fits).

    I might try experimenting with some camera shake as additional juice for this, but I’ll leave it for now and move on to other tasks.



    To be able to play those impact particle effects in the first place, I actually needed to add new properties to attacks: the ability to spawn prefabs from any moment in the attack animation. I also added in the Attack Editor some tools to let you position the spawned prefab from the weapon's position, or from the character's pivot point.

    Technically you could put any prefab, but as seen here, I made it for spawning particle effects. I’ll probably have more creative uses for it later.

    I also added the ability to specify what kind of swoosh trail effect to play for each attack, as these pound attacks needed a different kind (that thicker bluish trail upon the swing). And I needed to be able to force attacks to play the weapon's fire particle effects in the 2nd and 3rd pounds of the combo.

    I suspect I'll need to change the UI/UX of the Attack Editor now that I've been adding more and more features to it. Probably in a succeeding milestone.
     
  44. AnomalusUndrdog

    AnomalusUndrdog

    Joined:
    Jul 3, 2009
    Posts:
    1,553


    Implemented the new hit effect type Knockdown, specifically made for the Warhammer charged attack. Testing it with a non-hostile AI.

    Damage values still need to be tweaked. Placement of blood hit effects need adjusting. Also, the enemy’s cloth simulation is passing through the ground since it was never meant to collide with that. I’ll need to figure out a way for that.
     
  45. Pixelith

    Pixelith

    Joined:
    Jun 24, 2014
    Posts:
    580
    I'm in love with these character designs
     
  46. AnomalusUndrdog

    AnomalusUndrdog

    Joined:
    Jul 3, 2009
    Posts:
    1,553


    Implemented the Rapier’s parry ability. The first two attacks in the Rapier combo always parries. I’ve had to do multiple takes on recording this one cause I keep messing up the timing while keeping track of the screen recording software.
    _______________________​

    @Shiro_Rin: thanks!
     
    Pixelith likes this.
  47. AnomalusUndrdog

    AnomalusUndrdog

    Joined:
    Jul 3, 2009
    Posts:
    1,553




    A little productivity tool improvement here: I added copy-paste of hit detectors for my Attack Editor. After meticulously positioning a box to fit the weapon, I don’t want to have to redo that for the next attacks, so I made code to just copy the values and I can paste it somewhere else, even on a different attack file.

    I did it the same way copy-paste of components in Unity work here: you can paste onto an existing item, meaning it will just copy the values used, or you can paste it as an entirely new item added at the end of the list.

     
  48. AnomalusUndrdog

    AnomalusUndrdog

    Joined:
    Jul 3, 2009
    Posts:
    1,553


    I was converting my repo to use Git Large File Storage. In the end I decided not to use it. I’ve already successfully created a duplicate of my repo that uses LFS, but as I was learning it, I realized it makes the repo centralized (you’re now very dependent on the remote server that is hosting the large files). That made it really important where you choose to host your LFS.

    I was using BitBucket so it was natural to go with it. I only get 1 GB of space for LFS files in my free user account. To increase this, it comes at a price of $10 per additional 100 GB used.



    GitHub is a little more granular: $5 will give 50 GB.



    Obviously, my project won’t ft the 1 GB limit for free users, so I’d have to purchase something here, whether I go with BitBucket or GitHub. I’d really rather not spend money on a project this early. This endeavor isn’t paying for itself yet right now, so I’m reluctant. I’m already spending about $10/month for Photoshop CC. I don’t want to add more to that.

    As it is, I’m more willing to dump my raw binary files to my Google Drive (got 117 GB of space there for free), even if it’s not under version control.

    I’ll just continue using removable drives as backup remote repositories.
     
  49. AnomalusUndrdog

    AnomalusUndrdog

    Joined:
    Jul 3, 2009
    Posts:
    1,553


    Got my Demo Day 16 build up! Please try it out and leave feedback!

    https://anomalousunderdog.itch.io/ghost-knight-victis-agdg-demo-day-16



    Ghost Knight Victis is a single-player action RPG about a terminally-ill superhero fighting against Lovecraftian horrors invading the real world, to save the woman he loves before he dies. The catch is that his health deteriorates every time he uses his powers. As the player, you need to ensure the main character says alive until the end of the year, when the final boss appears.

    This is only the combat protoype for now.

    Changes (since last AGDG Demo Day release):
    1. Added the Warhammer weapon. For those using mouse & keyboard, this is activated by pressing both left and right mouse button at the same time. If your mouse has back and forward keys, those are binded to the warhammer as well. Note: the game will have rebindable controls in the future.
    2. Warhammer has a charged attack (hold the button then release). It can be followed up with two more warhammer attacks in a combo (if you have enough stamina).
    3. Added parry ability to the Rapier. Parry automatically happens on the first and second of the Rapier’s regular attack combo (those attacks can damage and parry at the same time). To perform this properly, you need to time the attack just as the enemy’s attack meets with your weapon’s slash movement.
    4. Moved the player’s health and stamina bar to the bottom of the screen. This is an experiment to see if that makes it easier to glance at your health/stamina (as opposed to when it was at the top-left corner of the screen).

    Notes:
    1. Gamepad is recommended!
    2. I know activating Warhammer attack by pressing both left and right mouse buttons can be buggy (it would sometimes register as a rapier or spear attack if you didn’t press both buttons at exactly the same time). I don’t have a fix for this right now. If your mouse has back and forward buttons, you can use those instead (either back or forward will activate the warhammer).
    3. There are no optimizations yet. There are toggles for the graphical effects, but they are there more for your personal preference. If you’re running the game on a toaster, consider yourself warned. Try running the game in a low resolution (800x600 if need be).
    4. There’s nothing much to do yet except kill the enemies. This is only a test for the combat part.
    5. There are no unique combo strings. Attacks in this game work more similar to Dark Souls, and not God of War.
    6. I know the impression right now is there are not a lot of attacks. There will be more variety of attacks you can perform in future versions of the game, as I implement more features (weapon abilities, spells, a 2nd set of weapons).
    7. As some of you have mentioned, you can hit enemies through fences/obstacles. You are not supposed to be able to do this, but I haven’t fixed it yet.
    8. Some of you suggested keyboard controls for switching targets. I like that idea, but I have not implemented it yet.
    9. Some people do not understand how the stamina bar works. In the future I may add a simple tutorial to explain this.
    10. You will die quickly if you allow yourself to be surrounded. This is intentional.
    11. Can’t customize control bindings yet, but it will be added.
    12. There are no sounds yet.
    13. The difficulty right now is not yet representative of the final goal. Attack animation speeds, enemy AI, damage values, and stamina costs are continually subject to tweaks/balancing.

     
  50. AnomalusUndrdog

    AnomalusUndrdog

    Joined:
    Jul 3, 2009
    Posts:
    1,553


    Thanks to Demo Day 16, an Anonymous from /agdg/ suggested me something that is probably going to make the attack input better. Right now, attacks trigger on button release, not on button press. I do that so that I can recognize holding the button long enough for charged attacks.



    The suggestion was to immediately trigger attacks on button press instead, and if the button is still being held long enough, blend it into the charging animation for charged attacks.



    I tried it out and while I still have some bugs with my implementation of it, it does make attack input faster.

    The problem is that it changes the way you do charged attacks. This new style means if you want to do a charged attack, you'll have to do a regular attack first, so you'll have to consume stamina for the regular attack, on top of the stamina cost for the charged attack.

    Some attacks also have a very different pose from the charging animation, so blending them looked awkward. I decided I needed to make alternative charging animation poses, depending on which attack you came from.


    Current Attack Input

    Pros:
    1. It already works
    2. If you do a charged attack, you only consume stamina for the charged attack.

    Cons:
    1. Input delay when attacking


    New Attack Input

    Pros:
    1. No input delay when attacking

    Cons:
    1. To do a charged attack, you do a regular attack first (you consume stamina for the regular attack on top of the stamina cost for the charged attack).
    2. Still some bugs I'm fixing. Right now it's inconsistent when exactly the attack animation is blended into a charge animation.
    3. More animation work for me due to needing to create alternative charging animations.

    Despite all the cons, this new attack input method is very promising, because the attack buttons feel a little more responsive now. I will try to work on it more next weekend to fix the bugs.