Wednesday, December 23, 2015

2015 is ending very soon, very intense year...

This is what I was able to change in the last month, let's hope 2016 is our year (and yours)

Found binaries at OneDrive


  • Moving balls bounces when hero is on top and touches a wall
  • Electricity also kills enemies  (but only if camera is there to make it funny)
  • TGameSprite.IsBellow() is more accurate now
  • Grass shakes with any moving entity
  • Chandelier goes back to original position with a proper animation
  • Frogs jumps higher
  • Skeleton only throws bone when facing hero
  • Spider is now slower
  • Enemies are no longer stuck in non moving platforms
  • Clouds in menu are now red
  • Timeout was not reset when clearing screens, therefore after loosing a fight tunes would not appear anymore
  • HUD refactored
  • Spring improved
  • Snow ball now dies when is too small
  • Worm attack pattern changed
  • TryEnterVehicle moved from Game to GameSprite
  • HandleTeleports and HandlePosts moved from Game to GameSprite
  • Gatashi laser now shakes water if it is on the way
  • Game is rule by a proper state machine
  • Princess now "talks" to hero when close enough
  • Jump system improved
  • When skull is taken, crepuscule lights go away
  • New trigger functions TextSelection() and QuestionAndSet()
  • Dialog now has a color parameter
  • Firebug speed increased a bit
  • Head fire once option implemented
  • Cloud priority changed
  • Enemies can also now teleport and shield (although they don't do it...)
  • Achievements can be reset
  • Unlocked achievements are shown differently
  • Banners can now be horizontal
  • Dialogs can have portraits
  • Triggers are executed only when walking and flying
  • Messages can be waiting for confirmation
  • Screen code improved with machine state events
  • When hero dies colors are different


  • Layer removed from sprites (makes no sense)
  • New interface IBackground implemented in TBackground
  • New TMemVar AsBool, AsInt, AsString, AsFloat
  • TSimpleSprite AddTrigger now has a closure version (very handy)
  • State machine now includes the current value as param in events so it can be modified

Sunday, October 18, 2015

The never ending story?

While waiting for graphics, code is improved and refactored...

Found binaries at OneDrive


  • Now triggers define width and height
  • sprite Z always is ANDed with object id
  • TRandom.AImLuckyF(), Delphi cannot distinguish between cardinal and single..., WTF?!
  • Fixed a bug in data length with joystick buttons


  • TrySpawnXXX now uses non float random functions
  • Full day/night cycle
  • Improved spring behaviour
  • Gatashi handles better the collisions (avoids slowdown)
  • New enemy skeleton
  • Skeleton throws bones
  • New interface for global vars, so they can be accessed from trigger engine (files is game.vars)
  • Jump method now has a power parameter
  • New element Circles 
  • Hero cannot enter door while on an item
  • After game over camera X offset was not reset
  • New enemy block
  • Teleport code cleaned
  • HandleMovingPlatforms() refactored
  • Teleporting is now a sprite state
  • More accurate handling of platforms
  • Posts cannot duplicate text anymore
  • All actions can now be done with joystick
  • New TBug element and achievement
  • New fireworks element
  • Posts rolls when pressing up
  • When Gatahsi dies fireworks are fired
  • Spiders web are removed after 10 seconds
  • New enemy Ram (not finished)
  • Only 5 sounds of same type at the same time
  • Bird does not longer die with blood when path is finished
  • Achievement system refactored
  • THud refactored
  • Profile is saved to disk on demand not when class is destroyed

Saturday, July 4, 2015

ChessKISS 1.7c, finally!

After three years I found some motivation to recheck the sources and try to play a bit, the version and date is not a coincidence at all.

These are the main changes:
  • Optimized TPiece.SetTo() and TPiece.GetColorPiece()
  • TMove, removed GetIndex(), optimized SetTo()
  • TMoveGenerator.GenerateCastlingMoves() fixed
  • TEvaluation, fixed some issues with outpost and corners
  • TBoard.States optimized a bit, no need for Index
  • New overloaded TUtils.Switch()
  • New TScore.Null()
  • TPiece.SetIndex() improved
  • New TMove.SetFrom()/SetFromTo()
  • TBoard, backup()/restore() improved, new PieceValue()
  • TBoard.IsPinned() removed
  • Now uses polyglot book 
  • TChessboard.CanTraverse() uses faster approach to get the offset
  • TMoveGenerator.GeneratePawnCaptures() and MovesToSquare() improved a bit
  • TSearch.AlphaBeta() improved a bit
  • Improved a bit the performance in history 
  • Trying to speedup the moving generation with new silly ideas
  • Now killers are part of the stack in search 
  • History is updated when the cache is hit (makes sense)
  • New see() approach, let's see, also now return zero when move is castling 

Found binaries and sources at OneDrive

Tuesday, January 20, 2015

First entry of the year 2015!

Happy new to year to you stranger!

What's new?


  • Arrows code finally refactored
  • New TEnemyKiller class, this is an enemy that can also kill other enemies, now many classes inherit from it
  • When hero is being teleported controls are blocked
  • All screens are fine now at any resolution (up to 1920x1080)
  • Hover will wear a xmas hat if it is cold :-)
  • Kurkani code simplified
  • Snow effect is no longer static but part of the scroll system
  • Chandelier line can be cutted by hero
  • New triggers MoveEntity() and MoveHero(), used in Last level for tricky paths
  • New enemy worm
  • Stones break into pieces when crashing
  • Bat can relax again (bug fixed)
  • Blob jumps with different forces
  • Fixed some minor issues in Bird and Droid 
  • Head becomes white when shooting
  • Mine now can move and interact with bound attributes (only if Gravity equal gNone)
  • Now when discovering a new platform, State is set to ssWalking in order to remove weird behaviors
  • New interface IFloater that helps elements that might float with water
  • New element post, that's basically a signal that can be read by hero
  • New sprite state ssReading used for reading signs and entering teleports
  • Graphics are no longer read from compiler file but from
  • Screen code improved
  • Game services now includes information regarding highscores, levels and bigfile
  • Fixed nasty bug where parent sprite was dead and children didn't have to render since it was going go be freed and therefore the render buffer would have a reference to it, therefore  a nice access violation error (only with enemies containing children not attached to an engine, like Droid and its laser, difficult to reproduce since hero needs its shield in order to kill parent sprite)
  • Now OnOff blocks can also move to other Positions
  • Gatashi now moves with bezier curves
  • Day and night effect 


  • Turn out that random functions were too slow...
  • New property for triggers RemoveWhenTake, default is true
  • Bezier decimal type changed from TFloat to Double
  • Dead sprites are not longer rendered
  • Triggers now can define width and height
  • sprite Z now adds ObjectId and 63 in order to avoid flickering with other sprites in same Z

Day and night effect