📜 ⬆️ ⬇️

Game AirAttack! - our first VR development experience

We continue the series of publications about the best mobile applications of the graduates of “IT SAMSUNG SCHOOLS”.

Today is the word for young developers from Novosibirsk, winners of the VR-applications contest “SCHOOL VR 360” in 2018, when they were first-year students. This competition ended with a special project for graduates of "IT SAMSUNG SCHOOLS", where they taught the development of Unity3d for virtual reality glasses Samsung Gear VR. All gamers are familiar with the Tower Defense genre - you need to defend the territory from attacking enemies by building towers. The guys decided to take this mechanics and make their VR-game on its basis, but on the other side of the barricade: here you are a pilot, and your goal is to help the ground detachment get through to the end by firing with towers that block the way. The game is made in the retro-style LowPoly - three-dimensional models with a small number of polygons, as in old computer games. Under the cut, a description of the development process, video and screenshots of the game, a link to the source.

Game screenshot
What ultimately happened

Further


Briefly about the conditions of the Samsung project “SCHOOL VR 360”, within the framework of which the AirAttack game was developed. So, SAMSUNG IT SCHOOL graduates were offered:
')
  1. Take a self-study program in 4 months, for which in November licenses for training in specialization from 5 online courses on VR development were issued
  2. Form a team and develop your own project in 3 months. Individual consultations from a professional in VR development to the company “Fascinating Reality” were to help
  3. In May, present the project to Samsung experts, “Fascinating reality” and other jury members.

About the idea


Kirill Prokofiev, team captain:
We decided to take the format of the arcade, which would be familiar to everyone, but at the same time it looked interesting in VR and would open from a completely different angle. Arcade shooters in VR app stores are more than enough. We decided to cross the air arcade with Tower Defense: only those who do not spend time in the subway did not play games where you protect the towers from invading planes.

Have you ever wondered who is playing against you when you upgrade towers?

Vladimir Sperling, developer:
Our idea was to create a gaming LowPoly application, because this is the only possible style for a mobile VR application of this magnitude. In terms of gameplay, we decided not to develop the existing hackneyed topics, like wandering in space and the passage of VR mazes. We wanted something more.

About previous experience and mistakes


Vladimir Sperling, developer:
Game screenshot When I first met VR a year earlier in 2016, the year I graduated from IT SAMSUNG IT SCHOOLS, my first team consisted of only two people. We decided to create a racing arcade, called it Speed ​​Riders. The responsibilities were divided as follows: one was responsible for the program code, architecture and adaptation of the application for VR, and the second for the concept, design and integrity of the idea. Perhaps this approach would have been successful for implementing the application in a short time and with a team with a higher qualification, but at that time we did not know the design features of VR applications and made many mistakes.

For example, we tried to implement too complex a player’s interaction with objects of the world, while the emphasis was on the fact that any movement of the player could lead to the effect of motion sickness or a decrease in the quality of movement. This led to an incredibly loaded interface and complex manipulations, as a result, after the first minute of the game, the user wanted to remove points and not return. It became clear that for the correction it is necessary to revise the concept of the entire project. And it showed up 2 weeks before the defense!

Demonstration of the game to everyone at the annual Samsung project competition
Demonstration of the game to everyone at the annual Samsung project competition

In addition, the problems were created by the lack of additional visualization and automation for creating levels: two novice programmers had to do levels in 3-4 stages. We didn’t have a joint work in git - Unity3D stores the entire scenes, and it is impossible to combine them later: we had to wait until one of us finished the work, then the other connected its details ... and so on. Later, when developing AirAttack !, when we had many scenes, this problem was partially resolved by the fact that each of us worked with different scenes.

Work on the game


