C#数据类型gamedev初学者应该使用:队列

这是我计划介绍的一些数据类型的第一篇文章,这些数据类型确实是初学者游戏程序员未真正使用的数据类型,并且您可能会考虑在游戏代码中使用它们。 我们从哪里开始呢? 使用我最喜欢的数据类型Queue。 如果您有购买杂货的经验,您可能已经对Queue是什么有了一些猜测。 与商店队列类似,它是对象的先进先出(FIFO)集合。 换句话说,如果将字符串“ cat”,“ dog”和“ mouse”添加到队列中,则会以相同的顺序将它们取出。 那么,为什么要使用队列而不是仅使用数组或列表呢? 首先,队列(以及System.Collections.Generic中的大多数集合)可以随着新对象的添加而动态增长,而不是像数组那样固定不变。 而使用列表,从列表的开头删除内容并不是很有效,因此Queue在性能上击败了它们。 最后,键入.Enqueue()将对象添加到Queue中,.Dequeue()从Queue中删除对象,以及Peek()来查看下一个对象而不删除它,这是很好的。 它使工作变得更加轻松,并且您的代码更易于阅读。 因此,这是何时使用Queue的实际示例。 想象我们有一个小人物,我们想要移动到我们在屏幕上单击的每个位置。 首先,如果要使用Queue,则必须包含System.Collections.Generic命名空间,如此处顶部所示: 使用System.Collections.Generic;…

GameDev思想:集思广益的游戏设计思想的缺陷

当您希望开始新游戏时,您会做什么? 显然,第一个目标是为上述游戏集思广益。 您需要提出基本的游戏风格,在这里和那里有一些独特的功能,即使它们可能由于太不合适而在以后可能需要删除,并且如果游戏支持它们,则需要一个故事情节。 完成此操作后,您将开始着手开发,并且更多的想法会不断涌入您的脑海:不要让那转移太多的注意力。 开发人员需要明确定义创建游戏的过程,以便他们知道何时提出想法以及何时将其抛在脑后。 在尝试对计划的其余部分进行任何处理之前,请先弄清所有其他内容; 创建一个迭代的时间表,确切地知道您要如何使用游戏的核心机制和功能,并愿意接受外界的反馈,这样您就不会被过多的旁观者所困扰。 当您刚入门时,可以进行令人难以置信的创新和创造力,但是如果您只有怪异的想法并且没有有效地开发自己的核心游戏玩法,那么您就无法有效地进行设计。 优秀的开发人员知道,如果他们过度分散核心游戏玩法的话,就需要削减创新,因为游戏只是一堆奇怪的主意,更像是技术演示。 但是,仅仅因为您认为不必要的怪异技工并不意味着您必须完全放弃这个想法。 将您的想法保存在某个文档中,以便在适合您的项目时可以将其回收。 这些想法可能不一定是坏主意,但是当您尝试在不需要创新的领域进行创新时,问题将进一步产生。 每个开发人员都想使自己的游戏尽其所能,但是做一些花哨的东西并不总是合适的; 知道什么时候该停止使用那些不合时宜的想法。 刚开始时,这似乎有点困难,因为完全报废您已经分配了开发时间的机制总是很不好,但是随着时间的流逝,您会更好地了解这些有问题的机制,以免失控。 在您熟练掌握这些知识之前,测试人员的外部反馈可以为您提供帮助,以免您因不适当的游戏机制而感到沮丧。 重要注意事项:如果您不专注于游戏的开发,那么过多集思广益可能是一件坏事。 实施以前集思广益的不良技巧是一件更糟糕的事情。…

我使用的游戏开发工具

我已经独自研究Riflestorm了一年多,一路上我发现了一些很棒的工具,所以我想与大家分享。 我选择在游戏中使用Unity是因为我发现它最适合我的需求,例如C#支持,许多插件,出色的灵活性,并且我对此感到很满意。 我不需要虚幻引擎的全部功能,也不想使用自己的引擎,当时没有一个开源引擎足够好-我仍在关注Godot。 我使用Animate(但实际上仍将其称为Flash)来满足我的所有绘图,UI和有时动画的需求。 它是基于矢量的,这使得绘画和缩放艺术变得非常容易,我也习惯了它产生的艺术风格-我已经使用了10多年了。 动画几乎总是在Unity内部完成的,因为它提供了最大的灵活性,例如能够轻松切换士兵武器和装备。 我通常将图像分成多个Flash文件,一个用于武器,用户界面元素,士兵服装等。在每个文件中,我将为每种类型的对象创建单独的影片剪辑,并将每个对象画在其自己的框架上。 然后将它们导出为Sprite表格。 我使用Flash Sprite Sheet Importer的修改版将其导入Unity。 毫不奇怪,这是行业中最好的。 我仅将其用于简单的图像编辑。 这用于创建徽标,例如Riflestorm的徽标。 这对于处理文本和保持元素对齐非常有用。 最初,我像大多数人一样不喜欢Blender,但是在我习惯了Blender之后,我现在发现自己在此程序中比在其他程序中更有效率。 我主要将其用于3D建模。…