游戏开发

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

2
在曲线上应用笔划时如何避免自相交?
我的代码中有几个Spline2D对象,每个对象都有一个Position,Velocity和Acceleration方法,该方法在特定时间返回指定数量的向量。我一直在使用这些向量来构造几何图形以创建曲线的渐变笔触,但是我在陡峭曲线处的自相交方面遇到了问题。例如,这是发生这种情况的一条曲线: 线框:http : //twitpic.com/2zplw1/full 填充:http : //twitpic.com/2zpmnt/full 如您所见,在第二个弯曲处,内部相交,这导致了丑陋的伪影。在不引起自相交的情况下,是否有很好的算法/方法可以绘制曲线? 编辑:更多极端的例子,再加上我想要实现的模型: 线框:http : //twitpic.com/2ztwzi/full 填充:http : //twitpic.com/2ztwkt/full 理想结果(模拟):http : //twitpic.com/2ztxa8/full


1
在游戏子系统中注册游戏对象组件?(基于组件的游戏对象设计)
我正在创建一个基于组件的游戏对象系统。一些技巧: GameObject只是的清单Components。 有GameSubsystems。例如,渲染,物理等。每个都GameSubsystem包含一些指向的指针Components。GameSubsystem是一个非常强大且灵活的抽象:它代表游戏世界的任何部分(或方面)。 有在登记的机构的需要Components在GameSubsystems(当GameObject被创建和组成)。有4种方法: 1:责任链模式。每个人都Component被提供给每个人GameSubsystem。GameSubsystem决定Components要注册的内容(以及如何组织)。例如,GameSubsystemRender可以注册可渲染组件。 亲 Components对如何使用它们一无所知。低耦合。答:我们可以添加新的GameSubsystem。例如,让我们添加GameSubsystemTitles来注册所有ComponentTitle,并确保每个标题都是唯一的,并提供按标题查询对象的接口。当然,在这种情况下,ComponentTitle不应该被重写或继承。B.我们可以重组现有的GameSubsystems。例如,可以将GameSubsystemAudio,GameSubsystemRender,GameSubsystemParticleEmmiter合并到GameSubsystemSpatial中(以将所有音频,发射器,渲染Components置于相同的层次结构中并使用父相对转换)。 骗子 每次检查。效率很低。 骗子 Subsystems知道Components。 2:每个Subsystem搜索Components特定类型。 亲 性能比更好Approach 1。 骗子 Subsystems仍然知道Components。 3:在中Component注册自己GameSubsystem(s)。我们在编译时知道有一个GameSubsystemRenderer,所以让ComponentImageRender调用类似GameSubsystemRenderer :: register(ComponentRenderBase *)之类的东西。 亲 性能。没有像中那样不必要的检查Approach 1。 骗子 Components与...严重耦合GameSubsystems。 4:调解员模式。GameState(包含GameSubsystems)可以实现registerComponent(Component *)。 亲 Components和GameSubystems什么都不知道对方。 骗子 在C ++中,它看起来像丑陋且缓慢的typeid开关。 问题: 哪种方法更好,并且主要用于基于组件的设计?什么做法说?关于实施的任何建议Approach 4? 谢谢。

4
使用授权的游戏引擎是否会阻止您开源已失效的作品?
我很好奇,因为我以前的公司正在问我们(开发游戏的人)该怎么做,因为它在财务上不再可行。 我的建议是将其开源,以便人们在至少可以改进的同时仍然可以享受游戏的乐趣。 但是我们确实使用了经过许可的Torque引擎,该引擎大部分经过了重新编码/重新加工。不知道他们的许可证是否允许搬家。 (也不确定这是否是一个合适的问题)


3
创建出色的游戏预告片的提示
令人印象深刻的游戏预告片可以真正帮助您向玩家展示游戏的出色表现,但是我很难找到描述如何创建出色预告片的技巧。我想了解决定预告片长度,结构,音乐/声音和内容的最佳方法。基本上,我应该在预告片中显示游戏的哪些部分,场景应该如何组织,以及声音如何? 关于避免事情的任何建议也将是很好的;例如,我读到拼接一些视频,切换到带有文本的屏幕,切换回视频等,可能不是最好的方法。谢谢!

