Jobert14, it's good but i only get 24fps on my pc so i reckon you could speed things up a bit and then have enough CPU/GPU left to add lighting and surface normals.
I took a good look at the code and here are a few things you moght want to look at.
Your drawing the cubes using vertex co-ordinates rather than translating to the co-ordinates and then drawing a cube. You should allways think of the objects you draw as if their center was at 0,0,0 and then use gltranslate(f/d) to position them in the world.
Your world only needs drawing once!

You can draw your entire world using a list and then just call the list (it makes for much faster rendering) but you'll need to follow the advice i gave above to make this work properly. Check out my wolf3d engine to see how it's done :
http://www.qb64.net/forum/index.php?topic=3560.msg35300#msg35300Also, i suggest you add the ones not in Galleons GL package so you can push this even further.
'// OpenGL
'// INIT
SUB glBegin (BYVAL X&)
SUB glEnd
SUB glEnable (BYVAL X&)
SUB glDisable (BYVAL X&)
'// DISPLAY
SUB glClear (BYVAL X&)
SUB glClearColor (BYVAL r!, BYVAL g!, BYVAL b!, BYVAL a!)
SUB glClearDepth (BYVAL X!)
SUB glDepthMask (BYVAL X&)
SUB glDepthFunc (BYVAL X&)
'// Object positioning
SUB glRotatef (BYVAL amount!, BYVAL x!, BYVAL y!, BYVAL FACE)
SUB glTranslatef (BYVAL x!, BYVAL y!, BYVAL FACE)
'// VIEW and CAMERA
SUB glLoadIdentity
SUB glMatrixMode (BYVAL X&)
SUB gluPerspective (BYVAL fovy!, BYVAL aspect!, BYVAL zNear!, BYVAL zFar!)
SUB glViewport (BYVAL x%, BYVAL y%, BYVAL width%, BYVAL height%)
SUB gluLookAt (BYVAL eyex#, BYVAL eyey#, BYVAL eyez#, BYVAL centerx#, BYVAL centery#, BYVAL centerz#, BYVAL upx#, BYVAL upy#, BYVAL upz#)
SUB glOrtho (BYVAL Left!, BYVAL Right!, BYVAL Bottom!, BYVAL Top!, BYVAL Near!, BYVAL Far!)
'// SHAPES
SUB glVertex3f (BYVAL x!, BYVAL y!, BYVAL FACE)
SUB glVertex2f (BYVAL x!, BYVAL y!)
SUB glVertex3fv (Vertex!)
SUB glVertex2fv (Vertex!)
SUB glVertex4f (BYVAL x!, BYVAL y!, BYVAL FACE, BYVAL w!)
SUB glVertex4fv (Vertex!)
'// COLOUR
SUB glColor3f (BYVAL r!, BYVAL g!, BYVAL b!)
SUB glColor3fv (Clr!)
SUB glColor4f (BYVAL r!, BYVAL g!, BYVAL b!, BYVAL a!)
SUB glColor4fv (Clr!)
SUB glMaterialfv (BYVAL face&, BYVAL Flag&, params!)
'>>> Lighting
SUB glColorMaterial (BYVAL face&, BYVAL mode&)
SUB glLightfv (BYVAL Light&, BYVAL pname&, Array AS SINGLE)
SUB glLightModelf (BYVAL pname&, BYVAL param!)
SUB glNormal3f (BYVAL x!, BYVAL y!, BYVAL FACE)
SUB glLightModelfv (BYVAL pname&, params!)
SUB glShadeModel (BYVAL Flags&)
'>>> Atmospheric stuff
SUB glFogf (BYVAL X&, BYVAL pname!)
SUB glFogCoordf (BYVAL coord!)
'//Textures
SUB glTexCoord2f (BYVAL x!, BYVAL y!)
SUB glReadPixels (BYVAL x&, BYVAL y&, BYVAL sx&, BYVAL sy&, BYVAL GDK_GL__rgba&, BYVAL GDK_GL__unsigned_byte&, offset&)
SUB glGenTextures (BYVAL num_to_generate&, offset AS _UNSIGNED LONG)
SUB glBindTexture (BYVAL eg__GL_TEXTURE_2D&, BYVAL texture&)
SUB glTexParameteri (BYVAL eg__GL_TEXTURE_2D&, BYVAL eg__GL_TEXTURE_MAG_FILTER&, BYVAL eg__GL_LINEAR&) 'GL_TEXTURE_MIN_FILTER,GL_LINEAR_MIPMAP_LINEAR
SUB gluBuild2DMipmaps (BYVAL eg__GL_TEXTURE_2D&, BYVAL eg__GL_RGBA&, BYVAL sx&, BYVAL sy&, BYVAL eg__GL_RGBA&, BYVAL eg__GL_UNSIGNED_BYTE&, offset&)
'// Lists
SUB glNewList (BYVAL List AS _UNSIGNED LONG, BYVAL Mode AS LONG)
FUNCTION glGenLists~& (BYVAL range AS LONG)
SUB glCallList (BYVAL ListID AS _UNSIGNED LONG)
SUB glEndList
'//Other
SUB glFlush
SUB glFrontFace (BYVAL x&)
SUB glHint (BYVAL target&, BYVAL mode&)
SUB glPushMatrix
SUB glPopMatrixLook forward to seeing more...
Unseen