游戏开发

专业和独立游戏开发人员的问答

6
我应该在移动设备上使用Lua进行游戏逻辑吗?
如上 我在业余时间写了一个基于Android的游戏(Android是免费的,我没有做任何商业广告的抱负)。 游戏逻辑来自一个非常典型的基于组件的模型,在该模型中,实体存在并具有与之相连的组件,并且来回发送消息以使事情发生。 显然,实际执行的那一层很薄,如果我要编写此应用程序的iPhone版本,则必须在Objective C中重新编写(此基于组件的系统的)渲染器和核心驱动程序。 实体只是确定要添加的组件名称的平面文件,而组件本身是包含实体逻辑的简单,单一目的的对象。 现在,如果我用Java编写了这些组件的所有逻辑,那么如果我决定使用iPhone端口,则必须在Objective C上重新编写它们。由于大多数应用程序逻辑都包含在这些组件中,因此,在理想情况下,它们将以与平台无关的语言/脚本/ DSL编写,然后可以将其加载到任何平台上的应用程序中。 但是,我一直被认为这不是一个理想的世界,并且移动设备上的Lua性能等仍未达到标准,开销太大,如果以后我会遇到麻烦走那条路线? 真的是这样吗?显然,这只是一个假设性的问题,我很高兴用Java编写它们,因为它简单易行,但事与愿违,但我说我真的很喜欢制作这款游戏​​(不太可能,因为我目前不喜欢处理多少游戏以及所有这些不同的移动设备),并且我想开发一款商业上可行的游戏-我会使用Lua还是只想移植移植并重新编写所有代码?
33 android  lua  mobile  porting 

4
通过免费游戏产生收入的常见方式有哪些?
制作免费游戏时,有哪些收益选择,它们有多成功?不同收入模式(例如广告支持,免费增值,合作伙伴关系,商品销售,虚拟商品等)的利弊是什么? 如果可能,给出使用不同收入模型的游戏的具体示例,并提供数据作为证据(否则可能会很主观)。

7
模拟游戏世界中大量实体的绝佳方法
假设您有一个游戏,其中有许多实体(许多)服务于某些功能,但并非总是需要或需要在每个框架中都考虑所有这些功能。我正在研究的具体问题是存在一个包括器官在内的人体的详细模拟。 在游戏中,每个生物都有自己的身体,身体分成较小的部分(躯干,腿等),有时这些部分包含器官,这些器官在体内发挥特定的功能。器官的当前用途或作用是未知的。毕竟,动物可能肚子空了,因此不需要消化任何东西。当您在世界上拥有许多生物时,检查或模拟每个帧中的每个对象将是非常荒谬的,而且成本很高。因此,我正在考虑一种巧妙地区分需要更新的对象和不需要更新的对象的方法。 我想出的似乎是至少可以的解决方案。它创建了一个简单的队列/堆栈(本质上是每个元素在读取后即被删除;顺序无关紧要),称为“注意堆栈”,其中需要模拟的对象驻留在该堆栈中。需要注意的对象将简单地放在堆栈上或由其他对象放在那里。这些对象可能会实现带有Simulate()函数的简单接口。 应用于我之前的消化示例,这将意味着: 玩家从清单中选择要吃的东西(假设是面包),并将其放入角色的口中,然后将口放到注意堆栈中。在下一帧中,将嘴从堆栈中取出,并调用其Simulation()函数。由于是嘴巴,因此在这里模拟咀嚼是合理的。这可能会持续几帧,在此过程中,嘴巴会不断将自身放到烟囱上,直到它决定可以吞咽食物为止。在这种情况下,嘴巴将嚼过的面包放进胃中(我知道它不会直接进入胃中,但是为了简化起见,食管被省去了),然后也将其放到注意堆栈中。在下一帧中,开始消化过程的模拟。其余的必要器官等等。 可以预见的问题是空转对象。熟睡的动物就是一个很好的例子。可以通过将熟睡的动物放在堆栈上并每次检查是否需要唤醒来完成上述操作,但这似乎很浪费,因为这是唯一要做的事情。为了使闲置对象更有效率,我计划添加一种时间表,以存储要在特定时间执行的作业。如果动物入睡,它将按照该时间表进行工作,该时间表将在动物入睡后的一定时间内进行。然后,这项工作将负责将熟睡的动物再次放到注意堆栈中。现在,您可以说不在注意力集中的睡眠动物可能会因为没有模拟AI而错过被某物攻击的机会, 现在,老实说,由于缺乏经验,我不知道这是否可以完美解决该问题。我接近可用的东西了吗?通常这是如何完成的,或者有人有什么建议或更好的解决方案?

