游戏开发

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

1
找出滑鼠点击进入的方块
我正在开发基于等距网格的游戏,并且在尝试将鼠标单击从用户链接到图块时遇到问题。我已经能够将问题分为两部分: 找到一个围绕瓷砖的矩形(我已经能够做到) 从矩形中找出点击的瓷砖(让我感到困惑) 这是一个内部有图块的矩形的示例: 矩形长70像素,高30像素,所以如果我使用30x(top)/ 20y(left)的输入,我将如何确定该像素落入哪个图块?

3
2D软体物理引擎?
嗨,我最近学习了SFML图形库,并想使用或制作一个非刚体2D物理系统来使用它。我有三个问题: Box2d 中刚体的定义是 一块物质如此强大,以至于该物质上任何两个比特之间的距离都是完全恒定的。 这正是我所不想要的,因为我想制造弹性,可变形,易断裂和重新连接的物体。1.是否有任何简单的2D物理引擎,但是具有这些特性?最好是免费还是开源? 2.即使不是基于刚体,我是否也可以使用box2d并对其进行处理以创建它? 3.最后,如果有一个像这样的简单物理引擎,我是否应该继续创建一个新的物理引擎,仅仅是为了体验并增强物理数学知识?如果我想修改现有引擎的代码或创建具有真正独特物理原理的游戏,我觉得这会有所帮助。 谢谢!
9 c++  physics 

3
有什么方法可以将游戏逻辑与动画和绘制循环分开?
我以前只制作过Flash游戏,使用MovieClips等将动画与游戏逻辑分开。现在,我开始尝试制作适用于Android的游戏,但是围绕这些问题的游戏编程理论仍然让我感到困惑。我来自开发非游戏Web应用程序的背景,因此我精通于更多的MVC之类的模式,并且在我从事游戏编程时一直牢牢记住这种思维方式。 我想做一些类似抽象游戏的事情,例如,通过一个游戏板类,其中包含一个图块网格的数据,每个图块类的实例都包含属性。我可以赋予我的绘制循环访问权,并让它根据游戏板上每个图块的属性来绘制游戏板,但是我不知道确切的动画应该去哪里。据我所知,动画位于抽象的游戏逻辑(模型)和绘制循环(视图)之间。以我的MVC思维方式,尝试确定动画实际上应该去哪里令人沮丧。它会像模型一样具有大量与之关联的数据,但似乎需要与绘制循环紧密结合,以具有诸如帧独立动画之类的功能。 如何摆脱这种思维模式,开始思考对游戏更有意义的模式?

3
如何找到被移动的圆圈扫过的2D网格单元?
我正在基于2D网格制作游戏,其中有些单元格可以通过,有些则不能。动态对象可以独立于网格连续移动,但需要与不可逾越的单元碰撞。 我编写了一种算法来追踪射线对着网格,从而为我提供了所有与射线相交的单元。但是,实际对象不是点大小的。我目前将他们表示为圈子。但是我无法找到有效的算法来追踪运动的圆。这是我需要的图片: 数字显示圆与网格单元碰撞的顺序。有人知道找到这些冲突的算法吗?最好使用C#。 更新圆可以大于单个网格单元。

