Starting Game Development

အရင်အလုပ် web development ကနေ ဘာမှ မဆိုင်တဲ့ iphone game development ကို ရောက်သွားတော့ စာတွေတော်တော် ပြန်ဖတ်လိုက်ရတယ်။ နောက်ပြီး မသိတာတွေ တော်တော်များများလည်း လေ့လာလိုက်ရတယ်။ Game Devloper လုပ်ချင်တဲ့ သူတွေ အရင်ဆုံး ကိုမြင့်ကျော်သူရေးထားတဲ့ post လေးတွေကို ဖတ်သင့်တယ်။ ကိုမြင့်ကျော်သူကတော့ Game Dev နဲ့ ပတ်သက်လာရင် ဆရာကြီး တစ်ဆူလို့တောင် ဆိုလို့ရမယ်။ မြန်မာနိုင်ငံကနေ နိုင်ငံတကာကို game ရောင်းနေတဲ့ Total Game Studio ဆိုပြီး အောင်မြင်တဲ့ Game Studio တစ်ခုလည်း ရှိတယ်။ ဒါကြောင့် Game Developer မလုပ်ခင်မှာ သူရေးထားတဲ့ post လေးတွေကို ဖတ်သင့်ပါတယ်။

နောက်ပြီးတော့ အောင်စည်သူကျော် ရေးထားတဲ့ post လေးတွေကိုလည်း ဖတ်သင့်သေးတယ်။

အဲဒါလေးတွေ ဖတ်လိုက်ရင် game development လုပ်ဖို့ ဘာတွေ လိုအပ်တယ်ဆိုတာသိသွားမယ်။ ဘာ skill တွေ လိုအပ်လဲဆိုတာကို နားလည်သွားပါလိမ့်မယ်။

လူအမေးများတဲ့ မေးခွန်းက Game ကို ဘာနဲ့ ရေးရလဲ။ ဘယ် programming language ကို သုံးပြီး ရေးတာလဲ။ အဲဒီ မေးခွန်းအတွက် အဖြေကို အပေါ်က blog post တွေ မှာ ပါပြီးသားပါ။ တကယ်လို့ Game Development ကို ဝါသနာပါရင်တော့ စာဖတ် ပျင်းလို့ မရပါ။ ဒါကြောင့် အပေါ်က post တွေကို ဖတ်ဖို့ လိုပါတယ်။

လက်ရှိ လုပ်နေတဲ့ company က iOS game dev ဆိုတော့ ကျွန်တော်ကတော့ iOS Game Dev အတွက်ပဲ သိပါတယ်။ game development လုပ်တော့မယ်ဆိုရင် programming ထက်စာရင် logic က လိုအပ်တယ်။ ၁၀ တန်းအောင်ပြီးသွားတာ အရမ်းကြာသွားပြီဆိုတော့ ကျောင်းတုန်းက စာတွေ မေ့ကုန်ပြီ။ 10 တန်းက သချာင်္တွေ အခု အချိန်မှာ တော်တော် အသုံးဝင်လာတယ်။ sin , cos , tan စတာတွေကို မသိရင် degress တွက်လို့မရဘူး။ နောက်ပြီး သူတို့ကို မသိရင် curve movement တွေကို ရေးရတာ မလွယ်လှဘူး။

နောက်ပြီး Pythagorean theorem မသိရင် point နှစ်ခုရဲ့ အကွာ အဝေးကို တွက်မရဘူး။ Pythagorean theorem ကို သုံးပြီးတော့ point ၂ point ကနေ distance ကို ရနိုင်တယ်။ တြိဂံ ရဲ့ အနား ၃ နားကို သိနိုင်တယ်။ အနား ၃ နား သိရင် ဒေါင့် ၃ ဒေါင့်ကို sin , cos, tan စတာတွေနဲ့ တွက်လို့ရပြီ။ ဥပမာဗျာ။။ ဒီ point ကနေ ပြီးတော့ နောက် point တစ်ခုကို သေနတ် ပစ်လိုက်တယ်ဆိုပါတော့။ ဒါဆိုရင် ကျည်ဆံကို ဘယ်လောက် degree လှည့်ရမလဲ။ အကွာ အဝေး က ဘယ်လောက်လဲ။ အကွာအဝေး ပေါ်မှာမူတည်ပြီးတော့ velocity တွက်ရမယ်လေ။ ၁၀ တန်း တုန်းကတော့ ဒါတွေ ဘယ်မှာ သွားသုံးရမှာလဲလို့ တွေးမိသေးတယ်။ အခုတော့ ကျောင်းတုန်းက သင်ထားတဲ့ ၁၀ တန်းစာတွေကို ကျေးဇူးတင်မိတယ်။

