游戏开发

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

2
关于开放世界中的阴谋的文章
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 4年前关闭。 关于开放世界游戏设计和情节的文章很多。但是你们是否遇到过有关在开放世界游戏中设计引人入胜的情节的文章或博客条目?我的意思是什么?在TES:Morrowind中,您将被介绍给机械师,并在前5分钟内获得“主要任务”,然后您就可以自由地去学习,杀死,做任何想做的事情。我已经花了数百个小时来玩游戏,但是我从来没有做过“主要任务”,而且我敢肯定很多人处在相同的情况下,无论是Morrowind,Oblivion还是Skyrim。也许这是TES游戏的强大力量,也是对RPG出色表现的真实证明,但是对我而言,以设计师的身份思考,这似乎是一场巨大的设计失败。也许事实是没有实际的威胁需要处理, 我脑海中浮现出一个游戏主意,我想创建一个动作平台游戏,但是“关卡选择”将是您在MMO中​​发现的开放式世界风格“独角兽”。这是一个模糊且未开发的想法,所以不要专注于它,我没有对此设计进行过多思考,但是出现了一个问题,总的来说,我无法弄清楚如何使玩家关心开放世界方面(例如漫游,掠夺聚会,进行长手套奔跑以获取一些特殊装甲,从敌人那里清除水源等),同时“强迫他”完成游戏,像是用胡萝卜坚持道路。在FF游戏中,有些“疯狂”的人会在过场动画之间四处搜寻,但我的目标是普通观众。我想创建一个微妙的系统,在整个游戏中引导人们达到目标,同时为他们提供以他们想要的任何方式获得权力的选择。这当然可能是不可能的,但是问问并没有什么坏处。 我正在寻找有关此事的文章或沉思。不是解决方案(因为没有设计文档,在这一点上没有直接解决方案很重要),只是其他人的想法,可能是其他游戏的参考。

4
有没有办法提高n个对象系统的碰撞检查效率?
我正在制作一个包含许多屏幕对象的游戏,其中一个是玩家。我需要知道哪些对象在每次迭代中都发生冲突。 我做了这样的事情: for (o in objects) { o.stuff(); for (other in objects) if (collision(o, other)) doStuff(); bla.draw(); } 这个有O(n ^ 2),我被告知是不好的。我如何更有效地做到这一点,甚至有可能吗?我在用Javascript编写,n通常小于30,如果保持不变,会不会有问题?

3
在两点之间的线上获取点
我正在用JavaScript制作一个简单的太空游戏,但现在我遇到了有关向量的难题。 游戏视图在2d网格上自上而下。当用户单击网格时,太空飞船将飞到该地点。 因此,如果我有两点要点: { x : 100.2, y : 100.6 }; // the ship { x : 20.5, y : 55.95 }; // the clicked coordinates 如果游戏循环以每秒60次迭代的速度滴答作响,并且期望的飞船速度为每滴答0.05点(每秒3点),那么我如何为游戏循环的每个滴答计算新的飞船坐标集? ps:我不想考虑惯性或影响船的多个向量,我只想让船停下它正在做的任何事情(即以一种方式飞行)并以静态速度移动到单击的坐标。

1
如何在Windows中从源代码构建和运行Doom 3?
我正在尝试从开源版本构建并运行Doom 3,以便更好地了解引擎的工作原理。不幸的是,我无法使用自己构建的二进制文件运行游戏。我只是获得控制台,但无法运行实际的游戏。 这是我所做的: 从游戏库下载了源代码 下载并安装DirectX SDK 从Steam购买,下载并安装Doom 3 使用VS2010 SP1在新文件夹中打开解决方案 建立项目 跑了 默认情况下,doom解决方案在调试设置上将命令行设置为引用默认的Steam Doom3安装路径。这是用于从vstudio运行项目的默认命令行参数。 +设置fs_basepath“ C:\ Program Files(x86)\ Steam \ steamapps \ common \ doom 3” +设置com_allowConsole 1 +设置si_pure 0 这样做导致控制台打开并显示以下日志: DOOM 1.3.1.1304 win-x86 Jan 23 2012 00:50:27 1596 MHz Intel CPU with MMX & SSE & SSE2 & SSE3 …
9 c++  windows 

