Questions tagged «game-development»

游戏开发是由游戏开发人员进行的,游戏开发人员的范围可能从单人到大型企业。主流游戏通常由发行商提供资金,并且需要几年的时间才能开发出来。独立游戏可以花费更少的时间,并且可以由个人和小型开发商廉价地制作。近年来,随着新的在线发行系统和移动游戏市场的增长,独立游戏行业得到了发展。

10
编写国际象棋引擎的最佳方法?[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 6年前关闭。 我是国际象棋爱好者和程序员。我最近决定开始使用我的国际象棋和编程知识来制作国际象棋引擎。所以这是我的问题: 编写国际象棋引擎时应采用哪种语言(我熟悉Java,C ++和Python)和方法? 一点指导将不胜感激。 编辑: 所以我决定用JavaScript制作它。我从github 下载此 Chess UI,现在一切就绪!我的第一步是为此写法律动议。那么有人能指出我正确的方向吗?(我是jQuery的新手,但是有很多编程经验)。 PS:我并不是想制造一个非常高效的引擎(我知道它的方法太难了),我只是想熟悉该过程并在此过程中学习一些新技术。

9
您工作了几个小时没有得到报酬吗?[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,以使它成为软件工程堆栈交换的主题。 7年前关闭。 因此,我正在阅读有关应用程序与游戏开发的先前文章: 如果您选择游戏开发与应用程序开发,您会选择哪个? 这使我进入了这个网站:EA:人类的故事 其中很多都谈到了开发人员每周工作约85个小时,而没有加班费或其他任何事情。刚获得40小时的报酬。对于大多数软件公司来说这是正常的吗?我的意思是,我在哪里工作,我只是入门级人员,但我会加班,任何超过40小时的时间都被认为是这个时间。但是,这让我开始想“我该死”。我的空闲时间对我很重要。但是,在大多数软件公司中这种情况司空见惯吗?还是对某些类型(游戏开发等)稀有? 因为这让我很害怕! 就像我知道必须为项目投入一些额外的时间...但就像80!这是荒谬的。

7
游戏编程:C#还是C ++?[关闭]
按照目前的情况,这个问题并不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 6年前关闭。 已锁定。该问题及其答案被锁定,因为该问题是题外话,但具有历史意义。它目前不接受新的答案或互动。 我已经决定我真正想要做的是游戏编程。因此,问题是,作为一个想学习自学编程的18岁孩子,C#和C ++之间最适合的编程语言是什么?(我应该声明我不关心Unix,因为我相信Windows仍将是使用最多的OS) 我知道C ++的基础知识,但不了解C#。我知道C ++有更多的教程指南,dll和类似的东西,而C#则没有,但是学习和使用一个人来开发程序要容易得多,但是即使程序被混淆,我也已经读过很容易找到它的来源。 好吧,我有点想先关注基础知识,我必须说我偏爱C ++,只是因为它对我来说更合适,但我必须考虑我一个人工作。因此,即使我喜欢它,也不是最好的选择。 我真的不确定要去哪一个,我已经在各种网站上阅读了很多线程,而且看来C#比C ++越来越流行。但是,是的,我也指定我要进行游戏编程。因此,我需要知道一些不仅是“由于C.没有C ++,因为.net内存处理而使C#更容易”的更好的要点,因为我无法找到它。

6
如今,游戏开发使用了哪些技术?[关闭]
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 7年前关闭。 每当我在在线论坛上问有关游戏开发的问题时,我总是会得到一些建议,例如学习画线算法,位级图像处理和视频解压缩等。 但是,以《战神3》之类的游戏为例,我很难相信可以使用如此低级的技术来开发这些游戏。 此类游戏的绝对威力无视任何可理解的(对我而言)编程方法。 除了游戏硬件,现在确实是个怪物。因此,有理由认为开发人员将在更高的抽象水平上工作。 游戏行业中最新的开发方法是什么?一个由30-35个开发人员组成的团队(其中大多数是管理和市场营销人员)如何能够制作出令人难以置信的游戏? 如果问题看起来太笼统,您能否解释《战神3》的体系结构?或者您将如何制作克隆?我认为应该客观地负责。

3
克里斯·索耶(Chris Sawyer)用汇编语言编写大多数过山车大亨将涉及多长时间以及哪种类型的复杂性?
关于这个问题,我还有另一个问题…… 克里斯·索耶(Chris Sawyer)用汇编语言编写大多数过山车大亨将涉及多长时间以及哪种类型的复杂性? 为了指定并分解这个问题,我感兴趣; 您估计克里斯大约要花多少工时(有一个猜测)?或者,换句话说,用C / C ++编写整个程序,给出近似的汇编程序编码小时数百分比。 熟悉汇编程序的程序员是否会认为这对于如此低级的语言抽象来说是一项过于复杂的任务?除了性能优势外,这还只是克里斯拥有的一种奇特的自然能力,还是值得学习的技能?我很感兴趣,如果人们认为复杂性/性能值得值得(为了编写)学习汇编程序,或者如果您在汇编程序方面有很多天生的技能(大概是通过使用硬件工作),那么这仅仅是“值得”吗? /硬件驱动程序/电子设备/等)。

5
Java是跨平台游戏的不错选择吗?[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使它成为软件工程堆栈交换的主题。 6年前关闭。 我正在寻找用Java创建游戏,并希望它可以在Windows,Linux和Mac上运行。我很确定C#是一个不好的选择,并且我没有足够的C或C ++经验。我想远离Flash。因此,Java对我来说是一个不错的选择吗?通常,我使用C#,并认为Java是相似的,因此我认为学习起来并不难。但是足够快吗?有没有比Java更适合我需要的语言?

2
在进行游戏开发时,软件测试是否有所不同?
我在阅读本文对一般和游戏开发软件开发之间的差异,作者提出了一些好点的关于软件测试,并指出,例如,该 ...游戏开发人员不愿使用自动化测试,因为面对游戏设计师不断变化的创意需求,这些测试迅速过时。 因此,这种阅读使我想到,当我们处理/测试游戏时,在软件测试中还有哪些其他方面应该与众不同或特别?有人对此有经验吗,或有人听到过有关此事的其他信息?

2
扩展脚本是否应该在沙箱中运行?
特别是,这是关于用lua(luajit-2.0)编写的游戏扩展的。我正在考虑是否应该限制这些脚本可以做什么,并得出一个结论,我可能不应该这样做: 很难正确。听起来很傻,但是我的沙箱很有可能最终还是漏水。 我唯一想到的好处就是在运行第三方脚本时为用户提供某种安全感。 不利之处在于,它对于扩展编写者来说是非常令人讨厌的。也就是说,就目前而言,我本人(游戏内容将主要编写脚本)。 我现在问这个问题的原因是,在我真正拥有任何可展示的东西之前,尽早添加沙箱很容易,但是也会对我自己施加恼人的限制。但是,如果我先继续使用它,然后再决定我确实需要沙箱,那我会遇到问题(我要么不得不重写已经存在的脚本,要么引入某种形式的信任管理系统这似乎比它的价值还要麻烦)。

3
使用Scala和LWJGL的简化游戏的函数式编程方法
我是一名Java命令程序员,我想了解如何基于功能性编程设计原则(特别是引用透明性)生成简单版本的Space Invaders。但是,每当我尝试考虑一种设计时,我都会迷失在极端可变性的泥潭中,而这种可变性是函数式编程纯粹主义者所避免的。 为了学习函数式编程,我决定尝试使用LWJGL在Scala中创建一个非常简单的2D交互式游戏Space Invader(注意缺少复数形式)。以下是基本游戏的要求: 用户在屏幕底部分别通过“ A”和“ D”键向左和向右移动 用户发射的子弹由空格键直接向上发射,两次射击之间的最小间隔为0.5秒 两次射击之间的随机时间为0.5到1.5秒,直接发射外星飞弹 在原始游戏中故意遗漏的是WxH外星人,可降解的防御屏障x3,屏幕顶部的高速飞碟船。 好的,现在到实际的问题域。对我来说,所有确定性部分都是显而易见的。那些不确定的部分似乎阻碍了我思考方法的能力。确定性部分是子弹一旦存在的轨迹,外星人的连续运动以及由于击中玩家的船或外星人(或两者)而引起的爆炸。对我来说,不确定的部分正在处理用户输入流,处理用于确定外来子弹射击的随机值以及处理输出(图形和声音)。 这些年来,我可以做(并且已经做过很多)这类游戏。但是,所有这些都来自命令式范式。而且LWJGL甚至提供了一个非常简单的Java版的“太空侵略者”(我开始使用Scala作为Java(不带分号)将其迁移到Scala)。 以下是围绕该领域讨论的一些链接,似乎没有一个人以Java / Imperative编程人员会理解的方式直接处理这些想法: 纯功能复古游戏,第1部分,詹姆斯·海格(James Hague) 类似的堆栈溢出帖子 Clojure / Lisp游戏 Haskell游戏堆栈溢出 Yampa(在Haskell中)功能响应式编程 It appears that there are some ideas in the Clojure/Lisp and Haskell games (with source). Unfortunately, I am not able to read/interpret the code into mental models …

4
为游戏创建基于行为/组件的系统
背景 我将游戏开发作为一种业余爱好,并且正在寻找一种更好的设计方式。目前,我正在使用一种标准的OOP方法(我从事企业开发已经8年了,所以很自然)。以“坏蛋”为例 public class Baddie:AnimatedSprite //(or StaticSprite if needed, which inherit Sprite) { //sprite base will have things like what texture to use, //what the current position is, the base Update/Draw/GetInput methods, etc.. //an AnimatedSprite contains helpers to animated the player while //a StaticSprite is just one that will draw …

9
获得数学学位对游戏开发有帮助吗?[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,以使它成为软件工程堆栈交换的主题。 4年前关闭。 我距离获得系统工程学位还差两个月,也就是说,我学会了如何使用托管语言进行编码和良好编码。 我进入这个职业的唯一原因是因为我想创建视频游戏。我现在知道,利用当前的技能,我将无法创建自己脑海中的某些事物。 获得纯数学学位可以帮助我实现这一目标吗?

2
电子游戏编程通常与物理学有关吗?
我知道这显然不适用于某些游戏,扫雷,纸牌游戏等。但是,任何涉及模拟现实世界环境的游戏怎么办?显然,这些游戏具有某种形式的物理工程师为图形提供动力。 对于像我这样不喜欢物理但喜欢视频游戏的人来说,我是否有机会在不喜欢物理的情况下参与诸如此类的视频游戏的开发周期?

1
OOP ECS与纯ECS
首先,我知道这个问题与游戏开发主题相关,但是我决定在这里提出这个问题,因为它实际上归结为一个更一般的软件工程问题。 在过去的一个月中,我阅读了很多有关实体组件系统的信息,现在对这个概念相当满意。但是,似乎有一个方面似乎缺少明确的“定义”,并且不同的文章提出了根本不同的解决方案: 这是ECS是否应该破坏封装的问题。换句话说,其OOP风格的ECS(组件是具有状态和行为的对象,它们封装了特定于它们的数据)与纯ECS(组件是c样式的结构,仅具有公共数据,并且系统提供了功能)。 请注意,我正在开发框架/ API /引擎。因此,目标是无论使用它的人都可以轻松扩展它。这包括添加新类型的渲染或碰撞组件之类的东西。 OOP方法的问题 组件必须访问其他组件的数据。例如,渲染组件的draw方法必须访问变换组件的位置。这将在代码中创建依赖项。 组件可以是多态的,这进一步引入了一些复杂性。例如,可能有一个Sprite渲染组件,它会覆盖渲染组件的虚拟绘制方法。 纯方法的问题 由于必须在某个地方实现多态行为(例如,用于渲染),因此它只是外包给了系统。(例如,精灵渲染系统创建一个继承渲染节点的精灵渲染节点,并将其添加到渲染引擎中) 系统之间的通信可能很难避免。例如,碰撞系统可能需要根据任何具体的渲染组件计算出的边界框。这可以通过让他们通过数据进行通信来解决。但是,这会删除即时更新,因为渲染系统将更新边界框组件,然后碰撞系统将使用它。如果未定义调用系统更新功能的顺序,则可能导致问题。存在一个事件系统,该事件系统允许系统引发其他系统可以订阅其处理程序的事件。但是,这仅适用于告诉系统该怎么做,即无效函数。 还需要其他标志。以图块地图组件为例。它将具有大小,图块大小和索引列表字段。瓦片贴图系统将处理相应的顶点数组,并根据组件的数据分配纹理坐标。然而,每帧重新计算整个图块地图是昂贵的。因此,将需要一个列表来跟踪所有更改,然后在系统中对其进行更新。以OOP方式,这可以由图块地图组件封装。例如,SetTile()方法将在调用顶点数组时对其进行更新。 尽管我看到了纯方法的美妙之处,但我真的不明白与传统OOP相比它将带来什么样的具体好处。组件之间的依赖性仍然存在,尽管被系统隐藏了。同样,我将需要更多的类来实现相同的目标。在我看来,这似乎是一种过度设计的解决方案,但这从来都不是一件好事。 此外,我对性能的关注并不那么深,所以面向数据设计和现金遗漏的整个想法对我来说并不重要。我只想要一个好的架构^^ 尽管如此,我阅读的大多数文章和讨论都建议使用第二种方法。为什么? 动画 最后,我想问一个问题:如何在纯ECS中处理动画。目前,我已将动画定义为根据0到1之间的进度操纵实体的函子。动画组件具有一个动画列表,该列表包含一个动画列表。然后,在其更新功能中,它将当前激活的任何动画应用于实体。 注意: 我刚刚读了这篇文章实体组件系统体系结构对象是否按定义导向?可以比我更好地解释问题。尽管基本上是同一主题,但对于纯数据方法为何更好,仍然没有给出任何答案。

1
游戏行业是否对游戏/渲染的视觉部分使用自动化测试?怎么样?
游戏的某些部分易于以自动化方式进行测试(逻辑,数学,输入处理);但是还有很多是纯视觉的,并且不容易测试。 如果游戏行业将所有这些都留给人工测试,我会感到惊讶。里面有足够的钱,我想应该已经投入了至少对游戏的某些视觉方面进行回归测试的能力。 这是真的?如果是这样,可以测试游戏渲染的可能方式有哪些?捕获输出并比较图像(这可以可靠吗?)?从低级别拦截图形卡中的数据?正在捕获通往图形卡的顶点信息(等)?似乎有很多可能性;但我找不到关于此的任何信息:( 注意:这个问题被标记为对此的重复,但是我并不是要问具体的技术/框架/工具如何做到这一点,而是要更广泛地了解这种做法的想法以及实际的游戏行业(如果他们做的)。

7
何时开始考虑可伸缩性?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 6年前关闭。 我遇到了一个有趣但又可怕的问题。我将要启动一个新的(iPhone)应用程序。这是在我自己的自定义后端上运行的基于回合的多人游戏。但是我怕发射。 由于某种原因,我认为它可能会变得很大,并且它的流行将杀死我可怜的孤独的单服务器+ MySQL数据库。 一方面,我在想如果它正在增长,那么我最好做好准备,并拥有可扩展的基础架构。 另一方面,我只是想将其发布到世界上,看看会发生什么。 我经常读诸如“过早的优化是万恶之源”之类的文章,或者有人说您应该立即使用手头的工具来构建杀手级游戏,而后再担心诸如可扩展性之类的问题。 我很想听听专家或有经验的人对此的一些看法。谢谢!

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.