Open Source Web Development Tutorials - Dev Shed
SDLでゲームプログラミングを始めよう
(2008/10/17公開)
ゲームプラグラマによる、ゲームプログラマのためのライブラリSDL
OpenGLを使用したゲームのプログラミングでは、多くの場合2つの手法からどちらかを選択する必要があります。ライブラリを使用する場合はプラットホーム非依存ですが、用意されているリソースのすべてを利用できるわけではありません。一方、すべてのリソースを活用した高性能なプログラミングを行うと、プラットホーム依存になる欠点があります。SDL(Simple Directmedia Layer)では、第三の方法が使用できます。この記事では、SDLの機能について概要を紹介します。
ゲームプログラミングは初期のLinuxやWindowsの時代から長足の進歩を遂げてきました。ゲームがWindowsや、拡張されたMacでしか遊べなかった時代は過ぎ去りました。今日では、ゲームの分野でも移植性が最重要な要素となってきています。OpenGLの登場は、この方向に向けた最初の一歩でした。しかし、OpenGLはゲームプログラミングのうち、レンダリングの部分のみを対象としたものです。主要な部分である、各種の入力デバイスとの通信は、OSに任されていました。この理由から、OpenGLには各種の拡張機能、例えばGLUT(プラットホーム非依存)、MESA(*nixシステム用のOpenGL拡張機能)、WOGL(Windows用のOpenGL拡張機能)などが存在します。
これらの拡張機能には、それぞれの長所と短所が存在します。ライブラリがOS非依存の場合、利用可能なリソースを十分に活用することはできません。基礎となるシステムの能力を十分に活用しようとすれば、ライブラリはプラットホーム依存となります。移植性の問題のほかに、既存のライブラリではいずれも、ゲームのインフラストラクチャを開発する作業は開発者に負わせられることになります。このような選択を行う必要があるとき、SDLは注目に値します。
SDL(Simple Directmedia Layer)は、「ゲームプラグラマによる、ゲームプログラマのための」ライブラリです。このため、1から作り始めることで「達成不可能な」目標を達成しようとしてはいません。その代わりに、各OSについて既存のライブラリ、つまりWindowsであればDirectX、*nixシステムであればXwindow APIに基づいて構築されています。さらに、SDLは広範な種類のゲームで必要とされるすべてのインフラストラクチャを備えています。
この記事では、SDLをセットアップする方法と、SDLに含まれている多くのインフラストラクチャ機能の1つとして、スプライトをロードする方法について説明します。最初のセクションでは、インフラストラクチャサービスを順に解説します。2番目のセクションでは、最適な解像度を達成するようにビデオを初期化する方法について解説します。3番目のセクションでは、SDL APIを使用してビットマップをロードする方法について解説します。また、3番目のセクションでは、SDL APIを使用してスプライトのロードを行う現実的な実装についても、詳しく説明します。
Copyright © 2008 Ziff Davis Enterprise, Inc.
Originally appearing in the U.S. Edition of Dev Shed. All Rights Reserved.








