SDL 的起源
时间:2006-05-26 来源:whtonline
SDL 的起源
SDL 在两年前问世,当时我正致力于从 Macintosh 仿真器 Executor到 Win32 的移植工作。我注意到同一个功能在几个平台上基本上都是以相同的方式实现的。所有目标都要求可以访问屏幕、映射鼠标和键盘输入,以及播放声音。我想:为什么不写一个跨平台的库来提供这些许多人会用到的基本服务?应用程序开发者只需要写一个 API,这样就大大简化了他们的工作,还可以使他们的代码可以迅速在多个平台上运行,以吸引尽可能多的观众。我开始着手进行,一年多以后,第一个稳定的 SDL 发行版诞生了。
SDL 是一个可用的大型工具集。作为一个视频 API,SDL 提供了一个简单的帧缓冲区,适用于定制位图例程或特殊效果。使用 SDL 可以完成一个完整的具有特殊演示效果和视觉享受的档案文件,但您也可以试一下 GGI 和 PTC 库,它们在游戏和演示界也是非常流行的。作为声音 API,SDL 支持自动音频转换和透明 ESound 支持。在示例档案中,甚至还有一个完整的样本混音实现,但您还可以试用一下 ALSA 和 GSI 库。对于三维图像生成,使用 Mesa 绝对是好办法。作为窗口化工具箱,GTk 非常流行。Linux 中的自由,其中一部分是选择的自由,贡献的自由。它是 Linux 理想和自由的证明。 向 SDL 贡献
SDL 按 GNU Lesser General Public License 提供,这意味着免费软件和商业程序都可以使用它,并且对源代码的更改加到公共源码之后,每个人都可以共享这个更改。欢迎向 SDL 贡献,将补丁发送给我以加到 SDL 的开发版本中。为开发者提供了一个邮件列表,可以通过将含有 "subscribe sdl" 字样的邮件发送到 [email protected]来订阅该邮件列表。该邮件列表镜像为 news://news.lokigames.com/loki.open-source.sdl上的一个新闻组。加入这个邮件列表以获取关于使用 SDL 的提示,错误修正的最新公告和新的功能,及使用 SDL 的项目的预览版本。 SDL 的未来
以下是下年度中 SDL 某些新令人振奋的发展方向:
SDL 在两年前问世,当时我正致力于从 Macintosh 仿真器 Executor到 Win32 的移植工作。我注意到同一个功能在几个平台上基本上都是以相同的方式实现的。所有目标都要求可以访问屏幕、映射鼠标和键盘输入,以及播放声音。我想:为什么不写一个跨平台的库来提供这些许多人会用到的基本服务?应用程序开发者只需要写一个 API,这样就大大简化了他们的工作,还可以使他们的代码可以迅速在多个平台上运行,以吸引尽可能多的观众。我开始着手进行,一年多以后,第一个稳定的 SDL 发行版诞生了。
创建 SDL 的第一步就是要标识所需的功能。根据分析 Executor 和以往的移植经验,我已经有了一个好的想法。下一步就是构建在 Win32 和 Linux 上运行的有效原型。我知道对于 API,最大的考验就是在实际的应用程序下工作,因此我所做的第一件事就是使用它来完成从 Executor 到 Win32 的移植。在这段时间里,我不断添加 API 的主体,并将它移植到 BeOS。然后,采用最新得到的 DOOM!源码,在短短三天时间内,就使它可以在所有三个受支持的平台上顺畅地运行。
一年以后,我现在使用它来将世界上最好的一些游戏移植到世界上最受欢迎的操作系统 Linux 上。虽然我就职于商业公司,但这个库本身是免费的,并且它是开放源码概念力量的体现。
相关的库SDL 是一个可用的大型工具集。作为一个视频 API,SDL 提供了一个简单的帧缓冲区,适用于定制位图例程或特殊效果。使用 SDL 可以完成一个完整的具有特殊演示效果和视觉享受的档案文件,但您也可以试一下 GGI 和 PTC 库,它们在游戏和演示界也是非常流行的。作为声音 API,SDL 支持自动音频转换和透明 ESound 支持。在示例档案中,甚至还有一个完整的样本混音实现,但您还可以试用一下 ALSA 和 GSI 库。对于三维图像生成,使用 Mesa 绝对是好办法。作为窗口化工具箱,GTk 非常流行。Linux 中的自由,其中一部分是选择的自由,贡献的自由。它是 Linux 理想和自由的证明。 向 SDL 贡献
SDL 按 GNU Lesser General Public License 提供,这意味着免费软件和商业程序都可以使用它,并且对源代码的更改加到公共源码之后,每个人都可以共享这个更改。欢迎向 SDL 贡献,将补丁发送给我以加到 SDL 的开发版本中。为开发者提供了一个邮件列表,可以通过将含有 "subscribe sdl" 字样的邮件发送到 [email protected]来订阅该邮件列表。该邮件列表镜像为 news://news.lokigames.com/loki.open-source.sdl上的一个新闻组。加入这个邮件列表以获取关于使用 SDL 的提示,错误修正的最新公告和新的功能,及使用 SDL 的项目的预览版本。 SDL 的未来
以下是下年度中 SDL 某些新令人振奋的发展方向:
- 游戏控制杆支持。Linux 的最新内核中构建了一个非常棒的游戏控制杆 API。我打算将该支持集成到 SDL 事件模型中,它允许任意事件过滤、回调和异步事件分派。Garrett Banuk 已经编写了最始实现,它将添加到最新的 SDL 开发分支。
- Linux 帧缓冲区控制台支持。最新的 Linux 内核以帧缓冲区驱动程序的形式包含了本机图形的控制台支持,其创作者是 Geert Uytterhoeven。SDL 有一个初始驱动程序具有本机控制台键盘和 PS/2 鼠标驱动程序,它可以执行该项支持。
- SciTech MGL 支持。 SciTech有一个非常棒的用于 Win32、DOS、Linux、OS/2 和 QNX 的图形库。但它是一个商业库,而 VESA 控制台驱动程序对于 Linux 是免费的。因此,可以支持 SDL 中的 VESA 控制台驱动程序。
- Mesa 集成为一个 GLX 层。OpenGL 绝对是将来在 Linux 上开发三维游戏的方法。但是,GLX API 处理事件的方法不如 SDL 那样灵活。有人要求将类似于 GLX 的扩展集成到 SDL,以将它用作基于 GL 的游戏的输入接口。
- 重新设计体系结构以允许多重显示和多重输入。当前的体系结构将 SDL 函数以存根模块编译,并在运行时动态装入低级驱动程序。这种跨平台执行方式将导致一个难于使用的构建过程,并产生一个复杂的头文件。对我来说,最要紧的一件事就是重新设计构建过程,这样所有驱动程序都可以编译到一个库中,然后在运行时动态选择。这样做的好处就是可以同时有多个活动的显示和输入方法。想像一下游戏同时在控制台和远程 X11 显示器上运行!
- 更多游戏!SDL 的改进将使越来越多的人使用这个库,而越来越多的游戏将会出现在 Linux 上。在 http://www.devolution.com/~slouken/SDL/intro/toc.html上可以找到 SDL API 的非常好的介绍,以及使用 SDL API 的项目列表。
能够涉足 Linux 游戏,我感到非常激动,我希望能够继续工作为 Linux 世界带来欢乐,因为 Linux 待我太好了。正如他们所说的,企鹅也喜欢寻开心。
相关阅读 更多 +