January 31, 2013

January total - weapons, inventory, player profile and saves


This month I work hard on SeaCraft project (I need some money for food :) ) and spent less time on Doomstalker than planned. Anyway, there are few major updates here:

1. Weapon system finished


It took a lot of time, but today weapon system in Doomstalker is VERY customizable and flexible.

Key things:

  • One class, should be used with archetypes
  • Every gun can have different put/equipp/idle/fire/etc. animation set with it's own timings
  • Pre-fire and post-fire states (animations, muzzles) - used for melee attacks and weapons like BFG-9000 from Doom with delayed shot
  • Few pellets in one shot (best for shotgun)
  • Weapons use ammo from pawn's inventory (so two weapons can use the same ammo)
  • Switching between different punches in melee
And much more things inside. Small video where you can see some weapons and shotgun:



Marine's animtree looks now:


Today it can be used for games even with swords and magic, like Diablo.

2. Inventory system


I use UDK core principles on underlying layer, so, inventory system is the same is in Engine package :) But, I've add few features using Law of Demeter (LoD) idea and got flexible system.

Every pawn archetype has its own default inventory set, which contains link to Inv's archetypes. These archetypes are just an "array of items to give" with settings like price, icon, dropped pickup mesh, etc. The "item" is an object which will do something when Inv "used". For example, health item will add health to pawn, "weapon" item will give weapon, etc. 


This system gives an ability to create combined items like "give health and armor", or "give weapon and armor", etc.

I use underlying inventory system and it's cool - code is clear. Just one thing I had to modify hard - Items Factory class. Underlying class uses <class> variable to determine which item to give/spawn, but it fails with archetypes.

3. Player profile and save system


Just a few words - LoD as base idea, player profile stored separated from world's data, profile saved local or in cloud. Or in Roar server :) Roar is cool thing.

Next step


First of all, I hope to find animator who can fix issues with characters animations :( Next I'll finish HUD and integrate ingame UI. Than - monsters. I think it's a good plan :)

No comments:

Post a Comment

Note: Only a member of this blog may post a comment.