游戏开发

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

3
名字产生
我正在制作一个游戏(或至少打算这样做),并且我需要一种方法来自动为NPC“老板”生成名称(详细说明与此处无关)。喜欢的东西,这是我的意思一个很好的例子。 我的想法是,我可以按国籍建立姓名数据库,也许是第一对/最后一对,并使用被忽略的姓名列表随机分配姓名,这样我就不会像荷马·辛普森那样受到起诉。 这样做的问题是,我需要建立一个庞大的名称数据库才能正常工作。除非有人已经免费提供了一个名称列表,否则它将永远或花费金钱。 我还有另一个想法,我随机制作成对的元音和辅音,翻转几对,然后将它们加在一起,但是有一个快速的程序可以生成这样的名称: Seermeecpa Cime Ofmiahwumafi 戈齐迪 扩展 (对于任何对代码感兴趣的人,您都可以在这里看到它) 这些...有点口。好吧,除了“ Gozidi”,那个人可以工作。不过,成功率显然不是很高。 我可以做些什么来使名称听起来更好(请参见下文),还是应该开始制作该列表?我能以某种方式模仿人类决定一个名字是否正派的方式,至少准确一些吗?我非常喜欢这样的事情,而不是在大列表中查找。 我所说的“更细”是指听起来像实际名称,而不是字符的随机组合(公平地说)。它们可以来自任何文化(或听起来像它们),无论是真实的还是虚构的,什么都可以,只要您像我这样刻板的愚蠢,单语的美国人都能说出它们而没有太多麻烦。 如果您需要进一步说明,请继续询问。我不太确定该放在哪里。 附录:据我所知,确实没有标签完全适合这个问题。如果到过这里的人更长久可以推荐一些,那就太好了。

2
如何通过客户端预测处理实时随机运动
我正在构建一个实时多人游戏,该游戏在客户端和服务器上运行相同的“物理”循环。我使用的转向行为“徘徊”是必不可少的随机运动。运行漫游算法时,客户端和服务器生成不同的随机数。 我想知道如何保持自然随机的运动,但使用一些常数来确保客户端和服务器得出相同的结论。

4
如何使Line Renderer线条保持平坦?
我注意到,当我向Line Renderer线添加更多顶点时,该线会扭曲并不再是平滑线。 .GIF此处:http://i.imgur.com/hRAhCXM.gif 即使删除了所有材质,所有线条仍在同一z水平上,但这些线条似乎仍然扭曲。 我不知道为什么这样做,或者如何解决它,有什么建议吗?C#
10 c#  unity  2d  lines 

1
Unity文字中的嵌入式精灵?
将标记用于Unity的RTF语法时,如何使用不同的材料? 我希望能够具有与我的文本内联的精灵,而不必创建自定义字体。 到目前为止,这是我的意思: 这是我在图像中使用的语法: Planetary <quad material=1 size=20 x=0.1 y=0.1 width=0.1 height=0.1 /> Intergalactic 我猜“ material = 1”是指Text对象的材料索引。如何设置它以完全使用其他材质? 是否有插件或其他资源可以使在图标中轻松嵌入图标?
10 unity  sprites 

1
具有相同位大小的渲染目标为何很重要?
我目前正在考虑需要哪种类型的GBuffer进行延迟着色,因此我也尝试在线上记录最常见的GBuffer及其格式。 我见过的大多数GBuffer都为每个渲染目标使用了相同的位大小,通常还导致未使用的通道。但是,作为我的GBuffer的第一个猜测,在纸上,我需要两个24位目标和两个32个目标,或者三个24和一个32。 我知道每个附件都具有相同的“大小”可以更好地对齐,但是实际上来讲,浪费信道(或保留它们以供将来使用)并拥有所有大小相同的RT更好还是还是应该使用所需的大小?在前一种情况下,为什么有这样的优势,是否仍将24位填充到32位呢?

