游戏开发

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

2
继承与组成
我用C#赚钱。通常,我会使用这种语言使用界面将所有事物解耦到高处。这在企业代码中为我提供了很好的服务,但是在C#中编写游戏时,由于能够为基类定义一些默认行为,因此我倾向于继承。但是我这样做很肮脏,就像我不服从曾经说过“赞成继承而不是继承”的建筑神一样。我知道它不是黑白的,但我也觉得我可以使用界面进行更多的工作,并大致实现相同的目的。 别人在做什么?是继承是游戏的正确方法,还是应该在某些接口中重构?
16 c#  architecture 

4
如何在俄罗斯方块中旋转块
我有一个游戏板网格,该网格高20行,宽10列,其原点(0,0)位于左上角。我在玩四联体,由四个方块组成。我有每个块相对于左上角原点的x,y位置。我还具有枢轴的位置,即我希望围绕其旋转的点,该点相对于左上角的原点。 每个方块在游戏板正方形中具有整数位置,因此枢轴在方块之间具有小数位置,例如(10.5,10.5) 我的问题是:我可以使用哪个公式围绕枢轴旋转每个块? 我已经看过现有的类似问题和答案,但是找不到我可以工作的答案。 帮助将不胜感激。
16 c++  rotation 

7
Perlin噪音造成的世界中的产卵单位?
我在Perlin基于噪音的游戏中遇到了一些问题。请看下面的截图。 您看到的白色区域是墙壁,黑色区域是可步行的。中间的三角形是玩家。 我已经在游戏中实现了物理学,方法是将其绘制到纹理(白色或黑色像素)上,然后从CPU中获取。 但是,现在我面临另一个问题。我希望单位(或小兵,无论您叫什么)在屏幕边缘不断生成。这里的要点是,在最终游戏中,将会出现“战争迷雾”,无论如何玩家都无法看到它。 我认为我可以只扫描屏幕边缘的像素,看看它们的物理纹理是否为黑色,然后在其中随机生成东西。但是,如果您再看一下屏幕截图,则(在左上角)有一个我不想让小兵产生的示例(因为它们无法从那里到达玩家) 。 GPU是否可以以某种方式为我确定这些生成点,或者以其他方式确定?我考虑过要在屏幕边缘的建议点和播放器之间制作矢量,然后每10个体素跟随一次矢量,看一面墙是否发生碰撞,然后在此处生成一个单元。 但是,上面提出的解决方案可能会占用过多CPU资源。 关于这个问题有什么建议吗? 注意1 对于生成的单位,我不希望使用任何形式的寻路以避免墙碰撞,因为这些单位朝向玩家。因此,这些单位必须在屏幕的边缘生成,并且该位置必须朝向玩家的直线走,而不会碰到任何墙壁。
16 xna  path-finding  hlsl  gpgpu 

3
什么是“模拟操作员”过场摄像机运动?
我有一些问题与很多游戏过场动画中摄像机的不平滑运动有关,这些运动似乎试图模拟操作人员握持摄像机时的紧张情绪。这与一般游戏中发生某些事件(例如爆炸)时的相机抖动相反,尽管它们也确实发生在我所谈论的过场动画中。 在很多游戏中都有这种效果的例子,但是我所看到的最好的例子是我尝试描述的是《合金装备5:地面零点》的开场动画(以及许多过场动画)。确保选择60 FPS以使效果更清晰。 这种“模拟的人工操作”效果是否有名称,您知道如何实现吗? 我的猜测是,摄像头正在通过某种随机偏差函数在两个轴上偏移,该函数总是向着原点稍微弹性地移动,以阻止其疯狂游荡。也许布朗运动?

4
如何使“ One Hit and Dead”平台游戏变得公平
我目前正在制作“奔跑”枪式平台游戏,玩家在被击中时会立即死亡。我很好奇如何使这种感觉公平。我知道足够频繁地放置检查点,使玩家几乎可以立即重试,并设置了仁慈的点击框。但是我很好奇我应该如何进行关卡设计?奔跑的枪与像肉仔一样的Sanic速跳墙平台游戏有很大不同。 您会发现,《空心骑士》这类游戏可让您学习如何通过轻松挑战来避免在游戏初期受到打击。如果您在《空心骑士》中碰到了意外的事情,您总是可以集中精力并获得一些健康,这不会感到不公平。如果这在我的游戏中发生,那将是不公平的。 由于我在每个阶段结束时都设计了一个与上司一起的Megaman-X类游戏,因此我应该怎么去教玩家如何躲避快速移动的弹丸,而只有在看到它们的行为后才能知道如何躲避? 是的,在您可以按自己喜欢的顺序玩其他游戏之前,将有一个第一级。

3
逐个字母打印文本时,会出现一个声音术语吗?
以Undertale之类的游戏为例:每当一个角色“说话”时,就将文本一个接一个地打印出来,并为每个字母播放声音,就好像该角色实际上在说话(即使只是胡言乱语一样)。这些声音对于每个角色通常都是不同的。这些声音叫什么类型?如果我想获取此类对话框系统的占位符声音,如何找到它们?

