After Richard is converting one of my BBC Basic for Windows Joop into BBCSDL, I rechecked some other BBC Basic project I created previously.
And I decided to write again a new game in BBCSDL.
Before I will start into building a big game project, I will built a small game to relearn myself to make games, which I didn't do for a couple of years.
I will start with remaking an old game magazine game I really liked on the Acorn Electron.
You can still play it here online : https://www.bbcmicro.co.uk/game.php?id=4407
From here, it's easy to get the original BBC Basic source, and with some small timing adjustments you can run and play it with BB4W or BBCSDL.
So to start making this game we need some sprites. I decided to make the sprites 48 x 48 pixels, while I will place them on a grid of 32 x 32.
This to make some more natural and smooth overlap, like the grass on the foreground of a fence or sheep.
I created some sprites within a few hours. So these are not the most beautiful, they will work to see if the approach to create it tshis way is correct. Maybe I will make better graphics later on.

Now, we can do some coding in BBC SDL.
As I decided to put larger sprites in a smaller grid, every sprite texture contains an offset x and y for proper drawing.
This is done in the DIM Sprite that included the Texture and the Offset X and offset Y.
I also created the grid area of 20 x 19 positions having an surface layer for grass and maybe later additional surfaces like flowers, water and an object layer that will hold the fences and perhaps rocks or other things if I will extend this test game.
So today, I managed to fill the game area with the random grass as a start.

It's nice to code again in BBC Basic.
Suggestion, questions and remarks are always welcome.
I hope I can finish some next steps during the weekend.
For now the BBC Basic code looks like :
10 REM Kaisy
20 REM for testing game creation with BBC SDL
30 REM (p) Jeroen Groenendaal
40 :
50 INSTALL @lib$+"gfxlib"
60 PROC_gfxInit
70 OFF
80
90 DIM Sprite{Texture%,OffsetX%,OffsetY%}
100
110 DIM surface{(9)}=Sprite{}
120 DIM area{(19,18) surface%,object%}
130
140 FOR X=0 TO 19
150 FOR Y=0 TO 18
160 area{(X,Y)}.surface%=RND(2)-1
170 NEXT Y
180 NEXT X
190
200 surface{(0)}.Texture%=FN_gfxLoadTexture(@dir$+"gras1.png",0)
210 surface{(0)}.OffsetX%=-6
220 surface{(0)}.OffsetY%=-6
230 surface{(1)}.Texture%=FN_gfxLoadTexture(@dir$+"gras2.png",0)
240 surface{(1)}.OffsetX%=-6
250 surface{(1)}.OffsetY%=-6
260
270 *REFRESH OFF
280
290 REPEAT
300 TIME=0
310 FOR X=0 TO 19
320 FOR Y=0 TO 18
330 S = area{(X,Y)}.surface%
340 PROC_gfxPlotScale(surface{(S).Texture%,48,48,(32*X)+surface{(S).OffsetX%,(32*Y)+surface{(S).OffsetY%)
350 NEXT Y
360 NEXT X
370 PRINTTAB(0,0);TIME
380 *REFRESH
390 UNTIL FALSE