Article for Gamer

เส้นทางการเป็นนักพัฒนาเกม: ติดตั้ง DevC++ และ SDL เพื่อพัฒนาเกม

บทความนี้จะเป็นขั้นตอนการสร้าง Environment ในการเริ่มต้นที่จะพัฒนาเกมด้วยภาษา C/C++ กับ Library SDL หรือ Simple DirectMedia Layer ซึ่งเป็น Library สำหรับพัฒนาเกมและที่สำคุญเป็น Opensource มาเริ่มกันดีกว่าครับ

ติดตั้ง SDL กับ DEV C++

 

แรกเริ่มเลยต้องมี IDE ไว้สำหรับ Compile ภาษา C++ ครับซึ่งเราจะเลือกใ้ช้ Bloodshed Dev C++ ครับเพราะเป็น Freeware จะได้ไม่ต้องเสียค่าลิขสิทธิใดๆในการพัฒนาเกมให้เราไปดาวน์โหลดและติดตั้งผ่าน URL นี้ครับ

 

http://www.bloodshed.net/devcpp.html

เมื่อทำการติดตั้งเสร็จเรียบร้อยและตั้งค่าเริ่มต้นของตัว Dev C++ เหมือนในรูปข้างบนแล้วก็ให้ไปดาวน์โหลด Library SDL ที่หน้าเว็บไซต์

http://www.libsdl.org/download-1.2.php

ในเว็บไซต์ของ SDL จะมี Runtime Library และ Development Libraries ให้เลือกดาวน์โหลดเลือกดาวน์โหลดไฟล์ในหมวดของ Win32 Development Libraries สำหรับ Mingw32 เมื่อดาวน์โหลดเสร็จให้ unzip ไว้ในโฟล์เดอร์ C:SDL_LIB เพราะว่า DEV C++ นั้นใช้ Mingw32 คอมไพเลอร์ เลือกดาวน์โหลดดังภาพข้างล่าง

SDL website

โฟล์เดอร์สำคัญที่เราต้องใช้งานคือ

  • .bin
  • .include
  • .lib

ในโฟล์เดอร์ bin จะมีไฟล์ .DLL ที่เราจำเป็นต้องใช้ในขั้นตอนการรันโปรแกรมที่เราพัฒนาขึ้น ส่วนใน .include จะมี Header File ที่ต้องใช้ในขั้นตอนการคอมไพล์ รวมทั้ง .lib และ .a ในโฟล์เดอร์ .lib เป็นต้น ส่วนโฟล์เดอร์อื่น ๆ จะเป็นเอกสาร คู่มือ และไฟล์ตัวอย่างมากมายแถมมา

การกำหนดค่าใน Dev-C++

ส่วนสำคัญที่เราต้องใช้งาน ได้แก่โฟล์เดอร์ .inlcude และ .lib โดยเราจะต้องกำหนดให้ IDE สามารถเรียกใช้งานได้ กรณีที่ใช้ Dev-C++ เราต้องกำหนดค่าในเมนู Tools/Compiler Options โดยดูในส่วนของ Directories หัวข้อ Libraries, C Includes และ C++ Include ดังรูป

กำหนด Path ให้ทั้งสามส่วนดังนี้ (ตัวอย่าง: ในกรณีที่เราติดตั้ง SDL ไว้ที่ C:SDL_LIB)

  • ในส่วนของ Libraries กำหนด Path เพิ่มเป็น
    C:SDL_LIBSDL-1.2.13lib
  • ในส่วนของ C Includes กำหนด Path เพิ่มเป็น
    C:SDL_LIBSDL-1.2.13include
  • ในส่วนของ C++ Includes กำหนด Path เพิ่มเป็น
    C:SDL_LIBSDL-1.2.13include

 

นอกจากนี้เราจะต้องกำหนดให้ Dev-C++ ทำการ Link ไฟล์ .lib ในขั้นตอนการพัฒนา 
โดยจะกำหนดไว้ในโปรเจคที่เราจะใช้งาน SDL แต่ละงานไป เพื่อให้คอมไพเลอร์ทำการ
Compile แัละ Link กับไลบรารี่ของ SDL รวมกับ Code ที่เราเขียน

 

 

สำหรับไฟล์ใน .bin จะเป็น .dll หรือ Dynamic Linked Library ที่เราต้องใช้ในขั้นตอนการรัน
โปรแกรม เราจะต้องคัดลอกไฟล์ SDL.dll ไปเก็บไว้ในโฟล์เดอร์โปรเจคที่มีโปรแกรมของเรา
เพื่อให้โปรแกรมหาไฟล์ SDL.dll นี้เจอในขั้นตอนการรัน

 

ทดสอบ SDL

เพื่อทดสอบการติดตั้ง และกำหนดค่าเริ่มต้นเพื่อใช้งาน SDL บน Dev-C++ เราจะสร้าง SDL โปรแกรมแรก โดยจะสร้างเป็น Windows Application ให้เปิดหน้าต่าง SDL กำหนดขนาดแสดงผลเป็น 320 x 240 pixel แล้วกำหนด Titlebar จากนั้นจะหน่วงเวลาประมาณ 8 วินาที แล้วปิดโปรแกรมไป

ให้เปิด Dev-C++ สร้างโปรเจคใหม่ เลือกเป็น Empty Project ตั้งชื่อโปรเจคเป็น daydev และกำหนดให้เป็น C Project ดังรูป

