A relatively easy way to do this would be to use RenderToImage as you suggested. Here are the steps.
1-Create an image that is the correct size let's say 256x256 (it's best to stick to power of two images)
2-Create a sprite using this (currently blank) image and position it where you want your minimap
3-Create a function to draw to the image to be called during the game loop
3 is the hard part so here's a rough idea taking for granted that you have your room data in a UDT array:
function DrawMinimap(mapScale#)
// Render to image
SetRenderToImage(renderImage, -1)
// Get data
iw = GetImageWidth(renderImage)
ih = GetImageHeight(renderImage)
SetVirtualResolution(iw, ih)
bgCol = MakeColor(10, 10, 10)
roomCol = MakeColor(255, 255, 255)
// Draw background
DrawBox(0,0,iw,ih,bgCol,bgCol,bgCol,bgCol,1)
// Draw rooms
for a=0 to room.length
if room[a].visible=1
// Get extents of rooms relative to the player position
x1 = iw/2 + (room[a].leftSide - player.x) * mapScale#
y1 = ih/2 + (room[a].top - player.y) * mapScale#
x2 = iw/2 + (room[a].rightSide - player.x) * mapScale#
y2 = ih/2 + (room[a].bottom - player.y) * mapScale#
DrawBox(x1, y1, x2, y2, roomCol, roomCol, roomCol, roomCol, 1)
endif
next
// Render to screen again
SetRenderToScreen()
SetVirtualResolution(vrWidth, vrHeight)
endfunction
This could be extended and improved a lot by adding corridors, checking rooms are within the scope of the minimap and more... hope it helps!
Using AppGameKit V2 Tier 1