Flying Spaceship in VR
Kertu Toompea, Märt Häkkinen, David Andugar
Description
We have created a spaceship that you can control and see cool light effects on it. We have added a nice world where the spaceship can fly around in VR using Oculus Touch or Xbox controllers.
Version Control
Our repo link : https://bitbucket.org/davidandugar/ue4spaceshipproject/src/master/
Builds
Spaceship controls
- Thrust forward: Left Shift
- Thrust backwards: Left Ctrl
- Turn right: E
- Turn left: Q
- Rotate right: D
- Rotate left: A
- Look up: S
- Look down: W
- Change Camera: C
- Retract Landing Gear: G
Tools
These are the tools that we will be using to create our project:
- UE4
- Blender (We are going to create our own objects)
- VR headset (Oculus or Vive) & Xbox controllers
- Git
- Discord for cooperation
Initial progress
- The project is set up in UE4 and git
- We used the fly template from UE4 with a default spaceship (later imported our own spaceship)
- We have set up an initial world with some buildings created in Blender
- We have checked out how collision system works and implemented a complex collision in UE4
- We have created a factory building in Blender with the aim to import some textures and materials on it and see how those work in UE4
Whole scene in UE4:
Coach meeting 12.12.2019
We had our coach meeting today where Ats Kurvet gave us feedback about our project and helped us with some questions. A very short summary:
- Cloud/fog issue: we gave it a closer look in the lab and solved some stopper-issues.
- Spaceship texture: we need to check a texture painting tutorial (Blender), then export textures.
- World “wall” options: one option is to do a battlefield type with countdown; second is to extend our current landscape (with reduced detail level).
Final release
Introduction
The project consists of an abandoned desert world, where the player can fly around with a spaceship. In the world there are some buildings, small roads, dead trees, rocks, a lake and two missiles, which will start following the player if they get too close. Most of the assets used in this project were created specifically for this project or were taken from the labs of Game Engines module. Trees and rocks were not created by us, these were imported free assets.
Who worked on what
David Andugar set up the base project for flying pawn and created the world and buildings. The buildings were created in Blender. David modified the spaceship model so that we would have meshes, to which we could later add materials. He added also enemy which are searcher head. That's a rocket that follow the player if he's getting close. If that touches the spaceship, the game is over and restart at the launchpad.
Märt Häkkinen worked on making the spaceship move in a jet-like manner. Märt added the lake, created the water material and added the destruction effects to the spaceship. Märt also created the initial spaceship model in Blender.
Kertu Toompea worked on adding cloud and fog effects to the project. Kertu also worked with adding the launchpad, rocks and trees to the world. Kertu did the setup for VR support and was the author of the idea for this project.
Issues that occurred
We lost a lot of time to understand how UE4 works. Fortunately, we got some practice sessions of UE4 at the same time in computer graphics. After that, it was pleasant to work on this software, create the environment and set up all that we needed for our game.
At the beginning, we understood nothing about Blueprints. We got lost easily on the logic that we wanted to implement. We watched several tutorials to know how that works. For instance, the logic part of searcher head needed improvement all the time. The fact to find the correct setting was hard like the correct velocity to be sure that's not impossible to escape the enemy. Sometimes, when the searcher head was very close to the player, the velocity decreased instantly and never touched the player. An entire review of the logic has been made to fix these problems.
There was an issue with destructible meshes created with the Apex plugin, this is something that we did not manage to finish, since the spaceship was not displayed while moving. Eventually we managed to fix the issue, but then collision stopped working properly.
Cool light effects were not fully finalized in this project. For example smooth sunbeams shining through some fog and clouds and reflect back from the spaceship's surface seem to require a lot of time to create and also a lot of computing power. Creating the small clouds made the game already too heavy for editing and playing on some weaker computers. Advanced nice looking light effects could be a separate future project.
Conclusion
None of the team members had never worked with Unreal Engine before, so we opted to use the blueprint system instead of writing actual C++ code. Blender was also new to two team members, so it took a bit of time to achieve a good result for the spaceship, biggest complication was with having the correct materials applied to the meshes. Fortunately David had some experience in this area so he was able to help other team members out. Working with blueprints was fairly intuitive, but there were bits where we had to google or ask for help in the practice session, fortunately the situation improved considerably by the end of the course, where all of us felt comfortable working with blueprints.
Video of achieved result