ゲームを作りたい!

プログラミングをしているからには、いつかはゲームを作ってみたい。勉強したことを備忘録的に綴るBLOG。

ゲームを作るための環境設定

SDL2のインストール

特に理由はないが、C言語+SDL2を使ってゲームを作っていこうと思った。 趣味で作るものなのであまり深く考えず使いたい言語で行こうと思う。
私は現在、Debian系のkonalinuxを使用している。調べたところ、SDL2は以下のコマンドで簡単にインストールできるようだ。

sudo apt-get install libsdl2-dev

さらに、.bmp以外の画像ファイルを扱うときはsdl2_image、フォントを扱うときはsdl2_ttfなどが必要なようだ。 音楽を扱う場合はsdl2_mixer、ネットワークを扱う場合はsdl2_netがあるといいらしいので追加でインストールする。
ちなみに、インストールしなくても自力でコーディングすれば画像だろうがフォントだろうが扱えるっぽいが使えるものは使っていこうと思う。
インストールコマンドは以下。

apt-get install libsdl2-image-dev libsdl2-mixer-dev libsdl2-net-dev libsdl2-ttf-dev

Debian系ではない場合は、yumからのインストールもしくはソースからのMakeが可能なようだ。他の環境に入れる時があれば追記しようと思う。

動作確認

簡単なコードを書いて動作確認を行う。 SDL2に初めて触ったので、使用する関数等が妥当かはわからないが、とりあえず以下のコードで画面を出力できた。

  • コード
#include <SDL2/SDL.h>
#include <stdio.h>

const int SCREEN_WIDTH = 640;
const int SCREEN_HEIGHT = 480;

int main( int argc, char* args[] ) {

    SDL_Window* window = NULL;
    SDL_Renderer *renderer = NULL;

    //Initialize SDL
    if( SDL_Init( SDL_INIT_VIDEO ) < 0 ) {
        printf( "SDL could not initialize! SDL_Error: %s\n", SDL_GetError() );
    } else {
        //Create window
        window = SDL_CreateWindow( "Hello SDL", SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, SCREEN_WIDTH, SCREEN_HEIGHT);
        if( window == NULL ) {
            printf( "Window could not be created! SDL_Error: %s\n", SDL_GetError() );
        } else {

            renderer = SDL_CreateRenderer(window, -1, SDL_RENDERER_ACCELERATED);

            SDL_RenderClear(renderer);
            SDL_RenderPresent(renderer);

            SDL_Delay(3000);
        }
    }

    SDL_DestroyRenderer(renderer);
    SDL_DestroyWindow(window);

    SDL_Quit();

    return 0;
}
gcc -g -o hello_sdl hello_sdl.c `sdl2-config --cflags --libs`

使用した関数は以下。メモっておく。
-> SDL_Init
-> SDL_CreateWindow
-> SDL_CreateRenderer
-> SDL_RenderClear
-> SDL_RenderPresent
-> SDL_Delay
-> SDL_DestroyRenderer
-> SDL_DestroyWindow
-> SDL_Quit

環境設定終了

とりあえずこれでSDL2が使用できるようになった。次からは、この環境でゲーム作りに必要なことを勉強していこうと思う。