游戏空中攻击! -我们的第一个VR开发经验

我们继续发表有关“ IT SAMSUNG SCHOOLS”毕业生最佳移动应用程序的系列出版物。

今天是来自新西伯利亚的年轻开发者的话,这是2018年VR应用程序竞赛“ SCHOOL VR 360”的获奖者,当时他们是一年级学生。 比赛以“ IT SAMSUNG SCHOOLS”毕业生的特殊项目结束,他们在那里教授Samsung Gear VR虚拟现实眼镜的Unity3d开发。 所有游戏玩家都熟悉塔防游戏类型-您需要在塔防建设的帮助下保护领土免受攻击。 这些家伙决定采用这种机制并在其基础上进行VR游戏,但在路障的另一端:这是一名飞行员,您的目标是通过发射塔来阻挡地面来帮助地面分队走到最后。 该游戏采用复古式LowPoly-带有少量多边形的三维模型,就像旧的计算机游戏一样。 下方是开发过程的描述,游戏的视频和屏幕截图,以及源代码的链接。

游戏截图
最终发生了什么

下一个


简要介绍三星项目“ SCHOOL VR 360”的条件,并在此框架内进行AirAttack游戏的开发。 因此,向三星IT学校的毕业生提供了:

  1. 参加为期4个月的自学计划,11月份为此颁发了5个关于VR开发的在线课程的专业培训证书
  2. 组建团队并在3个月内开发自己的项目。 从VR开发方面的专家到“迷人现实”公司的个人咨询都将为您提供帮助
  3. 5月,将项目提交给三星专家,“引人入胜的现实”和评审团其他成员。

关于这个主意


队长Kirill Prokofiev:
我们决定采用每个人都熟悉的街机格式,但与此同时,它在VR中看起来很有趣,而且会以完全不同的角度打开。 VR应用商店中的街机射击游戏绰绰有余。 我们决定与塔防一起越过飞机场:只有那些不花时间在地铁上的人才不会玩游戏,在这种游戏中,您需要保护塔免受飞机的侵袭。

您是否曾经想过在升级塔楼时,谁在与您竞争?

Vladimir Sperling,开发人员:
我们的想法是创建一个游戏LowPoly应用程序,因为这是这种规模的移动VR应用程序唯一可能的样式。 从游戏的角度来看,我们决定不开发现有的主题,例如在太空中徘徊和VR迷宫的通过。 我们想要更多。

关于以前的经验和错误


Vladimir Sperling,开发人员:
游戏截图 当我在一年前于2016年初从IT SAMSUNG SCHOOLS毕业的那年第一次遇到VR时,我的第一支团队只有两个人。 我们决定创建一个赛车场,称为Speed Riders。 职责划分如下:一个必须负责VR的应用程序的程序代码,体系结构和改编,第二个负责概念,概念和构思的完整性。 也许这种方法对于在短时间内和具有较高资格的团队实施该应用程序将是成功的,但是那时我们不了解VR应用程序的设计功能,并且犯了许多错误。

例如,我们试图实现玩家与世界物体之间过于复杂的互动,而重点是玩家的任何运动都可能导致晕车或运动质量下降的事实。 这导致了令人难以置信的界面加载和复杂的操作,结果,在游戏的第一分钟之后,用户希望删除点而不返回。 很明显,为了进行更正,有必要修改整个项目的概念。 它出现在防御前2周!

在三星项目年度竞赛中向所有人演示游戏
在三星项目年度竞赛中向所有人演示游戏

此外,缺少用于创建关卡的附加可视化和自动化功能还带来了问题:两名新手程序员必须在3-4个阶段中进行关卡。 我们在git中没有共同的工作-Unity3D存储了整个场景,以后不可能将它们合并:我们不得不等到一个人完成工作,然后另一个人将其细节连接起来,依此类推。 后来,在开发AirAttack!时,当我们有许多场景时,我们每个人都在不同的场景中工作,这一问题得到了部分解决。

在游戏上工作