หลังจาก Save Project ไว้ในโฟล์เดอร์ที่ต้องการแล้ว ให้สร้างไฟล์ใหม่ในโปรเจค โดยคลิกขวาที่ชื่อโปรเจค แล้วเลือกคำสั่ง New File เพื่อเขียนโค้ด จากนั้น Save File โดยใช้ชื่อ test.c แล้วเริ่มเขียนโค้ดคำสั่ง

วิเคราะห์โจทย์

จากโจทย์ที่ตั้งไว้ เราจะเริ่มเขียนโปรแกรมโดย include ไฟล์ SDL.h จากโฟล์เดอร์ ./include/SDL/เข้ามาในโปรเจค แล้วสร้างฟังค์ชั่น main() จากนั้นจะเรียกฟังค์ชั่น SDL_Init() เพื่อเริ่มใช้งาน SDL หากมีข้อผิดพลาด เราจะจบการทำงานโดย return ค่า 1 กลับมายังโปรแกรมที่เรียก

ฟังค์ชั่นใน SDL จะ return ค่า -1 หรือ return ค่า NULL เมื่อมีข้อผิดพลาดในการทำงาน

จากนั้นให้บันทึกไฟล์ไว้ เตรียมขั้นตอนการคอมไพล์และลิงค์ เพื่อสร้างโปรแกรม

#include "SDL/SDL.h"

// ประกาศตัวแปร main_screen เป็น pointer
ไปยัง SDL_Surface สำหรับการแสดงผลภาพหน้าจอหลัก
SDL_Surface *main_screen = NULL;

int main( int argc, char* args[] )
{
// ติดตั้งเตรียมใช้งาน SDL ทั้งหมด
if( SDL_Init( SDL_INIT_EVERYTHING ) == -1 )
{
return 1; // ถ้ามีข้อผิดพลาดให้ return 1, แล้วจบโปรแกรม
}
// กำหนดโหมดการแสดงผลเป็น 320 x 240, 32 bps
main_screen = SDL_SetVideoMode( 320, 240, 32, SDL_SWSURFACE );
if( main_screen == NULL )
{
return 1; // ถ้ามีข้อผิดพลาดให้ return 1, แล้วจบโปรแกรม
}
// กำหนดค่า Caption ของหน้าต่าง แสดงคำว่า Hello ICT:Silpakorn
SDL_WM_SetCaption( "Hello World", NULL );

// หน่วงเวลา 8 วินาที
SDL_Delay( 8000 );

// จบการทำงานของ SDL, ปิดหน้าต่างโปรแกรม
SDL_Quit();
}

การกำหนดค่าสำหรับขั้นตอนการ Link

ในขั้นตอนการสร้างโปรแกรม หลังจากการคอมไพล์แล้วจะต้องทำการลิงค์ออปเจ็คไฟล์ที่ได้รวมเข้ากับไลบรารี่ ในขั้นตอนนี้เราต้องกำหนดให้ IDE ทำการลิงค์กับไลบรารี่ต่าง ๆ ที่เราใช้งาน โดยจะกำหนดใน Project Options

ให้คลิกขวาที่ชื่อโปรเจค แล้วเลือกคำสั่ง Project Options เพื่อกำหนดให้ลิงค์รวมกับ SDL ไลบรารี่ ดังรูป

เลือกหมวด Parameters ในช่อง Linker ให้ใส่ -lmingw32 -lSDLmain -lSDL เพื่อกำหนดให้มีการ Link กับ SDL Library

จากนั้นให้คอมไพล์ โดยเลือกจากเมนู Execute หรือกดปุ่ม Ctrl-F9 หรือกดปุ่มบน Toolbar แบบในรูป หากไม่มีข้อผิดพลาดจะได้ไฟล์ Project1.exe ในโฟล์เดอร์ของโปรเจค

ในขั้นตอนการรันโปรแกรมที่ใช้ SDL ไลบรารี่ จะต้องมีไฟล์ SDL.dll อยู่ในระบบ วิธีการที่แนะนำคือ ให้คัดลอกไฟล์ *.dll ที่ต้องการใช้งานมาเก็บไว้ในโฟล์เดอร์เดียวกับโปรแกรม (เพื่อไม่ให้เกิดปัญหาการใช้งานไลบรารี่ต่าง Version กัน)

ผลจากการรันโปรแกรม

จะเปิดหน้าต่างแสดงผลหน้าจอสีดำขนาด 320 x 240 pixel โดยแสดงคำว่า Hello World ที่ Titlebar จากนั้นแสดงผล 8 วินาที แล้วปิดหน้าต่างจบโปรแกรม

Asst. Prof. Banyapon Poolsawas

อาจารย์ประจำสาขาวิชาการออกแบบเชิงโต้ตอบ และการพัฒนาเกม วิทยาลัยครีเอทีฟดีไซน์ & เอ็นเตอร์เทนเมนต์เทคโนโลยี มหาวิทยาลัยธุรกิจบัณฑิตย์ ผู้ก่อตั้ง บริษัท Daydev Co., Ltd, (เดย์เดฟ จำกัด)

Related Articles

Leave a Reply

Back to top button

Adblock Detected

เราตรวจพบว่าคุณใช้ Adblock บนบราวเซอร์ของคุณ,กรุณาปิดระบบ Adblock ก่อนเข้าอ่าน Content ของเรานะครับ, ถือว่าช่วยเหลือกัน