游戏开发

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


1
检测网格中的节点序列
鉴于下图,我需要检测板上的最佳序列(绿线)。蓝/红线表示可能的动作,但不是最佳动作。 规则如下: 您可以移动到与您的邻居相同且相同的任何图块(对角线有效) 一旦您访问了图块,便无法再次访问它。 我已经考虑过遍历每个节点,并查看其邻居,然后递归地遍历。一旦找到可行的动作,就可以将其放入结构中。一旦找到所有可能的移动,我就选择节点数最高的移动。当一个节点具有多个匹配的邻居时,将变得更加困难。 那么,我可以使用某些算法吗?我当时在想某种洪水填充,但这不符合规则2。 根据要求,以下是类似游戏视频。http://youtube.com/watch?v=eumnCTG0AE8
12 algorithm 

4
实时多人游戏使用哪个数据库(RDBMS,NoSQL和BOTH)?
我正在开发一个实时多人游戏,该游戏将需要一个数据库(用于诸如播放器配置文件,朋友,解锁,新闻等功能)。这是一个标准PC游戏(不是基于浏览器的游戏),将使用客户端服务器建筑。我刚接触数据库,过去几天,我偶然发现了激烈的争论:RDBMS与NoSQL,进行了一些研究。目前,我倾向于NoSQL,但是在阅读了每种用法(RDBMS和NoSQL)之后,我很想同时使用两者。我知道这似乎很奇怪,但让我解释一下我的情况: 我的团队有一个共享的虚拟主机程序包,该程序包提供无限的mySQL存储和带宽,唯一的警告是我们一次只能打开25个连接(共享主机规则)。我打算将其用于我的网站(无疑是一种典型用法),以便发布新闻更新,支持社区功能(例如评论,上传粉丝艺术等)等。一切都很好,但是-!这是事情变得有趣的地方...我想在游戏中显示发布在我的网站上的相同信息。这意味着我的网站和游戏都使用mySQL。除了新闻发布之类的内容外,我还计划在游戏中将其用于聊天和服务器列表之类的事情。我最关心的是25连接规则。 这就引出我问问题1:这是否可行,还有更好的选择吗? 现在,除此之外,我还阅读了有关NoSQL的性能以及适用于实时游戏的信息(我可能是错的,我经历了一场巨大的RDBMS与NoSQL的火焰之战,到达这里并可能被烧死了)。基本上,我想对所有游戏对象数据使用MongoDB。 同样,如果我提供一些背景信息将对您有所帮助:我找到了一个主机(MongoLab),该主机免费提供240MB的MongoDB软件包,我打算在需要升级之前使用它。假设有240MB,我已经计算出能够存储大约60,000个播放器(如果每个播放器大约为4KB,而我们忽略了可能存储的其他内容)。存储空间以及将来必须支付更多费用(我们的游戏应该成功)不是问题。我目前打算对所有游戏对象数据使用MongoDB的唯一原因是由于将访问该游戏对象数据的频率(例如,每当玩家被杀死,拿起物品,开枪等时)也喜欢无格式的直接文档(这使得映射游戏对象数据更加容易)。我应该注意到,一次 我打算在我的网站上使用相同的MongoDB来显示玩家资料信息(我不关心完全的一致性,可以从游戏中进行更新有些延迟)。这使我想到第二个问题,即问题2:这是个好主意还是应该做得更好? 游戏将具有类似于以下的启动体验: 客户端登录(MongoDB) 客户端位于带有聊天室的游戏首页(MySQL) 客户端转到服务器列表(MySQL) 客户端连接到服务器并在其中播放 服务器传达所有播放器的更新(MongoDB) 这就是我想象中的工作方式。这对您来说看起来不错,还是对如何改进此计划有建议?