9
红宝石适合游戏开发吗?[关闭]
我想从事一些游戏开发,但是我唯一真正了解的语言是Ruby。我读过的大多数内容似乎都指向诸如游戏开发的C ++之类的较低级语言,或针对使用XNA的诸如C#之类的特定框架的语言。有没有人有使用ruby之类的语言进行游戏开发的经验?如果是这样,您会建议还是反对?
33 ruby 

30
用于创建资产的工具?[关闭]
关于查找可免费使用的现有资源(免费的图片/图像,音乐,声音),存在类似的问题,但是我对自己创建资源感兴趣。您使用什么工具进行资产创建/修改? 每个答案只能放入一个工具。另外,请尝试包含以下信息: 产品名称 链接到网站 可以创建资产类型(2D图像,3D图像,音频等) 支持的操作系统 成本 许可证(如果免费/开源) 一般总结
33 assets  tools 


5
“系统编程”是什么意思?
我正在为一家世界知名的游戏开发公司的游戏程序员实习做准备。当我在他们的网站上搜索必要的先决条件时,它向我显示了以下内容: 增加的优势 了解DirectX / OpenGL。 精通3D数学和物理。 用于C ++开发的Visual Studio IDE。 系统编程和操作系统概念。 它们对系统编程和OS概念到底意味着什么? 我应该学习Windows编程吗?还是我应该进行Linux编程(这意味着他们希望我知道重要的概念)。还是完全不同?

4
为什么我的物体在45度时比在90度时移动得更快?
我的游戏中有一些物体在45度和90度时移动得更快。 每个对象都有 点(x,y)的位置 Vector2D(x,y)方向 整机速度 我在更新过程中所做的就是计算新职位: position.x += direction.x * speed position.y += direction.y * speed 我该如何纠正?我希望它以相同的速度在任何角度移动。
32 c#  2d  geometry 

14
什么是青少年游戏程序员的良好入门平台?[关闭]
我儿子(15岁)决定要从事游戏程序员的职业。我说过,他现在应该从一个简单的游戏开始。他还没有编程经验,但是我是一名程序员(业务应用程序,而不是游戏),所以我可以教他编程,但是对于他来说,什么是一个好的平台?最初,我正在寻找可以提供快速结果的产品,以保持他的热情。 你有什么建议?
32 platform 

4
为什么这么多游戏不完整?
我想知道为什么这么多MMO只能部分发声吗?我问游戏制造商(在《问答集》中的Thimbleweed Park),画外音有多贵,他们说除非聘请A级明星,否则画外音并不特别贵。那么,为什么这么多的游戏对话只能作为文本显示在屏幕上? 我能想到的唯一原因是所有软件中的本地化都相同:在所有对话完成并冻结之前,您无法记录VO,因此这是完成游戏其余部分与发布之间的另一个固定延迟。因此,它似乎不是不可管理的。 需要明确的是:我不是在寻找观点或理论(只会让mods解决这个问题),而是寻找那些带有部分画外音的游戏的人的实际原因和经验。

