Nous continuons une série de publications sur les meilleures applications mobiles des diplômés des «IT SAMSUNG SCHOOLS».
Aujourd'hui, c'est le mot des jeunes développeurs de Novossibirsk, lauréats du concours d'applications VR «SCHOOL VR 360» en 2018, alors qu'ils étaient étudiants en première année. Ce concours s'est terminé par un projet spécial pour les diplômés des «IT SAMSUNG SCHOOLS», où ils ont enseigné le développement Unity3d pour les lunettes de réalité virtuelle Samsung Gear VR. Tous les joueurs connaissent le genre Tower Defense - vous devez défendre le territoire contre les ennemis à l'aide de la construction de tours. Les gars ont décidé de prendre cette mécanique et de faire leur jeu VR en fonction de cela, mais de l'autre côté de la barricade: ici, vous êtes un pilote, et votre objectif est d'aider le détachement au sol à atteindre la fin en tirant avec des tours qui bloquent le chemin. Le jeu est fait dans le LowPoly de style rétro - des modèles tridimensionnels avec un petit nombre de polygones, comme dans les vieux jeux informatiques. Sous la coupe, une description du processus de développement, des vidéos et des captures d'écran du jeu, un lien vers la source.
Que s'est-il finalement passé?Suivant
En bref sur les conditions du projet Samsung «SCHOOL VR 360», dans le cadre duquel le développement du jeu AirAttack a été mené. Ainsi, les diplômés de SAMSUNG IT SCHOOLS se sont vu offrir:
- Suivre un programme d'autoformation en 4 mois, pour lequel en novembre des licences de formation à la spécialisation de 5 cours en ligne sur le développement VR ont été délivrées
- Formez une équipe et développez votre propre projet en 3 mois. Des consultations individuelles des professionnels du développement VR à l'entreprise «Fascinating Reality» devaient aider
- En mai, présentez le projet aux experts de Samsung, «Fascinating reality» et aux autres membres du jury.
À propos de l'idée
Kirill Prokofiev, capitaine de l'équipe:Nous avons décidé de prendre le format de l'arcade, qui serait familier à tout le monde, mais en même temps, cela semblait intéressant en VR et s'ouvrirait sous un angle complètement différent. Les tireurs d'arcade dans les magasins d'applications VR sont plus que suffisants. Nous avons décidé de traverser l'arcade aérienne avec Tower Defense: seuls ceux qui ne passent pas de temps dans le métro n'ont pas joué à des jeux où vous protégez les tours des avions envahisseurs.
Vous êtes-vous déjà demandé qui joue contre vous lorsque vous améliorez des tours?
Vladimir Sperling, développeur:Notre idée était de créer une application de jeu LowPoly, car c'est le seul style possible pour une application VR mobile de cette ampleur. Du point de vue du gameplay, nous avons décidé de ne pas développer les sujets déjantés existants, comme l'errance dans l'espace et le passage des labyrinthes VR. Nous voulions quelque chose de plus.
À propos de l'expérience et des erreurs précédentes
Vladimir Sperling, développeur:
Lorsque j'ai rencontré la VR pour la première fois un an plus tôt en 2016, l'année où j'ai obtenu mon diplôme des ÉCOLES INFORMATIQUES DE SAMSUNG, ma première équipe était composée de deux personnes seulement. Nous avons décidé de créer une arcade de course, appelée Speed Riders. Les responsabilités étaient réparties comme suit: l'une devait être responsable du code du programme, de l'architecture et de l'adaptation de l'application pour la RV, et la seconde du concept, de la conception et de l'intégrité de l'idée. Peut-être que cette approche aurait réussi à mettre en œuvre l'application en peu de temps et avec une équipe plus qualifiée, mais à cette époque, nous ne connaissions pas les caractéristiques de conception des applications VR et avons fait de nombreuses erreurs.
Par exemple, nous avons essayé de mettre en œuvre une interaction trop complexe d'un joueur avec des objets du monde, alors que l'accent était mis sur le fait que tout mouvement du joueur pouvait entraîner l'effet du mal des transports ou une diminution de la qualité du mouvement. Cela a conduit à une interface incroyablement chargée et à des manipulations complexes, par conséquent, après la première minute du jeu, l'utilisateur a voulu supprimer des points et ne pas revenir. Il est devenu clair que pour la correction, il est nécessaire de réviser le concept de l'ensemble du projet. Et c'est arrivé 2 semaines avant la défense!
Démonstration du jeu à tous lors du concours annuel des projets SamsungDe plus, le manque de visualisation et d'automatisation supplémentaires pour créer des niveaux a créé des problèmes: deux programmeurs novices ont dû effectuer des niveaux en 3-4 étapes. Nous n'avions pas de travail commun dans git - Unity3D stocke les scènes entières, et il est impossible de les combiner plus tard: nous avons dû attendre que l'un de nous ait terminé le travail, puis l'autre a connecté ses détails ... et ainsi de suite. Plus tard, lors du développement d'AirAttack!, Lorsque nous avions de nombreuses scènes, ce problème était partiellement résolu par le fait que chacun de nous travaillait avec des scènes différentes.
Travailler sur le jeu
Vladimir Sperling, développeur:Un an plus tard, j'ai de nouveau décidé de participer à l'école VR 360 et Cyril et moi nous sommes associés. Après avoir passé plusieurs heures avec une feuille de papier et des tasses de thé, nous avons divisé l'ensemble du projet en étapes et fixé des délais:
- Création du menu principal
- Mise en œuvre de niveau 1
- Test et débogage initial des bogues critiques
- Optimisation VR, dépannage, fonctionnalité de construction (nous avons joué un rôle très important dans les détails, car notre objectif est de faire et d'optimiser, et de ne pas "coller" beaucoup et mal) et des améliorations architecturales sont possibles
- Ajout de nouveaux niveaux
- Publication de l'application sur l'Oculus Store
- Ajouter multijoueur
- Ajout de matériaux téléchargeables (sous forme de niveaux, mises à niveau, nouveaux navires, etc.)
Pendant le développement, malgré des délais aussi courts, nous avons essayé de discuter de chaque instant selon le schéma.

Toute idée a été discutée et un verdict a été rendu: que ce soit ou non. Toutes les idées approuvées ont été divisées en tâches et mises en œuvre. La phase de test a été réalisée de manière autonome, a attiré des amis et des connaissances. Nous avons écouté les suggestions et commentaires, notant en particulier que cela a causé des difficultés à ceux qui sont entrés dans notre jeu, ce qui a dû être expliqué pendant la session. Nous avons discuté de nouvelles fonctionnalités et commencé un nouveau cycle de développement.
Les délais étaient serrés: parfois, les idées les plus intéressantes devaient être rejetées quand elles se rendaient compte que nous n'aurions pas le temps de les mettre en œuvre à temps.

Compte tenu de l'expérience précédente avec Unity3D et de la connaissance de la façon dont il peut être modifié pour simplifier le développement et la création de niveaux, nous avons pris un peu de temps pour créer des «scripts d'aide». Par exemple, afficher le rayon de destruction des tourelles - nous pouvons maintenant contrôler quelles sections de la route sont couvertes par des tourelles, quelles sections seront les plus difficiles et qui permettront au joueur de faire une pause et de se recharger ou de reprendre son souffle. Ou un autre script: afficher la trajectoire de mouvement pour les unités et le joueur, afin que nous puissions voir clairement si la trajectoire est correctement tracée et, si nécessaire, la corriger. Dans l'image, la ligne est brisée, mais lors du mouvement, le lissage de la trajectoire a été effectué.
Pour la finale du concours, nous avions prévu de ne mettre en œuvre qu'une partie des plans, de nous arrêter à la création de 4 niveaux et de commencer à l'avenir à mettre en œuvre des fonctionnalités supplémentaires. Et tout irait bien, sinon ...
L'espoir que toutes les bibliothèques de plug-ins fonctionnent parfaitement a été l'une des principales erreurs lors du développement du jeu. Nous avons dû modifier la bibliothèque principale d'Oculus, ce qui nous a permis d'utiliser pleinement les fonctionnalités de GearVR, et tout est devenu plus compliqué en raison d'une documentation incomplète. La performance de chaque bibliothèque connectée au projet a été analysée: une partie du code a été supprimée et les constructions inefficaces ont été corrigées pour les plus simples. À certains endroits, des variables de pointeur «non sécurisées» ont été utilisées pour des performances maximales, et ce code a été soigneusement testé pour les fuites de mémoire. Une approche modulaire a été utilisée dans laquelle tous les objets sont indépendants et peuvent être retirés de la scène sans endommager le code. Chaque niveau a été testé et dans la "charge accrue", le nombre d'images par seconde n'était pas inférieur à 50 ips.
Kirill Prokofiev, capitaine de l'équipe:Notre équipe a complètement respecté les délais fixés - environ deux douzaines de scripts ont été écrits, l'interface utilisateur du navire, l'interface utilisateur de deux menus et des instructions ont été créées.
La version finale du menu UI L'application est entièrement fonctionnelle. Tous les modèles ont été soigneusement sélectionnés et optimisés pour réduire le nombre total de polygones dans la scène. La base a été prise des modèles prêts à l'emploi dans le domaine public avec une autorisation de changement.
Tout en travaillant sur le projet AirAttack! Nous avons passé beaucoup de temps sur UED (User Experience Design ou UX). En plus des éléments d'interface utilisateur - le menu principal, le menu de sortie du niveau, l'interface utilisateur du navire et même les tours d'interface utilisateur (Life Strings) - divers processus sont accompagnés d'effets sonores et visuels (par exemple, des particules de feu ou une ombre d'une vitre d'avion). L'ensemble du jeu se compose de modèles Low-Poly, ce qui augmente non seulement la productivité, mais crée également une atmosphère.
Résumé
Le jeu a reçu le titre de «Meilleure application de jeu» lors du concours «VR 360 School» en 2018. Le résultat de nos efforts est dans la vidéo ci-dessous.
Sources du jeu:
bitbucket.org/Vova_SH/air-attackAuteurs:
Kirill ProkofievConcepteur de jeux
Capitaine d'équipe
prokyhouse@yandex.ru
Swift, Java, développeur C #, designer
Médaillé du championnat de cybersécurité
Vainqueur de la manche régionale du concours de projet IT IT SAMSUNG SCHOOL en 2017
Gagnant du concours «VR 360 School» 2018
Vladimir SperlingDéveloppeur Unity
vladimir-shperling@yandex.ru
Développeur Kotlin, Java, C #
1ère place de la finale du concours de projet «IT SAMSUNG SCHOOL» en 2016
Gagnant du concours «VR 360 School» 2018