游戏开发

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

5
如何避免纹理图集中出现纹理渗漏?
在我的游戏中,有一个由方块构成的Minecraft类地形。我从体素数据生成顶点缓冲区,并使用纹理图集显示不同块的外观: 问题在于,远方立方体的纹理会与纹理图集中的相邻图块进行插值。这会导致多维数据集之间出现颜色错误的线条(您可能需要以完整尺寸查看下面的屏幕截图,以查看图形缺陷): 现在,我使用这些插值设置,但尝试了每种组合,即使GL_NEAREST没有mipmapping也无法提供更好的结果。 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_NEAREST); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); 我还尝试在纹理坐标中添加偏移量,以选择较小的瓷砖区域,但是由于不想要的效果取决于到相机的距离,因此无法完全解决问题。在很远的距离,条纹仍然会出现。 我该如何解决这种纹理渗出?由于使用纹理图集是流行的技术,因此可能有一种通用的方法。遗憾的是,由于注释中解释的某些原因,我无法更改为其他纹理或纹理阵列。

1
GLSL中的in /​​ out关键字
我不太了解如何在GLSL中使用in/ out关键字,并且google在特性上毫无帮助。 他们到底是做什么的?例如,如果要将每个顶点的变化变量集传递给片段着色器,我将如何使用它们? 从字面上看,我发现每个教程都使用varying/ attribute关键字,但这没有帮助。
46 opengl  glsl 

3
如何从种子产生随机水平?[关闭]
我将如何使用随机种子生成游戏关卡?相同的种子应始终生成完全相同的水平。 对于此示例,它将是蠕虫样式级别。因此,每个级别都会有一个主题(草地,雪地等),基本地形,不同的对象(例如树木)。 那么我将从哪里开始创建这种级别生成器呢?会涉及什么?它使用什么概念? 积分为任何任何好的链接(奖励积分为任何有关它是如何在蠕虫或类似的完成)。 谢谢。

7
管理要在HTML5 Canvas上绘制的2D数组中的文本地图
因此,我只是为了好玩而制作HTML5 RPG。地图是<canvas>(宽度512像素,高度352像素|宽16格,上下11格)。我想知道是否有一种更有效的方法来绘制<canvas>。 这就是我现在的方式。 如何在地图上加载和绘制图块 正在使用该图块以图块(32x32)绘制地图Image()。图像文件通过一个简单的for循环加载,并放入一个名为的数组tiles[],使用时要进行绘制drawImage()。 首先,我们加载瓷砖... 这是完成的过程: // SET UP THE & DRAW THE MAP TILES tiles = []; var loadedImagesCount = 0; for (x = 0; x <= NUM_OF_TILES; x++) { var imageObj = new Image(); // new instance for each image imageObj.src = "js/tiles/t" + x + ".png"; …

4
球撞到角落,它将在哪里偏转?
我需要复习三角函数,希望您可以通过简单的数学模型为您提供帮助。到目前为止,这是我在模型中附加的模型。我知道当球快速移动时帧动画还有其他问题,但是现在我只需要计算ballDx和ballDy。ballDx = 0(仅垂直运动)也是可能的,但是当球偏斜时,ballDx可能会获得不同的值。

3
为什么经常在球体模型上表示游戏纹理的示例?
我最近开始与Unity合作,并在我打算最终构建的游戏中寻找背景纹理(城堡墙和类似碎片)。我注意到纹理通常表示为球形,例如在此示例图像中: 例如,为什么纹理图案没有显示为简单的正方形?我想这背后的原因与映射到3d曲面有关,但我不确定,因此我想在此处进行检查。 为什么在示例和预览中经常以球形来表示纹理?
45 textures 

2
独立游戏项目的有效营销策略[关闭]
我真的很想听听其他独立玩家通常如何利用有限的资源来推广他们的游戏。我从几个方面亲眼目睹了营销的重要性。我曾参加过一些团队,这些团队没有在他们的项目中投入大量的营销资源,并且也没有达到预期的目标。我还花了很多时间在论坛上讨论我们以前的标题,但随着时间的推移出现了一些小变化。 我真的认为Wolfire通过其Blog管理社区的方式正在做一些惊人的基层营销。他们聚集了一群愿意在完成游戏以支持他们之前为游戏支付(远远提前)的追随者。棒极了。 但是,有多少人真的愿意这么早透露这些信息?应该担心吗?在真正执行任何操作之前,我应该开始谈论下一个项目吗? 什么为您工作?我特别想听听人们如何接近Apple的iTunes商店。我相信这些天我们正在商店里看33,000款游戏。
45 marketing 