2
由于libGDX中不推荐使用Table.drawDebug,因此应该使用什么呢?
我正在按照“学习LibGDX游戏开发”一书来制作一个简单的游戏。我在菜单创建部分中,在其中创建一个舞台并使用调试边框对其进行渲染。 这本书说要使用,Table.drawDebug(stage)但是这个静态方法似乎已经从框架Table类中完全删除了。 我正在进口com.badlogic.gdx.scenes.scene2d.ui.Table; 下面是我的代码: @Override public void render(float deltaTime) { Gdx.gl.glClearColor(0.0f, 0.0f, 0.0f, 1.0f); Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT); if (debugEnabled) { debugRebuildStage -= deltaTime; if (debugRebuildStage <= 0) { debugRebuildStage = DEBUG_REBUILD_INTERVAL; rebuildStage(); } } stage.act(deltaTime); stage.draw(); Table.drawDebug(stage); } 最后一行,Table.drawDebug(stage);有编译错误"The method drawDebug(ShapeRenderer) in the type Table is not applicable for the arguments (Stage)" …

3
在Windows中访问DualShock 4运动传感器(最好是Unity)
我试图在Windows 7下使用DualShock 4的IMU作为Unity中的运动控制器。 到目前为止,我已经尝试过: DS4Windows(1.5.11):读取运动传感器数据,但是除非将它们映射到左右摇杆,否则不会将它们作为轴暴露给Unity。这是不够的,因为我不再使用摇杆,只能容纳6个数据通道中的4个,并将通过的值限制在一个狭窄的范围内。 Motioninjoy(0.7.1001):似乎没有将DS4检测为控制器(最新文档仅指DS3及之前版本) GlovePIE(0.43):在按照说明将DualShock 3与LibUSB-Win32一起使用(远景)之后,SixAxis属性全部为空白。 过去,我曾使用GlovePIE之类的外部程序来捕获Wii远程运动传感器数据,并通过OSC消息将其传递给Unity ,因此,如果我无法让Unity读取控制器的传感器,我将接受这种方法。直接通过其输入系统。 有人有运气吗?

1
在OpenGL中,什么是“零状态”渲染?
最近在一次工作面试中,我提到我自学了现代OpenGL和如何使用顶点缓冲对象进行渲染,因为我的大学当时只教固定功能管道进行即时模式渲染。面试官简短地打扰了我,说VBO已被“零状态渲染”所代替,然后让我继续。 后来我忘了问这是什么意思了,因为我们很快转到了其他主题,并且由于忙碌的日程表,面试官最终没有时间了。 后来,我在网上搜索了“ OpenGL零状态”和“零状态渲染”,没有似乎相关的结果,大部分只是关于OpenGL状态的信息。 所讨论的组织是基于大量研究的,因此是否有可能是目前很少支持的扩展,还是由于其尖端的性质而使使用的术语有所不同?

2
我应该使用多少个OpenGL程序来渲染多个对象?
我的场景中有多个对象。(假设3个立方体,1个圆柱体,8个球体。)我假设我应该为每个立方体创建一个顶点着色器。我应该有几个程序? 备择方案: 每个对象一个程序 一个程序用于所有立方体,另一个程序用于所有球体(假定它们使用相同的着色器) 一个适用于一切的大型程序 正确的方法是什么?

2
使用L系统以程序方式生成城市
我目前正在制作一款专注于程序生成内容的应用。到目前为止,我已经使用单纯形噪声成功实现了地形和地图形状的程序生成。我对它的外观感到非常满意。现在,我正在尝试为城市做同样的事情。我只需要生成街道和建筑物的2D布局即可。我研究了它,似乎大多数人都建议使用L系统。但是我似乎无法将他们的头缠住。我得到了概念,但没有将实现转化为代码。是否有人提供用于程序生成城市的L系统的代码示例,或有关处理城市的其他方法的建议?


