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, 06:50:01 AM

Need hosting? Check out Digital Ocean
(more details in this thread)
TIGSource ForumsCommunityDevLogsTacticrawl | 2018 progress report
Pages: 1 ... 3 4 [5] 6 7 ... 9
Print
Author Topic: Tacticrawl | 2018 progress report  (Read 69671 times)
deab
Level 2
**



View Profile
« Reply #80 on: November 29, 2015, 11:03:24 AM »

Update #30
Combat Animation

The new script based animation system is almost there, and I've now plugged it in to the existing combat system.

To recap - I wanted the ability to animate a model based on the equipped items. So for a humanoid, each arm is animated separately, while the body has its own set of animations (idle, moving). Some animations are performed across the whole model - attacking, dodging, death animation (not yet added these last two).

Everything is controlled by code, based on the imported Blender FBX. I'm using animation action names to drive everything. It's been a lot of work - but adding new assets and animations will be much faster so its time well spent.

Fight!



In this example you can see a fight between our hero and a nasty rat.

Technical Detail

Each model can have any number of 'containers'. Containers can hold items (props), which can then be used by the character.

Containers are added to the armature in Blender with specific names - hook_mouth and hook_hand are supported so far, future options will be added for belts and backpacks.



These bones provide the position and rotation for equipped items, and when found by the import script set up the container ready for use at run time.

Hand and mouth containers have a hidden item preloaded ('hand' or 'mouth') which are like any other item but can't be seen when equipped, and are auto removed/replaced when another item is equipped.

Attack options (and other actions, such as use, drop or throw) are based on the equipped items. Hopefully you can see in the example above, the human can attack with the sword or shield. The rat will only have a single option, attacking with its mouth (claws will no doubt be added!).

When an attack hits, the damage type is derived from the item used - you can see this in the red floating text.

  • Sword = slash
  • Shield = blunt
  • Teeth = pierce

A chance to dodge is also implemented - based on the direction of attack. Currently all successful attacks inflict 10 damage, but later this will be based on the type of damage and what was hit. I'm also missing attack animations for each hand (attacking with the sword or shield plays the same animation). I'm planning to add a 'mirror' function so I only need to animate attacking with one hand, then play the correct animation as required.

The animation also drives *when* something happens. I control this by noting a frame number on the end of action names in Blender, then when that frame is played the effect is fired. I'll also be adding juice effects including dodge+hit animations and blood splatters.

Remember I mentioned that the rats mouth was a container, just like the human hands? Rats can technically equip an item to..



Other Improvements
This week I've also added specular & metallic values to colours, along with a reflection probe. Shiny armour! The colour palette really needs some work but I'm holding off for now.
« Last Edit: November 29, 2015, 12:29:51 PM by deab » Logged
Ashedragon
Level 2
**



View Profile WWW
« Reply #81 on: November 29, 2015, 11:27:36 AM »

Good progress! Although the animations really lack energy and momentum. They just go one speed throughout.
Logged

deab
Level 2
**



View Profile
« Reply #82 on: November 29, 2015, 11:57:07 PM »

Thanks for commenting! Agreed on the animations, I'm concentrating on the mechanics/code so everything should be considered place-holder.
Logged
deab
Level 2
**



View Profile
« Reply #83 on: December 02, 2015, 10:14:53 AM »

Update #31
Editor Tools

As the number of assets is starting to build up, and the amount of config required for each, I've started improving my Editor tools.

Often when changing a model or a rig, I have to recreate the Unity prefab. I've already automating filling in data fields based on the FBX content (animation clips and 'hook' bones for example), however an increasing number of fields require human editing (examples include collider type and icon name). 

I've added a simple system to 'back up' this data to a JSON file, which can then be quickly restored when a prefab is recreated.

Prop Positioning
Next step was the position / rotation for props when equipped to the various hooks a model can have. For example, a sword will need a different local position/rotation when when hung on a belt hook as opposed to held in hand.

Here's the result:



