游戏开发

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

5
有没有一种方法可以防止用户调整其伽玛校正以“欺骗”出“暗”区域?
在我所遇到的几乎所有游戏中,都有一个旨在改变用户与环境互动方式的黑暗环境,总是有些玩家调高其显示器的伽玛校正值,以抵消所需的效果。 有没有一种方法可以防止用户调整其伽玛校正以“欺骗”自己的方法呢?(那黑暗) 我想像一下,如果您可以可靠地检索用户显示器的当前伽马校正,则可以使用它或多或少地防止它会带来的好处,而不会给普通用户带来任何不便。

1
如何减小图像尺寸而无像素化?
我看到很多游戏都具有平滑的边缘字符和高分辨率图像,但是当我尝试将图像缩小为我的角色说64x64时,我只会遇到像素混乱。即使从64x64画布开始,我也会得到像素化的边缘。 我应该使用OpenGL缩放吗?还是我不知道的某些与photoshop或pixen有关的技术?


4
我如何优雅地教玩家如何玩?
我一直在思考益智平台游戏如何教玩家如何玩。 我喜欢Super Meat Boy,尤其是它教您的方式而没有注意到您正在被教。这让我兴奋和投入。即使是关卡设计简单明了地设计出自己的东西也很满足。 除了教授每种新技能或新规则的“教程级”之外,还有其他方法吗?每种产品的收益和成本是什么?

2
比较两个树结构
我很难用正确的术语来描述这个问题,所以我会尽可能详细地介绍,希望有人知道我要做什么=-) 我正在尝试比较两个节点树,以确定它们在结构上有多相似/不同。在下面的图表中,两个示例均具有相同数量的子代,孙代等。在示例1中,“根”有一个带有两个子代的子代,但在示例2中,“根”则没有。 我大概可以弄清楚如何递归遍历并计算每个级别有多少并进行比较,从而使我了解树木的相似程度,但是只有这样做,它们看起来才是相同的,但是实际上不是。 有人碰巧知道吗?甚至这是什么技术术语? 编辑:此外,这是在C#中,我正在使用列表来存储这些对象及其子对象。 例子1 例子2

3
在没有真正注册公司的情况下发布游戏
我正在考虑在不正式注册公司的情况下发布我的iOS游戏。我不确定我什至想创建一家公司。 iTunes希望了解我标题的版权持有者。我对此有2个问题: 1)我可以使用我的公司名称(已经确定是否存在)并在以后注册(如果需要)吗? 2)还是无论我打算以后是否正式注册公司,我都应该只使用我的名字作为版权所有者吗?
13 legal  copyright 

1
没有窗口的DirectX11?
我只是想知道,是否有可能初始化DX11或DX9并将其仅用于屏幕外渲染-意味着没有附加的窗口。我的意图是在打开实际窗口之前进行一些GPU基准测试。在此基准测试中,呈现了一些测试场景,但不应看到。(实际上取决于基准分数,会打开不同的窗口)
13 c++  directx11 

3
.sln / .csproj对共享Unity项目有用吗?
我们在使用GIT和Unity时遇到了一些问题。.sln / .csproj文件经常会给我们带来麻烦,因此在网络上搜索了一会儿之后,我发现也许没有必要推送此文件。有人对此有任何反馈吗?https://gist.github.com/hw/1234398例如,.gitignore中包含这些文件,但老实说我不知道​​这种文件的作用。 我可以将它们从我的存储库中排除,还是该文件与游戏中的某些参考相关?

2
将单词扰乱为最不易识别的形式
我的目标是向玩家显示一个加扰的单词,应将其重新排序为原始形式: OELHL->你好 我想要一种加扰算法,该算法采用任何给定的单词(> 3或4个字母,可能包含空格)并将其转换为最不易识别的形式。 虽然随机移动每个字母肯定有效,但我注意到并非所有的混洗都是平等的,有些混叠比其他混叠更容易辨认。如果有人知道更好的算法(可能基于语言学),可以保证至少可识别的形式,我将发布此问题。

4
在客户端和服务器上都运行物理模拟?
我正在实施一个多人小行星克隆,以了解游戏中的客户端/服务器网络架构。我花了一些时间阅读GafferOnGames和Valve关于他们的客户端/服务器技术的出版物。我在两个概念上遇到麻烦。 目前,我有一个权威的游戏服务器,使用box2d模拟物理并将每秒大约20次的世界状态发送给客户端。每个客户端都跟踪接收到的最后几个快照,并在两个状态之间进行切换以使Sprite的移动变得平滑。但是,它并不那么顺利。可能会平滑一段时间,然后有点生涩,然后恢复平滑,等等。我尝试过TCP和UDP,两者大致相同。知道我的问题是什么吗?(注意:我首先为单个玩家实现了此功能,当每秒仅更新20次物理世界时,精灵运动在60fps时非常流畅)。 为了解决第一个问题,我认为客户端也应该运行box2d模拟,并仅在不匹配时更新其sprite的位置以匹配服务器快照。我认为这可能会更流畅,因为我的单人游戏实施很流畅。这是一个好主意吗? 即使不能解决上述问题,客户端预测是否也有必要?例如,如果玩家试图移动自己的飞船,他们如何知道是否在没有物理模拟的情况下撞到小行星,墙壁或敌方飞船?似乎他们的飞船似乎通过了应该与之碰撞的物体,然后才从服务器收到快照,说他们击中了该物体。 谢谢!

