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.
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: ')
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
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
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: 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
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:
Creating the main menu
Level 1 Implementation
Testing and initial debugging of critical bugs
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
Adding New Levels
Publish an app to the Oculus Store
Add multiplayer
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.
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.
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.
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 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