Hi
If you use a skybox (like a sphere uvmapped), perhap's you could fix this object to the player

(or get the position of the player each frame). So you don't need to have a camerarange too far, only a camerarange to see the skybox, and the fps will be good.
+ Code Snippet// Project: camerarange_skybox
// Created: 2023-05-18
// show all errors
SetErrorMode(2)
// set window properties
SetWindowTitle( "camerarange_skybox" )
SetWindowSize( 1024, 768, 0 )
SetWindowAllowResize( 1 ) // allow the user to resize the window
// set display properties
SetVirtualResolution( 1024, 768 ) // doesn't have to match the window
SetOrientationAllowed( 1, 1, 1, 1 ) // allow both portrait and landscape on mobile devices
SetSyncRate( 30, 0 ) // 30fps instead of 60 to save battery
SetScissor( 0,0,0,0 ) // use the maximum available screen space, no black borders
UseNewDefaultFonts( 1 ) // since version 2.0.22 we can use nicer default fonts
SetAntialiasMode(1)
setcamerarange (1, 1, 1000)
skybox = CreateObjectSphere(490, 32,32)
SetObjectFogMode(skybox, 0)
SetObjectCullMode(skybox, 0)
SetObjectColor(skybox, 150, 200, 255, 255)
SetObjectLightMode(skybox, 0)
SetFogrange(100, 300)
SetFogMode(1)
SetFogcolor(170, 210, 255)
player = CreateObjectBox(10,20,10)
SetObjectPosition(player, 0, 10,0)
SetObjectColor(player, 200, 150, 100, 255)
ground = CreateObjectPlane(2000,2000)
RotateObjectLocalX(ground, 90)
SetObjectColor(ground, 50, 155,100,255)
s = 2 // speed
y = 50
z = 90
SetCameraPosition(1, getobjectX(player), y, getobjectZ(player)-z)
// Create some box to see the player walk
For i= 0 to 50
box = CreateObjectBox(10,10,10)
SetObjectPosition(box, random(0, 950), 5,random(0, 950))
next
do
if GetRawKeyState(38)
MoveObjectLocalZ(player, s)
SetObjectPosition(skybox, getobjectX(player),0,getobjectZ(player))
SetCameraPosition(1, getobjectX(player), y, getobjectZ(player)-z)
elseif GetRawKeyState(40)
MoveObjectLocalZ(player, -s)
SetObjectPosition(skybox, getobjectX(player),0,getobjectZ(player))
SetCameraPosition(1, getobjectX(player), y, getobjectZ(player)-z)
endif
Print( ScreenFPS() )
Sync()
loop