Monday, August 8, 2016

Say hello to Non Player Characters

In summer is not easy to find the necessary inspiration to tackle this project, but at the end I found interesting to introduce the so called NPC in the game. They are implemented in an easy way:

  INPC = interface
    function GetItems: string;
    function GetNeeded: string;
    function GetAchievement: string;
    function GetDelay: cardinal;
    function IsDeal(aInventory: IMemVar): boolean;
    function Interact(aInventory: IMemVar): TNPCResult;
    procedure StopWalking;
    function Talk(out aText: string): boolean;
  end;


 Just chatting, expecting some items and give new items..., nothing fancy

Found binaries at OneDrive

HBF)
  • Minimap also prints teleport, enemies and doors
  • New class TDead for handling disintegrate effects
  • Blood has more colors in the same range
  • Door can take you to specific levels
  • Water can flow to already existing reservoir
  • New level Asphyxia!
  • Game now can have more than one door, so keys are related to door groups
  • Now doors can be upside-down
  • Better handling of door keys
  • Some pools are now based in lava
  • Liquid now have texture, Thrownrate, Sound and SplashCadency properties
  • class TSpawner improved
  • Lava can do ice heating
  • Quake is now done with camera
  • Birds spawning code improved
  • TDust now has orientation  (horizontal/vertical)
  • New TLiquid.IsResetable()
  • New bee (replacing bird...)
  • All Direction stuff removed, it was useless
  • Deadly liquid does not sound like water anymore
  • New class TFloater, barrel inherits from it
  • New element Boat, inherits from TFloater
  • Waterfalls streams work 100% now
  • New Achievement regarding waterfalls
  • Adding NPC
  • Now game shows inventory
  • New achievement related with NPC (talk to them...)
  • Menu option continue on removed, now when entering a level one can freely choose another level (if reached of course)
  • Optimizer now can load from multiple folders

BB)
  • Main engine render loop finally done in a proper way
  • Particles now have friction
  • New default buffer timeout is infinite
  • Triggers can be linked to other triggers, so until related trigger is not executed current one cannot be executed
  • Liquid might have textures (used for lava)
  • Fonts rendering improved
  • Fixed an error with buffer size increments
  • Liquid now has thickness
  • Liquid now is got some optimization when big areas
  • Particles now have emission type (continuous, once)
  • TLaser now inherits from TDummySprite
  • Trying to add some noise to the laser
  • Fixed some offset issues with some primitives
  • New TSpriteEngine.Find(name)
  • Now Triggers can target any entity that implement IExecutor
  • Liquid edges are shown properly
  • All sprites now can have texture offsets
  • Sprites can now also load from big File
  • Laser can now have a texture assigned
  • New utils.fmod (float modulo)


New secret and hidden level!


Old man giving me something...