As usually I'm trying your patience seeking a way to make AGD more usable (at least for me). I'm getting used to your RISC-like approach of AGD, but I still miss DIV (integer division), ABS (e.g. for distance), REPEATing something for several times, loops or even infamous GOTO and others... Is there a the shortest straw of having such functions for Speccy, I mean AGD?
I don't even ask for a mouse support, yet I keep wondering *IF* putting a COLOURed dot into (X,Y) somehow can re-colour the sprite in question? Yep, still want different colourful Speccy sprites and object running in the screen
Post by Jonathan Cauldwell on May 23, 2012 20:51:44 GMT
I'll bear your suggestions in mind when I produce the next major update. I won't be implementing GOTO though.
Most of your suggestions would require modifications to the engine, making a new version incompatible with the previous one. As I want to give people a chance to produce games with 3.0 and not have to worry about redoing everything in a new version, I won't be doing major updates for a few months at least. Besides, I need a rest.
The next update will be 3.1, and that's a bug fix plus some extra functionality I won't be documenting. It will be compatible with 3.0, meaning it will be easy enough to load a saved 3.0 game into 3.1 and carry on editing. For now you'll have to make do with 3.0.
Post by Jonathan Cauldwell on May 28, 2012 20:17:13 GMT
Right then, with 3.1 out of the way I've had another think about this. Something along the lines of
REPEAT n .. .. ENDREPEAT
shouldn't need a change to the engine, just the script compiler. I might have a look at introducing it when I can be bothered to do another update.
Division, multiplication and colouring sprites all need subroutines bolting on to the engine so don't hold your breath. I have suitable routines from old games that could just be pasted in so they'll be added eventually, but for the moment I want to keep things compatible with 3.0/3.1.
Jonathan, I think that DIV and MUL are very handy for gamedev, say, to fill the game area, yet as far as it requires some more time, then how about extending amount of possible variables? I mean that AGD uses unsigned bytes, but I often find that I need half-bytes ($ff, 64) which can be quite easily and logically implemented via something like: CODE a, b, l where l=(a SHL 4 + b); while DECODE l will assign mnemonics as LET a=(L SHR 4) LET b=(L AND $ff)
Thus it may save almost double number of variables, yet it's primary use is still with MUL. Just to consider)