游戏开发

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

7
浏览器/ HTML5游戏的反作弊Javascript
我打算冒险在js / html5中制作单个玩家动作rpg,并且我想防止作弊。我不需要100%保护,因为它不会成为多人游戏,但是我需要某种程度的保护。 那么,除了缩小和混淆之外,您建议采取什么策略? 我不会费心地对服务器端进行一些简单的检查,但是我不想走Diablo 3路径将所有游戏状态更改都保留在服务器端。 由于这将是一种rpg,因此我想到了让统计检查员检查其值的突然变化的想法,但是我不确定它的一致性和可信赖性。 那么变量和函数范围呢?只要有可能,在较小的望远镜上工作都是比较安全的,但是值得付出努力吗? 无论如何,javascript都可以像校验和一样自我检查其文本? 有针对浏览器的解决方案?我不会只在早期版本中就为Chrome限制它。

7
自动测试在游戏开发中有多普遍?[关闭]
游戏开发商是否使用其编写单元测试和集成测试?在拼图开发者中有多普遍?在MMORPG和FPS的开发人员中? (我没有游戏开发的背景,也没有为使用它而感到困惑-这只是我一个疑问。因此,即使我已经喜欢编写自动化测试,也不必试图说服我编写它们。 )

2
计算2D精灵的旋转力
我想知道是否有人有一种优雅的方式来计算以下情况。 我有一个(n)个正方形,随机形状的对象,但我们会假装它们都是矩形。 我们没有重力,因此从上到下的角度考虑空间中的物体。我在一个特定的正方形上向对象施加力(如下图所示)。 如何根据所施加的力在所施加的位置计算旋转角度。如果应用在中心方块中,它将笔直。我离开中心越远,应该如何表现?如何计算转速?
35 2d  rotation  physics  vector 

5
在2D中,如何有效地找到最接近点的对象?
我有一个相当大的游戏引擎,我想要一个功能来查找最接近的点列表。 我可以简单地使用勾股定理找到每个距离并选择最小距离,但这需要对所有距离进行迭代。 我也有一个碰撞系统,从本质上讲,我将对象变成较小网格上的较小对象(有点像小地图),并且只有在相同网格空间中存在对象时,我才检查碰撞。我可以这样做,仅增大网格间距以检查紧密度即可。(而不是检查每个对象。)但是,这将需要在我的基类中进行其他设置,并使本已混乱的对象杂乱无章。这值得么? 是否可以使用一些有效且准确的方法来根据点和大小的列表来检测哪个对象最接近?
35 c++  2d  algorithm  vector  picking 

6
复制游戏在法律上是否可行?
使用“垄断”,“多米诺骨牌”,“跳棋”或“棋牌”之类的棋盘游戏,游戏开发人员可以制作克隆并出售它们吗?另外,我可以克隆ZX Spectrum游戏吗?游戏中有很多部分可以做到相同吗?
35 legal 

