游戏开发

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

3
最终幻想6,计时触发或Alundra等游戏的透视样式的名称是什么?
超级任天堂游戏的“自上而下”风格的实际术语是什么,例如《最终幻想6》,《时光触发》等。我正在寻找以下术语的等效词: “等距”-(“激进联盟”,“最终幻想战术”,“辐射”), “第一人称”-(半条命,厄运,地震), “鸟瞰”-(Grand Theft Auto) ?在这里插入术语?-(最终幻想6,计时扳机)

2
延迟照明设置中的双抛物面点光源阴影
我一直在玩这个教程/示例代码,该代码演示了预照明的简单实现,这是一种延迟照明设置。 我正在使用双抛物线阴影贴图实现点光源阴影。我正在对DPM进行以下描述:http : //gamedevelop.eu/en/tutorials/dual-paraboloid-shadow-mapping.htm 我能够创建阴影贴图,它们看起来还不错。 我认为当前存在的问题是像素着色器,当渲染点光源时,该着色器会在阴影贴图中查找深度值。 这是我的点光源着色器代码:http : //olhovsky.com/shadow_mapping/PointLight.fx 感兴趣的像素着色器功能为PointLightMeshShadowPS。 有人在该功能中看到明显错误吗? 希望有人解决了这个问题:) 如您在上图中所看到的,帖子的阴影与帖子的位置不匹配,因此某些地方的转换是错误的... 当点光源非常靠近地面(几乎接触地面)时,它就是这样。 当点光源移近地面时,阴影会聚在一起并沿着两个阴影贴图相交的线(即,沿着光相机翻转以捕获两个阴影贴图的平面)接触。 编辑: 更多的信息: 当我将点光源移离原点时,有一条线平行于光摄像机的“右”矢量来裁剪阴影。上图显示了将点光源向左移动的结果。如果将点光源向右移动,则在右边有一条等效的剪切线。因此,我认为这表明我在像素着色器中进行了错误的转换,就像我想的那样。 编辑:为了使这个问题更清楚,这里有一些代码。 这是我当前用来绘制阴影聚光灯的代码。这可以正常工作,并且可以按照您的期望使用阴影映射。 VertexShaderOutputMeshBased SpotLightMeshVS(VertexShaderInput input) { VertexShaderOutputMeshBased output = (VertexShaderOutputMeshBased)0; output.Position = mul(input.Position, WorldViewProjection); //we will compute our texture coords based on pixel position further output.TexCoordScreenSpace = output.Position; return output; } ////////////////////////////////////////////////////// …