Vladimir Sperling,开发人员:
一年后,我再次决定参加VR 360 School,与Cyril和我合作。 在用一张纸和几杯茶花了几个小时之后,我们将整个项目分为几个阶段,并设定了截止日期:

  1. 创建主菜单
  2. 1级实施
  3. 测试和初步调试关键错误
  4. VR优化,故障排除,增强功能(我们在细节上扮演了非常重要的角色,因为我们的目标是进行和优化,而不是“贴在上面”,这在架构上可能有所改善)
  5. 添加新关卡
  6. 在Oculus商店上发布应用
  7. 添加多人游戏
  8. 添加可下载的材料(以关卡,升级,新船等形式)

在开发过程中,尽管期限如此之短,但我们还是尝试根据图表进行讨论。

发展图

讨论了任何想法,并作出了判决:不管是不是。 所有已批准的想法都分为任务并得以实施。 测试阶段是自己进行的,吸引了朋友和熟人。 我们听取了建议和评论,特别指出这给初次进入我们游戏的人造成了困难,必须在会议期间进行解释。 我们讨论了新功能并开始了新一轮的开发。

截止日期很紧:有时,当最有趣的想法意识到我们没有时间按时实施时,就不得不拒绝它们。

编辑器的屏幕截图 考虑到先前使用Unity3D的经验,以及如何修改它以简化关卡的开发和创建的知识,我们花了一些时间来创建“帮助脚本”。 例如,显示炮塔毁坏的半径-现在我们可以控制道路的哪些部分被炮塔覆盖,哪一部分将是最困难的部分,并且这将允许玩家休息一下并进行补给或喘口气。 或另一个脚本:显示单位和玩家的运动轨迹,以便我们可以清楚地看到该轨迹是否正确绘制,并在必要时进行修复。 在图像中,该线是折断的,但是在运动过程中完成了轨迹的平滑处理。

对于竞赛的最后阶段,我们计划仅实施部分计划,从创建4个级别开始停止,以后再开始实施其他功能。 如果没有的话,一切都会好起来的...

希望所有插件库都能正常工作是游戏开发过程中的主要错误之一。 我们必须修改Oculus的主库,这使我们能够充分利用GearVR功能,而且由于文档不完整,一切都变得更加复杂。 分析了与该项目相关的每个库的性能:删除了部分代码,并针对简单的结构纠正了效率低下的结构。 在某些地方,使用“不安全”指针变量以实现最佳性能,并且已对该代码进行了仔细的内存泄漏测试。 使用了一种模块化方法,其中所有对象都是独立的,可以在不损坏代码的情况下将其从场景中删除。 测试了每个级别,并且在“增加的负载”下,每秒的帧数不低于50fps。

队长Kirill Prokofiev:
我们的团队完全按照规定的期限完成工作-编写了大约十二个脚本,船的UI界面,两个菜单的UI和说明。

UI菜单的最终版本




该应用程序功能齐全。 所有模型都经过精心选择和优化,以减少场景中多边形的总数。 该模型的基础是在允许更改的情况下在公共领域中使用现成的模型。

在进行AirAttack项目时! 我们在UED(用户体验设计或UX)上花费了大量时间。 除了UI元素-主菜单,水准仪的退出菜单,船舶的UI甚至UI塔(生命线)-各种过程还伴有声音和视觉效果(例如,火粒子或飞机玻璃上的阴影)。 整个游戏由低聚模型组成,不仅可以提高生产率,还可以营造一种氛围。

总结


该游戏在2018年的“ VR 360 School”比赛中被授予“最佳游戏应用程序”的称号。 我们努力的结果在下面的视频中。



游戏的来源: bitbucket.org/Vova_SH/air-attack

作者:

基里尔·普罗科菲耶夫(Kirill Prokofiev)
基里尔·普罗科菲耶夫(Kirill Prokofiev)
游戏设计师
队长
prokyhouse@yandex.ru
Swift,Java,C#开发人员,设计师
网络安全冠军奖章获得者
2017年“ IT SAMSUNG SCHOOL”项目竞赛区域赛冠军
2018“ VR 360 School”竞赛的获胜者

弗拉基米尔·斯珀林
弗拉基米尔·斯珀林
Unity开发人员
vladimir-shperling@yandex.ru
Kotlin,Java,C#开发人员
2016年“ IT SAMSUNG SCHOOL”项目竞赛决赛第一名
2018“ VR 360 School”竞赛的获胜者

Source: https://habr.com/ru/post/zh-CN461099/


All Articles