Hmmm....I'm a noobie to but I can control the camera and I've played Halo so YAY maybe I can help lol.
To move the camera Forward you use this command...
If Upkey()=1 then Move Camera x
Backwards...
If Downkey()=1 then Move camera -x
Now in order to turn the camera left or right or to look up or down you will need to put the following code withing the Do/Loop commands like so...
X#=5000
Y#=5000
Do
OldCamAngleY# = CameraAngleY#
OldCamAngleX# = CameraAngleX#
CameraAngleY# = WrapValue(CameraAngleY#+MousemoveX()*0.2)
CameraAngleX# = WrapValue(CameraAngleX#+MousemoveY()*0.2)
Rem Control input for camera
If Upkey()=1
XTest# = Newxvalue(X#,CameraAngleY#,10)
ZTest# = Newzvalue(Z#,CameraAngleY#,10)
If XTest#>0 and XTest#<10000 and ZTest#>0 and ZTest#<10000
X#=XTest#
Z#=ZTest#
Endif
Endif
If Downkey()=1
XTest# = Newxvalue(X#,Wrapvalue(CameraAngleY#-180),10)
ZTest# = Newzvalue(Z#,Wrapvalue(CameraAngleY#-180),10)
If XTest#>0 and XTest#<10000 and ZTest#>0 and ZTest#<10000
X#=XTest#
Z#=ZTest#
Endif
Endif
Yrotate camera CurveAngle(CameraAngleY#,OldCamAngleY#,24)
Xrotate camera CurveAngle(CameraAngleX#,OldCamAngleX#,24)
Y# = Get ground height(1,X#,Z#)
Position Camera X#,Y#+50,Z#
Rem Refresh Screen
Sync
Loop
Don't try and run my code alone...it probably won't compile right. Use it in your code. If you dont know how say so and I'll help you with it.
Now...I have gone over moving forward, moving backward, and using the mouse to look around.
I am assuming that you know how to make a matrix since you are already jumping on to the camera and character/level design. So I won't go over that unless you ask. Hmm, can't think of anything else to add to what you asked. If you have any questions post and I'll do my best to help.
Oh, forgot about my site lol. I havn't worked on it in a while but it has a big list of modelers and everything to their sites that others have posted on this site. click the link to go to the page
http://www.freewebs.com/revenger89/tools.htm