Devlogs
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
Artillery 1.4.4.bas.txt (BASIC program listing) 17 kB
Variables.csv (naming reference) 2 kB