我';自从25年前我十几岁开始学习编程以来,我一直对游戏编程感兴趣
当然,我没有';除了非常基本的游戏之外,我当时哪儿也去不了。我用BASIC编写了一个简单的拍摄UFO类型的游戏(后来移植到C)。它只有一个UFO在屏幕上左右移动,你可以朝它开枪。游戏中最大的问题是:当子弹发射时,UFO会停止移动,就像我没有做的那样';我不知道背景处理的概念。这意味着这场比赛很容易赢。
在接下来的15-20年里,我没有';除此之外,我们没有取得多大进展。当然,我学会了后台处理,但游戏没有';别再复杂了。游戏编码很难。
过去5-10年,我们';我有很多工具来简化游戏编程。虚幻和统一是行业标准,戈多正在赶超它们。制作游戏突然变得更容易了,因为这些工具为你们做了很多繁重的工作。关卡设计、物理、碰撞检测、播放器动画——我们用代码做的很多事情现在都可以通过工具来完成。
不仅如此,这些游戏平台还附带了许多预先构建的示例,您可以直接复制和使用。甚至Godot也提供了一个很棒的3d射击演示:
Unity是这里的顶级玩家——你可以为任何你想制作的游戏购买完整的骨架——所有代码都为你完成,只需根据你自己的用例进行调整。
我自己已经放弃了20多个游戏,从PhaserJs到Unity再到Godot。
浏览在线论坛,它看起来像我';我并不孤单。大多数人从不完成游戏。我';我已经看到了漂亮的演示,开发人员花了多年时间开发,然后就放弃了。我问一个人,他什么时候给我发了他最后一场比赛的文件(在谷歌硬盘上,没有少):";这太棒了!为什么不';你不能释放它吗?至少把它放在Github上"
在发现戈多之前,我与团结奋斗了很长时间。Godot非常棒,很容易入门(至少在2d游戏中是如此)。
这里';这就是我在自己的旅程中发现的:无论工具让复杂的事情变得多么简单,简单的事实是:游戏编程仍然需要大量的工作
即使是设计和完成一个完整的水平是吨的工作。更糟糕的是,这看起来像是永无止境的工作。
我只用了一个月的时间就在游戏中找到了一个简单的机制——玩家投掷手榴弹,敌人可以将其击退。
c) 我在戈多的工作方式中发现了很多问题——你只能通过实践来学习
但是,这只是一个敌人。理想情况下,你需要多个敌人,他们有自己的怪癖/攻击、硬币、环境危害(如尖峰)、视差(移动背景)等
我最大的恐惧是——设计一个完整的关卡就像一场噩梦;也许是因为我';我以前从来没做过,也许是因为我的设计技能太差了。
当我看到仅仅为了创建一个简单的关卡需要做多少工作时,我能理解人们如何在一个简单的游戏上花费数月/数年的时间,只是为了放弃它。
所以我花了很多时间学习戈多的怪癖和怪癖(在那之前,还有Unity)。但问题是:这些技能不是';不能转让。
我还花了一些时间学习AWS(还在学习和哭泣。学习AWS时哭泣正常吗?)。
它';这是一个巨大的丑陋怪物,有几十个关键词(流行语?)。你花了6个月的时间通过AWS考试,你所学到的就是AWS的工作原理。
除了——其中一些技能转移。IAM可能是AWS特定的工具,但Azure、GCP和其他所有平台都有类似的工具,而且这些概念会转移。
我已经管理过Linux服务器,所以使用EC2服务器不是';没有那么大的学习曲线。
因此,尽管AWS有一个陡峭的学习曲线,但这些技能可以在其他地方使用。
你会学到Godot如何处理物理物体与玩家物体碰撞的怪癖,它不会';我一点也帮不了你。反之亦然。
此外,游戏行业非常剥削性和低收入,因此它';这并不是说你在学什么";需求量#34;技能。你的无聊程序员维护一个10年前用vanilla Js编写的Java应用程序比大多数游戏程序员赚得多。
它不是';对于独立开发者来说没有任何好处——大多数独立游戏(我手头上没有任何统计数据,只是根据与其他开发者交谈的感觉)很少能赚到足够的钱来证明他们游戏资产的成本,更不用说他们自己的编码时间了。
与好莱坞一样,游戏业也是一个热门行业,少数几家大玩家获得了90%到95%的利润,而大多数其他玩家几乎无法生存。
作为一名游戏程序员,你必须了解艺术、音乐、人工智能、关卡设计、对话、故事等等。
当然,你可以外包或购买艺术品(这里有几十种免费资源)。它';它不像大多数游戏都有很多a";故事";。
视频游戏故事示例:邪恶的古巴明接管了政权,而不是对抗选举,拿着这把机关枪杀了所有人(从我们听到的情况来看,这可能就是美国的情况)。
但作为开发人员,您仍然需要了解这些方面的基础知识。即使你最终购买了艺术/音乐,你也需要了解它在你的游戏类型中是如何运作的。
特别是对于独立开发者来说,你不仅仅是一个代码猴子。你必须对每件事都有所了解。即使是在传统游戏中,大多数开发者似乎也比他们狭窄的编码领域了解更多(只是我从采访等中得到的印象)。
彩虹的尽头没有宝藏:你可以在没有任何东西可以展示的情况下度过数年
它';It’很容易失去信心而放弃。或者换一个不同的游戏、不同的引擎、尝试另一个库等等
这就是游戏编程的残酷事实:最新的技术使这个过程变得更加容易和顺利,但它';还有很多工作要做,而且';It’很容易幻灭并放弃。