Welcome, Guest. Please login or register.

Login with username, password and session length

 
Advanced search

1411423 Posts in 69363 Topics- by 58416 Members - Latest Member: JamesAGreen

April 18, 2024, 05:53:12 PM

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



View Profile
« Reply #20 on: April 24, 2015, 07:38:53 AM »

Update #9
Managing data

Back to actual coding this week after a lot of graphic work. Time to start moving asset config out of the source code and in to data files.

I've settled on JSON format for storing data for the following reasons:

  • it's human readable
  • I only need to specify fields that differ from the default
  • fields can be listed in any order

I'm using JSON .NET For Unity to perform the heavy lifting.

So far map Tiles and Props (items that appear in the world but don't have any AI) have been migrated.

Using Props as a example, I first created a struct to base the json data on:

   public struct Data
   {
      public int id;
      public string name;
      public string prefab;
      public byte[] lightColour;
      public bool blocksPathing;
   }


The Props.json file contains current props:

[   {
      "id": 0,
      "name": "template",
     "prefab": "",
     "lightColour": [0,0,0],
     "blocksPathing": false
    },
    {
      "id": 1,
      "name": "wallTorch",
     "prefab": "prop-wall-torch",
     "lightColour": [18, 12, 10]
    },
   {
      "id": 2,
      "name": "skull",
     "prefab": "prop-skull"
    },
   {
      "id": 3,
      "name": "tree-stump",
     "prefab": "prop-tree-stump",
     "blocksPathing": true
    },
   {
      "id": 4,
      "name": "grass",
     "prefab": "prop-grass"
    },
]


I've included a template for easy copy/paste, as I'm managing the file by hand for now - I'll add a tool to modify the file later.

At runtime, the json file is read in, creating a List<Data> ready for processing:

      List<Data> jsonList = JsonConvert.DeserializeObject<List<Data>>(json.text);

Finally objects are then created, ready for use. Simple for now, but it's a solid start and I can expand to other object types. My source code is also a lot cleaner, which is something I tend to obsess over  Gentleman

Logged
deab
Level 2
**



View Profile
« Reply #21 on: April 26, 2015, 09:25:07 AM »

Update #10
Wooden spikes!

I'm aiming to create a new asset every week to keep my (limited) Blender skills up, and also develop the art style. This week: wooden spikes! These will cause damage to anyone pushed in to them, so will be useful in combat.



Logged
erebusman
Level 2
**


no one of consequence


View Profile WWW
« Reply #22 on: April 26, 2015, 11:54:40 AM »

You've made really nice progress on your art, a good testament for other programmers in my opinion! The spikes look really good and fit your style nicely!
Logged

Infernohawke Entertainment
deab
Level 2
**



View Profile
« Reply #23 on: April 30, 2015, 09:51:13 AM »

Update #11
Knockback attack + wall = OUCH!

This week I've added 'crushed' damage when knocked back into a blocked tile. This required a fair bit of re-factoring, as one effect (knockback) triggers a second (crush), all timed with the animations. The resulting code is far simpler, and that makes me happy.

Here's a slow-mo gif showing a rat and eye hit with a 'Cleave' attack. This attack hits 3 tiles, damaging and knocking back anyone that fails to dodge the attack. Mr rat takes damage and is forced backward, while the eye is crushed against the wall, taking damage twice.



Planning to revisit this once damage types are added - for example CRUSH, PIERCE, BURN, SHOCK. Wood spikes can then add pierce damage, and all types can be compared against resistances (crush vs armour more damage than pierce).
« Last Edit: May 05, 2015, 03:34:34 AM by deab » Logged
deab
Level 2
**



View Profile
« Reply #24 on: May 05, 2015, 03:58:33 AM »

Update #12
Rigging

Spent the weekend learning how to rig a humanoid model in Blender. Not something I've attempted before, but I think I'm over the worst. I recommend this tutorial for anyone starting out:

https://www.youtube.com/watch?v=cGvalWG8HBU&feature=youtu.be

I'm not planning to go overboard with animation, I imagine anyone who really enjoys playing will soon turn off/speed up animations rather than wait/watch them 100 times (I know I always do with turn based games). Suspect 'idle' animations will be my focus, as these give life to the world without slowing the game play down.

I've also tried a new approach to texturing. Previously I would unwrap and then paint in 3DCoat / Photoshop. However as most faces are flat colour (and I'm trying to stick with this style as much as possible), this time I've tried just using a colour palette texture (so solid squares of colour), unwrapping in Blender using 'smart project' and just dragging the faces to the correct colour block.

