我在业余时间使用C ++和DirectX搞乱2D游戏开发。我发现企业问题领域建模方法没有像我想的那样有用;)

我或多或少地在寻找“最佳实践”。相当于基本的游戏引擎设计。实体应如何相互作用,动画和声音应如何在理想世界中表现,等等。

任何人都有可以推荐的好资源吗?

有帮助吗?

解决方案

Gamedev.net 通常是我想知道游戏开发社区中其他人是什么的做。

那就是说,我担心你会发现“最佳实践”的想法。在游戏开发中比大多数人更不稳定。游戏往往是这样的专业应用程序,几乎不可能给出任何“一个尺寸适合所有”的应用程序。答案。什么对俄罗斯方块有用的东西对于小行星来说是无用的,对于马洛来说,一个完美适用于Halo的模型很可能会失败。

你也会很快发现没有“行业标准”这样的东西。用于纹理,网格,水平,声音或动画格式。每个人都只是自己动手或使用平台上方便的任何东西。你偶尔会看到像 COLLADA 这样的东西,这很不错,但它仍然只是一种中间格式,旨在让编写出口商更容易

如果您是游戏开发的新手,我的建议是这样:不要在第一次使用代码结构时自杀。尝试一个像小行星一样的简单游戏,只要它起作用,就会破解,无论多么“丑陋”。代码是。使用您熟悉的简单格式,而不必担心它们在大型项目中的表现如何。不要担心插件,皮肤,编辑器或任何其他绒毛。只是让它工作!然后,当你完成第一个,所有重要的游戏,选择另一个,这一次清理代码的一两个方面(但不要过分!)从那里,迭代!

我向你保证,这将比你在“正确的方式”在网上任何数量的搜索都更快。永远都可以(这来自一个做了很多戳的人)。

最后一个想法:如果您觉得在更明确的空间中工作更舒服,请查看 XNA 或类似的图书馆。他们会预先定义一些“最佳”的东西。要使用的格式并为您提供工具来处理它们,这需要进行一些初步的猜测。

祝你好运,最重要的是记住:游戏(及其开发)应该是有趣的!不要过于关注这些小东西!

其他提示

制作游戏。完成后,再做一个。看看你喜欢什么和你不喜欢什么,然后再做一个。

说真的,你可以阅读所有的“最佳实践”。您喜欢的游戏设计指南,但最终归结为体验。获得经验的唯一方法是坐下来写游戏。在你这样做几次之后,你会更好地了解如何编写游戏。

几乎所有 Andre Lamothe 作为贡献者之一。

GameDev 也有大量文章。

我不能同意你的观点:企业应用程序不会让你为游戏编程做好准备。

我在python,java,html / php和perl中创建了一些小型游戏。你可能知道,游戏的基本结构是:

主循环:
   handleInput(),点击    updateGameLogic(),点击    renderImages(),点击

现在,对于单屏单线程游戏来说,这一切都很好,就像70年代或80年代的任何东西一样。但我发现这种结构并不适合多屏幕游戏(如RPG)或更具异国情调的东西。它没有很好的线程。由于您需要处理各种输入,因此代码非常时髦。它不能很好地扩展。

然而,在我过分夸大这个比喻之前,请注意这是一个很好的起点。我甚至建议学习Python / Pygame并开始使用该工具而不是C ++构建游戏,这使得设计和实现过程变得复杂。当你在python中进行原型化时,你会发现游戏的形成速度更快,并且会遇到与语言无关的问题。

对我来说,游戏编程中最难,最耗时的方面是图形和声音资产。虽然我是一个音频书呆子和业余音乐家,但创造可信和适当的音乐和SFX是一个独立的项目。我没有图形天赋,所以我必须依赖修改现有图像或使用免费提供的图像。幸运的是,有一种广泛可用的免费字体可用于游戏(而其他很少,因为它们几乎普遍不好)。

最后,没有什么比开源更了解其他项目如何处理这个问题。 Westnoth之战是一款成熟的中型游戏。你可能想看看那里发生了什么。同样,python中的游戏经常使他们的源代码可用,所以你可以看看那里的数百个项目。你也可以反编译atari 2600 ROM,但这并不能告诉你今天的编程。旧的VCS是一种专用设备,可以以与系统相关的方式处理其应用程序。 :-D

最后,我也喜欢Andre LaMothe。我有他1993年的书,这本书有一百万页厚。虽然它仍然是一些通用游戏创意的一个很好的参考,但是当时不存在的免费可用库和框架的可用性避免了很多。

祝你的项目好运。

由于尚未提及,为什么不首先查看已发布给社区的现有引擎?既然你正在谈论2D,我会回过头来推荐 滥用 。是的,它很古老,而且大多数有趣的东西都在Lisp中 - 但游戏很受欢迎,这意味着它们正在做正确的事情。

碰巧的是,我认为原始游戏的很多内容都在Lisp中是一个非常有用的教训。选择最强大的语言/工具,不要担心性能。您可以随后在C中优化慢速部分。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top