3
在python中开发非平凡的2d游戏是个好主意吗?[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使其成为Game Development Stack Exchange 的主题。 4年前关闭。 我正计划开发2D空间RPG,但我面临的选择是:用哪种最佳语言书写?我的候选人是C ++,Java和Python。显然,我想用Python编写游戏,因为它的表现力,开发速度和添加脚本支持的简便性。但是我很担心: Python不会太慢吗?该游戏并非易事(例如像俄罗斯方块),可能需要为宇宙中数千艘飞船计算任务(尽管如果玩家看不到它们的飞船,它们的AI可以大大简化)。当然,我可以用C编写一些关键部分,但是它将立即使构建和部署变得复杂。 假设游戏开始流行,而我成为了超级巨星。Windows用户根本很少拥有Python(幸运的是我们拥有py2exe)。Mac OS X上的Python可能已过时,并且游戏可能因异常而崩溃。在Python中部署游戏会不会很困难? 由于缺少适用于Python 3的库,我将不得不用Python 2编写游戏。难道几年之内过渡到Python 3会不会太痛苦且耗时?
10 python 

5
OpenGL vs OGRE:哪个是最适合初学者的?[关闭]
按照目前的情况,这个问题并不适合我们的问答形式。我们希望答案得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 6年前关闭。 我对游戏开发感兴趣,并且具备良好的C / C ++编程技能。我之前尝试过OGRE,但很好奇我是否应该以OGRE或OpenGL为起点。 据我了解,OGRE是OpenGL和DirectX的包装。那么,假设我学习OGRE,是否还需要学习OpenGL来开发游戏? 另外,有人可以为我指出OpenGL的好教程吗?我发现OGRE有充分的文档记录(甚至随发行版一起提供!),但对于OpenGL,我上来的大多数教程都是过时的。
10 opengl  ogre 

4
巨型纹理:从雷神战争到狂暴的演变
我记得约翰·卡马克(John Carmack)谈到他们最初如何将“大纹理”用于“雷神之战:敌人领地”。从那以后,这项技术在Rage中发展了很多。 我想知道这里是否有人可以提供一些技术细节,以详细说明此后的发展方式和发展方式。
10 textures 

2
如何修复FBX产生的不良Collada?
我试图使用FBX SDK(2011.3.1)加载FBX文件并将其另存为Collada文件,以便能够在Panda3D中导入FBX文件。不幸的是,由于以下几个原因,所得的Collada文件无法使用: 有一个Maya特定的额外技术 扩散 <diffuse> <texture texture="Map__2-image" texcoord="CHANNEL0"> <extra> <technique profile="MAYA"> <wrapU sid="wrapU0">TRUE</wrapU> <wrapV sid="wrapV0">TRUE</wrapV> <blend_mode>ADD</blend_mode> </technique> </extra> </texture> </diffuse> 它分配一个在文件中其他任何地方都未引用的texcoord通道名称(在先前的代码示例中,没有几何体使用“ CHANNEL0” ...) 每个多边形输出两次,第一次使用基本材料(仅漫反射颜色,镜面颜色等),第二次使用带纹理的材料->这会使每个模型的多边形数量加倍,而没有任何有价值的理由 无论如何,使用OpenCOLLADA或Panda3D的“ dae2egg”都无法正确打开生成的Collada文件。 任何人都对如何“修复”它并使其被OpenCOLLADA等普通和声誉良好的Collada进口商理解是有经验的吗?
10 collada 

6
在XNA中将Game1静态化是一个坏主意吗?
将我的Game1课程设为静态真的不是一个好主意吗?就像目前在我的Game1课堂上一样,我有一个名为的类TileHandler,负责处理与我当前的那组瓷砖有关的AnimalHandler所有事情,并且处理所有我的动物(令人惊讶地)。 现在,如果我AnimalHandler要检查瓷砖是否TileHandler从那时起便是可步行的,这会引起问题,或者我必须将可步行瓷砖的列表传递到中AnimalHandler,而不希望这样做。 更简单的方法是将其设置为Game1静态,然后AnimalHandler直接运行Game1._tileHandler.WalkableTile(position)。 现在,我看不到有任何立即出错的问题或会导致任何问题的任何事情,但是我只是刚刚开始使用静态类,所以,有什么知识渊博的人是否会看到任何大的原因来说明这是一个坏主意?
10 xna  c#  architecture 

6
出售或免费赠予[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 6年前关闭。 我目前正在制作本来打算出售的游戏。这是用于PC的简单2D街机风格游戏。我已经看到许多独立游戏变得流行并从广告中获得收益,但是游戏本身仍然是免费的。对于我是否应该出售游戏,通过广告免费发布它,或要求捐赠并保持游戏免费,我需要一些建议。 我觉得我的游戏很有趣,但是图形并不是最出色的,因为我是程序员,而不是艺术家。我只是拍摄从Turbosquid获得的3D模型的屏幕截图,并在其周围裁剪以制作精灵。而且,对此我可能是非常错误的,似乎与出售游戏有关的法律问题比免费提供游戏,通过广告获得收入或要求捐赠更多。如果我错了,请有人纠正我。 另外,我对为自己的工作创收非常感兴趣,但这并不是我的首要任务。我在高中的最后一年,即将上大学,并且打算攻读计算机科学/软件工程专业。因此,我每天都在尝试通过编写代码来获得一些初步的在家经验。获得这种经验的一种方法是制作这款游戏​​。 所以你怎么看?我应该走哪条路线?什么与其他独立游戏合作得很好? 提前致谢。

2
半条命2 BSP光照图
我正在为大学项目编写BSP查看器。到目前为止,我已经正确加载了主要几何图形,并且PVS正常工作。 现在,我正在尝试应用光照贴图,但似乎无法正确计算光照贴图的纹理坐标。 根据这里:http : //developer.valvesoftware.com/wiki/The_Source_Engine_BSP_File_Format struct texinfo_t { float textureVecs[2][4]; // [s/t][xyz offset] float lightmapVecs[2][4]; // [s/t][xyz offset] - length is in units of texels/area int flags; // miptex flags overrides int texdata; // Pointer to texture name, size, etc. } 浮点数的第一个数组本质上是两个向量,代表在世界几何体上渲染时纹理的定向和缩放比例。s和t这两个向量是纹理像素坐标空间中从左到右和从上到下的方向到世界的映射。每个向量都有一个x,y和z分量,以及一个偏移量,该偏移量是纹理在该方向上相对于世界的“偏移”。向量的长度表示每个方向上纹理的缩放比例。 通过以下方式将纹理像素(或纹理像素)的2D坐标(u,v)映射到面部上某点的世界坐标(x,y,z): u = tv0,0 * x + tv0,1 …

4
在开始项目之前,您的游戏设计文件的详细程度和/或完整性如何?
我想知道的是,在开始实施项目之前,您的设计文档通常有多完善?我在这里谈论的是由一个非常小的团队组成的中小型项目,即使完全充实整个文档也可能只有几十页。 您是否从一个粗糙的框架开始,并在实施开始的同时充实细节? 您是否在开始实施之前就完全充实了每个部分?如果是这样,在实施开始后您看到了多少百分比变化? 如果您有我概述的两种情况之一的经验,那么我很乐意听取您关于该特定路线的哪些问题引起的意见以及您认为它可以帮助您避免的障碍。

5
如何处理网码?
我对评估网络代码可以“融入”游戏引擎的不同方式感兴趣。我现在正在设计一个多人游戏,到目前为止,我已经确定(至少)需要一个单独的线程来处理网络套接字,这不同于处理图形循环和脚本的引擎其余部分。 我确实有一种使网络游戏完全为单线程的潜在方法,那就是在使用非阻塞套接字渲染每一帧后让它检查网络。但是,这显然不是最佳方法,因为渲染帧所花费的时间增加了网络延迟:通过网络到达的消息必须等待,直到当前帧渲染(和游戏逻辑)完成为止。但是,至少以这种方式,游戏玩法仍将或多或少保持平稳。 拥有独立的网络线程可以使游戏完全响应网络,例如,它可以在收到来自服务器的状态更新后立即发送回ACK数据包。但是我对在游戏代码和网络代码之间进行通信的最佳方式有些困惑。网络线程会将接收到的数据包推送到队列中,并且游戏线程将在其循环期间的适当时间从队列中读取数据,因此我们没有摆脱这种长达一帧的延迟。 另外,似乎我希望处理数据包发送的线程与检查管道中的数据包的线程是分开的,因为它不能在发送过程中将其发送出去。检查是否有传入消息。我在考虑select或类似功能。 我想我的问题是,设计具有最佳网络响应能力的最佳方法是什么?显然,客户端应该将用户输入尽快发送到服务器,这样我就可以在事件处理循环之后立即在游戏循环内部发送净发送代码。这有意义吗?

4
是什么导致一个表面与另一个表面重叠?
我无法真正弄清楚是什么原因导致一个表面与另一个表面重叠。在我创建的3D引擎中,我的技术在极端情况下失败了。 我的方法是从最远到最近对要绘制的表面进行排序。为了确定紧密度,我在比较平均z值。但是,有时重叠的表面的平均z值比重叠的表面高。因此,距离较远的表面会被绘制在距离较近的表面上-产生如下奇怪的渲染: 只能看到立方体的紫色前表面,而红色的侧面涂在紫色的表面上。紫色表面的平均z值较高,因此“更远”。所以我对此技术是否正确存有疑问。 我还尝试过获取相机(即原点)到曲面的距离,但随后我需要一个点。我选择了每个表面的中间,但这似乎并不总是可行,因为并非所有表面都一样大。 因此,确定表面到原点的紧密程度的可靠方法是什么?
10 3d  rendering 

1
将空气阻力添加到高尔夫球轨迹方程中
我正在VB.NET 2005中开发2D高尔夫游戏,但是我对如何实施会影响球的空气或风阻力感到困惑。 我已经有了射弹的这些方程式: v0v0v_0为击打或击打时高尔夫球的初始速度 垂直和水平分量高尔夫球的速度: vXvÿ= v0cos(θ)=v0sin(θ)−gt∗vx=v0cos(θ)vy=v0sin(θ)−gt∗ \begin{align} v_x &= v_0 cos(\theta) \\ v_y &= v_0 sin(\theta) - gt* \end{align} 高尔夫球的垂直和水平距离: xy=v0cos(θ)t=v0sin(θ)t−(0.5)gt2x=v0cos(θ)ty=v0sin(θ)t−(0.5)gt2 \begin{align} x &= v_0cos(\theta)t \\ y &= v_0sin(\theta) t - (0.5)gt^2 \end{align} 如何在此方程式中增加空气阻力以适当影响高尔夫球的速度?我不知道该怎么做,有人处理过类似的方程式吗?

2
计算“捍卫城堡”类型游戏中玩家的“力量”
我正在制作“捍卫城堡”类型的游戏,其中每个玩家都有一座城堡,必须派遣单位摧毁对手的城堡。看起来像这样(是的,这是实际的游戏,而不是快速绘制的图..): 现在,我正在尝试实现对手的AI,我想创建4个不同的AI级别:简单,普通,硬和硬核。我以前从未做过任何“严肃的”人工智能,而这次我想创建一个相当完整的人工智能。 我的想法是根据城堡的当前健康状况和其单位的个人“力量”得分来计算玩家的“力量”得分。然后,AI只会尝试将分数保持在玩家的分数附近(Easy会保持在分数之下,Normal会保持在分数附近,而Hard会保持在分数之上)。但是我只是不知道如何计算球员的力量得分。要考虑的变量太多了,我不知道如何正确地使用它们来创建一个有效的数字(功率水平)。 有人可以帮我解决这个问题吗? 以下是应该影响玩家力量得分的变量: 当前城堡的生命值,单位的总生命值,伤害,速度和攻击范围。 另外,玩家可以增加收入(钱袋),伤害(+伤害)和速度(+速度)...我如何将它们包括在比分中? 我真的被困在这里...或者还有其他方法可以为此类游戏实现AI? 感谢您的宝贵时间。
10 game-design  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.