2
AABB碰撞造成的平台跳跃问题
首先参见图: 当我的AABB物理引擎解析交点时,它会通过找到穿透较小的轴来实现,然后“推出”该轴上的实体。 考虑“向左跳转”示例: 如果力度X大于力度Y,AABB将实体沿Y轴推出,从而有效地停止跳跃(结果:玩家停在半空中)。 如果VelocityX小于velocitY(未在图中显示),则程序将按预期运行,因为AABB将实体沿X轴推出。 我怎么解决这个问题? 源代码: public void Update() { Position += Velocity; Velocity += World.Gravity; List<SSSPBody> toCheck = World.SpatialHash.GetNearbyItems(this); for (int i = 0; i < toCheck.Count; i++) { SSSPBody body = toCheck[i]; body.Test.Color = Color.White; if (body != this && body.Static) { float left = (body.CornerMin.X - …

4
像Source这样的Engine如何处理实体?
在Source引擎上(它的前身是goldsrc,quake),游戏对象分为两种:世界和实体。世界是地图的几何形状,实体是播放器,粒子,声音,乐谱等(对于Source Engine)。 每个实体都有一个思考功能,该功能执行该实体的所有逻辑。 因此,如果需要处理的所有内容都来自具有think函数的基类,则游戏引擎可以将所有内容存储在列表中,并在每一帧上循环遍历并调用该函数。 乍一看,这个想法是合理的,但是如果游戏中有很多实体,它可能会占用太多资源。 那么,像Source这样的引擎如何处理(处理,更新,绘制等)游戏对象?

3
在哪里聘请剧本作家来制作小型互动故事游戏?
我需要一个基于对话框的小型游戏/交互式故事的场景。该游戏将作为示例,与我们正在开发的中间件工具一起提供。 我想购买一个现有的故事(它当然应该是动态的-具有分支对话框等),或雇用某人来编写一个新的故事。 请告知,在哪里可以找到这样的人/服务?我们的总部设在俄罗斯,因此在本地聘请足够有才华的英语作家有点麻烦。 更新:要更加明确:我们必须获得所有必要的权利才能重用故事并从中制作衍生作品(即我们正在谈论的游戏)。这是一种商业产品。随意借用别人的作品并使用它只是行不通。 警告:请不要在此处发布“我可以做到”的答案。这不是工作板!您将被否决,您的答案将被删除。如果您真的想与我联系,请查看我的个人资料。

1
行进立方体-合法吗?
我知道这不是一个“合法的”网站,但是因为Marching Cubes绝对是游戏开发中的大主题,并且与特定的图形/项目无关,所以它会通过... 要点! 有谁知道商业游戏中是否允许使用Marching Cubes?如果是这样,我必须做些什么?归功于某人/公司等? 干杯。
9 legal 

2
在线多人游戏基础知识
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使它成为Game Development Stack Exchange 的主题。 6年前关闭。 我目前正在实时开发ac#在线多人游戏。目的是使用UDP协议建立基于客户端/服务器的连接。到目前为止,我已经使用UDP进行玩家的移动,并使用TCP进行事件(玩家射击,玩家丧命),因为我需要确保这些数据将到达连接到服务器的所有玩家。我知道UDP被称为“不可靠”,并且某些数据包可能会丢失。但是我到处都读到永远不要混用TCP和UDP,因为它会影响连接。 主要问题是我应该如何组织我的网络? UDP是无连接的,我该如何保存谁是谁?我应该在列表中保存客户端的IP地址吗? 我应该使用TCP处理重要事件还是使用UDP?如果需要使用UDP,如何确保数据不会丢失? 通过同时使用TCP和UDP,我需要为每个播放器将其IP保存在一个列表中(用于UDP),并将TcpClient保存在另一个列表中(对于UDP)。我如何才能使其更有效?

2
在设计或渲染时缩放像素艺术文件?
如果创建以后需要在屏幕上按比例放大的像素艺术文件,则单个像素将变成4像素的盒子。我应该使用2x2像素创建像素图还是应该使用1x1像素创建像素图,以便稍后可以在XNA中以1:2比例将其缩放到2x2像素? 我倾向于认为1:1会导致过多的细节而不是像素美工效果,因此我希望最终的结果采用2:1样式,其中我想要的精灵的1x1像素将在屏幕上占据2x2像素。
9 xna  c#  sprites 

3
什么是一种好的平面文件格式,用于存储可以在任何方向无限增长的2D切片地图?
我正在创建一个简单的地图引擎,该引擎将根据需要使用过程生成的内容自动向任何方向扩展。 有什么好方法可以存储地图数据,将其锚定在0,0的原点上,以便可以从地图上的任何点快速高效地加载地图数据的矩形子集? 我有一个想法,也许我应该将地图分块为不同的扇区,然后使用某种标头格式来标识特定扇区在文件中的存储位置。这是一项好技术还是我可以看看的更好,更有效的技术?
9 tiles  maps 


5
如何在平台游戏中轻松实现挥杆动作?
我正在开发一款游戏,玩家可以使用绳索摇摆(就像《蜘蛛侠》或《仿生突击队》一样),并且在实现此行为时遇到问题。谁能帮助我做到这一点,我的意思是物理公式等等。到目前为止,我已经提出了3个想法。一种是使用弹簧,但是会消耗大量时间,有时甚至会跳动。另外两个正在尝试计算下一步(一个通过计算势能,一个通过计算扭矩),并且每当演员试图摆动时,两者几乎都会崩溃。 这是我编写的用于计算扭矩的代码: float dx = Runner->getPosition().x - ancher.x; float dy = Runner->getPosition().y - ancher.y; float t0 = atan2(dy,dx); //my current angle float k = ((dy) *vx - (dx) * vy) / (dx * dx+dy * dy); //previus angular velocity k -= gravity * cos(t0) *dt; // new angular velocity (gravity …

1
关于图形编程的好书吗?
我一直在寻找一本采用自下而上的图形编程方法的书。因此,从2D过滤开始,可能是进入法线贴图,然后是环境光遮挡等。 我问是因为最近几年我在游戏开发方面一直很懒惰,并且一直使用能够处理此问题的引擎。我想开始为游戏编写一些着色器,而不是依靠过去借用的神秘着色器。我认为在这方面有很强的知识会有所帮助,而且我是一个自下而上的学习者,请帮助我! 我知道GPU Gems系列很棒,但是它们似乎更像是一本食谱,而不是我想要的自下而上的方法。您往往会从食谱中获得更多分散的理论,而不是基于前几章的理论。 编辑:最好是你读过的东西!我可以在亚马逊上搜索此内容,但是很难以这种方式进行公正的评论。

4
在基于二维图块的游戏中,滚动的好方法是什么?
我将D3DXSPRITE包装器与Direct3D配合使用,将图块绘制到屏幕上。我有一个图块类,其中包含诸如碰撞和图块类型的成员,然后我有一个图块数组,例如 平铺网格[256] [256]; 哪种方法更好? -将播放器绘制在屏幕中央,并在地图绘制位置偏移。 -使用以下摄像机移动播放器。 我使用的是第一种方法,但是当您到达地图的左上边缘以及其他玩家/敌人同时在地图上移动时,它变得非常复杂 如果我让摄像机跟随播放器,即使屏幕上只能容纳几个网格块,我是否也必须为每个单个网格块调用spriteBatch-> Draw(...)?
9 c++  directx  directx9 

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.