Language agnostic 业余游戏开发的价值

Language agnostic 业余游戏开发的价值,language-agnostic,Language Agnostic,尝试开发某种游戏,即使只是作为业余爱好也能提供有用的(专业)体验,还是幼稚地浪费时间 在我的编程生涯中,我时断时续地从事一些小型的个人游戏项目。我发现(通常)严格的性能要求和不断升级的设计复杂性教会了我一些最有用的编程课程 在这些仅举几个例子的项目中,我很快就遇到了一个问题:“小N的一切都很快”。我还发现了使用基本的面向对象设计原则来管理复杂性的困难方法 在一个许多技术和主题都相当枯燥/乏味的领域,我认为业余游戏开发对于激励新(不是很新)开发人员在享受乐趣的同时温习基本技能非常重要 一般来说,我

尝试开发某种游戏,即使只是作为业余爱好也能提供有用的(专业)体验,还是幼稚地浪费时间

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

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

在一个许多技术和主题都相当枯燥/乏味的领域,我认为业余游戏开发对于激励新(不是很新)开发人员在享受乐趣的同时温习基本技能非常重要


一般来说,我谈论的是业余爱好项目,但在这里,我更感兴趣的是游戏项目,以及它们对专业程序员的价值。

我认为课外发展是一件好事,无论它是否是游戏。首先,你可以尝试不同的技术和开发平台,这是让你的技能保持最新的好方法。与游戏相比,我更喜欢数学算法,但这只是一种偏好,而不是游戏;根本谈不上做这件事的价值

如果你把这些带回到你的雇主那里,他们就会从你的知识中获益,而你正是利用自己的时间获得的。这对他们也有好处


我说的代码让你心满意足

你可以从游戏开发中学到很多东西。游戏开发需要一种在其他编程项目中找不到的规则

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

  • 速度优化
  • 以牺牲计算深度换取速度
  • 在记忆的小限制下发展
  • 构建一个像操作系统一样工作但面向速度的系统
  • 将数百到数千个对象保存在一棵树中,每个对象都有其独特的特性
  • 游戏开发的某些领域具有很大的学术价值(如人工智能、程序算法等)
  • 不管代码有多糟糕,只要游戏性还在。将这一点转化为其他学科,编程的目标是让客户满意,而不管您的代码是多么聪明或丑陋

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

坐下来解决问题,用手头的工具解决问题(不管是什么问题,修复数据库、编程接口还是用ascii下棋)有助于你成为更好的程序员


手把手放下来。

游戏有一些最复杂的处理过程,对一个门外汉、业余程序员来说是“令人满意的”。高中时,我写的都是游戏。想探索物理吗?写一个游戏。三维图形?写一个游戏。高性能计算?写一个游戏。人工智能?经济学?军事战略?自然语言处理?定理证明?写一个游戏

你不必发布它,你不必记录它,你甚至不必玩它,你只需要摆弄它,你会在游戏中学习任何你觉得有趣的算法

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

我使用Psion Series 3 TopSpeed C SDK自学了C(以及Psion专有的OO扩展),并编写了几个游戏,这些游戏是我根据GNU许可证发布的。(之前我在Turbo Pascal和Pascal上有过一段经验,在Aigiga and Borland C++ 3.1上,在一个财务分析实习中做信号处理,但是当我得到PXI时,我必须回到C,我用K& R来为这个代码找到一个很好的坚实基础。) 然后我把我学到的关于Psion平台的专业知识运用到一个为期3年的工作中,使用他们的工业手持设备进行移动开发,在那里我也获得了数据库方面的经验。这对他们来说是一个巨大的转变,产品混乱不堪,我在这个平台上的经验比任何人都多——就在那一年写游戏的时候

我将其应用到一个Windows开发工作中,在那里我最终成为了IT总监,并在SQL Server、Windows、ASP、数据中心、DR等方面获得了丰富的经验

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


我把这一切都归功于我第一次踏上这扇门,在那里我真的能够为第一家公司带来巨大的变化,因为我在C平台上的经验和基于C的图书馆系统。

我认为更重要的是,业余游戏的开发让你高兴吗

游戏开发的许多领域完全可以在更专业的层面上应用,但如果这是你将游戏开发作为业余爱好的唯一原因,那么你可能会想重新评估情况,也许会将你的努力放在各种开源项目上,这些项目可以自豪地显示在简历上(并不是说爱好游戏开发不能)或在采访中讨论


你的爱好应该是你喜欢做的事情,如果你喜欢游戏开发,那么一定要坚持下去,嘿,也许你会发现自己在专业上做游戏,这最终似乎是你的理想情况。

我不认为任何能让你学习、实践和实验的东西都可以被视为“儿童”h’

此外,如果你的目标是制作一款像样的(甚至是“专业的”)游戏,几乎肯定需要学习和掌握可直接转移到“传统”角色的技能。优化、测试、跨平台工作、UI设计