နောက်ပြီးတော့ physics ။ velocity တို့ Acceleration တို့ကို သိထားရမယ်။ ဟင်.. အဲဒါတွေကို ဘယ်မှာ သုံးလို့ရမှာလဲဆိုရင်တော့ ရှင်းနေတာထက် လက်တွေ့ လေ့လာလို့ရမယ့်

http://www.rodedev.com/tutorials/gamephysics/

မှာ ကြည့်ပါ။ ဘာကြောင့် game development မှာ သချင်္ာနဲ့ physic အရေးကြီးတယ်ဆိုတာကို သဘောပေါက်သွားမှာပါ။ အဲဒီ link လေးကတော့ အောင်စည်သူကျော် ပေးတာပါ။ အဲဒီ link လေးမှာ flash နဲ့ သေသေချာချာ 2d game မှာ physics တွေ ဘယ်လို တွက်ချက် ရလဲဆိုတာကို ပြထားပါတယ်။

အခု ထက်ထိ iOS Game Dev အကြောင်း မလာသေးဘူးလားဆိုရင် မလာသေးပါဘူး။ programming language တစ်ခု တတ်ရင် အခြား language တစ်ခုကို လေ့လာလို့ရပါတယ်။ သို့ပေမယ့် Application Dev logic နဲ့ Game Dev logic က မတူပါဘူး။ Application တွေ ရေးတဲ့အခါမှာ Event Driving ကို အဓိက အားထားပြီး ရေးကြတယ်။ ok နှိပ်ရင် ဘာလုပ်။ cancle လုပ်ရင် ပြန်ပိတ်။ စတာတွေအတွက် အကုန် event ရှိပြီးသားပါ။ game dev မှာတော့ အဲဒီ အတွက် event တွေ မရှိပါ။ ကိုယ်တိုင် event တွေကို ဖန်တီးရပါတယ်။ ကိုယ်ပိုင် object တွေနဲ့ ကိုယ်ပိုင် event တွေကို ဖန်တီး ရေးသားဖို့လိုပါတယ်။ နောက်ပြီး အဓိက ကွာခြား ချက်က Game Loop ပါ။ Application developer တွေ အဓိက ထင်ထားတာက infinity loop လုပ်လို့မရဘူး။ application hung သွားမယ်ဆိုတဲ့ အချက်ပါပဲ။ Game တစ်ခုလုံးက infinity loop ပါ။ အဲဒီ loop ထဲမှာ အခြား infinity loop တွေ ထပ်ပါသေးတယ်။ ဘယ်လောက်ကြာရင် ဒါပြန်လုပ်ဆိုပြီး loop လုပ်ထားတာတွေ ရှိပါသေးတယ်။ Game တစ်ခုလုံးက Game Loop ထဲမှာ အလုပ်လုပ်နေတယ်ဆိုတာကို သိဖို့လိုတယ်။ ဒါဟာ အဓိက Application development နဲ့ ကွာခြားချက်ပဲ။ နောက်ပြီး ready made , drag & drop တွေ မရှိပါ။ နောက်ပြီးတော့ OOP ကို ကောင်းကောင်းသိရမယ်။ Pointer ကို နားလည်ရမယ်။ Pointer ဆိုတာက application development မှာ သုံးခဲပေမယ့် game dev မှာတော့ အရေးပါတယ်လို့ ဆိုရမလားပဲ။

