游戏开发

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

3
什么是标准C#/ Windows Forms游戏循环?
当用C#编写使用原始 Windows窗体和某些图形API包装器(如SlimDX或OpenTK)的游戏时,应如何构建主游戏循环? 规范的Windows窗体应用程序的入口点看起来像 public static void Main () { Application.Run(new MainForm()); } 同时可以做到一些什么是挂钩neccessary 的各个事件Form类,这些事件没有提供明显的地方放的码位进行不断定期更新游戏逻辑对象或开始和结束渲染帧。 这种游戏应该使用什么技术来实现类似于规范的游戏 while(!done) { update(); render(); } 游戏循环以及最小的性能和GC影响?

7
游戏开发需要学习哪些非显而易见的主题?[关闭]
我从事游戏已经有10年了(从QBasic到C#以及介于两者之间的所有游戏)。我需要开始将我的技能扩展到不同的领域。我还应该读什么其他令人惊讶的主题? 预期的主题将包括通常的嫌疑人: 您选择的编程语言 脚本语言 源代码控制 项目管理(或敏捷) 图形API 也许有一些AI(A *寻路?) 物理(射弹物理) 单元测试(自动测试) 我正在寻找更深奥的话题;的事情,你不要指望需要知道,但如果你这样做也认识他们,他们有所作为。其中可能包括: 美术技能(绘画,照明,着色,布局等) 自然语言处理 声音的物理性质(声波,多普勒效应等) 就我个人而言,我觉得拥有技术美术技能(例如,如果您只能提出想法就可以制作出体面的艺术品;或者遵循Photoshop / GIMP教程)对我来说最有利。 这并不是一个开放性的问题;我正在寻找可以帮助您的特定技能,您希望短期和长期都能从中受益。
32 education 

8
MMO聊天的亵渎过滤器
我们正在使用Smartfox服务器开发MMO。目标受众是7 -12岁的孩子。 此MMO中有一个全局聊天选项。 在用户输入文字后,无论他在文本框中键入什么内容,都会在其按下回车键后显示在用户头像旁边。 我们想从此聊天中过滤出辱骂性语言/亵渎行为。 我们可以捕获聊天并阅读文本。问题在于获取亵渎本身的清单。 我们的问题是 哪里会详尽列出所有亵渎行为? 在类似情况下采用什么方法过滤掉这些?
32 mmo 

7
为什么游戏要求屏幕分辨率而不是自动调整窗口大小?
在我看来,在3d或2d屏幕上实施灵活的,响应式的UI布局会更加合乎逻辑,可重用且易于使用,然后可以在任何屏幕分辨率下运行。 某些现代游戏会自动检测屏幕分辨率并调整游戏分辨率,但是更改分辨率的选项仍保留在设置中。 为什么会有这个选项? 我的猜测是,这是为旧机器提供一种方法,即通过渲染较少的图形并仅在屏幕上拉伸它们来提高性能,但是肯定有更好的方法来提高性能(例如,选择不同的纹理和模型质量) 。

5
如何使空间易于识别并易于定位?
我正在考虑制作一个在太空中进行游戏的游戏,该游戏将包含非常大的,程序生成的游戏世界(许多恒星,行星以及您拥有的东西)。但是,我预见到一个大问题:宇宙空间几乎没有特征。到处几乎都是相同的-星星的黑色空虚。这显然是不好的。大型游戏世界在不同的地方必须有所不同,以便玩家可以了解自己的位置以及如何获得所需的位置。我该怎么做才能在太空中找到不同的,可识别的地方? 我正在设想的游戏是2D(有点像Space Rangers),其中的空间图片仅在背景中使用。但是,我对2D或3D的任何技术都感兴趣。 澄清 我在这里需要的不仅是在游戏空间中定向的能力,而且还需要在不同的位置放置游戏,以便让游戏感觉更有趣。举个例子:想象一下任何一款太空交易游戏(例如Elite或X或其他)。您访问了不同的星级系统,但它们大体相同:维修/加油的码头,交易的商店,执行任务/合同的酒吧...有些Tau Ceti III在名称上与KZ'ish VI不同。 我相信玩家访问的每个地方,或者至少大多数地方应该彼此不同,并且应该立即识别,以便玩家在探索宇宙时有一种惊奇和发现的感觉。当然,使每个星系都具有自己的视觉样式,使其成为成熟的3D水平是可行的,但这对于昂贵的游戏来说也是昂贵的。还有其他方法可以实现这一奇迹和发现吗?

3
您如何在基于光栅的图形内容中实现分辨率独立性?
那些不幸无法在锁定平台规格上运行的游戏(例如掌上电脑)需要在各种分辨率格式和宽高比上运行。 在3D游戏中,您可能具有基于栅格图形的HUD或菜单GUI,而在2D游戏中,您可能具有一堆四边形,它们是精灵的容器。 所以我的问题是,您如何处理各种分辨率和纵横比下的设计和操作内容?假设您有一个精灵字符,它是300x400像素的精灵,并被平铺的水平包围。在不同的分辨率/纵横比下,您将看到完全不同的FOV。或者,如果您具有HUD或GUI菜单,则希望将某些东西相对于屏幕放置在相同的位置,并且尺寸相同。但是,图形源是栅格位图,而不是矢量。 显然,问题已经解决了很多次。我很想听听到目前为止对您有用的各种方法。您是否保留了任意尺寸不可知的“像素”单位,并通过基于分辨率和纵横比的公式或其他方法将其神奇地转换为所需的尺寸? 编辑: 因此,结论是枚举您的宽高比。方面的最低组合:分辨率是您将重要内容设计的一种。一个安全的地方,如果你愿意的话。相同的长宽比,但更高的分辨率是简单的缩放问题。艺术内容旨在实现最高分辨率。较大的宽高比仅显示更多的级别/ FOV,并且所显示的信息并不重要,安全区域中的信息并不重要。我做的像这张照片。
32 2d  sprites  gui 


9
平衡玩家与怪物:升级曲线
我编写了许多具有RPG般的“升级”的游戏,在该游戏中,玩家获得了杀死怪物/敌人的经验,并最终达到了新的水平,其统计数据不断增加。 您如何在玩家成长,怪物力量和难度之间找到平衡?这个频谱的极端是: 玩家真正快速升级并毫不费力地吹走怪物 怪物非常强大,即使处于低水平,也很难击败 我还尝试过一种使敌人相对于玩家成为敌人的奇怪情况,即,敌人总是处于玩家属性的50%或100%或150%(因此要求玩家使用其他技巧来代替残酷力量来成功)。 但是,余额在哪里,又如何找到呢? 编辑:例如,我希望听到以下内容: 高平衡而不是低平衡(200 HP和20 str比20 HP和2 str更容易平衡) 查看最简单与最难的怪物,并查看范围内的东西

5
将实例或类用于游戏资源(木材,铁,金)
因此,我正在制作一个游戏,您可以在该游戏中将船只发送到地点以买卖木材,铁,黄金等资源。 现在我想知道如何在游戏中创建资源。我想出了两种选择 为每个资源创建一个类: public class ResourceBase { private int value; // other base properties } public class Gold : ResourceBase { public Gold { this.value = 40 // or whatever } } 创建资源类的实例 public class Resource { string name; int value; public Resource(string name, int value) { this.name = name; …

7
为什么游戏有消耗品?
沿线的思考这个问题,并且也真棒使用一般的比喻。游戏设计师为什么要在他们的游戏中包含消耗品? 《真人快打11》让我开始思考...为什么要包括消耗品,这些消耗品会让您在战斗中一臂之力? 我正在寻找关于消耗品会增加游戏玩法的具体答案的问题,无论是那些可以用真钱购买的东西,还是您只是通过玩游戏而获得的东西,或者是限量提供还是无限提供的数量。

2
随机/程序与先前制作的关卡生成
使用随机/过程生成与预制级别相比有哪些优点/缺点? 除了项目可能难以在随机生成的地形中分布以及生成的地形看起来很奇怪之外,我几乎没有想到。 但是,以前制作的关卡的缺点是我需要制作一个关卡编辑器。我无法决定使用哪种更好。 答案是否可以包括程序生成和预制生成的代码/示例以及优点/缺点?


1
在现代游戏中,双重或三次缓冲解决了什么问题?
我想检查一下我对使用双(或三)缓冲的原因的理解是否正确: 刷新频率为60Hz的监视器每秒可显示60次。如果监视器刷新监视器显示,则他将像素更新为像素,将行更新为行。监视器从视频存储器中请求像素的颜色值。 如果我现在运行一个游戏,则该游戏会不断操纵该视频内存。 如果此游戏不使用缓冲策略(双缓冲等),则可能会发生以下问题: 监视器现在正在刷新其监视器显示。此时,显示器已经刷新了上半部分显示器的显示。同时,游戏用新数据操纵了视频存储器。现在,监视器访问下半部分监视器,显示来自视频存储器的新操作数据。问题可能是撕裂或闪烁。 我对使用缓冲策略的案例的理解正确吗?还有其他原因吗?

12
当目的地无法通行时,如何使A *更快完成?
我正在制作一个简单的基于图块的2D游戏,该游戏使用A *(“ A星”)寻路算法。我一切正常,但是搜索存在性能问题。简而言之,当我单击不可逾越的图块时,该算法显然会遍历整个地图以找到通往不可逾越的图块的路线-即使我站在它旁边。 我该如何规避?我想我可以减少对屏幕区域的寻路,但是也许我在这里遗漏了一些明显的东西?

6
我可以(安全地)认为玩我的游戏的人有鼠标中键吗?
标题基本概括了所有内容。 我目前正在写桌面游戏,休闲玩家可能不会玩。因此,我的期望是,几乎每个用户都将很可能已经拥有带有滚轮+按钮的鼠标。真的吗? 这个问题是针对“游戏玩家”的-我不在乎祖母的笔记本电脑没有该按钮。 (当然,我知道我应该考虑一个允许更改输入设置以使游戏可玩的系统-即使没有第三个鼠标键也是如此。)

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.