制作一个简单的视频游戏

3

我正在考虑创建一个简单的视频游戏。 我不是在谈论任何花哨的东西,而是像这样的游戏:

Pole Position (1982)

由于我想学习,我宁愿不使用库,而是尽可能地自己实现。 我需要知道如何渲染汽车和赛道,处理与其他汽车的碰撞等。 我的目标是Linux,Mac OS X和iOS。 我担心使用OpenGL这样的库会使事情变得“太简单”。

是否有任何好的资源可以讨论这个问题? 我找到的大多数教程/论文都基于流行的库和引擎。


什么语言/平台?有哪些功能? - Oded
2
你的问题非常模糊。 - PrettyPrincessKitty FS
2
极点位置不够华丽???我不同意。 - Captain Giraffe
2
@ryyst - 你使用什么编程语言?你的目标操作系统和硬件是什么?极品飞车的截图并不能告诉我们这些信息。 - Oded
你不能编写没有OpenGL/DirectX这样的“库”的游戏。这就像没有标准库编写C++一样。 - rubenvb
显示剩余3条评论
3个回答

3
"我担心使用像OpenGL这样的库会使事情变得“太简单”" 不用担心,你还有很多工作要做。
在现实世界中,程序员尽可能使用许多库,这是专注于如何使事情运转而不是花费数年时间每个小功能的唯一方法。
首先在库之上进行编程,然后,如果想要分解细节,实现自己的库并将其替换为使用的库。
将应用程序分成自包含部分是一个好习惯,可以在不破坏所有内容的情况下更改它。
此外,我建议您先学习C ++。能够使用面向对象的方法对问题域进行建模将帮助您将问题分解为可解决的单元。

谢谢回答!我已经了解了C ++。问题是,我“想”在非常低的级别上工作。这不是我特别关心的游戏。我想将我所知道的线性代数应用于一个项目中。例如,请参见此链接。它解释了如何使用仿射变换等实现Mode 7。 - ryyst
编写一个渲染引擎并在其上编写简单的单元测试。您可以使用C++重载运算符,例如*=,以使引擎的使用更加简单(矩阵/向量相乘)。首先阅读一些“计算机图形学”。这里有一个好的讲座幻灯片链接:http://www.cs.wisc.edu/graphics/Courses/559-f2004/cs559.html - Danny Varod
另一种更低级别的形式是汇编语言,但我不建议在其中编写复杂的计算机图形。 - Danny Varod
另一个提示是,培训或示例代码并不总是最好的参考代码。它们通常由经验不足的学生或工程师编写,并充满了糟糕的实践方法 - 从命名约定到难以维护的混乱代码。先理解,再设计,最后才写代码。 - Danny Varod

1

如果不使用任何库,开发游戏几乎是不可能的。我猜你得回到好旧的C64时代才能做到这一点。如果你有兴趣学习,我建议你寻找一个更低级别的库,它提供了对图形、声音等的访问,但应该将逻辑留给你自己。

我建议你看看http://www.pygame.org/。它使得处理图形、精灵等变得容易,仍然相对较低级别,而Python是一个很好的入门语言。


1

看起来你对从Simple DirectMedia Layer的层次学习很感兴趣。

如果是这样,这可能是一个不错的开始:http://gamedevgeek.com/tutorials/moving-sprites-with-sdl/

接着可以看看:http://www.gpwiki.org/index.php/SDL#Creating_a_Complete_2D_Engine

此外,针对那种特定的渲染风格,请参阅:

编辑:
这些关于原始的毁灭引擎的信息可能会有用:
http://fabiensanglard.net/doomIphone/doomClassicRenderer.php

此外,巧克力毁灭是将原始毁灭源代码移植到SDL中的一个端口,因此您可能会通过研究其源代码学习到一些有用的模式:
http://www.chocolate-doom.org


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接