游戏开发

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


3
什么时候应该对数据进行硬编码与加载外部数据?
我需要大约一千行代码来制作自己的2D天基游戏,该游戏创建随机生成的恒星系统的网络,并随机选择行星,驻地,船只和武器来填充它们。 游戏可能需要使用数百个不同的站点/飞船/等-这就是我想知道的。我是否应该花时间创建一个“软编码”数据加载器,该数据加载器会将所有这些信息存储在(例如)XML文件中,因此在以后进行修改时会更容易些,还是我应该简单地处理一下现在正在做-将所有对象硬编码到游戏的主引擎中。 我是该项目的唯一人员,正如我所说,这只是我业余时间在大学以外从事的业余爱好。但是社区会建议投资创建一个额外的系统来将数据存储在其他文件中吗? 用这种方式对数据进行软编码与通过构造函数对所有数据进行硬编码相比,有什么好处?可以修改外部文件是否有长期利益-如果我不希望游戏具有“ mods”,是否需要外部文件?如果这只是我几周或几个月内会放弃的业余爱好,我应该在这上面浪费时间吗?

4
游戏主角的性别是否会影响销售?
游戏的主角是男性。我认为传统的看法是,这是因为 我们生活在重男轻女的社会中,尤其是在游戏开发方面,以及 目标人群是男性。 我曾经听说过,对于小说,女性比男性具有更能同情男性的能力。因此,小说中性别的巨大失衡不一定是父权制造成的,而是从财务角度讲才有意义。我不确定是否订阅,但这很有趣。 曾经有一段时间,游戏是针对超级顽固的书呆子男性的,但现在几乎每个人都拥有游戏机,而且也不是像以前那样喜欢游戏的耻辱,我不知道这是否是男性领域更多。 因此,撇开我们是否应该减少性别陈规​​定型观念的任何疑问,我的问题是,拥有女性主角会真的影响销售,特别是对于小型独立游戏的销售吗?是否有与此问题有关的实验,统计或研究?如今,玩家的实际人口统计细分是什么? 我意识到这是一个煽动性的话题,因此我在这里强调,我不寻求意见: 我正在寻找困难的事实和数据。

2
全能程序员的良好游戏设计流程
我在游戏开发方面非常陌生-在Android平台上,正在考虑单人游戏开发。我知道我不能专业地完成诸如图形,声音和音乐之类的一切,但是我认为一旦完成编码,我以后就可以担心它们。 我目前的障碍是设置游戏设计流程。我已经阅读了一些有关游戏设计的书和讲义,例如“有趣的理论”和“镜头之书”,但仍不确定该过程。 当然,从长远来看,制定游戏创意是一个独立的过程,因此我可以假设我已经对这个问题有了游戏的创意。但是对于概念化,我该怎么办?我认为人们通常为此编写设计文档和故事板。但是对于android平台,我不确定设计文档是否必要-也许设计摘要就足够了。在这种情况下,故事板(或游戏画面的涂鸦)是否足以进行设计?在游戏设计中我还需要做什么?

1
“烤灯”是什么意思?
烘焙光照贴图是什么意思?我在Unity3d中听到了这个声音,然后又找到了这个用于Sketchup的LightUp插件,用于烘焙lightmap。 从我观察到的结果来看,烘焙的光照贴图为3d对象带来了更加逼真的感觉。在对象上烘烤光的目的是使cg动画看起来像在预渲染动画中看到的那样吗?
36 lighting 

4
OpenGL的顶点数组对象的目的是什么?
我刚开始使用OpenGL,但我仍然还不太了解什么是“顶点数组对象”以及如何使用它们。 如果将“顶点缓冲对象”用于存储顶点数据(例如其位置和纹理坐标),并且VAO仅包含状态标志,则可以在哪里使用它们?他们的目的是什么? 据我从(非常不完整和不清楚)的GL Wiki所了解的那样,使用VAO遵循元素数组缓冲区中描述的顺序为每个顶点设置标志/状态,但是Wiki确实对此含糊不清,我我不确定VAO的实际功能以及如何使用它们。
36 opengl 

9
以游戏功能为导向的程序世界
在大型程序性景观游戏中,这片土地看起来很沉闷,但这可能是因为现实世界在很大程度上是沉闷的,只有有限的地方具有戏剧性或战术性。 从这个角度来看世界的产生,游戏的景观生成器(不是为了风景,而是为了玩法)不需要遵循美化的规则,而是需要遵循一些美化规则。玩家的期望。例如,可能存在一个扼流点/路线生成器,该生成器在城市之间创建丘陵沟壑,河流和山脉,而不是自然形成的城市,它们是根据山脉或降雨模式产生的资源或条件散布在土地上的。 有没有像这样的现有工作?从城市或人口中心开始,然后再添加地形? 我问的原因是,我以前曾想过从幻想小说(我自己的和其他人的)中提取现有的地图,将信息作为系统的基点,然后生成一个可以玩的好世界。这似乎已被现有技术所覆盖,也就是说,设计人员在其中输入了所有必要的信息,例如城市人口,资源,生物群落,道路网络和河流,然后允许PCG填补空白。 但是现在我想知道是否有可能让内容生成器也生成整体设计。生成城市和人口中心,平衡它们,以便自然地有商业需要,然后生成位置和连通性,然后从城市类型中产生必须在附近的必要资源列表,只有这样才能给出有关如何使城市之间的旅程既可信又有趣的一些规则,产生了最终的内容,包括道路,阻塞点,桥梁和隧道,渡轮以及包括必要的生物群落和海岸线在内的地形。 如果以前这样做过,我想知道,也想知道哪里出了问题,什么才对。