Seems to be working well - I don't need to spend time unwrapping, so can quickly update the UVs after making changes, and keeps everything inside Blender.

Here's the new basic orc model showing the rig:



In game, most of the triangle artefacts aren't seen as I'm not using 100% flat faces:



More work for that model I think, can probably simplify the arms, and add some sort of armour. The club is temporary - held items I'm planning as separate objects that can be looted/swapped out, but that's some way off.
Logged
erebusman
Level 2
**


no one of consequence


View Profile WWW
« Reply #25 on: May 05, 2015, 05:48:48 AM »

Hey there, nice progress.  Animation can be something that really stumps people - glad to see you are muscling your way through it.

A tutorial I often go back to for its simplicity and informative nature in blender animation is this one you might also like.

Your Orc looks good; but if I were to provide a critique it is that he might be "too facey" meaning while your game appears to be going for low poly in general I can see a whole lot of faces around his arms and chest and face in particular - this gives a little bit of high poly noise to my eye and then detracts from the simplicity of your art style.   Its not major ; but I do pick up on it a bit.

I wouldn't take action on that right quite yet - see how things go and if you find it bothering you -  or perhaps liking it then do what you want based on that.

As more generalized advice; when working with low poly try to utilize those polygons to express anatomy as much as possible.  An area where you appear to have spent quite a few polys to low results is the upper arm area. I can see a whole lot of polys but there is literally no upper arm definition going on there and it makes his arm look like its fat rather than muscle tissue.

Low poly is the art of impressionism - and to create the impression's you often must exaggerate things just abit or they won't be visible to the player.  This is the root of the "hyper" physique you see in many video game characters .. (although people would like to think it rooted in young male egos) artists were working with low resources and wanted to create dynamic strong characters so they exaggerated.  I think these ideas and techniques could enhance your characters a bit!
Logged

Infernohawke Entertainment
deab
Level 2
**



View Profile
« Reply #26 on: May 05, 2015, 01:06:09 PM »

Thanks for the feedback erebusman. I agree regarding the number of faces - comparing the orc to the dwarf character a few weeks back, a massive increase. Going to work on achieving more with less, try and focus on the features I really want to include.
Logged
deab
Level 2
**



View Profile
« Reply #27 on: May 09, 2015, 02:49:27 AM »

Update #13
Refining model style

More work the last few days on modelling. Simpler orc model and updated dwarf/main character, again both are rigged:





(Shadow is a bit off on the dwarf.)

I've made things easier for rigging by keeping the arms + legs separate from the body. I think I can get away with it!

Finally here's a (cropped) in game shot. Tiles outside the current field of view are in grey-scale.


Logged
erebusman
Level 2
**


no one of consequence


View Profile WWW
« Reply #28 on: May 09, 2015, 07:53:07 AM »

Hey - I really like the improvements on the Orc, he looks beefier in general and definitely his arms are much improved to my eye.  Both in their shape and the polygon distribution as well.

The dwarf character also looks more pleasing to the eye, hard to quite articulate what but it seems to have cleaner lines and be more expressive with less 'noise' in the mesh.

Good job I think your finding a very solid style for your game.
Logged

Infernohawke Entertainment
deab
Level 2
**



View Profile
« Reply #29 on: May 10, 2015, 01:20:21 AM »

Thanks for the feedback, very much appreciate it. Going to focus on code for a bit now.
Logged
erebusman
Level 2
**


no one of consequence


View Profile WWW
« Reply #30 on: May 10, 2015, 09:12:07 AM »

Thanks for the feedback, very much appreciate it. Going to focus on code for a bit now.

Dude I feel you - even though art is 'easier' for me I often cant wait to be done with it so I can spend more time coding !  Happy coding Smiley
Logged

Infernohawke Entertainment
deab
Level 2
**



View Profile
« Reply #31 on: May 17, 2015, 11:24:14 PM »

Update #14
Turn order

