А вот что можно сделать, если правильно использовать технологию привязок:

Алгоритм галактики:

SeedRnd MilliSecs()

Graphics3D 640,480,16,1

SetBuffer BackBuffer()

lit=CreateLight()

Dim sp(99)


center=CreateCube()

For i=0 To 99

	sp(i)=CreateSphere(8,center)
	
	ScaleEntity sp(i),.2,.2,.2
	
	PositionEntity sp(i),Rnd(-20,20),Rnd(-20,20),Rnd(-20,20)

Next

cam=CreateCamera()

PositionEntity cam,0,0,-40

Repeat

	TurnEntity center,.0,.5,.5
	
	UpdateWorld
	
	RenderWorld
	
	Flip

Until KeyHit(1)

End

Если вы запустите этот код, то увидите как шарики делают поступательное движение (летают) вокруг куба по кругу. На самом деле всё проще! Эти шары просто находятся в родительской зависимости от куба, и остаются на месте, а поворачивается только куб – ну, а они вместе с ним! Так, допустим, что нам этот алгоритм понравился, и мы захотели всунуть его в нашу игру, но нас немного смущает этот куб в середине. Конечно, можно его как подобает затекстурировать, и сказать, мол, это наш антигравитационный голографический транс-хренолятор, или сделать сферу, и сказать, что это чёрная дырища (и такое в нашей практике бывает, когда лень чего-нить исправлять), но здесь мы поступим по-другому.

Помните, в самом начале я перечислял какими бывают объекты, и упомянул о Пивотах. Так вот – пивот – это просто точка в пространстве, она невидимая, но у неё есть (как и всех остальных объектов) своя система координат, а значит – своё направление. Пивоты – это очень полезные объект, когда дело касается всяких там привязок. Уже догадались, что мы собираемся сделать? Неправильно – мы собираемся заменить этот куб в середине на пивот… А, вы так и подумали? Ну, тогда, заменим команду сами знаете чего на команду создания пивота:

center=CreatePivot()

Всё – теперь мы можем наслаждаться видом крутящегося скопления звёзд без всяких там лишних вещей!

Но не обязательно делать такую одинарную привязку - можно привязать один объект к другому, который в свою очередь привязан к третьему – тот к четвёртому, и так далее… Для чего это делать? А вот посмотрите пример:

Graphics3D 640,480,16,1

SetBuffer BackBuffer()

lit=CreateLight()

Dim prv(2)

prv(0)=CreateCube()

prv(1)=CreateCube(prv(0))

PositionEntity prv(1),5,0,0

prv(2)=CreateCube(prv(1))

PositionEntity prv(2),5,0,0

obj=CreateSphere(8,prv(2))

PositionEntity obj,5,0,0

cam=CreateCamera(0)

PositionEntity cam,0,0,-30

Repeat

	For i=0 To 2
	
	TurnEntity prv(i),0,0,1
	
	Next
	
	UpdateWorld
	
	RenderWorld
	
	Flip

Until KeyHit(1)

End

Как видите, привязки играют очень большую роль в программировании игр, и они очень облегчают жизнь.

Несколько дополнений:
1) Помните - синтакс команды создания сферы таков: CreateSphere ( количество сегментов, [родитель] ) – очень частой ошибкой является то, что в поле, где указывается количество сегментов, вместо них указывают родителя…

2) Задать привязку можно не только во время создания объекта, но и после этого – командой EntityParent объект, родитель – эта команда привязывает заданный объект к заданному родителю. Вместо родителя можно поставить 0 (ноль, если кто не понял) – и это «отвяжет» заданный объект от родителя, каким бы страшным этот родитель ни был

Ну, и напоследок – то, что можно сделать, изучив технологию привязок:

Graphics3D 640,480,16,1

SetBuffer BackBuffer()

lit=CreateLight()

Dim sp(99)

sp(0)=CreateSphere(8)

EntityAlpha sp(0),0

For i=1 To 99
	
	sp(i)=CreateSphere(8,sp(i-1))
	
	PositionEntity sp(i),1,1,1
	
	EntityColor sp(i),250,215,i*2
	
	EntityAlpha sp(i),(100-i)*.01

Next

cam=CreateCamera(0)

PositionEntity cam,0,30,0

Repeat

	For i=0 To 99
	
	TurnEntity sp(i),.1,.2,.3
	
	Next
	
	PointEntity cam,sp(99)
	
	UpdateWorld
	
	RenderWorld
	
	Flip

Until KeyHit(1)

End

Ну, вы поняли, как это работает? Ну, давайте – подумайте! Вы же всё-таки программеры – даже если вы задумали всю жизнь программировать один, вам всё равно придётся читать чужие коды – чтобы понять как работает та или иная фишка. А про команду EntityAlpha – посмотрите в хелпе, потому что, даже если вы совершенно ничего не знаете в английском – в хелп придётся обращаться очень часто, поэтому, лучше учиться сейчас.