I created a test model with every hook type - currently hands and mouth, more will be added as required. (The human model doesn't have a 'mouth' hook, but other creatures will.)

This tool allows the quick parenting of the prop to any of the bone hooks on my test model without dragging in to the scene and clicking through the armature to find the bone I need.  I can then adjust the position and rotation as required, and click 'save' to update the prefab.

This information is then saved to the data back up as mentioned above.

I spent around 6 hours on this tool (there were a few things I hadn't attempted in the Editor before) but it's going to be a real time saver.
Logged
deab
Level 2
**



View Profile
« Reply #84 on: December 07, 2015, 01:55:03 PM »

Added support for death animations, first victim:



Blood splatter will come later  Gentleman
Logged
deab
Level 2
**



View Profile
« Reply #85 on: December 09, 2015, 08:09:19 AM »

Chance to 'Block' and 'Parry' incoming attacks has been added, based on equipped items and the direction of attack.

Also added a 'back' equipment slot. Normally this would be used for a backpack (not yet implemented), but if you are expecting trouble, why not equip an extra shield?

Logged
deab
Level 2
**



View Profile
« Reply #86 on: December 16, 2015, 08:47:01 AM »

Cleaned up the display for your characters today. Previously I had the health bars floating in the world view, but was never really happy with this.

Gold border is the currently selected character. The display shows the number hot key for quick select (top left), current order (top right, showing 'attack' and 'follow'), and bottom right the current order related target.

Health bar changes colour based on current hit points - standard stuff, but effective. Character tinted red on death Sad


Logged
deab
Level 2
**



View Profile
« Reply #87 on: December 20, 2015, 04:48:13 AM »

Created a new skeleton character. My work on automating animation really paying off, simple to add various idle and arm animations. Next to enable the AI to pick up and use weapons / shields.

** Click for Skeleton army Glycat **



Logged
deab
Level 2
**



View Profile
« Reply #88 on: January 07, 2016, 06:06:43 AM »

Update #32
Tactical Display

'The Ever' is grid based, and allows diagonal movement and attack. Each character can be attacked from 9 directions.

Combat actions consider both the direction of an attack, and the height difference between the characters concerned - so the position of you characters when engaging will be a major gameplay element.

Direction Of Attack
The direction of an attack is relative to the victims facing direction.

There are currently three opportunities to avoid an incoming attack: DODGE, BLOCK and PARRY.

DODGE
Attacks to the front of a character, or the 2 adjacent sides have a chance to dodge. There's a higher chance to DODGE when the attack arrives from the forward direction, and lower chance for the 2 adjacent directions.

BLOCK and PARRY
Shields (and potentially other large items) can be used to block, while swords, daggers etc. can parry attacks. As with dodging, an item covers 3 directions centred on where the item is equipped. Unlike dodging, all 3 directions have an equal chance to interrupt an attack.

The image to the right shows the directions covered for character holding a sword and shield.

The yellow arrow depicts the current 'facing' direction of the character. Yellow dots show possible DODGE reaction.

Blue dots show possible PARRY direction for the sword equipped in the right hand, while red show possible BLOCK direction for the shield equipped in the left.








Height Advantage
Any height difference for the tiles involved will also affect the chance to react. The larger the height difference, the larger the impact. You'll want to be above your victim when attacking!

Tactical Display
To aid the player, I've now added a tactical display that shows height modifiers for the tile under the mouse pointer:



The display shows 9 tiles. All information is relative to the center tile. The colour borders match the in-game tiles, and is just a visual aid. Top row of each tiles shows a arrow indicating the height of the tile compared to the center tile, and the resulting modifier to combat.

In the image above, we can see that the top-left tile is higher than the center, and attacking that tile would have a -10% chance to land an attack. Conversely, and attack FROM the top left tile against the center tile, would have a +10% chance.

The yellow triangle shows the direction an attack from the current player character would arrive from.

Things get more interesting when a monster is on the selected tile:



First difference here is that the top 3 tiles are walls, so shown as solid blocks of colour.

The skeleton is facing to the right, and this is depicted by the extra think border on the center tile right side.

The middle right tile shows a chance for the skeleton to dodge, block and parry attacks from this direction, along with the chance of success. These values have been modified (-12% in this case) due to the tile height - as you can see in the image, it's a big step up from the skeletons tile.

Above the tile display, the monster name is shown, along with the health bar. Extra information will be added here - for example any current temporary effects.

The Tactical Display can be toggled on/off, and rotates to match the camera orientation. No doubt this will evolve further, but it's already a useful tool.
Logged
deab
Level 2
**



View Profile
« Reply #89 on: January 16, 2016, 06:52:33 AM »

Spent some time cleaning up assets this week and added a new dungeon set:


Logged
deab
Level 2
**



View Profile
« Reply #90 on: January 26, 2016, 08:36:32 AM »

Update #33
Goblins & more

Added a new monster type - the Goblin. Goblins will be used to test 'social' monster types. My goals for social monsters are:

  • Assist fellow goblins who are in combat
  • Strength in numbers - if low on health during combat, will only flee when there are no other goblins engaged
  • Ability to call for help when attacked
  • Healer types will heal fellow goblins (once healing is added!)

I've already added a 'self aware' option for monsters. Self aware monsters may flee combat if low on health, seeking a way to heal. Some monsters won't care - skeletons will continue to fight no matter what.



Other Changes

Lots going on! Custom font is now in, and used for an improved names display. Monsters and props show there name on mouse over, plus the current active character's name is displayed:



He's me hopping around as a goblin. Note the name is in green, in normal gameplay monster names are shown in red if aggressive, or grey if neutral.



Combat is also coming on - damage types are in, and characters have resistances based on the 'material type' (flesh, bone etc.) Monsters will choose the most effective attack based on available options.

New torches more consistent with the overall  look:


« Last Edit: January 26, 2016, 08:49:22 AM by deab » Logged
deab
Level 2
**



View Profile
« Reply #91 on: January 28, 2016, 08:26:16 AM »

Players and monsters can now move objects around:



Needs a bit more work to cover failures, but a good start.
Logged
DangerMomentum
Level 3
***



View Profile WWW
« Reply #92 on: January 28, 2016, 08:40:03 AM »

Chance to 'Block' and 'Parry' incoming attacks has been added, based on equipped items and the direction of attack.

Also added a 'back' equipment slot. Normally this would be used for a backpack (not yet implemented), but if you are expecting trouble, why not equip an extra shield?



This is the kind of customization I look for in my RPGs. Looking good! I see a lot of gifs, but do you have any gameplay videos? I'd be curious to see how it plays turn-to-turn.
Logged

deab
Level 2
**



View Profile
« Reply #93 on: January 28, 2016, 09:25:25 AM »

This is the kind of customization I look for in my RPGs. Looking good! I see a lot of gifs, but do you have any gameplay videos? I'd be curious to see how it plays turn-to-turn.

Hi DangerMomentum, thanks for posting.

I'm gearing up for my first video - few rough edges to fix up, but getting there. Hope to have something out in Feb.

I'm working hard to get the turn-to-turn play right, as with multiple controllable characters, and turns character based rather than team based there's more to consider than your standard tactics game. I have a low tolerance level for forced delays and extra mouse clicks in games, so I'm confidant I can get it right.
Logged
deab
Level 2
**



View Profile
« Reply #94 on: January 31, 2016, 01:26:28 PM »

Most Sundays I keep a project snapshot and a log of major changes/improvements. Though I'd start including them here, as there are often changes I don't talk about here on the blog.

Change Log 31/1/16

  • Font added 'Basic Sans SF Bold'
  • Wooden club and shield props added
  • Particle support for Prefabs improved, disabled if in fog/memory.
  • Particles updated to pixel style, new torch prop.
  • Props can be pushed and pulled around, both player and AI, with some degree of intelligence


Logged
deab
Level 2
**



View Profile
« Reply #95 on: February 07, 2016, 04:34:42 AM »

Working on a few areas this week.

Improved the 'action camera' (shown in the gif below). The action camera shows any enemy attacks that are within your field of view. Haven't yet added an animation for when a character takes a hit, or blood splatters, but both on the list:



Also some AI and pathfinding improvements.

Change Log 7/2/16
  • Prop moving improved prioritising push/pull based on surroundings; prevented two characters constantly moving a prop between them.
  • More ‘action’ text added, blocked, push, flee etc.
  • Action camera overhaul - snaps to position; chooses view angle based on walls; show names of characters.
  • Pathfinding added ability to supply list of tiles to avoid - used by StateMove, where a Prop can’t be moved, find alternate route.
  • 3D camera focus changed to better center characters on screen.

Spent a little time preparing some artwork for the 7DRL. Never attempted a jam type project before, so excited to see how much I can get done. I have a plan for some mechanics I want to include in The Ever, so will base a simple RL around them.

Going to be 2D sprite based, but I'm using 3D models to render the sprites. Plan to prep all the artwork before the 7DRL so I can concentrate on code for the duration.

Here's the player character so far in sprite form:



Logged
deab
Level 2
**



View Profile
« Reply #96 on: February 13, 2016, 09:47:32 AM »

Update #34
XCOM2 style UI

Great progress this week for UI/control! I'd been planning to the revisit the UI as I had a functional but not very pretty 'context menu'. This works ok, but isn't really 'fun' and obscures whatever you were trying to attack/interact with.

Playing a fair amount of XCOM2 I liked the little UI for controlling your character - a row of icons showing possible actions, and a targeting row above. I've now implemented my version of this control:



In the above shot our character is holding a bow (there's no concept of 2 handed weapons yet, so the free hand is also shown). The bow is selected (either by clicking it's icon, or pressing '1'). Above this are all the possible targets within range, with the first rat currently targeted.

Tab key cycles the targets, and Enter key actions the attack. In the world view, you can see the tiles available for attack with the current weapon, and highlights on the enemy characters (I need to add an indicator for the current target).

I haven't yet added range attacks, just a min/max range stat so I could test the UI. Non-weapons will also be covered here once 'use' effects are added - for example, holding a torch will also give the option to light/extinguish. I may also add intractable items within reach - crates you can push/pull, switches to operate etc.

I'll be keeping the context menu to, as this is useful for giving orders that will take more than 1 turn - for example interacting with a object further away, or melee attack on an enemy out of reach.

Photo Booth
To get this far, I needed icons for all the props (weapons, objects etc.). I'd been taking screen shots and cutting out in Photoshop, but this was a pain - I had to save them and then hook them up to the prefab.

Time to improve this, so spent a day creating an in Editor took. I can now drop a prefab in the scene and open the 'Photo Window'. From here I can rotate (using the normal Editor gizmos), zoom and pan the live preview image until happy. Clicking the
'Save' button saves the image (via a RenderTexture) to a new Texture2D. The new texture is auto-named, and used at runtime without me having to take any further action. Much easier!



(The red box in the gif shows where the characters name is shown in game.) No doubt I'll add to this tool over time, but good enough for now!

Change Log 13/2
  • Bow and Mace props added (range attack not yet implemented)
  • New in world tile markers added, used to show attack range and when attack animation plays, highlights involved parties.
  • Editor tool added for creating icons.
  • New ‘player control’ UI added, shows useable items, and possible targets, including keyboard control.
  • SimpleSQL asset and SQLite database added, began prep for better data management.
  • Tuned 'in-game' action text
Logged
deab
Level 2
**



View Profile
« Reply #97 on: February 21, 2016, 07:15:31 AM »

Nothing much to report this week - I've been working on migrating data to a SQL database, and building Editor tools to manage everything. As databases don't support common Unity structs (Vectors, Colors etc) fair bit of work required to serialise back and forth.

I won't be using the database at runtime. I'm packing the data in to simple text files, which are read in to Dictionaries at start up. I think the hard-word is done, a couple more days and this should be done.
Logged
deab
Level 2
**



View Profile
« Reply #98 on: March 01, 2016, 11:25:43 AM »

Update #35
Loot Drop!

With the database work complete, I've moved on to more interesting things. Major addition this week is that items dropped are now animated rather than just appearing on the floor:



As part of this work I added 'floor' position and rotation for items, so they no longer just stand up, but now set per object.

Characters also now drop equipped items on death:



Previously a dead monster kept hold of his items, so this is a nice change!


Change Log 1/3/16
  • SQL database now used in Editor for Substances and Props. Data written to text files for compiled game.
  • Range attack added (missing animations).
  • Prefab backup data changed to use ScriptableObject rather than json text file.
  • Floor hook for Props now fully implemented.
  • Prop 'drop' animation added.
  • Pawns drop equipped items on death.
Logged
deab
Level 2
**



View Profile
« Reply #99 on: March 05, 2016, 02:14:26 AM »

I'm participating in the 7 Day Rogue Like for the first item. Planning an EverQuest inspired game, prototyping some mechanics that I want to include in The Ever.

I'll be posting updates on Rogue Temple and on Twitter.
Logged
Pages: 1 ... 3 4 [5] 6 7 ... 9
Print
Jump to:  

Theme orange-lt created by panic