Originally this is how the turn order worked:
  • Each character had 1 turn per 'game turn', able to perform a single action.
  • Each game turn, all characters granted an amount of energy.
  • Actions cost energy, so if a character had too little energy, they may skip a game turn completely.
  • Characters could 'wait' for a turn, storing energy to later use special abilities.

This meant I could set the rats with a lower 'move' cost, allowing them to move twice as often as everyone. However, I wan't really happy with this - it was a pretty rigid system.

Time based turns

I've switched to a time based system:

  • There is no concept of a 'game turn', just character turns ordered by 'next turn time'.
  • All actions have a duration to perform (I'm using seconds, but time just instantly advances to the next turn time).
  • When an action is performed, the characters 'next turn time' is updated to current time + action duration, and the character list is resorted.

Nice and simple!

Where this gets interesting is I have much more control over action costs. To move forward costs 10 seconds. Turn to face a direction, 2 seconds. So if you turn, you would normally get another turn (depending on the current turn order).

Movement duration can be adjusted based on the situation. For example:
  • Tile that impedes movement (maybe swampy marsh, or walking through water).
  • Changing height - stepping up to a higher tile, or dropping down to a lower tile.
  • Pushing or pulling an object (including a corpse!)

Buffs and debuff effects can be easily included - a 'haste' effect that reduces all action durations, the opposite, 'slow' effect.

Informing the player
I'm keen to give the player the information required to make the best of their situation. First step - I added a turn order display:



This shows all characters currently in your field of view, ordered by their 'next turn time'. The green triangle indicates where you next turn will be based on the current selected action. In the example image, 3 enemy characters will act before your next turn. Of course this is only a prediction - the other characters haven't decided on their actions yet.

This system is working really well so far, and I'm exciting to see where I can with it!

Finally here's a current in game shot (with max lighting on). Click to zoom!


Logged
erebusman
Level 2
**


no one of consequence


View Profile WWW
« Reply #32 on: May 18, 2015, 03:58:35 PM »

I like the combat queue system .. I've seen it before in other games and I usually like how it works; very clear to the player whats going on. I think your implementation looks good!

Something I'm noticing in these screenshots is the green grass looks almost day-glow here and makes the characters (particuarly) the orcs look under colored and under saturated.

Rather than bump up the color on the orcs I would suggest doing one or two things (maybe both?)

- lower the color saturation on the grass a bit or darken it

- apply more 'noise' or color gradiation to the grass ; you actually have a bit of this on the edges but when were top down looking at it you can barely see it; the top surface might need more

keep up the good work!

Logged

Infernohawke Entertainment
deab
Level 2
**



View Profile
« Reply #33 on: May 19, 2015, 05:57:47 AM »

Fair comment on the green grass. When I coloured it, I was using darker lighting, and at full brightness it is way too bright (I had socks that colour in the 80s, along with a nice orange pair). I need to do a pass across all colours and start settling on a palette.

May also revisit the texture and a bit more detail - need some variation anyway.
Logged
deab
Level 2
**



View Profile
« Reply #34 on: May 21, 2015, 10:45:07 AM »

Update #15
It's alive!

I'm working on AI at the moment, and decided to set up the various 'factions' for the different enemy types.

Months ago I had added the concept of a Faction, and then forgot about it - I've just been using one for the enemy characters, and another for player controlled. Each faction has an alignment, currently GOOD, NEUTRAL or CHAOS.

I'm currently working on the 'memory' a character has of others they have encountered, and wanted to check they didn't bother remembering characters of the same faction.

So tonight I added race based factions - orcs and eyes (chaos alignment). For the rats I set up a general 'animal' faction - they won't be social, and have a neutral alignment.

Then added a load of characters to the map and hit 'play'.

Much to my surprise, the rats and eyes turned on the poor rat and battle commenced! The rat fought back against the first attacker, but soon gave up and ran away.

I'd forgotten that the faction alignments were already set to react to each other Smiley

Love it when these different elements start to come together!

Logged
erebusman
Level 2
**


no one of consequence


View Profile WWW
« Reply #35 on: May 21, 2015, 11:05:18 AM »

Quote
Much to my surprise, the rats and eyes turned on the poor rat and battle commenced! The rat fought back against the first attacker, but soon gave up and ran away.

Dude that is both hilarious and awesome!
Logged

Infernohawke Entertainment
McFunkypants
Level 0
**


Breakdance McFunkypants


View Profile WWW
« Reply #36 on: May 25, 2015, 06:22:43 PM »

Looks awesome! Keep up the great work.
Logged

Breakdance McFunkypants - Indie Game Dev - www.mcfunkypants.com
deab
Level 2
**



View Profile
« Reply #37 on: May 26, 2015, 01:01:18 PM »

Update #16
Welcome to 'The Ever'

Finally settled on a name!

'The Ever'

The name is a nod towards EverQuest, a game I spent way too much time with back in the late 90s/early 00s. Although I'm creating a single player game, I am planning to include some of the mechanics featured in EQ - challenging play, crowd control, tough monsters (some that will flee on low health, possibly alerting others), monster factions within maps.

Hopefully the name also has a bit of mystery about it (what is the 'Ever'?) and therefore will stand out.

Story / Background

I'm not planning on a story driven game - its all about the exploration and combat, but here's the background:

After decades of learning and study, the Mage Lords created a powerful magic that would remove those consumed by negative emotion. Greed, anger, jealousy, hatred - all were targeted.

When the magic was released, anywhere these emotions outweighed all other was ripped from the world and banished to 'The Ever'  - an alternative dimension inaccessible to all but the most powerful magic.

Unfortunately the magic worked a little too well - whole villages, castles, caves - along with all their occupants (intended targets or not) - were trapped, each imprisoned in a separate bubbles within The Ever.

This leads nicely to many self contained maps - villages, castles, mines, caves - full of monsters and treasure, ripe for plundering. Or was the player banished with the casting and is attempting to escape? Have a lot of options here!

I'm planning to start small, releasing a game with a small number of hand crafted maps to play through. Then build on this based on feedback towards something larger. Each release will be prefix with 'The Ever', hopefully building a following.

Dev Progress
A real mix of progress since the last update - reworked the tree stump prop to remove the texturing and added a 'create' (will be the first interactive prop); grass texture reworked based on feedback; AI lots of clean up ready for building on.

Regarding the art style - my current thinking is only texturing the floor tiles (and keeping those really simple). Walls are currently textured, for models I need to find a nice way to crop them down based on the camera angle (walls are cropped to 3 different heights to show open tiles behind them - can see this in the images below).

Here's a couple of current in game shots - this is a dark biome - only light comes from the torches. There is a torch on both sides of the entrance (same on the inside). The 2nd shot I rotated the camera to show the wall cropping. (UI is off in these shots)






« Last Edit: May 26, 2015, 01:13:55 PM by deab » Logged
erebusman
Level 2
**


no one of consequence


View Profile WWW
« Reply #38 on: May 28, 2015, 12:18:16 PM »

Hey there!

The updates look really good - like usual your visual style is making more improvements and getting more cohesive good job.

I also was an EverQuest player for a long time so I feel the nostalgia there too.

However I would respectfully offer that the name of "The Ever" seems to fall a little bit flat to me.

I realize of course that A) maybe others will find it stimulating so don't take my feedback as if it were for everyone and that B) some names need to grow on you.

But -- C) first impressions can matter an awful lot so I do feel its necessary to at least let you know my personal first impression.

Interestingly the name of "The Ever" combined with the backstory you've provided immediately makes me think of the players being stuck in these limbo like shards .. which almost feels like "The Never" would be a little better and Never also sounds just a little dark to me .. and fantasy games often need this dark/light contrast to help set the mood and atmosphere.  Since you don't have a plot - you need to make sure that everything else stands out for your players because they wont be getting it through narration and plot movement right?
Logged

Infernohawke Entertainment
deab
Level 2
**



View Profile
« Reply #39 on: May 29, 2015, 01:13:15 AM »

Hi erebusman.

As always thanks for taking the time to post your thoughts.

Fair point about Ever/Never light/dark feel.

Technically I think 'ever' is a more accurate description - the occupants are (in theory) trapped forever. The name will be used as a prefix, for example 'The Ever:Escape' so won't be used in isolation for a released product, hopefully that will help with the overall feel the name gives.

I've taken your comments on board - nothing is set in stone, and I have a very long way to go before a playable game emerges, so we'll see how things progress.
Logged
Pages: 1 [2] 3 4 ... 9
Print
Jump to:  

Theme orange-lt created by panic