What is VR app development related to?

Before I started my professional career, I was able to complete the creation of a project in three simple steps.

  • I create an idea
  • create code
  • check what came out of it

They do something alone, without pressure-such freedom in creativity is very convenient and expedient. However, in business, this approach is very inefficient and therefore expensive. With an accurate concept, we start creating a project document that is not a bible for our project. When working in a larger team, the project document becomes necessary in order to convey the vision of the application to everyone equally.

Jira is the quiet heroine of any project

Some may think that with a concept and a prepared project document, we can start working on software development. Well, no. One more important step separates us from software development. Exactly… the project must be written in Jira. What is Jira? It is one of many types of project management software. You can love or hate. Despite various situations, we try to have a good relationship with her. This is where we schedule all the tasks, create a schedule, and break the project down into separate stages. Then we estimate the time and difficulty level of each task. Ultimately, each task will be assigned to a specific person who will be responsible for its implementation. Important so that Tasks are properly distributed. We try to avoid situations where the work of several developers simultaneously causes conflicts in the project.

VR / AR / XR / MR Software Development

Only after completing the steps described above can we start the actual development of the software. We start by preparing a repository for our project. It will contain the current state of the project and a record of all changes made. This makes things much easier when you need to restore some files or check what has been changed. It is also common practice to synchronize the repository with the server in a way that reduces the risk of data loss in the event of a failure of any of the computers. Then we start importing systems that will allow us to integrate our app with specific points. That is why it is so important to choose the right glasses already at the stage of creating the concept. There are different ways to create apps for portable quests, and different ways to create them for glasses that support the SteamVR platform (for example, HTC Vive Pro, Steam Index, or Varjo). When we manage to import all the main components-we can congratulate each other, we have created the basics of our application.

At this stage, there is a stage when graphic designers start working on the project. They are engaged in, among other things: creating and texturing models, preparing concepts and graphics for the user interface, as well as creating an environment in which we, as future users of software, will navigate.

The process of creating an environment itself is also more complex than it might seem at first glance. To make the environment look good, we need not only models that will give it shape, but also elements of the environment that will fill the space around us and make it more ‘ real”. In addition, there is also a setting for post-processing, light sources and the so-called ‘lightmap burnout’. Thus, the computer does not have to calculate in real time the rays of incident light and shadows cast by static objects. And we save some processing power with this.

When creating a graphic dressing gown, style is important. Will the app have sci-fi elements, or will it be created with maximum realism? The style should be defined already at the stage of creating the project document. Otherwise, you may find that individual models or gameplay elements will not match each other.

Developers start creating code when most of the assets are ready. Having elements to work on makes it easier to predict which features you’ll need to program. Code is the most important part of any project, because it combines individual models, images, audio, or other types of files into a single, working system. Of course, developers should always remember to maintain the best quality code. Thanks to this, the software is created in such a way that possible extensions and changes can be implemented.

Is it difficult to program VR apps? It is difficult to answer this question unambiguously, because when it comes to the level of complexity, it depends a lot on the specific functionality. Interacting with objects or elements in the environment is not too difficult, and many basic functions can be implemented in a few minutes. The level of complexity increaseswhen, for example, we enter the physics and behavior of objects in three-dimensional spacej. Defining vectors, angular velocities, or creating complex interactions between many elements already requires more thought.

Optimization is also worth mentioning. In addition to burning light, there are many other tools to optimize our product. We can compress models and textures to preserve the memory used by the computer. So-called ‘Occlusion Culling‘ will allow us to restrict the rendering of elements that are not currently in our field of view. Profiler – this will draw attention to places in the app that are particularly demanding of the resources used. The optimization process is very important for any application, especially when developing applications for mobile glasses, which have rather limited technological capabilities.

Tests, Tests, and more tests…

Testing is an integral part of software development. For the app to be user-friendly, it must be pre-tested. Even though individual mechanics are tested at the stage of their creation, there is always a risk that something will break when connecting several functions to each other. And unfortunately, for any more advanced app, there will be bugs that will need to be fixed.

Error detection is performed by testers. Using the unlimited decks of their creativity, they try to mess up the app in several possible ways. From choosing non-standard solutions when going through the story to quickly and repeatedly pressing a certain key on the controller during a complex sequence of events that occur in the application. Ultimately, however, fixing a compiled bug can be very satisfying… provided that its correction did not lead to ten new problems.

Ultimately, the combined efforts of developers and testers lead to the smooth functioning of the application, which can continue to reach the target user. Sometimes this means closing the project, but sometimes the application becomes so important that it allows for its further development.

Summary: VR App Development

VR app development involves many factors that you don’t see at first glance. However, despite the fact that software is always created according to the same scheme, each project presents a completely different story. Thus, we, as a team, face completely different challenges every day, which bring with them another valuable experience.

Łukasz Rydziński, EpicVR