游戏开发

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

3
如何添加敌方AI可以听到的声音?
鉴于: 2D自上而下的游戏 切片仅存储在2D阵列中 每个瓷砖都有一个属性-阻尼(所以砖可能是-50db,空气可能是-1) 我想从中添加它,以便在点x1,y1处产生声音,并“涟漪”出来。下图显示了更好的轮廓。显然,最终目标是AI敌人可以“听到”声音-但是如果墙壁挡住了声音,声音就不会传播到最远。 红色是墙,阻尼值为50db。 我认为在第三局打勾中我的数学困惑。 实施此方法的最佳方法是什么?

4
碰撞矩形响应
我很难让一个可移动的矩形与多个矩形碰撞。 我正在使用SFML,它有一个方便的函数intersects,它需要2个矩形并返回交集。我有一个充满矩形的向量,我希望我的可移动矩形发生碰撞。我使用以下代码(p是可移动矩形)遍历此代码。 IsCollidingWith返回布尔值,但也使用SFML intersects来计算交叉点。 while(unsigned i = 0; i!= testRects.size(); i++){ if(p.IsCollidingWith(testRects[i]){ p.Collide(testRects[i]); } } 和实际的Collide()代码: void gameObj::collide( gameObj collidingObject ){ printf("%f %f\n", this->colliderResult.width, this->colliderResult.height); if (this->colliderResult.width < this->colliderResult.height) { // collided on X if (this->getCollider().left < collidingObject.getCollider().left ) { this->move( -this->colliderResult.width , 0); }else { this->move( this->colliderResult.width, 0 ); …

1
多人空间分割的有效解决方案?
这个问题有点棘手,但我会尽力弄清楚。 可以说我正在构建一个在线游戏(不是MMO规模),但是通过权威的服务器方法可以支持尽可能多的玩家。我想真正的大与世界很多 AI模拟敌人。 我知道一些通过细分空间而不处理不需要处理的东西来节省服务器CPU的策略。我已经按地区划分了世界,这需要加载时间和较小的过渡时间,我认为这对于保持本地(单独或什至有几个朋友)玩游戏时的游戏质量至关重要。我不希望球员出现在一个或两个以上的地区。 问题在于,一个区域可能会变得很大,并且一次模拟了很多NPC。在不影响玩家体验的情况下如何处理?表格中没有像每个区域一台服务器之类的方法。 我主要是在寻找能够容纳成群的敌人,甚至是和平的NPC的数据结构。要最终确定问题,请注意,由于存在车辆,因此车辆在某个区域内的行驶速度相当快,会影响“何时”驶向剔除区域。

12
如果我不喜欢编程,如何制作视频游戏?[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使其成为Game Development Stack Exchange 的主题。 6年前关闭。 我正在学校学习C ++代码(我的专业是计算机编程)。老实说,我的成绩不是很好,而且作业真的很辛苦。有时,我为将来的工作每天花8-10个小时(这很压力)感到难过。 但是我仍然想做电子游戏。也许这是我参加所有这些压力课程的唯一原因。我总是写下情节,故事,人物,虚构的游戏世界……曾经,我认为我应该学习艺术技术,例如游戏设计,而不是计算机技术,例如C ++,C#等。 但是,大多数受欢迎的游戏设计师(或导演),例如小岛,宫本等,过去都是优秀的程序员。公司会切实地将程序员分配给导演,因为他们了解如何制作游戏。 我试图找到其他大学或大学教授游戏设计程序的大学。但是,一篇列出北美排名前10位游戏设计学校的文章似乎并不可信,因为该调查公司仅从学生的干预中获得评分。 有一次,我试图去参加根据该文章排名第七的温哥华艺术学院。但是,曾经在那儿当过讲师的一位程序员告诉我一个事实:研究生的就业率很低。 如果我不喜欢编程,该如何将来开发游戏?

5
如何进入视频游戏写作?[关闭]
按照目前的情况,这个问题并不适合我们的问答形式。我们希望答案得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 6年前关闭。 我是一位出色的作家,擅长制作具有独特魅力的人物,世界和情节。由于某种原因,我正在学习计算机科学,但是我知道小说写作才是我真正的使命。 如何找到为视频游戏开发故事,角色和对话的入门级工作或实习机会?那将是我梦dream以求的工作,而且我知道我可以展现出精湛的表现。 关于在哪里可以找到机会的任何提示?Google搜索带来了大量的游戏设计工作,但我认为是不同的。我找不到与写作有关的任何东西。 谢谢!
10 jobs 

6
是否有(一个)单调非递减噪声函数?
我想要一个函数,该函数可以使对象随时间从A点移动到B点,以使其在某个固定时间到达B点,但是它在任何时候的位置都会以连续的方式随机地受到扰动,但是永远不会向后退。对象沿直线移动,所以我只需要一个维度。 从数学上讲,这意味着我正在寻找一些连续的f(x),x∈[0,1],使得: f(0)= 0 f(1)= 1 x <y→f(x)≤f(y) 在“最”点,f(x + d)-f(x)与d没有明显关系。(该函数不是均匀增加的或不可预测的;我认为这也等同于说没有导数是常数。) 理想情况下,我实际上希望以某种方式拥有这些功能的族,提供某种种子状态。对于我当前的使用,我至少需要4位种子(16个可能的函数),但是由于没有太多的余地提供更多。 为了避免误差积累的各种问题,我宁愿功能并不需要任何的内部状态。也就是说,我希望它是一个真正的功能,而不是编程的“功能”。

1
屏幕空间到世界空间
我正在编写一个2D游戏,其中我的游戏世界的x轴从左到右,y轴从上到下,z轴在屏幕外: 尽管我的游戏世界是自上而下的,但游戏的渲染却略有倾斜: 我正在研究从世界空间到屏幕空间的投影,反之亦然。我的前者工作如下: var viewport = new Viewport(0, 0, this.ScreenWidth, this.ScreenHeight); var screenPoint = viewport.Project(worldPoint.NegateY(), this.ProjectionMatrix, this.ViewMatrix, this.WorldMatrix); 该NegateY()扩展方法不正是它听起来像,因为XNA的Ÿ线延伸自下而上,而不是自上而下。上面的屏幕截图显示了所有工作。基本上,我在3D空间中有一堆点,然后在屏幕空间中进行渲染。我可以实时修改相机属性,并看到它动画到新位置。显然,我的实际游戏将使用精灵而不是点,并且摄影机的位置将被固定,但是我只是在尝试所有数学运算之前。 现在,我正在尝试以另一种方式转换。也就是说,给定上方屏幕空间中的x和y点,请确定世界空间中的相应点。因此,如果将光标指向绿色梯形的左下角,则希望获得世界空间读数(0,480)。该ž坐标无关。或者,当映射回世界空间时,z坐标将始终为零。本质上,我想实现此方法签名: public Vector2 ScreenPointToWorld(Vector2 point) 我已经尝试了几种方法来使它正常工作,但是没有运气。我最近的想法是,我需要调用Viewport.Unproject近两次不同/远ž值,计算得到的Ray,规范它,然后计算出的交点Ray有Plane,基本上代表了我的世界的地面。但是,我陷入了最后一步,不确定是否使事情变得过于复杂。 谁能为我指出如何实现这一目标的正确方向?
10 xna  c#  matrix  projection  screen 

3
将DX10 / 11用于2D游戏有什么优势吗?
我对DX10 / 11类硬件引入的功能集并不完全熟悉。我对熟悉的可编程图形管线中添加的新阶段(例如几何体着色器,计算着色器和新的细分阶段)非常熟悉。我看不出这些对2D游戏有什么影响。 是否有任何令人信服的理由将2D游戏切换到DX10 / 11(或OpenGL等价物),或者考虑到市场的很大份额仍然依靠较旧的技术(例如, 2012年2月Steam调查显示约有17%的用户仍在使用Windows XP)?
10 2d  graphics  directx 

2
哪种方法更好:频繁的小更新还是偶尔的大更新?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 5年前关闭。 我最近为我的自上而下的射手发布了第一个公开可用的免费Alpha:Dread 我试图确定每周一次/每两周一次的小更新发布计划是否比传统的每月(或更长)的大更新更好。 日程安排越频繁,意味着玩家将拥有一个新版本来玩得越频繁,但是新版本一次可能只会添加几个错误修复/功能。玩家会厌倦于不断的更新,还是随着他们更多地参与开发过程而感到更多的依恋? 我在想,由于我的游戏有些实验性质,对于人们来说,有机会在婴儿期对新功能提出一些建议可能是一件好事。但是我不希望自己的反馈意见会偏向我的决定。 您对此事有何想法/经验?

2
我怎样才能巧妙地要求用户支持我的免费游戏?
因此,我有一个游戏,只有几个专用用户,但实际用户却很少。这是Android市场上的免费游戏,通过广告支持。我一直在想定期弹出通知给用户,鼓励他们做类似的事情: 查看展示的广告。 在Android Marketplace中写正面评价。 鼓励他们的朋友玩。 现在,我将其设置为未发布的版本,以便每5个游戏执行一次,一旦用户玩了至少10个游戏,除非他们定期点击广告。我不会让用户知道这一点,我不希望他们点击广告只是为了阻止弹出窗口。 基本上,我需要用户有更多的动力来继续前进到新的水平,并且让他们知道我想从他们那里得到什么。 这最终会帮助我吗,还是我只是让自己更加被埋葬?谢谢!

5
在Linux上为iOS开发[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使其成为Game Development Stack Exchange 的主题。 2年前关闭。 我正在寻找引擎或库来为Linux上的iOS开发游戏。 高级别,低级别的GUI,没有GUI,不要紧。我真的在找什么。 我实际上不是在谈论从Linux或类似的东西部署到iOS。我只想在Linux上完成大部分工作,而只需最少的更改即可在iOS上运行它。 编辑:是的,我确实可以使用Mac,但是它受到限制。因此,我希望能够在我的常规Ubuntu盒子上进行该项目。 另外,我处于付费开发人员计划中,因此可以从Mac部署到iOS设备。
10 ios  iphone  linux 

2
投射纹理和延迟照明
在上一个问题中,我问是否可以使用延迟照明进行投影纹理化。现在(半年后),我对同一件事的实现有疑问。我正在尝试将这种技术应用于轻型通行证。(我的投影仪不影响反照率)。我有这台投影机查看投影矩阵: Matrix projection = Matrix.CreateOrthographicOffCenter(-halfWidth * Scale, halfWidth * Scale, -halfHeight * Scale, halfHeight * Scale, 1, 100000); Matrix view = Matrix.CreateLookAt(Position, Target, Vector3.Up); 其中halfWidth和halfHeight是纹理的宽度和高度的一半,Position是投影机的位置,target是投影机的目标。这似乎还可以。我正在使用此着色器绘制全屏四边形: float4x4 InvViewProjection; texture2D DepthTexture; texture2D NormalTexture; texture2D ProjectorTexture; float4x4 ProjectorViewProjection; sampler2D depthSampler = sampler_state { texture = <DepthTexture>; minfilter = point; magfilter = point; mipfilter …

2
在托管语言中使用粒子池是否值得?
我打算用Java为我的粒子系统实现一个对象池,然后在Wikipedia上找到了它。换句话说,它说不值得在Java和C#等托管语言中使用对象池,因为与非托管语言(如C ++)中的数百种分配相比,分配只需要进行数十次操作。 但是众所周知,每条指令都可能会损害游戏性能。例如,一个MMO中的客户端池:客户端进入和退出池的速度不会太快。但是粒子可能在一秒钟内更新数十次。 问题是:使用对象池来管理语言中的粒子(特别是那些死掉并很快被重新创建的粒子)是否值得?


1
gl_TexCoord [0]的组件是什么意思?
gl_TexCoord[0].s, gl_TexCoord[0].t gl_TexCoord[0].p和之间有什么区别gl_TexCoord[0].x, gl_TexCoord[0].y gl_TexCoord[0].z? 我了解gl_TexCoord[0].x, gl_TexCoord[0].y gl_TexCoord[0].z像素坐标吗? 但是什么gl_TexCoord[0].s, gl_TexCoord[0].t gl_TexCoord[0].p意思,我必须在哪里使用它们?

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.