2
四叉树地形分裂-我不明白
我读过的大多数论文都以某种形式或其他形式在四叉树上建立了地形。请参阅第38页: http://www.slideshare.net/repii/terrain-rendering-in-frostbite-using-procedural-shader-splatting-presentation?from=ss_embed 第一点与后两者没有矛盾吗?如何在每片叶子上有一个固定的33x33顶点网格,又如何在四叉树中讨论自适应除法?术语令人困惑,对此我将不胜感激! 这是我的假设: 每次四叉树更改都会重新放置补丁,不是吗? 从地形边界开始的四叉树。 迭代到观察者位置。 受限版本(邻居之间的等级差异不超过1) 视锥剔除。 将地形补丁放置在每个生成的叶子中,其中比例不同,但分辨率始终为33x33。

1
编程一个类似古墓丽影的攀登系统
我想知道是否有人知道或不知道如何编程一个像在古墓丽影/未知领域中找到的那样的攀岩系统。 我曾想过要在游戏世界的所有可攀爬位置上放置边界框,然后检查是否发生碰撞。如果玩家在盒子里面,那么他们将在边缘“悬挂”。任何人都有更好的主意/改进吗? 我已经使用Directx9设置了渲染,稍后将担心动画。

3
有没有一种好的方法可以在XNA中获得像素完美的碰撞检测?
XNA中是否有一种众所周知的方法(或者也许是可重用的代码)用于像素完美碰撞检测? 我假设这还将多边形(框/三角形/圆形)用于首过,碰撞的快速测试,如果该测试表明有碰撞,则它将搜索每个像素的碰撞。 这很复杂,因为我们必须考虑比例,旋转和透明度。 警告:如果您使用的是来自以下答案的链接中的示例代码,请注意,矩阵的缩放比例已被注释掉,这是有充分理由的。您无需取消注释即可开始扩展。

2
opengl的最常见3D模型格式
我是一个新手,开始在Android设备上使用OpenGL ES。为了练习OpenGL,我想创建一个小型游戏引擎,所以我想知道最好的3D模型文件格式是什么。 我也对相同格式的免费模型感兴趣。 你有什么建议?
12 opengl  3d  models 