2
插值实际上如何使物体的运动平滑?
在过去的8个月左右的时间里,我已经问过几个类似的问题,但并没有真正的高兴,所以我将使这个问题更笼统。 我有一个Android游戏,它是OpenGL ES 2.0。在其中,我有以下游戏循环: 我的循环以固定的时间步长原理工作(dt = 1 / ticksPerSecond) loops=0; while(System.currentTimeMillis() > nextGameTick && loops < maxFrameskip){ updateLogic(dt); nextGameTick+=skipTicks; timeCorrection += (1000d/ticksPerSecond) % 1; nextGameTick+=timeCorrection; timeCorrection %=1; loops++; } render(); 我的整合是这样的: sprite.posX+=sprite.xVel*dt; sprite.posXDrawAt=sprite.posX*width; 现在,一切都按我的意愿运行。我可以指定我想要一个对象在2.5秒内移动一定距离(例如屏幕宽度),并且它会做到这一点。同样,由于我在游戏循环中允许跳帧,因此我几乎可以在任何设备上执行此操作,并且总是需要2.5秒。 问题 但是,问题在于,当渲染帧跳过时,图形停顿。太烦人了。如果我取消了跳帧的功能,那么一切都会很顺畅,但是会在不同设备上以不同的速度运行。所以这不是一个选择。 我仍然不确定为什么会跳帧,但是我想指出的是,这与性能差无关,我将代码恢复为1个小的sprite,没有任何逻辑(除了移动精灵),但我仍然跳过帧。这是在Google Nexus 10平板电脑上使用的(如上所述,我需要跳帧以保持设备间的速度保持一致)。 因此,我唯一的选择是使用插值法(或外推法),我读过那里的每篇文章,但是没有一篇文章真正地帮助我了解它的工作原理,并且所有尝试的实现都失败了。 使用一种方法,我可以使事情顺利进行,但是这是行不通的,因为它弄乱了我的碰撞。我可以预见任何类似方法都会出现相同的问题,因为插值在渲染时传递给了渲染方法(并在其中起作用)。因此,如果Collision纠正了位置(角色现在正站在墙旁边),则渲染器可以更改其位置并将其绘制在墙中。 所以我真的很困惑。人们曾经说过,永远不要在渲染方法中更改对象的位置,但是所有在线示例都显示了这一点。 因此,我要求朝着正确的方向发展,请不要链接到流行的游戏循环文章(deWitters,Fix your timestep等),因为我已多次阅读这些文章。我不是要任何人为我编写代码。请简单地解释一下插值实际上如何与一些示例一起使用。然后,我将尝试将任何想法整合到我的代码中,并在需要时提出更具体的问题。(我确信这是很多人都在努力解决的问题)。 编辑 一些其他信息-游戏循环中使用的变量。 private long nextGameTick …

2
将字体大小与libgdx中的屏幕分辨率匹配时出现问题
我在以相同的大小在不同的屏幕上显示游戏文本时遇到问题,我做了一个简单的测试。 该测试包括在屏幕上显示适合的文本,我希望文本的大小与屏幕和DPI无关。 我已经找到了这个,这个答案我认为应该可以解决我的问题,但不能解决。在台式机上可以,但是在我的手机上太大。 这是我的Nexus 4的结果:(768x1280,2.0密度) 这就是我的MacBook的结果:(480x800,密度为0.6875) 我正在使用Open Sans Condensed(链接到Google字体) 如您所见,在台式机上看起来不错,但是在手机上却很大。 这是我测试的代码: public class TextTest extends ApplicationAdapter { private static final String TAG = TextTest.class.getName(); private static final String TEXT = "Tap the screen to start"; private OrthographicCamera camera; private Viewport viewport; private SpriteBatch batch; private BitmapFont font; @Override public void …

3
游戏角色如何动画制作?[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 5年前关闭。 我将与我的朋友们一起完成最后的一年项目。我们的游戏将是FPS,我必须为FPS视图和其他敌方角色绘制一些动画,这些动画可以很容易地编程以制作出出色的游戏。 我想知道如何制作可移动的游戏角色?这些字符使用哪种软件和引擎?

1
我应该如何处理分屏游戏中的声音?
在分屏多人游戏中,声音事件可能会被多个游戏者听到,并且每个游戏者听起来可能有所不同。 例如,玩家可能听到他们驾驶的汽车的声音经过低通滤波。当第一播放器高速驶过时,第二播放器可能会听到引擎声音多普勒偏移的声音。玩家三,从远处观察可能会听到低音量的未经过滤的发动机声音。 在这种游戏中,“显而易见”的方法是只播放所有声音。我可以使用哪些方法对此进行改进,以防止声音过载/“刺耳”,同时使每个播放器的沉浸感最大化?

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.