游戏开发

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

2
通过LAN的​​Android实时多人游戏
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 7年前关闭。 我已经为Android平台开发了几款游戏,现在计划创建自己的第一款多人游戏。我想到的基本上是一个2人游戏女巫,您可以通过本地连接/ WiFi用2个电话玩游戏。 两部电话都需要能够将3个整数值实时传递给另一部电话。到目前为止,我已经考虑过使用Socket,但是在我深入研究它之前,我想问一下是否有更好的方法? 谢谢!

2
估算GOAP系统中的成本
我目前正在用Java开发GOAP系统。有关GOAP的说明,请参见http://web.media.mit.edu/~jorkin/goap.html。本质上,它是使用A *绘制使世界状态发生变化的动作之间的关系。 为了给所有行动和目标提供公平的执行机会,我正在使用启发式函数来估算执行某项操作的成本。估算此成本以使其与所有其他成本可比的最佳方法是什么? 例如,估算逃避敌人和攻击敌人的成本-应该如何计算该成本是否具有可比性?
9 java  ai  path-finding 

5
精灵渲染速度模糊
在为游戏增加速度之后,我感觉我的纹理在抽搐。我以为只是我的眼睛,直到最终在屏幕截图中捕获了它: 左边的是我的游戏中呈现的内容;右边的是粘贴的原始精灵。(这是Photoshop的屏幕截图,放大了6倍。) 请注意,边缘是混叠的-看起来几乎像是亚像素渲染。实际上,如果我没有强迫我的精灵(位置和速度为整数)使用整数值进行绘制,我会发誓MonoGame使用浮点值进行绘制。但事实并非如此。 这些事情看起来模糊的原因可能是什么?没有施加速度就不会发生这种情况。 确切地说,我的SpriteComponent班级有一个Vector2 Position领域。当我致电时Draw,我实际上是使用new Vector2((int)Math.Round(this.Position.X), (int)Math.Round(this.Position.Y))该职位。 我之前有个bug,即使静止的物体也会抖动-这是由于我使用了直线Position向量,而不是将值四舍五入到ints。如果我使用Floor/ Ceiling而不是圆形,则精灵会下沉/悬停(两种方式各有一个像素差异),但仍会模糊。

2
防止赛车游戏中发生过度转向的灾难
在Android平台上玩GTA III时,我注意到几乎在我玩过的所有赛车游戏中都有一些烦人的事情(也许除了Mario Kart以外):直行很容易,但是弯道确实很难。当我切换车道或经过某人时,汽车开始来回旋转,任何改正它的尝试只会使它变得更糟。我唯一能做的就是刹车。我认为这有点过度。 令我如此恼火的是,在现实生活中我从来没有发生过这种事情(感谢上帝:-)),因此90%的载有车辆的游戏对我来说都是虚幻的(尽管可能拥有非常好的物理引擎)。我已经与几个人讨论过这个问题,看来您要么“获得”赛车游戏,要么您没有。经过大量的练习,我确实在某些游戏中表现不佳(例如,在极品飞车系列中),它非常谨慎地驾驶,刹车很多(通常会抽筋)。 作为游戏开发人员,您如何做才能防止转向过度引起的共鸣灾难,并使驾驶感觉正确?(对于休闲赛车游戏,它并不追求100%逼真的物理效果) 我还想知道,像超级马里奥赛车这样的游戏究竟有什么不同之处,以至于它们没有太多的转向? 我想一个问题是,如果您使用键盘或触摸屏(而不是车轮和踏板)玩耍,则只有数字输入:是否踩油门,是否向左/向右转向,并且很难适当地转向给定速度。另一件事是您可能没有良好的速度感,并且比实际(安全)驾驶要快得多。从我的头顶开始,一种解决方案可能是随速度改变转向响应。