11
我是否必须在游戏的小说中解释玩家角色的机械优势?
相当长一段时间以来,我想知道如何表述这个概念,这似乎很普遍,但在游戏中却很少涉及。它是关于玩家控制角色(PC)始终优于通用非玩家控制角色(NPC)的概念。这也不一定取决于实际的玩家技能(定义为玩家可以主动做的事情),而是PC本身固有的。 现在,对于RPG来说,通常是命运,魔法,超强技能,背景故事,更好的(附魔)装备,具有稀有的力量。 但是,如果要使用大小,类型和设备相同的太空船呢?我怎么能解释一个玩家可以反复轻松地研磨自己使用的5-10艘太空飞船,而由于武器和推进器自动工作而没有太多的技能空间?像对手一样有效地按下按钮开始进攻。假设这是游戏的早期阶段,只是为了保持摘要。另外,我们假设没有像psi功率或晶体这样的基于绝杀的特殊元素的标准,未来派设置。 现有哪些准则或概念可用来证明PC的优越性?从数学上讲,我是否必须以可信的方式解释所有PC遭受的-75%损害和+ 300%损害作为基准?还是这是游戏普遍默默接受的前提?

5
如何保护我的保存数据免遭随意黑客攻击?
有哪些选项可以安全地保存游戏数据?我对专门为C ++量身定制的解决方案感兴趣。 我正在寻找一种快速且易于使用的东西。我只关心存储诸如 哪些级别已解锁和未解锁 每个级别的用户得分 我再次好奇地知道有什么用处,可以使用的任何好的库都可以为我提供普通玩家不会碰到的漂亮,安全的游戏数据文件。 我刚刚找到这个位置看起来很漂亮,但它会是巨大的,得到潜在的其他库/选项的一些观点在那里。


1
实体系统的缓存效率如何?
最近,我已经做了大量关于实体系统的阅读,以在我的C ++ / OpenGL游戏引擎中实现。我经常听到称赞的关于实体系统的两个主要好处是 由于不必纠缠复杂的继承层次结构,因此可以轻松地构造新类型的实体,并且 缓存效率,这让我很难理解。 当然,理论很简单;每个组件都连续存储在一块内存中,因此关心该组件的系统可以遍历整个列表,而不必在内存中跳转并杀死缓存。问题是我真的无法想到实际可行的情况。 首先,让我们看一下组件的存储方式以及它们之间的相互引用。系统需要能够使用多个组件,即渲染系统和物理系统都需要访问变换组件。我已经看到许多解决此问题的可能实现,但没有一个能很好地实现。 您可以让组件存储指向其他组件的指针,或者指向存储实体的指针的实体的指针。但是,一旦您将指针添加到组合中,您就已经失去了缓存效率。您可以确保每个组件数组都为'n'个大数组,其中'n'为系统中存在的实体数量,但是这种方法浪费内存。这使得很难向引擎中添加新的组件类型,但是仍然会浪费缓存效率,因为您要从一个数组跳到另一个数组。您可以交错实体数组,而不是保留单独的数组,但是您仍然在浪费内存。使得添加新组件或系统的成本高得惊人,但是现在有了使所有旧级别失效并保存文件的额外好处。 所有这些都假定在列表,每一帧或每笔价格变动中对实体进行线性处理。实际上,情况并非如此。假设您使用扇形/门户渲染器或八叉树来执行遮挡剔除。您也许可以在一个扇区/节点内连续存储实体,但是无论您是否喜欢它都将四处走动。然后,您将拥有其他系统,它们可能更喜欢以其他顺序存储的实体。在开始使用AI LOD之前,AI可以将实体存储在一个很大的列表中。然后,您需要根据与玩家之间的距离或其他一些LOD指标来拆分该列表。物理学将要使用该八叉树。脚本无关紧要,无论如何,它们都需要运行。 我可以看到在“逻辑”(例如ai,脚本等)和“世界”(例如渲染,物理,音频等)之间拆分组件,并分别管理每个列表,但是这些列表仍然必须彼此交互。如果AI不能影响用于实体渲染的变换或动画状态,则AI是没有意义的。 实体系统在现实游戏引擎中如何“高效缓存”?也许有一种混合方法,每个人都在使用而不是谈论,例如将实体全局存储在数组中并在八叉树中引用它?


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.