3
如何使用HLSL像素着色器复制NES的颜色限制?
因此,由于256色模式已被弃用,并且在Direct3D模式下不再受支持,因此我有了一个想法,改为使用像素着色器来模拟所有可能颜色的NES调色板,以便淡出的对象以及不具有alpha通道的平滑淡出效果。(我知道对象在NES上并不能真正淡出,但是我的所有对象都会在纯黑色背景上淡入和淡出,这可以通过调换调色板来实现。此外,当您暂停时,屏幕也可以淡入和淡出。我知道通过调色板交换也可以实现,就像在《洛克人》游戏中所做的那样。)问题是,我几乎不了解HLSL着色器。 我该怎么做?
13 shaders  pixel 

5
如何在Unity3d中绘制轮廓?
我正在尝试突出显示任意高度的矩形。我认为最简单的方法是创建一个单独的“盒子”游戏对象来勾勒出矩形。 我同时尝试了MeshRenderer +透明纹理和LineRenderer来勾勒出矩形的四个点。两者都不是很令人满意。 (线渲染器在中间,缩放的立方体在右侧) 解决这个问题的正确方法是什么?我正在尝试获得类似于左侧矩形的东西-通过选择的四个点来固定宽度的简单周长。
13 unity  graphics 

2
如何为飞船创建等离子迹线
我看过很多很棒的太空游戏,它们都使用类似的效果。我真的很想了解这些效果通常是如何实现的。 我尤其想知道在不使用所有可用资源的情况下如何完成飞船或导弹后面的一些步伐。 对于效果的示例,我的意思是请参阅Gimbal的屏幕截图,以及该链接上的视频。另外,导弹步道醚蒸气。 这些都是相同的技术吗?我主要对2D感兴趣,但是我无法想象它会有所不同。 那么我将如何去创造这种效果呢?我们是在谈论像素着色器,混合模式/滤镜,位图效果,粒子系统,还是什么?并非特定于平台。我只是在寻找理论,但是具体的例子或链接会很棒。细节越多越好。

3
游戏循环,如何检查条件一次,先做某件事,然后再不做
例如,我有一个Game类,它保留了一个int跟踪玩家生活的信息。我有条件 if ( mLives < 1 ) { // Do some work. } 但是,这种情况会不断触发,并且工作会反复进行。例如,我想设置一个计时器以在5秒内退出游戏。当前,它将继续将其设置为每帧5秒,并且游戏永远不会结束。 这只是一个例子,我在游戏的多个方面也遇到相同的问题。我想检查某种情况,然后一次只做一次,然后再不检查或再次执行if语句中的代码。我想到的一些可能的解决方案是bool针对每个条件设置a ,并bool在条件触发时设置。但是在实践中,这很麻烦bools,因为必须将它们存储为类字段,或者静态地存储在方法本身中,因为它们很多。 对此的正确解决方案是什么(不是针对我的示例,而是针对问题域)?您将如何在游戏中做到这一点?
13 c++  game-loop 

4
更快的2D碰撞检测
最近,我一直在研究快节奏的2D射击游戏,但遇到了一个大问题。碰撞检测。当然可以,但是速度很慢。我的目标是:屏幕上有很多敌人,并且让他们彼此不接触。所有的敌人都在追逐玩家实体。他们中大多数人或多或少都拥有相同的速度,所以迟早他们都在追逐玩家时占据了相同的空间。这确实降低了娱乐性,因为对于玩家而言,似乎您只被一个敌人追赶。为了防止它们占据相同的空间,我添加了一个碰撞检测(一种非常基本的2D检测,这是我所知道的唯一方法)。 Enemy class update method Loop through all enemies (continue; if the loop points at this object) If enemy object intersects with this object Push enemy object away from this enemy object 这很好。只要我只有<200个敌方实体。当我靠近300-350个敌方实体时,我的帧频开始大幅下降。首先,我认为渲染效果很差,因此我取消了他们的平局。这一点都没有帮助,所以我当然意识到这是更新方法。它们更新方法中唯一重要的部分是每个敌人循环通过每个敌人的部分。当我接近300个敌人时,游戏会执行90000(300x300)步发信号。我的我的〜 我确信必须有另一种方法来解决这种冲突检测。虽然我不知道如何。我发现的页面涉及如何实际执行两个对象之间的碰撞或如何检查对象与图块之间的碰撞。我已经知道这两件事。 tl; dr?如何在实体的LOTS之间进行冲突检测? 快速编辑:如果有任何帮助,我正在使用C#XNA。

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.