v1.4 Performance optimisation


This release focuses on improving performance:

  • All variables re-organised. Single letter names used for the most performance critical variables.
  • Variables are defined in performance order for further speedups.
  • Trajectory loop logic improvements. Technically some parts could be skipped more aggressively but I made a design choice that one projectile should not accelerate significantly when the other projectile lands.
  • Trajectory drawing is now significantly faster - roughly double the previous speed - which has improved the feel of the game.
  • Terrain generation speed improved.
  • Sounds added for the shot and for the projectiles landing.
  • Rendering of the castle hits has been switched to pre-created sprite strings of CHR$ control codes for each player. Hits are now drawn with very low latency, before colour clash from the shot can be seen.
  • Castle sprites are now updated rather than being entirely redefined, and their colours are changed only as needed rather than for every screen re-draw.

1.4.1 minor update

  • Fixed water bug in the terrain generation, and integrated the water extent detection into the main terrain generation loop
  • Moved the terrain generation code further up the listing to improve performance

1.4.2 minor update

  • Fixed magenta flicker as castles are overwritten during time of day change
  • Faster time of day change when only brightness is changing

1.4.3 minor update

  • Additional variable tidying, improved the CSV reference document to show context where vars are re-used
  • Terrain traces edge to edge during generation before fill routine
  • Sprite definitions moved to DATA statements to improve listing readability

1.4.4 minor update

  • Fixed coordinate rounding regression in version 1.4.3

Files

Artillery 1.4.4.tap 26 kB
May 01, 2020
Artillery 1.4.4.bas.txt (BASIC program listing) 17 kB
May 01, 2020
Variables.csv (naming reference) 2.6 kB
May 01, 2020

Get Artillery