First of all, I have uploaded wavefront OBJ file of a 3D model of a space ship. To load this model I used Nate Robins glm.h file that helped me to generate smooth normals with preservation of edges, weld redundant vertices & texture coordinate generation (spheremap and planar projections) + more.
After that, I used height field map and appropriate texture to procedurally generate terrain. As one of the goals of this project I wanted to make this terrain unlimitedly long. To do so I have created 3 terrain plates, that could be looped during the animation without notice of the user.
In addition, I created an interface to give a user capability to switch between different camera views and control the speed of the ship
After that I have created a basic particle engine to simulate smoke that is coming from the damaged left wing. The speed of each particle is predetermined by the speed of the space ship.
Finally, I have created a simulation of a "vertex core" behind the ships engine. User can observe this simulation only at the slow speed of the ship
In the process of development, I have learned that it will be an easier to move terrain, than all other object on the screen.