လက်ရှိ ကျွန်တော်တို့ အသုံးပြုနေတာကတော့ Cocos2d-iphone ကိုပါ။ ကိုယ်ပိုင် framework, engine တွေ ဖန်တီးရတာ အချိန်တော်တော်ပေးရပါတယ်။ ဒါကြောင့် လက်ရှိ cocos2d-iphone ကို လိုအပ်တာတွေ ဖြည့်ထည့်ပြီးတော့ ရေးပါတယ်။ နောက်ပြီး physic engine အတွက်ကတော့ box2d ကို အသုံးပြုပါတယ်။ box2d နဲ့ ပတ်သက်ပြီးတော့ box2d manual မှာ ဖတ်လို့ရတယ်။ angry bird က box2d ကို အသုံးပြုပြီး ရေးသွားတာပါ။ cocos2d အတွက် လေ့လာဖို့ စာအုပ်က Learn iPhone and iPad Cocos2D Game Development ဆိုတဲ့ စာအုပ်ရှိတယ်။ တော်တော်လေးကို ကောင်းပါတယ်။ ပြည့်စုံအောင်လည်း ရှင်းပြထားတယ်။ နောက်ထပ် စာအုပ်တစ်အုပ် Learning Cocos2d ဆိုတာ ရှိပါသေးတယ်။ ကျွန်တော် ဒီဟာကို ရေးနေတဲ့အချိန်မှာတော့ အဲဒီ စာအုပ် မထွက်သေးပါဘူး။ Learn iPhone and iPad Cocos2D Game Development ကို တော့ ရုံးက ဝယ်ထားတဲ့အတွက် ဖတ်ကြည့်လိုက်တော့ game logic တွေ အကြောင်း memory management တွေ အကြောင်း ပြည့်ပြည့်စုံစုံ နဲ့ ရှင်းပြထားတယ်။ နောက်ပြီးတော့ http://gamedev.stackexchange.com/ က logic တွေ idea တွေ ရနိုင်ပါတယ်။ programming language or framework အကြောင်း ဘယ်လောက် သိသိ logic မရရင် ရှေ့မတက်နိုင်သလို logic ရှိပေမယ့် သုံးမယ် programming language or framework အကြောင်း ကောင်းကောင်း မသိရင်တော့ အလုပ်လုပ်ရတာ ကြာပါလိမ့်မယ်။ ဒါကြောင့် နှစ်ခုလုံးကို လေ့လာဖို့လိုတယ်။ Learning iPhone and iPad Cocos2d Game Developement က စာအုပ်လိုမျိုး logic တွေ physic , သချာင်္ စတာတွေကို ရှင်းပြထားတဲ့ စာအုပ်မျိုးကို ဖတ်သင့်တယ်။

နောက်ပြီး cocos2d နဲ့ ပတ်သက်ပြီး လေ့လာလို့ရတဲ့ site တွေက

အဲဒါတွေကို ဖတ်ပြီး tutorial တွေကို လေ့လာလိုက်ရင် cocos2d ကို အနည်းငယ် တီးခေါက်မိသွားမှာပါဗျာ။ နောက်ပြီး game development အတွက်လည်း အနည်းငယ် သိသွားပါလိမ့်မယ်။

6 Replies to “Starting Game Development”

  1. အစ်ကိုပြောမှပဲ .. ကျောင်းက ဘာလို့သချင်္ာသင်တာလဲဆိုတာ နားလည်တော့တယ်။ 🙂

  2. Hi,

    If u are interesting to develop the game , u should attend the MSc (Digital Media Technology) course from NTU. You should try to admit.

    This course will help for all theory concepts and maths also.

    You may also ask your best friend ASTK.

    Your teacher. (You do not remember right? so u think about past 2004 to 2005 years)

    Good Luck

  3. ဟီးအဲဒါဆိုရင်တော့Game devနဲ့ဝေးပြီး……… သားသားက သချာင်္ဆိုငယ်ငယ်လေးတည်းကကြောက်ကြောက်……… ပရိုဂရမ်းမင်းတောင်…….၀ါသနာပါလွန်းလို့……:D

  4. Depending on what type of game you are writing, you may or may not have a main loop. If your game is not time-dependent or if it only responds to what the user does and will wait forever for user input without making any kind of visual changes, you may not need a main loop. If you are writing an action game or a game that has animations, timers or any kind of automation, you should seriously consider using a main loop.

Leave a Reply

Your email address will not be published. Required fields are marked *