Monday, March 31, 2014


Now it was time to apply values to attributes in real time in order to let the potential designer the power to desire the levels behavior (in this case the designer is me...)

Of course this is achieved via rtti and publishing all interesting properties, in our case:
  • Colorkey
  • Collision info
  • Effect (add, sub, multiply, inverse)
  • Filter
  • Angle
  • Color
  • Horizontal speed
  • Vertical speed
  • Zoom
  • Acceleration
  • Friction
  • Gravity
  • Facing
  • Animation info
  • Shadow info
  • Sleep
  • Timeout
  • Coordinate system
  • Group
  • Flip x/y
  • Visible
  • X/Y/Z coordinates
Also all special attributes from all entities in the game are published.

All files should be at skydrive  (well, sources not any longer)

  • Scanning polygon algorithm is now more accurate, I hope this fixes some weird collisions 
  • New TSurface.Target property used when rendering to texture
  • When calling TScreen.SetRenderToTexture() the system first render to a texture and then to screen 
  • Screen quad can be zoomed and rotated thanks to the rendering to texture
  • Fonts can be now loaded from big file
  • When setting a sprite as no colorkey the bounding box is also set to full rectangle 
  • One Trigger can now have multiple calls (before it was one trigger one call)
  • Many class properties are now published in order to be accessible from Map editor
  • TLayer has a new method in order to get information about properties called GetPropertyAt()
  • Map extras now cast shadows (like fire animations)
  • Shadows can now be assigned at any time, not only before assigning a surface
  • Sprites take by default the shadow from the engine (if available)
  • Attached engines in maps take the shadow from the Map
  • TSound keeps the name of the loaded song (useful for debugging)
  • Y shadow offset set by default to 4 (before it as +4)

  • Enemies getting angry code refactored (now it is generic)
  • Spike ball now rotates according to its angle 
  • Fixed some platform code issues when gravity was up
  • OnPickup event removed, always use OnDie
  • Bouncing code refactured and tunned
  • Finally new "legal" music is coming (thanks to herotyc/xplsv^asynkro)
  • New crepuscule lights here and there
  • Enemies cannot longer activate moving platforms (only hero does it)
  • Now hero collides properly with moving items when gravity is up
  • When bubbles are exploded with head, the jump is not stopped
  • Stalactites now breaks items and kills enemies
  • Fixed a bug with camera where in some levels was showing stuff outside the map
  • More accurate balls bouncing (level severe gravity)
  • Fight now respects the current shader 
  • Dialogs can be paused 
  • Dialogs can be chained
  • Game now shows some dialogs while playing
  • Arrows now can have dynamic speed
  • More entities get published attributes
  • Now candle fades slowly 
  • Waterfall now has a sound 
  • Fight screen was stopping all sound, that's wrong now it pauses all sounds 
  • Outside there level does not longer cast shadows (since it does not have background)
  • New font 16x16 for dialogs
  • Blob speed set to 1.5
  • Spider leaves webs while walking
  • Droid collisions improved

Better sun lights

Monday, March 17, 2014

Stabilizing HBF

Playing a bit more with scripts and gravity and also trying to stabilize the game.

All files should be at skydrive 


  • 32 bits textures are recognized and used in a better way
  • TCollisionMatrix more stable when coordinates are outside the grid


  • New element ventilator (used in No Name)
  • Triggers can lock/release the keyboard
  • New triggers: FadeIn, FadeOut, SetVar , ShowEntity, ShowHero, LockInput and ReleaseInput
  • Fixed an issue replaying demos 
  • New gravity switcher up/down
  • Gravity down bitmaps are now blue
  • Gravity color shifting cadency it's now slower
  • Fixed an issue when graviting (system thought it was colliding up and down)
  • TEffectDispatcher is now singleton (many classes need to use it)
  • Many counters now use TTimeHelper.AsSteps() (converts milliseconds into game steps)
  • Time pickup now only slowdown mechanical enemies
  • Bomb now gets angry with different gravities
  • Dragon slower (used in Colors)
  • Teleports cannot be reused when are in used
  • All normal enemies get angry when touching flames
  • Bubbles spawning cadency increased  

Sunday, March 9, 2014

Focusing on triggers

It's been a while since the last update, so it is about time to do something...

All files should be at skydrive 


  • Params trigger now accepts string values
  • Fixed a bug when in a trigger the same function is called more than one it would always get the same parameters
  • Remove TSprite.UseEngineZ and added TSprite.AlternativeZ


  • When in water and bubbles are visible a new sound is played
  • Trigger ClearEntity now works since the attribute it is saved in ENTITY_VAR
  • Blob gets angry when touches a flame
  • Droid's laser was not pausing properly
  • New explosion for walls
  • New giant gear wheel (not used yet)
  • Egg is now nicer
  • Sounds can be searched by name
  • New trigger dispatchers: SetParallax, SetNight, ClearItem, Flash, Quake, ShowText, StopMusic and StopSound
  • New unit Dialogs, that helps showing text on screen
  • Playing demos was letting you play new levels, fixed
  • Escape is not enabled when in pause
  • Spotlight light collision fixed
  • Top VS bottom collisions better handled
  • Hero's tail code improved a little bit