2
您如何处理动画行走中的过渡?
对于整个动画模型这件事我还是很陌生。只是学习绳索。我有一个不错的行走动画,可以在角色行走时循环播放,但是当他们停止行走时该怎么办? 我的意思是,当玩家停止行走时,它们可能处于动画中的任何位置。我如何让它们平稳地回到静止位置而又不使其陷入该位置?从站立姿势开始走路也是如此。您需要单独的动画吗?如何处理?
9 animation 

2
实体系统中的多种运动源
我对实体系统这个概念还很陌生,已经阅读了很多东西(最有用的是这个很棒的博客和这个答案)。 尽管我在理解如何通过不确定数量的源操纵对象的位置这样简单的事情上遇到了一些麻烦。 也就是说,我有我的实体,该实体具有职位组成部分。然后,我在游戏中发生了一些事件,告诉该实体在给定时间内移动给定距离。 这些事件可以随时发生,并且具有不同的位置和时间值。结果是将它们混合在一起。 在传统的OO解决方案中,我会有某种MoveBy类,其中包含距离/时间,以及在我的游戏对象类内部的数组。每帧,我都要遍历所有MoveBy,然后将其应用于该位置。如果a MoveBy已达到结束时间,请从阵列中将其删除。 对于实体系统,我对如何复制这种行为感到有些困惑。 如果一次只有一个,而不是能够将它们复合在一起,那将是相当简单的(我相信),并且看起来像这样: PositionComponent 包含 x, y MoveByComponent 包含 x, y, time Entity同时具有a PositionComponent和aMoveByComponent MoveBySystem查找具有这两个组成部分的实体,并将的值添加MoveByComponent到中PositionComponent。当time到达,它会从该实体的组件。 我对于在很多情况下如何做同样的事情有些困惑。 我最初的想法是我会: PositionComponent,MoveByComponent与上述相同 MoveByCollectionComponent其中包含MoveByComponents 的数组 MoveByCollectionSystem查找具有PositionComponent和的实体,并在MoveByCollectionComponent其中的MoveByComponents中进行迭代,并根据需要应用/删除。 我猜这是一个更普遍的问题,具有许多相同的组件,并且希望有一个相应的系统对每个组件起作用。我的实体将其组件包含在组件类型->组件的哈希中,因此每个实体严格只有一种特定类型的组件。 这是看待这个问题的正确方法吗? 实体是否应该始终始终只有一种给定类型的组件?

