爱好游戏开发的价值

时间:2020-03-06 15:01:48  来源:igfitidea点击:

尝试开发某种游戏,甚至只是业余时间的业余爱好,会提供有用的(专业的)体验吗?还是幼稚的时间浪费?

在整个编程生涯中,我一直在从事小型个人游戏项目。我发现(通常)严格的性能要求和不断提高的设计复杂性教会了我一些最有用的编程课程。

在这些项目中,仅举几例,我很快就遇到了一个问题:"小N的一切都很快"。我还发现了使用基本的面向对象设计原理来管理复杂性的艰难方法。

在许多技术和话题可能枯燥乏味的领域,我认为业余爱好游戏开发对于激励新的(而不是那么新的)开发人员在同时玩耍的同时掌握基本技能至关重要。

这个问题通常讨论爱好项目,但是在这里我对游戏项目特别感兴趣,以及它们对专业程序员的价值。

解决方案

我认为课外开发无论是不是游戏都是一件好事。首先,我们可以尝试不同的技术和开发平台,这是使技能保持最新的好方法。与游戏相比,我更喜欢数学算法,但这只是一个偏好,完全不说明这样做的价值。

如果我们将其中的任何一项带回雇主,那么他们就会从我们自己的知识中受益,而这些知识将是我们自己获得的。这对他们也有好处。

我说代码让我们心满意足!

我们可以从游戏开发中学到很多东西。游戏开发需要我们在其他编程项目中找不到的学科。

以下是游戏开发教会我的一小部分内容:

  • 优化速度
  • 牺牲计算深度来提高速度
  • 在较小的内存限制下进行开发
  • 构建一个像操作系统一样工作但面向速度的系统。
  • 在树中保留数百至数千个对象,每个对象都有其独特的特征
  • 游戏开发的某些领域具有很高的学术价值(例如人工智能,过程算法等)
  • 只要有游戏玩法,代码有多大的黑客攻击都没有关系。将其转化为其他学科,编程的目的是使客户满意,而不管代码多么聪明或者丑陋。

由于游戏程序员被迫使用更少的资源,因此他们成为更好的程序员。

坐下来解决问题,并使用手边的工具解决问题(无论是什么问题,修复数据库,编程接口或者使用ascii编写国际象棋)都可以成为一名更好的程序员。

把手放下。

游戏具有一些最复杂的处理,这对于外行,业余程序员来说是"可以接受的"。在高中时,我只写游戏。想探索物理学吗?编写游戏。 3D图形?编写游戏。高性能计算?编写游戏。 AI?经济学?军事战略?自然语言处理?定理证明?编写游戏。

我们不必发布它,也不必记录它,甚至不必玩它,我们只需要摆弄它,当我们尝试尝试发现有趣的算法时,在游戏中应用它。

游戏之所以有趣,是因为它们涵盖了广泛的领域。其他一切都只是数据处理,我们可以在工作中做到这一点!

是的

我使用Psion Series 3 TopSpeed C SDK自学了C(以及Psion的专有OO扩展),并编写了一些游戏,这些游戏是我在GNU许可下发行的。 (以前我在财务分析实习中从事信号处理的Amiga和Borland C ++ 3.1在Window上的Amiga和Borland C ++ 3.1上有相当丰富的经验,但是当我获得Psion时,我必须回到C,然后K&R,以便为该代码奠定良好的坚实基础。)

然后,我将在Psion平台上学到的专业知识运用到他们使用工业手持设备进行移动开发的3年演出中,我也从中获得了数据库方面的经验。对于他们来说,这是一个巨大的转变,产品混乱不堪,而我在平台上的经验比那一年编写游戏的人多得多。

我将其安排到Windows开发工作中,最终我成为IT总监,并在SQL Server,Windows,ASP,数据中心,DR等方面拥有丰富的经验。

然后,我进入了数据仓库咨询公司。

我要归功于它的第一脚,由于C的平台经验以及基于C的特定库系统,我真的能够对第一家公司产生巨大的影响。

我认为更重要的是,业余爱好游戏的发展是否使我们感到高兴?

游戏开发的许多领域绝对可以在更专业的水平上应用,但是,如果这是我们将游戏作为业余爱好开发的唯一原因,那么我们可能希望重新评估情况,并可能将精力投入到各种开源项目中可以自豪地显示在简历上(不是不能开发业余爱好游戏),也可以在面试中讨论。

兴趣爱好应该是我们喜欢做的事情,如果我们喜欢游戏开发,那么请务必坚持下去,嘿,也许我们会发现自己专业地从事游戏开发,这最终似乎是理想情况。

我看不出有什么可以使我们学习,练习和实验的东西被认为是"幼稚的"。

此外,如果我们打算制作一款体面(甚至是"专业")的游戏,那么几乎可以肯定,它需要学习和掌握的技能,这些技能可以直接转换为"传统"角色。优化,测试,跨平台工作,UI设计和可用性...清单不胜枚举。

游戏开发(或者任何其他类型的个人编程)是实现以下目标的好方法:

  • 学习新语言
  • 学习新概念(TDD,OO等。)
  • 使用和评估不同的工具/技术(CI,自动化测试等)

这些类型的项目使我们可以自由地探索无法在工作中完成的编程世界的不同方面。如果我们坚持在工作中使用业务线应用程序,则可能不会处理物理引擎或者空间渲染。但是我们可以在游戏中探索这些主题。

如果/当我们面试新职位时,这也将为我们提供良好的代码组合。假设我们编写的代码状态良好...

如果我们想在游戏开发方面找到一份工作,那么我们绝对应该一边看一边做一些业余爱好开发。能够发送一份或者多或者少完整的游戏以及履历表,使其在人群中脱颖而出。当我们列出游戏编程工作时,我们会得到大量的履历,虽然我很兴奋地聘请没有行业经验的人来填补这些职位,但在所有选项中都很难挑剔。