7
如何提高Voxel / Minecraft类型游戏的渲染速度?
我正在编写自己的Minecraft副本(也用Java编写)。现在效果很好。在40米的可视距离下,我可以轻松地在MacBook Pro 8,1上达到60 FPS。(英特尔i5 +英特尔高清显卡3000)。但是,如果将可视距离设为70米,则只能达到15-25 FPS。在真实的《我的世界》中,我可以毫无问题地将视距扩大到256m。所以我的问题是我应该怎么做才能使我的游戏变得更好? 我实现的优化: 仅将本地块保留在内存中(取决于玩家的观看距离) 视锥剔除(首先在块上,然后在块上) 只画出真正可见的方块面 对包含可见块的每个块使用列表。可见的块将自己添加到此列表中。如果它们不可见,则会自动从此列表中删除。通过构建或销毁相邻的块,块变得(不可见)。 每个包含更新块的块使用列表。与可见阻止列表相同的机制。 new在游戏循环内几乎不使用任何语句。(我的游戏运行大约20秒钟,直到调用了垃圾回收器) 我目前正在使用OpenGL呼叫列表。(glNewList(),glEndList(),glCallList())一类块的每个侧面。 目前,我什至没有使用任何照明系统。我已经听说过VBO。但是我不知道到底是什么。但是,我将对其进行一些研究。他们会提高性能吗?在实施VBO之前,我想尝试使用glCallLists()并传递呼叫清单列表。而是使用了千次glCallList()。(我想尝试一下,因为我认为真正的MineCraft不使用VBO。对吗?) 还有其他提高性能的技巧吗? VisualVM配置文件向我展示了这一点(仅33帧配置文件,可视距离为70米): 用40米(246帧)进行分析: 注意:我正在同步许多方法和代码块,因为我正在另一个线程中生成块。我认为在游戏循环中进行大量操作时,获取对象的锁是性能问题(当然,我所说的是只有游戏循环而没有新块生成的时间)。这是正确的吗? 编辑:删除一些synchronised块和其他一些小的改进之后。性能已经好得多了。这是我对70米的新分析结果: 我认为这很明显selectVisibleBlocks是这里的问题。 提前致谢! 马丁 更新资料:经过一些额外的改进(例如,使用for循环代替每个循环,在循环外缓冲变量,等等...),我现在可以很好地查看距离60。 我想我将尽快实施VBO。 PS:所有源代码都可以在GitHub上找到:https: //github.com/mcourteaux/CraftMania