3
为什么不能将布尔值打包并对齐到D3D常量缓冲区中?
好吧,我很难将布尔值打包并对齐到hlsl常量缓冲区中,我不确定为什么。 这是hlsl中的缓冲区 cbuffer MaterialBuffer : register(b1) { float3 materialDiffuseAlbedo; float materialSpecularExponent; float3 materialSpecularAlbedo; bool isTextured; }; 这是用c ++编写的 struct GeometryBufferPass_MaterialBuffer { XMFLOAT3 diffuse; float specularExponent; XMFLOAT3 specular; bool isTextured; }; 我试图以各种方式移动布尔并填充结构,但是没有运气。正确的方法是什么?

1
为什么V8不能与SDL线程一起运行?
我能够将V8与我的游戏进行编译和链接,并且代码解释正常。但是我想划分代码,游戏循环应该在一个线程中存在,脚本引擎应该在游戏循环的第二个线程中运行。我正在使用SDL,因此尝试使用此代码生成新线程 SDL_CreateThread(ScriptingEngine::SpawnMain, NULL); 以下代码是我的测试脚本引擎: namespace ScriptingEngine { v8::HandleScope handleScope; v8::Handle<v8::ObjectTemplate> global = v8::ObjectTemplate::New(); v8::Persistent<v8::Context> context; void Setup() { // TODO: bind functions to global // ... context = v8::Context::New(NULL, global); } int SpawnMain(void *arguments) { v8::Context::Scope scope(context); v8::Handle<v8::Script> script = v8::Script::Compile( v8::String::New("'Hello World'") ); v8::Handle<v8::Value> result = script->Run(); context.Dispose(); return …

7
我可以使用受版权保护的精灵进行演示吗?
我有一个简短的问题,希望得到大家的意见。 我正在为自己的简历制作2D演示游戏,我想在网上发布该简历。我正在以程序员的身份申请,所以我真的没有自己的艺术。我正计划使用其他游戏中的精灵表和图块集,以便在演示中仅创建一个或两个关卡。我将在屏幕底部表示感谢,并声明这些精灵不是我自己的。 这是一个好主意,还是在非法意义上可能具有潜在的“危险”?

3
生成随机池或湖泊
我已经实现了可以绘制任何多边形的函数,但是我无法生成模仿湖泊圆角的平滑形状。我尝试生成两个圆并连接边缘,但是没有足够的变化或平滑度。是否有人有可能产生这样的形状的指针或想法?

2
如何解决两个碰撞体的渗透
我已经实现了简单的3D游戏物理引擎。我已经有适当的碰撞检测功能,现在我正在尝试找出碰撞响应部分。我正在使用基于脉冲的方法来计算碰撞后的速度。这工作得很好,但是并不能完全阻止物体相互渗透。因此,我还有其他代码来解决渗透问题。目前,我只是沿着接触法线将实体移动了穿透深度的一半-第一个实体沿接触法线的方向移动,第二个实体沿相反的方向移动。 在大多数情况下都可以,但是有一些不良影响。例如,想象一个狭窄的走廊和一个物体在其中移动。如果对象撞到走廊的一堵墙,则穿透分辨率会将其移到相对的墙,然后在下一帧中移回第一堵墙,依此类推。效果是物体在墙壁之间确实非常快地振动,这不是很漂亮。 所以我的问题是,是否有更好的方法来解决渗透问题?也许不移动物体,只是以某种方式调整它们的速度(除了脉冲计算),以使它们停止彼此相对移动,并且穿透力在接下来的两帧中自行解决。我只是在猜。有任何想法吗?

1
如何从样条曲线生成3D赛道?
我想围绕描述其形状的样条线生成3维赛道。 这是一个说明性视频。 轨道应该是一条沿着3D样条线扫过的无尽隧道,并抛出一些障碍。到目前为止,我最好的想法是沿样条线放一个圆形。 我还希望获得一些指向如何管理几何的指针,即如何从放样操作创建几何,如何在内存,碰撞和纹理化中管理其“生命周期”。

3
运输游戏图形(例如许多小的BMP文件)时的最新技术水平是什么?[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使它成为Game Development Stack Exchange 的主题。 去年关闭。 我们有很多小BMP文件,如果将它们组合在大TAR / ZIP /任何文件中,我认为它们会更容易复制。 运输游戏图形的最新状态是什么? 我们正在使用C#,并且知道zlib。只是集思广益,看看是否有比zlib更好的解决方案。

2
学习如何进行经验研究可以帮助游戏开发人员吗?
我知道这可能是一个奇怪的问题,但我有机会参加研究生课程,该课程教授如何进行实证研究。 过去,我上过人机交互课程,进行实证研究很重要,以找出用户如何与您的应用程序交互并研究可以做出哪些改进。我可以看到在开发游戏时进行相同类型的经验研究可能会有用。 同样,我们可以选择我们将进行的关于计算机图形学或游戏开发的经验研究类型。这样的课程对于想成为独立游戏开发者的人来说可能会有所帮助吗?

2
借助大亨风格的游戏吸引用户的注意力
我正在开发一款大亨游戏,并且大多数游戏都属于“类型”游戏,因此某些游戏中的事情只是花时间。赚钱,等待事情发生等等。对于移动游戏(iOS,Android),我如何保持这种娱乐性。在不特别谈论我的游戏的情况下,白天周期/某些事情在某些时候发生(我可以更笼统吗?...) 有不同的可能性,而且我见过一些可能具有快进按钮或某些功能的按钮,以免使其变得无聊。(我说的是一个有很多事情要做的大亨游戏;您不能像模拟城市之类的东西一直在忙)。我是否只是在某些时间生成了通知,以告知用户“一天结束”或“达到通电状态”?还是会变得太烦人? 对于让用户保持兴趣的任何想法,我都持开放态度,但这实际上不是一款可以持续玩几个小时的游戏。没有足够的工作要做,不需要那么多的微观管理。

2
Lua与Python作为XNA / C#平台的脚本语言的优缺点是什么?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 4年前关闭。 我正在考虑将一种古老的想法付诸实践。该游戏的核心点是游戏环境和对象的功能自定义的可能级别(例如修改太空船武器的行为)。为此,游戏需要编写脚本。我也不打算将其商业化,这对我来说只是一个有趣的编程挑战。 由于我主要是.NET专家,因此我将在游戏本身中使用XNA / C#。对于脚本,我考虑使用Python或Lua。我以前有使用Python的经验,没有反对它的语言。另一方面,Lua对我来说几乎是全新的,除了我在这里和那里所做的一些魔兽世界插件的小改动之外,它看起来很有希望。所以这是我的问题: Lua与Python作为XNA / C#平台的脚本语言的优缺点是什么? XNA / C#中的其中之一是否更容易使用?与XNA / C#一起使用时,其中之一具有某些特定的优点或缺点吗?为什么要为XNA / C#推荐一个?
9 xna  c#  scripting 

3
libgdx的优缺点
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 6年前关闭。 我已经有一段时间从事Android开发,正在考虑进入游戏领域。在寻找游戏开发框架时,我认为libgdx提供了非常友好的文档和功能。因此,如果没有大的障碍,我想使用它。 但是,当我尝试查看有多少开发人员使用此库时,我发现的库并不多。这个库有什么问题吗?换句话说,我想从任何经验丰富的开发人员那里了解其优缺点。 更新:在查看了其文档并尝试使用libgdx构建简单的游戏之后,我决定选择它,因为其文档足够好并且社区非常活跃。我最喜欢的是,它提供了一堆演示游戏,我可以从中学到很多东西。
9 android  libgdx 

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.