4
迷幻游戏背后的逻辑
在我正在做的原型中,有一个类似于宝石迷阵的迷你游戏。使用二维数组(int[,])的网格,如何知道用户何时形成比赛?我只关心水平和垂直方向。 我想着从头顶上往各个方向看。就像是: int item = grid[x,y]; if(grid[x-1,y]==item) { int step=x; int matches =2; while(grid[step-1,y]==item) { step++; matches++ } if(matches>2) //remove all matching items } else if(grid[x+1,y]==item //.... else if(grid[x,y-1==item) //... else if(grid[x,y+1]==item) //... 似乎应该有更好的方法。在那儿?

2
基于高度图的道路地形
在基于高度图的地形上实现细节功能(如道路)的最佳方法是什么? 更新:在图像中很难看到它,但是道路从采石场的顶部向下延伸到底部。

4
今天的PHP与浏览器游戏的相关性如何?
几年前,我曾是2个相当成功的浏览器游戏的首席开发人员,并计划很快开发一款新游戏。当时,我是用纯PHP编写的(没有模板引擎或类似的东西)。 我想开始开发新游戏,但已经离开Web开发领域已有一段时间了。在阅读中,我听到了很多关于Rails,Django,Node.js等的很好的经验,尽管我对Python,Javascript和其他方法一无所知,但我没有任何经验。 因此,我的问题是:如果我按照旧的方式继续使用PHP,我会为自己做些麻烦吗?选择更多“时髦”的东西会对我的发展产生真正的影响吗? 此外,是否有人对使用这些更现代的工具专门开发浏览器游戏有任何建议?

2
在GUI中,应该在按下或释放按钮时处理输入吗?
在我们游戏的菜单系统(选择级别,选项等)中,玩家按下游戏板上的a按钮进入下一个屏幕。我对菜单系统进行了编码,以等待按钮被释放后再执行任何操作(即显示下一个屏幕)。最近的一些游戏测试反馈建议我们采取相反的方式:按下按钮后立即采取措施。我很好奇,这种处理的标准方式是什么,它甚至会有所作为吗?
12 input  gui 

3
将粒子绘制为平滑斑点
我是游戏/图形开发的新手,并且正在玩2D粒子。我想像液体/水一样将斑点彼此靠近地绘制为斑点。我不想绘制重叠的大圆圈,因为斑点不会很平滑(太大)。我不是很了解物理学,但是我想我想要的是看起来与表面张力相似的东西。 我无法在stackexchange或Google上找到任何内容(也许我不知道正确的关键字?)。到目前为止,我已经找到了两种可能的解决方案,但是我无法找到有关算法的任何具体信息。 其中之一是计算我认为是斑点的粒子的凹壳。我可以通过创建一个等效类(基于“彼此靠近”的关系)来计算blob。奇怪的是,我无法找到任何算法来解释如何计算凹面船体。许多文章(以及stackexchange中的文章)都链接到执行此操作的库或商业产品(我需要库才能在C#中工作),但从来没有任何算法。同样,此解决方案可能会遇到一个圆形的粒子问题,该粒子无法检测到中间的空白区域。 在研究凹壳时,我偶然发现了一种叫做alpha形状的东西。这似乎正是我想要做的,但是就像凹壳一样,我还没有找到任何解释它们实际工作原理的资料。我找到了一些演示材料,但还不够继续。就像我以外的每个人都知道的一个大秘密:-/ 计算凹壳或alpha形状后,我想使其成为贝塞尔曲线以使其平滑且美观。 尽管我确实发现自己的方法过于复杂,但是也许我正在尝试以错误的方式解决此问题?如果您可以对我的问题提出其他解决方案,或者解释我所缺少的内容,我将非常高兴和感激:-) 谢谢。

4
在线服务和/或应用程序,用于开发冒险游戏的故事情节[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使其成为Game Development Stack Exchange 的主题。 4年前关闭。 我和我的朋友们在谈论冒险游戏。游戏中将存在大量的可能性,玩家可以在每个阶段从各种各样的选择中进行选择。每个决定都会有后果,可能会或可能不会结束故事。 结果将是这样的: (图片来自flashforward系列S01E17) 如果您中有人看过第1季的英雄,在isaac mandez工作坊中也有类似的时间轴表示为字符串。对不起质量不好的例子,但现在我想不出更好的例子了。 您知道我们可以用来创建时间表的任何网站或应用程序吗? 这些功能是必需的: 将事件表示为框的能力。 将遥远的事件彼此关联的能力。 自由移动场景中事件的能力 轻松扩展场景的能力 代表事件之间连接的线应该有一些颜色选项 轻松地彼此分享想法 拥有所见即所得的编辑器会更好 在大事件现场轻松探索 最后,如果您知道有什么应用程序可以让我像示例图片中那样创建一个木板,请分享
12 storyboard 

4
GLM:欧拉角与四元数
希望您知道GL数学(GLM),因为我遇到了问题,我无法中断: 我有一组欧拉角,我需要在它们之间进行平滑插值。最好的方法是将它们转换为四元数并应用SLERP算法。 我的问题是如何用Euler Angles 初始化 glm :: quaternion? 我一遍又一遍地阅读了GLM文档,但我找不到合适的文档Quaternion constructor signature,那需要三个欧拉角。我找到的最接近的是 angleAxis()函数,该函数获取角度值和该角度的轴。请注意,我正在寻找一种方法,如何解析RotX, RotY, RotZ。 供您参考,这是上面提到的angleAxis() 函数签名: detail::tquat< valType > angleAxis (valType const &angle, valType const &x, valType const &y, valType const &z)

4
X,Y,Z坐标标准?
尽管如此,我对任何类型的3D开发都是新手。通过阅读教程和示例,我发现X / Y / Z坐标似乎比我的第一个猜测要落后一些。 我曾想像过,如果一个人在田野上行走,他们的X / Y位置会发生变化,如果他们要跳,爬或爬下山坡,那么他们的Z位置将会发生变化。我的假设似乎是错误的,因为在田野上行走似乎会改变X / Z,而在山上跳跃或上/下会改变Y。 1)我的观察正确吗?3D对我来说是新手,我可能没有适当考虑问题。 2)水平运动为X / Z和垂直运动为Y背后的逻辑是什么? 3)在XNA Framework中将X / Y用作水平运动而将Z /用作垂直运动对我来说会错吗?

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.