我自己创建独立游戏,但是一旦我将新开发的游戏开发到可以玩行为的水平时,我通常就精力不足,因此我选择精打细算而不是探索。结果很糟糕。
(图片来自对讲博客)
例如,我发现调整行为(即链接和重新启动C ++应用程序)的迭代周期很长,以至于它们扼杀了所有创造力。我正在建立一个工具来处理这个问题。
还有哪些其他方法可以快速探索游戏行为?我对独立开发人员以及大型公司使用的方法感兴趣。
我自己创建独立游戏,但是一旦我将新开发的游戏开发到可以玩行为的水平时,我通常就精力不足,因此我选择精打细算而不是探索。结果很糟糕。
(图片来自对讲博客)
例如,我发现调整行为(即链接和重新启动C ++应用程序)的迭代周期很长,以至于它们扼杀了所有创造力。我正在建立一个工具来处理这个问题。
还有哪些其他方法可以快速探索游戏行为?我对独立开发人员以及大型公司使用的方法感兴趣。
Answers:
正如您已经指出的那样,当您在研究游戏机制时,迭代速度至关重要。从考虑修改到能够通过该修改进行测试之间的时间越长,您的工作效率就越低,而您的注意力也就越分散。结果,您肯定要管理迭代时间。
对我来说,当测试一个简单的更改的时间超过大约五秒钟时,我的工作效率确实开始下降。因此,当您尝试改善游戏的感觉时,您的目标之一就是要弄清楚“我如何进行更改,然后在不到五秒钟的时间内使用该更改进行游戏”。只要您可以将迭代时间保持在该水平左右,那么执行该操作实际上并不重要。
许多大型的现代引擎(Unity,Unreal等)通常通过将其编辑器放入游戏引擎来实现此目的,因此您可以实时进行大多数修改,而无需重新启动游戏。较小的引擎/游戏通常将工作重点放在另一个方向。使游戏如此快速地编译和启动,以至于每次更改都不必重新启动游戏都没关系;在这五秒钟之前,您仍然可以进行测试。
在我当前的项目中,我需要大约十秒钟来进行小的重新编译,链接,启动游戏,然后到达游戏状态(其中大多数是在加载保存的游戏时生成可渲染的世界几何图形)。这太长了。因此,我创建了单独的“测试”游戏模式,可以在不加载所有真实游戏资源的情况下测试游戏的不同部分,因此我可以更快地进出。通常大约需要两到三秒钟。如果我想测试一些UI,则无需加载到真实游戏中就可以做到。如果我想测试渲染,则可以使用另一种模式进行测试,而无需加载整个游戏系统。
我见过其他通过将游戏逻辑放入DLL中并让已经在内存中的游戏可执行文件在游戏运行时重新加载DLL来解决此问题的人,因此您可以重建DLL并仅将其重新加载到已经加载的可执行文件,因此您无需重新加载/重建游戏的美术资产。对我来说,这似乎很疯狂,但是我已经看到了。
比这要简单得多的是在脚本或数据文件中指定游戏行为和/或配置,并提供一种方法使系统可以按需重新加载这些文件,或者只是看着它们进行修改而无需关闭游戏关闭,重新链接,然后重新启动。
有很多方法。选择最适合您的东西。但是,成功完善游戏机制的关键之一是极其快速的迭代。如果您没有,那其他的事情也几乎没关系。
IF DEBUG
直接进入我的“测试”状态(跳过游戏菜单)的替代“调试”版本(通常是文字编译器指令)等),这是我当时正在测试的任何资产的基本内容。因此,我基本上会编译一个备用可执行文件,该可执行文件会自动加载非常精简的级别(要加载的资产较少,每次都不会浪费游戏菜单)。
为使原型更好,请减少测试思路的成本。
我的工作流程已针对小型游戏进行了调整,但我发现这些事情会有所帮助:
Makefile
一个make watch
目标,该目标inotifywait
循环运行,通过自动编译/运行游戏对文件更改做出反应。用解释性或JIT编译的语言,这是即时的。作为主要专注于原型制作的开发人员,以下是我的一些经验建议。
查看您的原型需要多少时间。以我的经验,您希望两天之内拥有所有版本的可播放版本-从头开始;并且您想每天测试一两个新功能。如果您没有达到这些目标,请寻找更快的方法。
可以将游戏开发分为以下四个阶段:
我认为游戏性探索主要发生在原型开发阶段,以下是我尝试遵循的一些建议:
从纸质原型开始设计。在清楚地知道游戏可能是什么之后,开始对其进行编码,以便您可以真正感受到互动。也许这对3D游戏没有用,但在过去对我个人有很大帮助。
知道您将在完成后扔掉代码的代码。在选择哪种游戏引擎时,这将使您放心。
快速迭代周期很重要(正如其他人之前指出的那样)。根据游戏引擎的功能来快速向您显示编码内容,从而选择游戏引擎。在此阶段,您也不必关心性能或图形保真度。
限制范围。如果实际的游戏方式是2D(通常为策略游戏,JRPG),则以2D原型。在此阶段,您只关心游戏玩法的反馈。
不要浪费时间进行抛光或搜索资产。在纸上涂鸦,拍摄照片,在Photoshop中进行切割,也许对其进行着色,然后将其用作精灵。打开麦克风,说“ pew pew”。将两个立方体和一个球体放在一起,您将拥有一个机器人。始终牢记,探索游戏可能性是您的头等也是唯一的优先事项。
在确定好玩的原型后,开始完善它。我认为没有理由切换技术,除非有游戏元素需要它。
在开发的后期,您将手握精致的原型,同时开发新的,外观更好,听起来更好,感觉更好的游戏。在这里,您必须选择要使用的实际游戏引擎。
最后,利用现有资源并对其进行调整以使用更少的资源。
我上面所描述的大多数知识都是常识,但将其列出来,将整个开发过程分隔开来,有助于我从各个角度着眼。希望对您有帮助。
我同意Trevor Powell的回答,即迭代的速度对于您保持创造性的情绪而不是仅仅进行抛光至关重要。布雷特·维克托(Bret Victor)的演讲“原则上的发明”对我来说是一个很大的灵感来源。不幸的是,很难在该级别上找到真正的工具。我尝试构建自己的Python开发工具,以便在键入代码时运行Python代码。在Python中称为实时编码。
我建立了一个称为Trabant的原型工具,该工具:
我在其中构建了30个测试原型以验证以上内容。
正如Trevor Powell 强调的那样,迭代时间必须小于5秒,而我发现小于1s的迭代几乎是其5倍。:)
Anko 提到使用动态语言是个好主意,因此我选择了Python,因为它是使用最广泛的语言之一。关于构建自动化,在Trabant中进行测试就像在IDE中按F5一样快(或者在iPad上按F6对其进行测试),并且由于不涉及构建步骤,因此没有比这更即时的了。
扔掉代码是Nevermind的 要点之一。我完全同意,Trabant强制执行。
除了非常重要的Trevor Powell的迭代速度外,还有其他一些有用的注意事项:
就像好的代码...
那里有很多中频。
概念越扎实,您就不需要花太多时间。如果您知道自己想做的是什么,那么原型制作就变成了-放置什么以及如何相对于中心支柱(您的主要物件)进行布置。
如果您像许多其他人一样起步-不太确定要做什么,那么您会朝一个方向前进,并以显示的图像的方式进行探索。
如果可以在没有太多深度的情况下模拟正在寻找的东西,则对技术的承诺都是不相关的-在您想要的/可以的任何东西上进行原型设计。
不要浪费一秒钟的资源。从互联网上下载所有内容。是否专有。您希望能在工作中感觉到自己的概念-除非图形是您的主要功能,否则没人会起诉您尝试他人的声音,纹理和其他任何东西,您还没有将其放在商店的货架上。除非您已经获得资金-要说服人们,否则这个概念是值得的,它将使您获得金钱以获得所需的资源。我见过游戏工作室的人们用无权获得的专有游戏的改进版本介绍游戏概念。
就像您正在构建比例模型一样。拥有您想要的微型生活副本真是棒极了。有时,它足以将其从杂志上剪下来,手工制作并将各部分粘合在一起。充满想象力的每个人都不会假设您实际上将使用显示比例模型的纸板来建造摩天大楼。在创意产业中,与具有想象力的人一起工作更可取。如果他们无法克服一些草案问题,看不到整个概念背后的潜力,那么他们很少会欣赏产品。没有升值意味着他们不愿意承诺,那就是下降螺旋。区别在于树立孩子征服世界的态度,而不是说“小小的脏话甚至连鞋子都不能系好,
无论您做什么,都要记住,无论技术或经济潜力如何,仅凭态度就足以彻底摧毁一切。
我曾经使用独家的gif图像制作游戏原型,并为它们提供了一些与javascript有关的功能。它不刺眼,但可以达到显示我想要显示的目的。以后是否专门为Xbox开发它都没关系。
如果您的想法比简单的原型要复杂,那么您将不得不对将要使用的技术进行研究-因为原型将最终被用作脚手架(原因很简单,因为在它,并且不能轻易丢弃)-如果您明显批准了它。