1
作为客户,试图让编码器/程序员将我的想法发展为功能正常的程序,我应该为开发人员提供什么?
我是一家新兴游戏开发小组的负责人(之所以称为“小组”,是因为它尚未正式成立)。最近,我得到了一些愿意为我的项目提供帮助的编码人员的意愿,但他们要求提供文档。 我了解文档的必要性,并且在一些不同的文档中有很多想法,但是我想我将希望以某种方式进行组织,以使开发人员可以分别或共同理解。 有什么我应该遗漏的文件吗?如果是这样,那是什么样的事情?是否有适用于此类文档的模板;如果是,我在哪里可以找到它?在编码人员开始工作之前,我还有什么要知道的? 我知道我在这里有很多问题要问。我希望这不是问题。预先感谢您的指导!

6
什么时候是考虑性能的最佳时间?
我来自软件开发背景。在软件开发周期中,我们通常专注于功能和工作产品。在开发结束时,我们开始优化代码并提高性能。 现在的问题是,我们是否需要考虑游戏开发中每行代码的性能? 这样做我觉得我们错过了设计模式和简洁的代码。我想知道游戏开发行业是否有最佳实践方法?

4
如何将2D粒子渲染为流体?
假设您有一种很好的方式移动2D粒子以模拟流体(例如水)。关于如何渲染的任何想法? 这是用于2D游戏,其中的透视图是从侧面看的,就像这样。水将被包装在可以破碎的盒子中,以使其掉落并与其他物体相互作用。我想到的最简单的方法是为每个粒子使用小图像。我有兴趣听到更多提水的方法。
45 2d  particles  water 

2
如何渲染逼真的冰?
我试图在Unity中编写一个看起来很好并且至少是半现实的冰着色器。 如果以下快照(在Google上找到)是CG,其着色器将包括哪些内容?(前景洞穴)。我可能是错的,但看起来它甚至具有与默认漫反射不同的照明模型。

8
他们是如何做到的:Terraria中的数百万块瓷砖
我一直在开发类似于Terraria的游戏引擎,这主要是一个挑战,尽管我已经弄清了其中的大部分内容,但我似乎并没有真正为它们如何处理数百万个可交互/可收割的图块而费心游戏一次完成。在我的引擎中,创建约500.000个图块,这是Terraria可能生成的图块的1/20,导致帧速率从60下降到约20,即使我仍然只在视图中渲染图块。请注意,我没有对磁贴做任何事情,只是将其保留在内存中。 更新:添加代码以显示我的操作方式。 这是类的一部分,它处理并绘制图块。我猜想罪魁祸首是“ foreach”部分,该部分会迭代所有内容,甚至是空索引。 ... public void Draw(SpriteBatch spriteBatch, GameTime gameTime) { foreach (Tile tile in this.Tiles) { if (tile != null) { if (tile.Position.X < -this.Offset.X + 32) continue; if (tile.Position.X > -this.Offset.X + 1024 - 48) continue; if (tile.Position.Y < -this.Offset.Y + 32) continue; if (tile.Position.Y > -this.Offset.Y …

11
您如何防止您的JavaScript / HTML5网络游戏被复制或更改?
我正在计划使用JavaScript和HTML5构建的游戏。 我无法理解您如何才能防止某人从Web服务器上简单地复制JavaScript并使用它来制作自己的游戏(这不是我最大的担心),或者替代他们自己的JavaScript功能并在市场中破灭对可靠客户端的希望如果游戏最终要支持多人游戏,那就太疯狂了。 可以采取任何措施阻止任何人阅读JavaScript吗? 如果不是,是否所有游戏处理都应在某处的服务器上进行,而客户的唯一职责是捕获用户输入并绘制图形?


12
人们如何根据游戏图形识别游戏使用的引擎?
在许多游戏中,您可以说“哦,那肯定是虚幻引擎 ”,或者“这是由升级的Rockstar Advanced Engine制作的 ”。我们通常可以通过查看游戏的图形而不考虑用户界面来识别游戏所使用的引擎。 为什么是这样?所有游戏引擎都使用我们都使用的相同3D渲染技术,并且不同的游戏通常具有鲜明的艺术风格。还剩下什么要认识?
45 3d  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.