4
我应该在游戏中的图形和物理引擎之间共享数据吗?
我正在编写包含几个模块的游戏引擎。其中两个是图形引擎和物理引擎。 我想知道这是否是在他们之间共享数据的好解决方案? 两种方式(是否共享)如下所示: 不共享数据 GraphicsModel{ //some common for graphics and physics data like position //some only graphic data //like textures and detailed model's verticles that physics doesn't need }; PhysicsModel{ //some common for graphics and physics data like position //some only physics data //usually my physics data contains A LOT …

5
弹球游戏的2D碰撞检测
到目前为止,在以前的游戏中,我使用带有框的简单2D碰撞,然后在像素级别检查碰撞。 如果要在几乎很多帧中进行弹球游戏,那么球将与墙壁或其他表面接触,那么还有其他方法吗?

3
Windows 8仍然支持DirectX 9吗?
Windows 8是否支持DirectX 9?因为我正在浏览一些用C ++和DirectX 9编写的Windows 8样例。不是那样,就像我知道的那样(请看这里http://directxtutorial.com/Lesson.aspx?lessonid=111-4-2)。例如,使用COM简化DirectX: ComPtr<ID3D11Device1> dev; ComPtr<ID3D11DeviceContext1> devcon; 这很奇怪,因为我以旧的方式知道它: ID3D11Device *dev; ID3D11DeviceContext *devcon; (我希望你明白我想说的) 我希望它不会因为发布了新的操作系统而完全改变。
9 c++  directx  windows 

2
服务器端输入
当前在我的游戏中,客户端不过是渲染器。当输入状态更改时,客户端将数据包发送到服务器,并像对待输入一样处理播放器,但是服务器保留最终决定权。 除了一个大问题:掉落边缘,这通常效果很好。基本上,如果玩家正朝着一条边走,比如说一个悬崖,并且在走出边缘之前就停下来了,有时是一秒钟之后,他将被传送到边缘之外。这是因为在服务器处理信息后发送了“我停止按W”数据包。 这是一个滞后图,可以帮助您理解我的意思:http : //i.imgur.com/Prr8K.png 我可以每帧发送一个“ W Pressed”数据包供服务器处理,但这似乎是带宽成本很高的解决方案。 任何帮助表示赞赏!

1
gluLookAt如何工作?
据我了解, gluLookAt( eye_x, eye_y, eye_z, center_x, center_y, center_z, up_x, up_y, up_z ); 等效于: glRotatef(B, 0.0, 0.0, 1.0); glRotatef(A, wx, wy, wz); glTranslatef(-eye_x, -eye_y, -eye_z); 但是当我打印出ModelView矩阵时,对的调用glTranslatef()似乎无法正常工作。这是代码片段: #include <stdlib.h> #include <stdio.h> #include <GL/glut.h> #include <iomanip> #include <iostream> #include <string> using namespace std; static const int Rx = 0; static const int Ry …

2
陈述实体或组件的变化
我在确定如何处理实体中的状态管理时遇到了一些麻烦。 我对游戏状态管理没有任何麻烦,例如暂停和菜单,因为它们没有作为实体组件系统处理;只是带有实体/组件中的状态。 以“兽人必须死”为例,我有MainCharacter和Trap实体,它们只有诸如PositionComponent,RenderComponent和PhysicsComponent之类的组件。 在每次更新时,实体都会调用其组件的更新。我也有一个通用的EventManager,带有用于不同事件类型的侦听器。 现在,我需要能够放置陷阱:首先选择陷阱和陷阱位置,然后放置陷阱。 放置陷阱时,它应该出现在MainCharacter的前面,以不同的方式呈现并跟随它。放置后,它应仅响应碰撞并以常规方式进行渲染。 通常在基于组件的系统中如何处理? (此示例是特定的,但可以帮助您确定处理实体状态的一般方法。)

2
基于图块的等距游戏中的自由运动
在基于图块的等距游戏中,有没有合理的简便方法来实现自由移动?这意味着玩家不仅会立即从一个图块跳到另一个图块,或者不会被“捕捉”到网格(例如,如果图块之间的移动已设置动画,但是在动画完成之前您将被禁止执行任何操作)。我真的是一个与游戏编程有关的初学者,但是借助此站点和其他资源,可以很轻松地完成基本的工作,但是我无法针对此特定问题找到任何有用的资源。 。 目前,我已经简化了一些与此相关的东西:http://jsfiddle.net/KwW5b/4/(WASD运动)。移动的想法是使用鼠标地图来检测玩家何时移动到另一个图块,然后翻转偏移量,并且在大多数情况下可以正常工作(每个角使玩家移动到错误的位置:请参阅http: //www.youtube.com/watch?v=0xr15IaOhrI,这可能是因为我无法使完整的鼠标图正常工作),但是我并不幻想它甚至接近一个好的/理智的解决方案。而且无论如何,这主要只是为了演示我想实现哪种类型的东西。

1
每个句子显示多长时间?
在创建文本自动前进的序列时,是否有度量标准可以让我计算出显示每个“句子”的合理持续时间? 我的直觉告诉我,由于阅读方式的原因,单词的数量可能比字符的数量更重要,但是我很好奇人们可能已经对这个问题想出了什么。

4
保持两个物体之间的旋转
在我的XNA游戏中,我有两个碰撞的对象。当第一个物体与另一个物体碰撞时,它可以锁定在其上并在整个世界中移动。我这里的数学有问题(数学不是我的强项)。目前,我将第二个对象闩锁放在第一个对象闩锁上并随其移动,但是我无法使其保持其原始方向。因此,如果对象朝上,则应相对于与原始项目一起旋转的方向保持该方向。 关于如何最好地实现这一目标的任何提示?
9 xna  rotation 

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.