I took responsibility of the project after another programmer, but I did a lot of work and huge improvements and added a lot of new features.
I used socket programming and UDP broadcast for automatic client/host connection.
I used LWRP Light Weight Render Pipeline, asset bundle creation and loading, shader programming for 360 images transition effects, memory optimizations, client/host socket communication optimization and improvement, PHP server and unity client communication, World Space UI creation for hotspot details in VR, etc.
This project is pretty complicated and has several parts.
1) PHP, mysql based server with admin panel
2) Android VR client
3) Android host app that controls the Android VR client
4) Unity based 3D model exporter
Partners use the admin PHP panel to upload 360 images and/or 3d models which they used (4) the exporter to export.
The host app logs in to the PHP server and can choose what to show the client VR app.
I took responsibility for both server, host, client and exporter programming from another developer and I was assigned a lot of challenges. Below are some examples of what I’ve worked on in this project.
-Models exported using the exporter had very big file size and were not optimized for mobile VR, I was responsible for making them smaller and more optimized without sacrificing visual quality using The Lightweight Render Pipeline LWRP.
App Side (Client and Host)
-The client user used to have to enter IP address manually, I was asked to make the client app ‘detect’ and connect to the host app automatically. If there’re multiple hosts the user should be able to choose between them.
-3D models should be optimized for mobile and should look good enough for visualization
-The app used to crash a lot and was heavy to operate I was responsible for the stability and smoothness of the app
-I also did 360 image transition effect using fade shader programming
-retrieve from server and display hotspots and waypoints on 360 images.
-hotspots have description panels with optional videos attached
-App caching system was not efficient and caused crashes
-Sometimes there was flickering with 3D models
-On the server side I was responsible for creating new editor for adding hotspots to 360 images and the ability to upload videos and/or images attached to those hotspots.
The client Jason was managing the project, but I also helped with management by suggesting Scrum and helping with trello board management.