游戏开发:改进Onrush中的客户端服务器开发工作流程

游戏开发:改进Onrush中的客户端服务器开发工作流程 像许多工作室一样,我们的抱负远远超过了我们的能力。 Onrush的核心团队大约有50人,其中代码和艺术大约相等,另外还有一个小型设计团队。 因此,当我们坐下来计划游戏的开发流程如何在我们的开发团队中运作时,我们必须确保开发人员和技术的最高效率来实现我们的目标。 允许团队迭代并围绕想法发展始终是保证高质量的关键。 Onrush从一开始就被设计为在线竞争性游戏,因此我们需要一种服务器架构来支持游戏的所有在线方面。 将这种工作量添加到我们的游戏开发中意味着我们团队的工作量增加了两倍,需要在两个不同的问题域中开发两个单独的软件,并需要两种不同的技能。 在规划开发工作负载时,根据游戏代码和服务器代码的两个问题域(每个域都有各自的可交付成果)来定义团队可能很容易。 这符合基于文件,可执行文件和操作系统的技术知识的观点。 但是,这着眼于播放器的错误交付。 我们确实是在为玩家提供一种体验,而游戏和服务器的结合就是我们提供这些体验的方式。 游戏中每时每刻的体验通常涉及幕后玩家,游戏与服务器(以及其他联网的玩家)之间的多次交互。 不幸的是,将任务分散到多个单独的团队中将不可避免地导致任务切换,停机时间,阻塞,迭代丢失和机会成本高昂。 通过选择基于玩家体验的任务,我们可以垂直了解整个技术堆栈,从UI到游戏代码再到服务器代码。 对于Onrush,我们希望确保将玩家体验分解为可以由一个人端对端拥有的任务。 对我们来说,这意味着没有独立的服务器团队。 相反,我们需要的是一个可扩展的服务器平台,可以由游戏程序员轻松地对其进行自定义和管理。 在内部构建这种服务器平台不在项目范围内,因为这需要我们团队不断进行开发和维护。…

为什么我们创建Waliko(另一个事件共享应用程序)

2014年2月是一个冬天的晚上。我(Michael)参加了一场聚会,聚会的重点是高飞行,超动态的运动,称为武术技巧。 从来没有听说过? 究竟。 这次活动的主办方不遗余力地将一个绝佳的场地,一流的室内布置,食物,灯光和DJ聚集在一起。 在他的所有准备工作中,他有时间邀请所有可能的人……没有人(当然,他的亲密朋友仍然成功,因为他们认识他并在社交媒体上关注他)。 这件事使我感到十分悲剧。 如果他们只知道事发于事前,将会有更多的人来,而整个开车回家,我却不由自主地想到…… 没有人会因为他们不知道发生了什么而错过事件。 这让我想起了我在社交媒体供稿中发现一个已经过去的事件的所有时间,或者我突然间发生的一次更新,一次更新是朋友正在参加一个我不知道的事件(当天)。将会发生。 如何解决? 我觉得应该有一种服务,可以根据给定的主题安排事件,并且用户可以从本质上“订阅”该领域的主题。 因此,只要在线列出符合您兴趣之一的事件,您就会收到一条短信,其中仅包含有关该事件的最相关信息以及其票证的链接。 输入Waliko,这是一种完全可以做到的服务。 现在,为了解决不可避免的问题,“聚会是否已经做到了?” 实际上,我已经尝试过Meetup,一遍又一遍,我发现它和其他事件应用程序都缺少,主要是由于以下原因: Meetup使个人档案管理不必要地混乱 如果您是一名舞者,并且喜欢霹雳舞,那么您所使用的平台应该足够了解,以确保上面突出显示的五个兴趣都与一个主题相关。 因此,如果我将“霹雳舞”列为我的兴趣,但您的Meetup选择“霹雳舞”为主题,那么当我们尝试说同一件事时,我(和许多其他人)可能会错过这次活动。…

我可以使用什么软件制作自己的视频游戏?

电子游戏很有趣,而且玩起来很愉快,但是,对于一家游戏开发公司来说,这很困难而且很难工作,您必须具有多年的游戏开发经验并具有一定的学位,但是没有人会花时间吗? 如果我告诉您可以使用专用软件开发自己的游戏,该怎么办? 有些会花钱,但有些是免费的。 我个人建议使用免费软件,因为它可以帮助您建立经验,如果您不喜欢它,那您就算花钱了。 现在,让我们看一下您可以使用的三种最佳“免费”视频游戏开发软件。 结构3 如果您喜欢游戏,但确实讨厌编码,那么Construct 3适合您。 该软件完全由GUI驱动(图形用户界面)。 这意味着或多或少的一切都是拖放。 您的作品可以在数百个平台上导出,而无需进行任何挑剔的更改。 可导出平台的示例包括HTML 5,Android,iOS,Mac,Windows和其他一系列Microsoft产品。 关于Construct 3的另一个简洁功能是,它们已经准备就绪,可以提供图形(需要支付额外费用),但这可能会有所帮助,因为它们可以激发您进行自己的创作。 免费版具有该软件的所有功能,但是,您只能在一个帐户中添加多少事件,对象层的数量,特殊效果和字体。 价格从每年99欧元起。 像这样的软件非常适合激发下一代,也非常适合将您的想法发扬光大。…

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;…