Vladimir Sperling, developer:
A year later, I again decided to take part in the VR 360 School, and Cyril and I joined a team. After spending several hours with a sheet of paper and cups of tea, we divided the entire project into stages and placed deadlines:

  1. Creating the main menu
  2. Level 1 Implementation
  3. Testing and initial debugging of critical bugs
  4. VR-optimization, troubleshooting, building functionality (we paid a very important role to the details, because our goal is to make and optimize, and not to “stick” a lot and badly) and architectural improvements are possible
  5. Adding New Levels
  6. Publish an app to the Oculus Store
  7. Add multiplayer
  8. Adding downloadable materials (in the form of levels, upgrades, new ships, etc.)

During development, despite such short deadlines, we tried to discuss every moment according to the diagram.

Development Chart

Any idea was discussed, and a verdict was issued: to be it or not. All approved ideas were divided into tasks and implemented. The testing phase was carried out on their own, attracted friends and acquaintances. We listened to suggestions and comments, especially noted that it caused difficulties for those who first entered our game, which had to be explained during the session. We discussed new features and started a new round of development.

Deadlines were held tightly: sometimes the most interesting ideas had to be rejected when they realized that we would not have time to implement them on time.

Screenshot from the editor Considering the previous experience with Unity3D, and the knowledge of how it can be modified to simplify the development and creation of levels, we took a little time to create “helper scripts”. For example, displaying the radius of destruction of turrets - now we could control which sections of the road are covered by turrets, which sections will be the most difficult, and which will allow the player to take a break and recharge or take a breath. Or another script: displaying the trajectory of movement for units and the player, so that we can clearly see if the trajectory is drawn correctly, and if necessary, fix it. In the image, the line is broken, but during movement smoothing of the trajectory was done.

For the final of the contest, we planned to implement only part of the plans, stop at the creation of 4 levels and in the future begin to implement additional functionality. And everything would be fine, if not ...

The hope that all plug-in libraries work perfectly was one of the main mistakes during the development of the game. We had to modify the main library from Oculus, which allowed us to fully utilize the GearVR features, plus everything was complicated due to incomplete documentation. Each library connected to the project was analyzed for performance: part of the code was deleted, and inefficient constructions were corrected for simpler ones. In some places, 'Unsafe' pointer variables were used for extreme performance, and this code was carefully tested for memory leaks. A modular approach was used in which all objects are independent and can be removed from the scene without damaging the code. Each level was tested, and in the "increased load" the number of frames per second was not lower than 50fps.

Kirill Prokofiev, team captain:
Our team completely met the stated deadlines - about two dozen scripts were written, the UI-interface of the ship, the UI of two menus and instructions were created.

The final version of the UI menu




The application is fully functional. All models were carefully selected and optimized to reduce the total number of polygons in the scene. The basis was taken ready-made models in the public domain with permission for change.

While working on the AirAttack project! We spent considerable time on UED (User Experience Design, or UX). In addition to the UI elements - the main menu, the exit menu of the level, the ship's UI and even the UI towers (Life Strings) - various processes are accompanied by sound and visual effects (for example, fire particles or a shadow from the glass of an airplane). The whole game consists of Low-Poly models, which not only increases productivity, but also creates an atmosphere.

Total


The game was awarded the title of "Best Gaming Application" at the "School VR 360" competition in 2018. The result of our efforts is in the video below.



Sources of the game: bitbucket.org/Vova_SH/air-attack

The authors:

Kirill Prokofiev
Kirill Prokofiev
Game designer
Team captain
prokyhouse@yandex.ru
Swift, Java, C # developer, designer
Cyber ​​Security Championship Medalist
Winner of the regional round of the SAMSUNG IT SCHOOL project competition in 2017
Winner of the “VR 360 School” contest 2018

Vladimir Sperling
Vladimir Sperling
Unity Developer
vladimir-shperling@yandex.ru
Kotlin, Java, C # Developer
1st place of the final of the project contest “IT SAMSUNG SCHOOL” in 2016
Winner of the “VR 360 School” contest 2018

Source: https://habr.com/ru/post/461099/


All Articles