1
我应该如何为潜在的赞助商推荐游戏?
我们已经开发了一款手机游戏,并正在为演示日做准备。我们将向潜在的赞助商展示我们的游戏,而我们在决定如何进行高质量展示时遇到了麻烦。 具体而言,与产品演示相比,在推销游戏方面有哪些独特的挑战和机遇? 作为开发人员,我们担心我们可能错误地专注于对开发人员重要的要素,而不是对投资者重要的要素。我们如何去识别它们? 为了演示游戏玩法,在什么情况下我们应该考虑切换到单独的应用,将游戏嵌入到幻灯片中,显示罐装游戏画面或其他内容?

3
如何生成城市街道网络?
我想为游戏创建一个城市生成器,但是在生成的一开始我就面临一个问题:道路系统。 由于这是一个中世纪世界,所以我不希望像许多现代城市一样制定网格计划。理想情况下,我更喜欢伪随机生成的大型大道和较小街道,在这些地方可能会迷路,但仍需遵循一些逻辑-而不是完全迷宫。 看起来像是自然生长的城镇。 为了简单起见,假设我的城市处于平坦且稳定的地形上,没有任何过河或救济问题。之后,我可以尝试将其集成到解决方案中。 我没有确定我的城市的确切大小或位置,因此,如果您有一个仅适用于具有精确形式(正方形,圆形,矩形等)的城市的解决方案,我会采用。

3
您如何处理基于概率的游戏中的损失规避?
损失厌恶心理现象是指玩家如何感觉损失是胜利的两倍。 例如,Bite Fight的PvP是基于与角色技能相关的概率的模拟,并且玩家每周在社区论坛中多次表达这种感觉。 如果您不想创建付费游戏,但您想让最差的玩家赢得足够多的胜利,从而对此感到满意,您该怎么做? 问题分为两部分: 您如何从技术上处理它?您是否使用某种数学技术或基于内存的模拟来避免某位玩家连续输掉很多? 从社区的角度来看,您该如何处理?在公共论坛上,您如何处理此类投诉?


3
我应该使用数据库存储游戏内容吗?[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使其成为话题成为Game Development Stack Exchange。 4年前关闭。 我有一个使用SFML用C ++编写的2D游戏。我想使游戏具有可扩展性,可以通过在文件或数据库中添加行/条目/行来轻松添加诸如项目或实体之类的内容。 我正在寻找不需要编译到程序中的东西,而是可以在运行时读取和写入的东西。什么时候使用数据库合适?
16 c++  sfml  databases 

4
我可以利用特征蠕变来发挥自己的优势吗?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引文回答。 2年前关闭。 我可以利用特征蠕变来发挥自己的优势吗? 每次我制作游戏原型时,都会无意中添加功能。这是通过巧合发生的,或者是根据现有内容添加起来很容易的。 如果我知道游戏的类型,我是否可以开始制作基本机制并添加功能,使其变得明显? 例如,如果我想在6个月的时间内制作2D平台游戏,我是否可以开始进行跑步,跳跃,射击等工作,并在无意中找到它们时添加核心机制?或者,如果没有预先确定的计划,这是否会浪费时间进行投资? 我这样做的逻辑是,设计将物有所值。设计选择将更容易围绕易于制作的内容(按时间)构建。 总而言之,在设计游戏之前,构建游戏有什么问题吗?

6
如何在C ++引擎编程中正确使用单例?
我知道单例很糟糕,我的旧游戏引擎使用了单例“ Game”对象,该对象处理从保存所有数据到实际游戏循环的所有事情。现在我要制作一个新的。 问题是,要在SFML中绘制某些内容,请window.draw(sprite)在window是的地方使用sf::RenderWindow。我在这里看到2个选项: 制作一个单例游戏对象,游戏中的每个实体都将检索该对象(我以前使用过的对象) 使它成为实体的构造函数:(Entity(x, y, window, view, ...etc)这只是荒谬而烦人的) 在将实体的构造函数保持为x和y的同时,执行此操作的正确方法是什么? 我可以尝试跟踪我在主游戏循环中所做的所有事情,只是在游戏循环中手动绘制其精灵,但这似乎也很麻烦,我也希望对实体的整个绘制功能具有绝对的完全控制权。

2
我可以在PDF文档中嵌入游戏吗?
我当时以为在数字简历中拥有互动游戏可能会很酷。为了这个问题和本网站的范围,让我们忽略一下这是否是一个好主意。 是否可以在PDF文档中嵌入游戏或某种交互式窗口?这可以使用任何一种语言或框架。例如,在其中包含CAPTCHA的PDF区域很小。

1
这是什么投影?
有人可以告诉我这个投影叫什么吗? 好像您是从其正上方看一个对象,然后将其涂抹并均匀放置。只有一个维度似乎是真实比例,而其他两个维度则是偏斜的。 我找不到很多使用这种风格的游戏,但是一些《创世纪》系列似乎或至少类似:
16 projection 

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.