Our computer graphics lecturer asked us to make a walking simulation using OpenGL. This is an OpenGL 4.3 application using only low level libraries:
- GLEW for OpenGL loader
- GLFW for windowing and OpenGL context creation
- GLM for mathematics.
We didn't use game engine like Unity and whatnot. We made our own engine.
Features include: model loading using OBJ Wavefront, third-person camera, Blinn-Phong shader, walking animation, simple collision handler, nameplate rendering, and a scripting system running on a different thread.
See documentation/user/main.pdf for more information.
help
exit
showallnames
createnpc [string:name] [int:model_id]
createnpc [string:name] [int:model_id] [float:x] [float:y] [float:z]
deletenpc [string:name]
setmodel [string:name] [int:model_id]
getmodelinfo [string:name]
setwalkingspeed [string:name] [float:speed]
getwalkingspeed [string:name]
setposition [string:name] [float:x] [float:y] [float:z]
getposition [string:name]
setangle [string:name] [float:angle]
getangle [string:name]
setanimationstate [string:name] [int:state]
getanimationstate [string:name]
takecontrol [string:name]
getcamerainfo
setcamerapos [float:x] [float:y] [float:z]
setcameratarget [float:x] [float:y] [float:z]
setcameraradius [float:radius]
getlightinfo
setlightpos [float:x] [float:y] [float:z]
setlightintensity [float:r] [float:g] [float:b]
setfpslimit [int:fps]
sleep [double:seconds] -- pause (for scripting)
loadscript [string:path] -- the file must be in ASCII encoding (sample script can be found in /binary/testscript.txt)
test -- for testing purposes
Input | Action |
---|---|
Esc | Exit the program |
W, S | Move forward/backward |
A, D | Turn left/right |
Left, right | Pan camera |
Up, down | Tilt camera |
Page down, page up | Dolly camera |
Mouse wheel | Dolly camera |
Left click and drag | Pan and tilt camera |
Right click and drag | Pan and tilt camera and turn |