软件工程师 vs 游戏开发者 – 哪个更适合你?
作者:John Sonmez
行业充满机遇。如果你是计算机科学毕业生,你将处于选择职业道路的绝佳位置。例如,你可以选择成为软件开发人员或游戏开发人员。
为了帮助你更轻松地做出决定,我们将探讨与软件和游戏开发相关的不同方面。阅读完本文后,你将掌握做出决定所需的所有信息。
如果你不是计算机科学毕业生,而是刚刚开始编程之旅,请继续阅读,因为本文将澄清你的许多疑虑。
在我们继续之前,让我们简要解释软件开发和游戏开发。
什么是软件开发?
软件开发是计算机科学的一个领域。它涉及软件的创建,个人和团队在其中设计、原型化和开发软件。
每个软件的核心都是程序——一组让计算机执行任务的指令。作为软件开发人员、程序员或工程师,你需要编写指令组合。然而,这个角色并不像听起来那么简单。
通常,软件开发包括四种基本软件类型:
- 系统软件:系统软件提供核心功能,如磁盘管理或操作系统。
- 编程软件:编译器、调试器、链接器等属于编程软件。
- 应用软件:应用软件让你执行任务。最好的例子包括生产力套件、媒体播放器和办公软件。
- 嵌入式软件:在设备上运行并控制机器(如汽车、网络和机器人)的软件属于嵌入式软件。
有很多方式可以让你参与软件开发。软件开发角色多种多样。让我们在下面查看它们:
- 程序员/编码员:程序员执行特定的任务编码。例如,他们编写代码进行搜索、合并数据库或路由通信。他们使用Python、C、C++等编程语言。
- 软件工程师:软件工程师专注于软件开发的更广泛方面。它包括使用建模语言工具设计解决方案。他们关注软件复杂性,并为程序员和开发人员生成任务。
- 软件开发人员:软件开发人员处理整个软件开发生命周期。他们还编写代码并进行测试和维护。此外,他们还管理开发团队。
什么是游戏开发?
游戏开发完全是关于创建视频游戏。在这里,团队或个人参与游戏开发过程的设计、开发和发布。
作为游戏开发人员,你必须处理游戏开发的不同方面,包括编码、工程、概念化、渲染和测试。然而,有特定的角色来简化游戏开发过程,尤其是在大型项目中。
如果你来自非编程背景,你会发现游戏开发很难。然而,它确实提供了更多非技术性的创意方面,如声音和设计。
你会发现框架和游戏引擎是游戏设计的核心。这些提供了图形用户界面(GUI)来简化设计和编码视频游戏。如果你刚刚开始,你可能会发现Construct和Game Maker等游戏引擎很有用。然而,行业领先的游戏引擎是Unity、Unreal Engine和Cry Engine。
如果你选择成为游戏程序员,你将从初级程序员开始,专注于进入更专业的方面,如:
- 游戏引擎程序员
- 物理引擎程序员
- AI引擎程序员
- 图形引擎程序员
- 工具程序员
在游戏开发中,你可以选择任何适合你的角色。这些包括游戏开发人员、设计师(关卡和声音)、艺术家、程序员和测试人员。
软件开发者 vs 游戏开发者
软件开发和游戏开发比以往任何时候都更接近。因此,如果你正在考虑从软件开发转向游戏开发,或者反之,你会发现过渡相对容易。
从宏观角度来看,游戏和软件开发是相似的。然而,两者是不同的,尤其是在目标和结果方面。此外,它们还需要不同的承诺、要求和期望。
软件开发者与游戏开发者的差异
在本节中,我们将仔细研究软件开发者和游戏开发者之间的差异。
- 软件开发人员创建符合用户期望的应用程序和服务。有了明确的目标,软件开发更倾向于成功。然而,游戏开发并非如此,因为很难知道游戏是否会成功。
- 在加班方面,你会发现游戏开发者比软件开发者工作得更多。游戏行业的紧缩是一个常见问题(我们将在“工作时间”部分详细讨论)。
- 与软件开发相比,游戏开发需要更具创意的方法。然而,这一点有待争论,许多人可能不同意。
- 作为游戏开发者开始需要比软件开发者更多的经验。这是因为游戏开发更复杂。
- 游戏开发者通常需要比软件开发者了解更多。他们需要了解游戏机制、玩家心理、关卡设计等。另一方面,软件开发人员可以掌握特定技能,并在需要时学习新东西。
- 与游戏程序员相比,软件开发人员可能不太担心性能,而游戏程序员在开发游戏时始终需要将性能放在心上。
软件开发者与游戏开发者的相似之处
- 软件开发者和游戏开发者都编写代码。
- 他们都经历产品/游戏的生命周期。
- 他们都使用编程语言来实现目标。游戏开发者依赖高性能编程语言,如C/C++。另一方面,软件开发者的编程选择取决于他们开发的应用程序类型。例如,如果他们开发Web应用程序,他们使用JavaScript、Python等编程语言。
- 紧缩时间在软件和游戏开发者中都很常见。
薪资:软件开发者 vs 游戏开发者
金钱是帮助你决定选择哪条道路的拼图之一。
游戏开发者
根据built.in的数据,游戏开发者的平均工资为114,589美元,平均现金补偿为13,021美元,总计平均为127,610美元。初级职位的年薪起薪为70K美元,高级职位的年薪高达220K美元。此外,游戏开发者的平均工资取决于公司规模,较小的团队构成更高的工资。
根据Glassdoor.com的数据,数字较低。他们报告的平均工资为每年80,094美元,更能代表行业状况。入门级游戏开发者每年赚65,901美元。而且,如果你查看Talent.com,它报告的平均工资为100K美元。
如果我们取所有这些来源的平均值,我们得到每年102,570美元的平均值。
软件开发者
根据Glassdoor.com的数据,软件开发者的平均工资为每年95,516美元。如果你刚开始,你可以每年赚83,587美元。如果我们查看USNews.com,软件开发者的平均工资为每年110,140美元。最后,talent.com报告的数字为每年107,300美元。
如果我们平均所有这些来源,我们得到每年104,318美元的平均值,这使得它高于游戏开发者的平均工资。
资格和技能
游戏开发者
- 计算机科学或更高学历
- 对角色动画和数字资产有基本了解
- 良好的C或C++编程知识
- 对Unreal、Cryengine或Unity等游戏引擎有良好的工作知识
- 如果从事移动游戏开发,熟悉Android或iOS
- 良好的沟通技巧
软件开发者
- 计算机科学或更高学历
- 至少对一种编程语言有基本或中级知识。可以是Java、JavaScript、Python、C或C++。
- 了解Linux等开源技术
- 了解敏捷方法和软件开发生命周期
- 良好的沟通技巧
- 至少对一种软件开发框架有工作知识
- 了解数据的工作原理,尤其是在关系数据库中,并能用SQL或类似技术编写查询
- 计算机网络知识
职责
游戏开发者
游戏开发者需要履行以下职责:
- 具有创造力并开发新的游戏设计理念
- 通过原型设计和迭代改进游戏玩法
- 将视觉想法转化为代码
- 与艺术家、制作人、质量分析师和设计师合作
- 提高代码质量
- 在发布后维护游戏
- 跨平台管理游戏
- 将游戏从一个平台移植到另一个平台
软件开发者
软件开发人员有以下任务和职责:
- 将新想法编程为代码
- 构建并将代码部署到生产环境
- 在发布后维护和测试代码库
- 知道如何使用流行的软件开发工具
- 知道在编写代码时如何记录软件
- 知道如何优化代码以实现更快的应用程序
工作环境和工作时间
游戏开发者
紧缩(加班)在游戏行业是一种常见做法,尤其是在项目发布期间。Kotaku发表了一篇关于Rockstar紧缩的深入文章,指出紧缩是“常见现象”。事实上,一位前Rockstar员工在文章中表示,公司规定每周工作80小时,大多没有加班费。
Vulturebeat还报告称,76%的游戏开发者仍在紧缩条件下工作。
然而,你应该担心吗?嗯,其实不必。尽管紧缩很常见,但它完全取决于你公司的文化和项目。许多公司认为紧缩是低效和管理不善的。如果你查看GDC的2021年游戏行业状况调查,你会发现并非每个人都工作超过传统的40小时。
软件开发者
平均而言,软件开发人员的工作环境比游戏开发者更好。然而,你仍然会发现公司要求软件开发人员紧缩,尤其是在产品发布期间。
在大多数情况下,具有“正确”措施的公司,如透明度、良好规划和敏捷方法,足以避免紧缩文化。你公司的文化决定了你的工作文化和工作时间。一般来说,预计每周为公司工作40小时。
工作保障/风险水平
游戏开发者
在工作保障方面,你会在网上找到相互矛盾的信息。许多消息来源称游戏开发者的工作保障较少甚至没有。然而,对于大多数公司来说,情况并非如此。
在大多数公司,你作为游戏开发者的工作与你的项目相关。简而言之,你完成一个项目,然后接手另一个项目。这可以让你灵活地选择项目并做一些有趣的事情。
然而,你总能找到大规模裁员的情况,尤其是当其他大型游戏行业巨头收购一家公司时。此外,一个不成功的项目可能导致裁员。在更光明的一面,游戏开发者很少失业。根据你所在的城市或地点,你可以找到新的机会,尤其是拥有良好的网络技能。
软件开发者
与游戏行业相比,软件行业提供更好的工作保障。然而,这也取决于你正在从事的项目以及你对团队的价值。
在大多数情况下,如果你拥有非凡的技能,你几乎不必担心工作保障。从技术上讲,私营部门不提供工作保障。然而,与其他行业相比,就业机会更高。如果你失业了,考虑到你拥有出色的技术技能,你可以获得多个机会。
哪个适合你?软件开发还是游戏开发?
在本节中,我们将查看不同的场景。让我们开始吧。
软件工程师能成为游戏开发者吗?
做出选择完全取决于你的经验。而要获得经验,你需要构建东西。
因此,如果你是一名软件工程师,并想投身游戏开发,你必须制作一款游戏。简而言之,你将游戏开发作为一种爱好,最终在对自己技能有信心时切换。这种方法也有益,因为在你准备切换时,你将拥有演示和游戏的作品集。
如果你考虑从软件开发转向游戏开发,你必须确保拥有必要的技能。你应该至少了解两种行业标准游戏引擎之一,Unreal Engine或Unity。你可能还需要学习新的编程语言。
游戏开发者能成为软件开发者吗?
但是那些想转向软件开发的游戏开发者呢?
尽管一旦成为游戏开发的一部分,开发者选择软件开发的情况很少见,但你可以自由选择自己的道路。可能有多种原因,包括缺乏成长机会,让自己安定在更稳定的工作环境中。
无论如何,从游戏开发转向软件开发更容易。在这里,你可能需要学习新的工具集或编程语言。至于方法,你可以遵循我们上面提到的相同途径。从爱好项目开始并构建作品集。
一旦准备好,就做出跳跃!
如果你刚刚开始怎么办?
最后,我们有刚刚开始的人。
在这种情况下,一般建议是做项目(再次!)。迟早,你会发现哪个行业符合你的长期目标和激情。你可以选择从事严肃的软件开发,并为乐趣创建游戏,或者反之。选择权在你手中!
然而,一般建议是从软件开发开始,然后一旦你更好地了解自己的技能和行业,就转向游戏开发。