How can I make this kind of minimap?

I want to create a minimap in the BGE that displays the player as an icon, and the exit point that the player came from as an icon, and treasures as icons and enemies as icons. I am talking about a minimap from Zelda Ocarina of Time if anyone remembers that game, where you can see the minimap when in a dungeon, you can most definitely see what I would like to create here.

Also, the minimap is drawn using Python and the rest of the stuff is put on using the script used to draw the minimap.

And when you press a certain key, you open up a scene containing the entire level minimap, and can switch between floors, and the entire map becomes visible once you collect a certain item.

So this is it. How can I make all this in the BGE? I don’t want to use like hundreds of images just for a minimap of each level!

Hi you need use standalone overlapping scene - in this scene you make map - player marker and three cameras - first camera tracking to marker player and show to plane video texture - this minimap for you game, secondary camera show all map - and last camera show minimap plane and not show all big map - if use actuators scene you always triggered cameras - minimap camera or large map camera. For render to texture you need use python - this old script i dont no work or not this script in upbge -

import bge
from bge import logic as GL

scene = GL.getCurrentScene()

cont = GL.getCurrentController()

obj = cont.owner

if “RenderToTexture” in obj:

# update the texture
obj["RenderToTexture"].refresh(True)

‘’‘if RenderToTexture hasn’t been added ‘’’
else:

# import VideoTexture module
import VideoTexture

# get a list of objects in the scene
objList = scene.objects

# get camera name being used for render to texture
camName = obj['cam']

# get camera object
cam = objList[camName]
	
# get the texture material ID
matID = VideoTexture.materialID(obj, "MA" + obj['material'])

# set the texture
renderToTexture = VideoTexture.Texture(obj, matID)

# get the texture image
renderToTexture.source = VideoTexture.ImageRender(scene,cam)

# save RenderToTexture as an object variable
obj["RenderToTexture"] = renderToTexture

here 75% of what you want so you can build upon it. does not work in upbge 0.3.0.

You could also use the ready-made Minimap-Component that ships with UPBGE and edit it to your liking: https://upbge.org/#/documentation/docs/latest/manual/manual/python_components/getting_started/util_templates.html#minimap-component

I don’t see the minimap component anywhere in 2.79! That’s the only version that works properly prior to UPBGE on Mac OSX 10.6! If I try a newer UPBGE build, it just crashes and won’t launch.

I think UPBGE is designed to work within the Blender app?

I’ve done my own RenderToTexture script for personal use, but there is one glaring issue in my face. The console keeps getting spammed with this line: Ras_OpenGLSync::Create(): extension is needed to create sync object

How can I make this annoying line go away? Nothing is wrong!

The developers only included the scripts by default in current UPBGE +0.3 releases:

Maybe component scripts can also be included in UPBGE 0.26 too @rafael13?

@aWeirdOwl can maybe help with this source issue.

What the on is going f, I never saw this Templates tab before…

The Python Components templates for 0.3 were released back in 2020.
I feel your confusing though, I myself did not realize until late last year that they existed either.