3
漂亮的开源游戏/渲染引擎?[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 4年前关闭。 它可能不在开放源代码的范围之内(因为没有太多希望/需要实现所有这些功能的开放源游戏),但是是否存在一个现有的开放源代码游戏或渲染引擎,其功能如下: 日/夜周期 动态天气风/雨/云/等 潮湿的表面(雨天表面看起来潮湿) 现实的水 具有定义“道路”能力的大地形 无缝的外部和内部 森林(许多树木,杂物等) 真实的照明(例如,来自火/蜡烛闪烁的光) 如果游戏引擎: 整合物理学 车辆支持 i 多人/网络能力..也许mmo 语音识别 等等

8
推荐用于UI密集型策略游戏的带有2D GUI的游戏引擎[关闭]
按照目前的情况,这个问题并不适合我们的问答形式。我们希望答案得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 7年前关闭。 是的,这是另一个推荐的游戏引擎请求;“扭曲”是我在做策略游戏,除了精灵,输入控件的动画和抽象之外,它还必须具有对相当复杂的控件(如滚动条,选择框,按钮等)的GUI支持。 我已经使用各种GUI库尝试了XNA,但是问题是这些库尚未“完成”。我只是想知道是否还有其他引擎可以查看?
11 strategy 

3
在游戏开发中最常见的样条曲线是什么?
在此列出在游戏开发中发现的最常见的样条曲线,该方法需要对曲线进行插值的点数以及如何构建允许对曲线点进行插值的数据类型。示例:贝塞尔曲线,B样条曲线,三次样条曲线等。 PS:我将其作为社区Wiki,以便我们可以列出各种样条插值。


4
如何为游戏开发比赛做准备?
Ludum Dare 18即将到来,我将参与其中。过去,我还参加过其他一些短期比赛,但这是我的第一个大型比赛(也是我的第一个个人比赛)。我为此感到非常兴奋,但是我想知道是否有任何技巧可以为这种事情做准备,以及有关在比赛中该做什么的建议。所以... 您如何最好地为短期游戏竞赛做准备或参加? 您的答案可能只针对Ludum Dare,但我实际上是在谈论任何游戏竞赛,只要它是短期的 -而不是一个月的竞赛,您可以随意开发和发布游戏;我说的是高压,及时完成,整夜的比赛。在全球游戏果酱适合在这里为好,如果你参加了今年年初。 同样,在一群人的背景下(每个人都在自己的个人游戏中工作)的任何技巧都是不错的;在48小时的大部分时间里,我将在学校的游戏开发俱乐部工作(只有少数几个人,而不是一群人)。

12
在某些情况下,全局变量/子集在游戏开发中有用吗?[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 4年前关闭。 我知道拥有全局变量或单例类会创建很难测试/管理的案例,而我在代码中使用这些模式的工作已陷入困境,但常常需要交付。 那么在游戏开发中是否存在全局变量或单例实际上有用的情况?

4
是否有着色器目录?[关闭]
按照目前的情况,这个问题并不适合我们的问答形式。我们希望答案得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 7年前关闭。 有很多教程可以学习GLSL,Cg,HLSL ...,其中包括经典示例,如凹凸贴图,卡通阴影... 但是,是否存在着色器目录? 我可以共享着色器的网站 按名称,描述和实现搜索着色器
11 web  shaders 

3
如何使用Google App Engine进行客户端/服务器游戏(寻找教程。)
(注意:这是我在SO上提出的一个问题的副本,暂时忘记了GameDev <挂在头上的耻辱>。回答一个后,我会将其链接回另一个。) 我正在尝试使用Google Apps Engine作为我的后端(规范要求)来做我的第一个客户端/服务器游戏。我已经完成了教程(Java),但这一切似乎都以浏览器为中心。 基本上,我希望我的(移动设备,无关紧要)应用程序能够: 允许用户创建游戏帐户(不是他们的Google帐户!) 使用该帐户登录。 按下“ MARCO”按钮将帐户识别的请求发送到服务器。 从服务器获取“ POLO”响应。 作为数据(例如JSON对象,XML-DOM或类似数据),而不是网页。 谁能给我指出一个好的教程/示例项目/详细阅读以帮助我实现这一目标?我很确定,一旦我能够正常工作,我就可以完成所有其他工作-但我遇到了“卡在起始门”的问题,无法进行基本的帐户登录,并且非HTML数据交换。 谢谢!

2
使用Box2D多边形“ Set()”函数?
我正在使用Box2D物理引擎。box2D有一种形状,称为b2PolygonShape。 在此类中,您可以创建多边形。还有一个Set()函数,该函数接受点数组和顶点数。 Box2D有这样的示例: // This defines a triangle in CCW order. b2Vec2 vertices[3]; vertices[0].Set(0.0f, 0.0f); vertices[1].Set(1.0f, 0.0f); vertices[2].Set(0.0f, 1.0f); int32 count = 3; b2PolygonShape polygon; polygon.Set(vertices, count); 这可行。但是,当我尝试练习并弄混此功能时,我这样做是: b2Vec2 vertices[4]; vertices[0].Set(0, 0); vertices[1].Set(0,10); vertices[2].Set(10,10); vertices[3].Set(10,0); int32 count = 4; b2PolygonShape polygon; polygon.Set(vertices, count); 当我编译并运行它时,它在Set()函数之后崩溃了。这不会创建正方形吗? 同样在控制台中,我得到了: Assertion failed: s > 0.0f …
11 2d  physics  box2d 

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.