11
击败作弊者的内存编辑器的策略-桌面游戏[关闭]
我假设我们正在谈论台式机游戏-玩家下载并在其本地计算机上运行的游戏。许多内存编辑器可让您检测和冻结值,例如播放器的运行状况。 您如何通过内存修改防止作弊?哪些策略可以有效地对抗这种作弊行为? 作为参考,我知道玩家可以:-通过值或范围搜索某些内容-搜索更改了值的某些内容-设置内存值-冻结内存值 我正在寻找一些好的。我使用的两个平庸的是: 将数值显示为百分比而不是数字(例如46/50 =健康度为92%) 一个低级类,将值保存在数组中,并在每次更改时移动它们。(例如,我没有一个int,而是一个由int组成的数组的类,并且每当值更改时,我都会使用其他随机选择的数组项来保存该值) 该游戏为离线,免费和单人游戏。 编辑:为了后代,我解决了这个问题(用C#语言),并将解决方案发布在这里,在我的博客上。
35 anti-cheat 

9
与Unity和其他工具相比,我更喜欢C / C ++:对于游戏开发人员来说,这真是太沮丧了吗?[关闭]
我们在学校有一个使用Unity的大型游戏项目。我们当中有12个人正在努力。我的老师似乎深信这是教学生的重要工具,因为它使学生从高层次到低层次看起来。 我能理解他的观点,我想知道:团结在游戏开发公司中是否如此重要?是否有很多公司因为无力使用其他东西而使用它?他的讲话就像Unity在游戏制作领域扮演重要角色一样,但我只看到它适合那些希望尽快制作游戏的小型独立游戏公司。 您认为Unity在行业中如此重要吗?它会危害C ++技能的价值吗? 这并不是说我不喜欢Unity,只是我什么都不学,我更喜欢使用Ogre或SFML来取得一些进步。 另外,我们也有C ++练习,但是这些只是理论上的练习,没什么。
35 unity 

13
声音效果如何产生?[关闭]
我和我的朋友现在正在完成我们的第一场比赛,我刚刚发现即使他可以制作一些不错的音乐曲目,他也不知道如何制作音效。例如爆炸。 声音效果如何产生?
35 sound 

11
避免色盲问题的最佳方法是什么?
大约5-10%的男性患有某种形式的色盲。最好的方法是确保您不会离开游戏中的男性人口的5-10%? 仅注意色盲并不意味着人们看到黑白。这通常意味着他们看不到绿色,并且容易将红色/绿色混淆。色盲程度以度为单位。有些形式是温和的,有些是极端的。

9
用于创建基于二维图块的地图的工具
我可以使用哪些工具来创建基于二维图块的地图? 请提供以下信息,并尝试将每个答案限制为一种工具。 名称 链接到网站 一般特征 汇出格式 您认为值得关注的其他事项
35 tools 

5
使用OpenGL(现代方式)绘制大量图块
我正在与一群人一起开发基于图块/精灵的小型PC游戏,但我们遇到了性能问题。我上一次使用OpenGL是在2004年左右,所以我一直在教自己如何使用核心配置文件,但发现自己有些困惑。 我需要每帧在屏幕上绘制250-750个48x48瓦片附近,以及大约50个精灵。磁贴仅在加载新关卡时更改,并且精灵一直在更改。一些图块由四个24x24片组成,大多数(但不是全部)子画面与图块大小相同。许多图块和精灵使用alpha混合。 现在,我正在即时模式下进行所有操作,这是一个坏主意。一样,当我们的一个团队成员尝试运行它时,他的帧率非常差(〜20-30 fps),而且当有更多的图块时,情况会更糟,尤其是当这些图块中的很多都是被切成碎片。所有这些使我认为问题在于进行绘制调用的次数。 我已经想到了一些可能的解决方案,但是我想让一些知道他们在说什么的人来运行它们,所以我不会在愚蠢的事情上浪费时间: 标题: 加载关卡后,将所有图块一次绘制到连接到大喇叭声纹理的帧缓冲区中,然后每帧绘制一个带有该纹理的大矩形。 加载关卡时,将所有图块放入静态顶点缓冲区中,并以这种方式绘制它们。我不知道是否有一种方法可以通过一次调用glDrawElements来绘制具有不同纹理的对象,或者这是否是我想要做的事情。也许只是将所有瓦片都变成巨大的巨型纹理,然后在VBO中使用有趣的纹理坐标? 精神: 通过单独调用glDrawElements绘制每个精灵。这似乎涉及许多纹理切换,但我被告知是不好的。纹理数组在这里可能有用吗? 以某种方式使用动态VBO。与上面的数字2相同的纹理问题。 点精灵?这可能很愚蠢。 这些想法中有什么明智的吗?我可以看的地方有很好的实现吗?
35 opengl 

2
如何使角色能够在墙上行走?
我正在尝试使角色像蜘蛛一样移动:鉴于上升的坡度(通常情况下,球将无法滚动),蜘蛛会慢慢爬上去。 类似地,在给定一个空中矩形平台的情况下,蜘蛛会继续前进,而不是在到达边缘时掉落,而是继续包裹在边缘上,并继续沿平台的侧面和下方向下移动(最终绕平台的外围行走)。 我研究了各种Unity 2D组件,但收效甚微。:( 我世界上大多数碰撞边界都以Collider 2D组件为标志(对受重力影响的简单球效果很好,但对于这种蜘蛛角色则效果不佳)。

3
游戏开发者为何不发布其源代码?
我想知道为什么AAA游戏的开发人员在游戏售罄且支持早已消失后才发布源代码? 当然,有此列表,您可以在其中找到许多具有可用源代码的AAA游戏。 我只是似乎不明白为什么其他公司不使用旧游戏来做到这一点?他们当然不再支持它,而且销售额微不足道。我什至不确定,如果发布资源会对游戏销量产生负面影响。 我敢肯定,如果游戏的源代码发布了,那么很多游戏,那些被gamepy的封杀注定要被社区保存下来的游戏。

1
如何应对“关卡设计蠕变”?
关卡设计蠕变是我开始所说的,当您构建一系列关卡时,会发现发生的情况是每个关卡的外观或设计都比上一个更好,或者与几个具有不同技能水平的人一起工作时,会发生什么。任由玩家玩游戏时,关卡质量会根据关卡的建立顺序而上升和下降。似乎我们在此方面花了更多的时间。 除了裁掉真正的好和坏的水平外,还有什么方法可以计划或管理生产,以使细节不会“爬升”,而我们又要反复地检查相同的工作?

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.