1
直接在XNA中渲染SVG艺术作品
假设我有一堆矢量化格式的2D艺术作品,例如SVG。是否有一种简便易行的方法可以直接渲染而不需要自己实现完整的SVG渲染器? 当然,我可以离线(例如在内容管道中)对其进行光栅化,以实现不同的分辨率/缩放级别,但是我想在矢量图形提供的连续缩放级别上保持清晰的视觉效果。
36 xna  2d  graphics  art  vector-art 

4
流场寻路如何工作?
最高指挥官2拥有称为流场路径查找的功能。它是如何工作的?是否有可用的文章可供我阅读以了解其工作原理?

5
爆炸的逼真的相机/屏幕抖动
我想在爆炸时摇晃一下相机,我尝试了几种不同的功能来晃动它,似乎没有什么能真正给人“哇,真是棒极了!” 输入我想要的感觉。我尝试了一些任意的相对高频正弦波模式,并具有一些线性衰减,以及方波型模式。我尝试只移动一个轴,两个轴和所有三个轴(尽管在这种情况下,多莉效应几乎没有引起注意)。 有人知道好的相机抖动模式吗?
36 camera 

9
在Unity中,如何正确实现单例模式?
我看过一些视频和教程,这些视频和教程主要用于Unity中创建单例对象GameManager,它们似乎使用了不同的方法来实例化和验证单例。 是否有一种正确的或更确切的首选方法? 我遇到的两个主要示例是: 第一 public class GameManager { private static GameManager _instance; public static GameManager Instance { get { if(_instance == null) { _instance = GameObject.FindObjectOfType<GameManager>(); } return _instance; } } void Awake() { DontDestroyOnLoad(gameObject); } } 第二 public class GameManager { private static GameManager _instance; public static GameManager Instance …

4
非射击者的运动预测
我正在开发具有中等规模的多人游戏的等距2D游戏,大约有20-30个玩家同时连接到持久性服务器。在实现良好的运动预测实现方面,我遇到了一些困难。 物理/运动 游戏没有真正的物理实现,但是使用基本原理来实现运动。状态更改(即/鼠标下移/上移/移动事件)不是持续轮询输入,而是用于更改玩家正在控制的角色实体的状态。玩家的方向(即东北方向)与恒定速度结合在一起,并转换为真实的3D矢量-实体的速度。 在主游戏循环中,在“平局”之前调用“更新”。更新逻辑触发“物理更新任务”,该任务以非常零的速度跟踪所有实体,并使用非常基本的积分来更改实体位置。例如:entity.Position + = entity.Velocity.Scale(ElapsedTime.Seconds)(其中“ Seconds”是浮点值,但相同的方法适用于毫秒整数值)。 关键是没有插值用于运动-基本物理引擎没有“先前状态”或“当前状态”的概念,只有位置和速度。 状态更改和更新数据包 当玩家控制的角色实体的速度发生变化时,“移动化身”数据包将发送到服务器,其中包含该实体的动作类型(站立,行走,奔跑),方向(东北)和当前位置。这与3D第一人称视角游戏的工作方式不同。在3D游戏中,速度(方向)会随着玩家的移动而逐帧变化。发送每个状态更改将有效地每帧发送一个数据包,这太昂贵了。取而代之的是3D游戏似乎忽略了状态更改,而是以固定的时间间隔(例如,每80-150毫秒)发送“状态更新”数据包。 由于速度和方向更新在我的游戏中的发生频率要低得多,因此我可以避免发送每个状态更改。尽管所有物理模拟都以相同的速度发生并且具有确定性,但是延迟仍然是一个问题。因此,我发出常规的位置更新数据包(类似于3D游戏),但发送频率却要低得多-现在每250毫秒发送一次,但是我怀疑有了良好的预测,我可以轻松地将其提高到500毫秒。最大的问题是,我现在已经偏离规范了-所有其他在线文档,指南和示例都会发送例行更新并在这两种状态之间进行插补。看来与我的架构不兼容,我需要提出一种更好的运动预测算法,该算法更接近(非常基本的)“网络物理学”架构。 然后,服务器接收该数据包,并根据脚本根据其移动类型确定玩家的速度(玩家是否可以跑步?获取玩家的跑步速度)。一旦具有速度,便将其与方向相结合以获得向量-实体的速度。会进行一些作弊检测和基本验证,并且服务器端的实体将使用当前速度,方向和位置进行更新。还执行基本限制,以防止玩家因移动请求而淹没服务器。 更新其自身的实体后,服务器向范围内的所有其他玩家广播“头像位置更新”包。位置更新包用于更新远程客户端的客户端物理模拟(世界状态),并执行预测和滞后补偿。 预测和滞后补偿 如上所述,客户具有自己的地位。除作弊或异常情况外,服务器将永远不会重新定位客户端的头像。客户的化身不需要进行推断(“立即移动并稍后更正”)-玩家看到的是正确的。但是,所有正在移动的远程实体都需要某种类型的外推或内插。客户的本地模拟/物理引擎中显然需要某种类型的预测和/或滞后补偿。 问题 我一直在努力使用各种算法,并且遇到许多问题: 我应该外推,内插还是同时进行?我的“直觉”是我应该使用基于速度的纯外推法。客户端接收状态更改,客户端计算出补偿滞后的“预测”速度,而常规物理系统则完成其余工作。但是,它与所有其他示例代码和文章都不一样-它们似乎都存储了许多状态并在没有物理引擎的情况下执行插值。 当数据包到达时,我尝试在固定的时间段内(例如200ms)用数据包的速度对数据包的位置进行插值。然后,我利用插值位置和当前“错误”位置之间的差值来计算新矢量,并将其放置在实体上而不是发送的速度上。但是,假设另一个数据包将在该时间间隔内到达,并且很难猜测下一个数据包何时到达-尤其是因为它们并非都按固定的时间间隔到达(即,状态也发生变化)。这个概念从根本上是有缺陷的,还是正确的,但是需要一些修复/调整? 远程播放器停止播放时会发生什么?我可以立即停止该实体,但是它将定位在“错误”位置,直到再次移动为止。如果我估计一个矢量或尝试进行插值,则会遇到一个问题,因为我不存储先前的状态-物理引擎无法说“到达X位置后需要停止”。它只是了解速度,没有什么更复杂的了。我不愿意将“数据包移动状态”信息添加到实体或物理引擎,因为它违反了基本的设计原则,并在游戏引擎的其余部分流失了网络代码。 当实体碰撞时会发生什么?共有三种情况-控制玩家在本地发生冲突,两个实体在位置更新期间在服务器上发生冲突,或者远程实体更新在本地客户端上发生冲突。在所有情况下,我都不确定如何处理碰撞-除了作弊外,这两种状态都是“正确的”,但是处于不同的时间段。在远程实体的情况下,将其拖过墙是没有意义的,因此我在本地客户端上执行碰撞检测并使其“停止”。基于上面的第二点,我可能会计算出一个“校正向量”,该向量将不断尝试将实体“穿过墙”移动,但此操作将永远不会成功-远程化身被卡在那儿,直到错误变得过高并“捕捉”到位置。游戏如何解决这个问题?

1
SoC代表什么?
……不,我不是说片上系统。 我偶然发现了这个在图形上下文中使用首字母缩写词的问题,发现自己想知道它的含义。问题和答案都没有进一步解释该首字母缩写词,在Google上搜索时,我只知道了我已经熟悉的“片上系统”和不那么熟悉的“安全操作中心”。 SoC在游戏开发(和/或软件工程)的背景下代表什么?

6
当开发人员收到有关其游戏的相互矛盾的反馈时,应该怎么做?
我一直在开发我的第一个手机游戏(之前我做过很多网络和PC游戏)。 我希望这个想法简单但有趣。事实是,我收到了朋友和家人的反馈,并且听到了很多关于我的游戏的矛盾意见。有人会说该游戏令人上瘾,具有挑战性且很有趣,而另一些人则认为它不是有趣的游戏,并说它很无聊或不够好。 现在我有这两种相反的看法,我不知道我的比赛是否出色。 我应该听什么意见?当人们的意见混杂时,我应该如何知道游戏是否有趣?

2
如何以程序方式渲染不规则形状的保健棒?
传统的矩形或基于心脏的健康栏的问题已得到很好的理解,并且很容易解决。但是,像我在下面制作的样机那样,更“创意形状”的健康条的公认解决方案是什么? 这样做的明显方法是让“精灵”处于“中间”状态,因此第三个图像将是它自己的精灵,以及许多其他针对不同级别的健康的过渡。但是,这似乎非常微不足道,在健康状态之间建立平稳过渡所需的中间次数将很大。 我唯一能想到的想法是将“完全健康”子图覆盖在“空健康”子图和预先烘焙的像素坐标集上,以代表每个健康点,然后使它们像健康一样不透明或透明上升或下降。 我希望这个问题与语言和平台无关,但如果有帮助,可以随时以任何语言/库/框架提供具体示例。
35 2d  graphics 

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.