FOV is the way to go for zoom, works a treat, I use about 15 degrees (works with db classic enhanced and pro), heres an example, press space to zoom/unzoom, notice how the veiw moves past faster when you are zoomed in, change the value of zoommax at the start of the code to get more/less zoom.
zoommax=5
autocam off
for i=1 to 100
make object cube i,rnd(5)
position object i,rnd(100),0,rnd(100)
make object sphere 100+i,rnd(5)
position object 100+i,rnd(100),0,rnd(100)
next i
do
control camera using arrowkeys 0,0.1,0.1
if spacekey()
flag=1-flag
endif
if flag=1 and spacekey()
for i=90 to zoommax step -1
set camera fov i
wait 10
next i
endif
if flag=0 and spacekey()
for i=zoommax to 90
set camera fov i
wait 10
next i
endif
text 0,0,str$(flag)
loop
Mentor.
ps: to move the camera could cause problems too, if you where trying to shoot a monster that was partialy obscured by a nearby wall and you moved the camera then it could end up in a position past the wall and the monster would be in full veiw rather than partialy hidden, spoiling the effect.
PC1: P4 3ghz, 1gig mem, 3x160gig hd`s, Radeon 9800pro w cooler (3rd gfx card), 6 way speakers.
PC2: AMD 2ghz, 512mb ram, FX5200 ultra, 16 bit SB.
Mini ATX cases suck.