Myanmar Coding School
10/12/2022
ဒီနေ့ပြောချင်တဲ့အကြောင်းအရာကတော့ Game ဖန်တီးတဲ့ နယ်ပယ်ထဲကို ဝင်ချင်တဲ့ သူတေအတွက် လိုအပ်ချက်တေ ဆောင်ရန် ရှောင်ရန်တေ ပဲဖြစ်ပါတယ်
ကိုယ်ပိုင် Game တေဖန်တီးချင်တယ် Game Design တေဆွဲချင်တယ် ဒါပေမယ့် ဘယ်က စကမလဲမသိဘူး ဆိုတဲ့ ညီငယ်တေ အတွက် ဒီ Article က
အထောက်အကူပြုနိုင်ပါတယ်။
Game ဖန်တီးတဲ့ နယ်ပယ်မှာ အခြေခံကျဆုံး position နှစ်မျိုး ရှိပါတယ်။
အဲ့ position ၂ မျိုး က Game Developerနဲ့
Game Designer ဖြစ်ပါတယ်။
Game Designer ကတော့ Game ရဲ့ story တေ
Game ဇာတ်ကောင်တေကို ဖန်တီးတာတေ
flow တေ level တက်တဲ့စနစ် တေ mechanism
တေအတွက် တာဝန်ယူတဲ့သူလို့ အကြမ်းဖျင်း သတ်မှတ်လို့ရပါတယ်။
Game Developer ကတော့ အပေါ်က Game Designer ဖန်တီးထားတဲ့ ဟာတေ ကို လက်တွေ့အသက်ဝင်အောင်လုပ်ပေးသူလို့ မှတ်လို့ရပါတယ်။
Game Designer ဖြစ်ချင်သည်ဖြစ်စေ
Game Developer ဖြစ်ချင်သည်ဖြစ်စေ
ပထမဦးဆုံးအနေနဲ့ အောက်က အချက်တေကို အရင် စမ်းစစ်ကြည့်ပါ
၁။ Passion ရှိဖို့လိုပါတယ်
ကိုယ့်ကိုယ်ကို ပြန်မေးကြည့်ပါ ငါက Game ဆော့ရတာ ကြိုက်လား? ကိုယ်ဆော့တဲ့ Game တေနောက်ကွယ်မှာ ဘယ်လို အလုပ်လုပ်နေလဲ ဆိုတာ သိချင်ခဲ့ဖူးလား? ကိုယ်စိတ် ထဲမှာ ပုံဖော်ဖူးတဲ့ စိတ်ကူးယဥ် ဇာတ်ကောင် တေ ဇာတ်လမ်း တေရှိလား? အဲ့ ဇာတ်ကောင် (ဝါ) ဇာတ်လမ်း ကို အသက်သွင်းဖို့စဥ်းစားဖူး လား?
အပေါ်က အချက်တေထဲက ၂ချက် လောက်လုပ်ဖူးရင်တောင် ပထမဆုံး စစ်ဆေးမှု အောင်မြင်တယ် ပြောလို့ရပါတယ်။
၂။ computer science ကို အခြေခံလောက်တော့နားလည်ရပါမယ်။
ကိုယ်က computer science နဲ့ကျောင်းပြီးထားတယ်ဆိုရင်တော့ ဒီအချက်က စဥ်းစားစရာ မလိုပေမယ့် အဲ့လိုမဟုတ်ရင်တော့ ထည့်စဥ်းစားရပါမယ်။ အနည်းဆုံးတော့ ကိုယ်သုံးနေတဲ့ laptop ကို
ကျွမ်းကျွမ်း ကျင်ကျင်သုံးတတ်ဖို့လိုပါတယ်။
၃။ Programming Language တစ်ခုခု ကို
intermediate level လောက်ထိလေ့လာ ဖူးရပါမယ်။
ကိုယ်သုံးမယ့် Game Engine ကသုံးတဲ့
Programming Language ဆို ပိုကောင်းပါတယ်။
၄။ Mathematics ကို အနိမ့်ဆုံး GCE-A level လောက်ထိလေ့လာ ဖူးသင့်ပါတယ် ။
ပို complex ဖြစ်တဲ့ Game တေ ဖန်တီးလေ
Mathematics skill က ပိုလိုလေပါပဲ။
၅။ Physics ကိုလည်း အနိမ့်ဆုံး GCE-A level လောက်ထိလေ့လာဖူးသင့်ပါတယ် ။
Game တေ ဖန်တီးတဲ့ နေရာမှာ physics နိယာမ တေက အရေးပါ ပါတယ် ။ ဂိမ်းက ပို
complex ဖြစ်လေ Physics skill က လိုလာလေပါပဲ။
အပေါ် က အချက် ၅ ချက်မှာ နံပါတ် ၁ အချက်ကလွဲလို့ ကျန်တဲ့အချက်တေက သင်တန်းတေ တက်ခြင်း
အားဖြင့် ဖြစ်စေ self study လုပ်ခြင်း အားဖြင့်ဖြစ်စေ ရနိုင် ပေမယ့် နံပါတ် ၁ အချက်ရဖို့ ကတော့ ကိုယ့်ကိုယ်ကို မလိမ် ပဲ သေချာစမ်းစစ်ကပါမယ် ။
ကိုယ် passion မရှိတဲ့ အလုပ်ကို အတင်းလုပ်ခြင်းဟာ ဘယ်လိုမှ အောင်မြင်နိုင်မှာမဟုတ်ပါဘူး။
သင်တန်းတေ တက်တဲ့အခါ ဖြစ်စေ self study လုပ်တဲ့အခါဖြစ်စေ beginner တေအများဆုံး ကျူးလွန်တတ်တဲ့အမှားတစ်ခုရှိပါတယ်
အဲ့ဒါကတော့ market ထဲမှာ popular ဖြစ်တဲ့ Game Engine တေကနေစလေ့လာတာပဲ ဖြစ်ပါတယ် ဥပမာ Unity တို့ Unreal တို့လိုပေါ့။
အဲ့ဒါက အကြီးဆုံး အမှားပါပဲ
Game Engine တေက နေ စလေ့လာတဲ့ learning style ဟာ ပြသနာ တေ အများကြီးရှိပါတယ် ။
အဆိုးဆုံးကတော့ သင်တန်းပြီးတဲ့အခါ lecturer
ရေးပြတဲ့ final game project မျိုးကို ပဲ ပုံတူပွား ရေးတတ်တော့ တာပါပဲ။ အဲ့ဒါက ဘာဖြစ်လို့လဲဆိုရင် Game Engine ရဲ့ features တေကို အသင့်ယူသုံးရင်းနဲ့ ဒီ feature ကိုသုံးရင် ဘာဖြစ်လာမလဲပဲ
သိပြီး နောက်ကွယ် မှာ ဒီ feature ဘယ်လို အလုပ်လုပ် လဲဆိုတာ နားမလည် တော့လိုပါပဲ ။ အဲ့လို how
to ပုံစံ လေ့လာခဲ့ရင် အရမ်း complex ဖြစ်တဲ့ ဂိမ်းတေ ဖန်တီးဖို့ဆို တာ ဘယ်လို မှမဖြစ်နိုင်တော့ပါဘူး။
အဲ့လို ပြသနာကို ရှောင်ဖို့ အတွက် ကိုယ်သုံးချင်တဲ့
Game Engine ကသုံးတဲ့ programming language
ရဲ့ core features တေကို သေချာ ကျွမ်းကျင်အောင်
အရင်လေ့လာသင့်ပါတယ်။
ဥပမာ - ကိုယ်က unreal engine သုံးပြီး Game တေဖန်တီးချင်တယ် ဆိုရင် အရင်ဆုံး c++ ကို ကျွမ်းကျင်အောင်လေ့လာသင့်ပါတယ် ။ unity ဆိုရင်တော့ c # ပေါ့
သက်ဆိုင်ရာ programming language ကို ကျွမ်းကျင်ပြီဆိုရင် အပေါ်မှာ ပြောထားသလို
Mathematics တို့ Physics တို့လို skill တေ ဖြည့်သင့်ပါတယ်။ နောက်ဆုံးမှ Game Engine ကို စသုံးသင့်ပါတယ် ။
တကယ်လို့ Game Designer အဖြစ် Game Industry ထဲဝင်မယ်ဆိုရင် အပေါ်က အချက်တေ အပြင် အနုပညာ(Art) အမြင်နဲ့ တီထွင်ဖန်တီးနိုင်စွမ်း(creativity)ကလည်း အလွန်အရေးကြီးပါတယ်။
ဒီ Article ကိုဖတ်ပြီး တစ်စုံ တစ်ရာ အကျိုး ကျေးဇူး ရနိုင်ဖို့ မျှော်လင့်ပါတယ်ဗျ နောက်လည်း တစ်ခြား Article တေဖန်တီး ဖို့ ကြိုးစားသွားပါမယ် ။
အဆုံးထိ ဖတ်ပေးတဲ့အတွက် ကျေးဇူးတင်ပါတယ်။
14/05/2022
Java Basicကို Japan လို လေ့လာနိုင်မယ့် စာအုပ်ပါ
https://drive.google.com/file/d/1I85jkVwY43nIEs0zQhfXCHgr4Ydo_QB0/view?usp=drivesdk
14/05/2022
Objects တွေ ကြားထဲ က ဆက်သွယ်ချက်(relationships) တေ ကို Association လို့သက်မှတ်နိုင်ပါတယ်။
Association က အခြေခံအားဖြင့် object တွေ တစ်ခုနဲ့တစ်ခု ဘယ်လို ဆက်နွယ်(related) မလဲ
object တစ်ခု က အခြား object ရဲ့ လုပ်ဆောင်ချက် (functionality) တွေ ကို ဘယ်လို အသုံးချ မလဲဆို တဲ့ အချက်တေကို သက်မှတ်ပေးပါတယ်။
Java မှာ Composition နဲ့ Aggregation ဆိုပြီး
Association အမျိုးအစား ၂မျိုး ရှိပါတယ်။
Association တွေကို Has-A relationship အဖြစ်သတ်မှတ်နိုင်ပါတယ်။
Composition
Composition ဟာ strong ဖြစ်တဲ့ Association အမျိုးအစားဖြစ်ပါတယ်။ objects တေ ရဲ့ ဆက်နွယ်မှု(related) တစ်ခု သို့မဟုတ်
Association တစ်ခု ဟာ Composition ဖြစ်မဖြစ် ကို အချက် ၂ ချက်ပေါ် မူတည်ပြီး သတ်မှတ်နိုင်ပါတယ်။
- Object တစ်ခု က အခြား Object တစ်ခု ကို ပိုင်ဆိုင် မှု ရှိရမယ် ။
(အဲ့တော့ Composition မှာ Owner object ရယ် အပိုင်ဆိုင်ခံရတဲ့ object ရယ်ဆိုပြီးရှိမယ်)
- Owner object သာမရှိရင် ဒီ relationship က တခြားobject လည်း မတည်ရှိနိုင်ရဘူး။
အပေါ်က ၂ချက်နဲ့ ကိုက်ညီရင် Composition ဖြစ်တယ်လို့ သတ်မှတ်နိုင်တယ်။
ဥပမာ - Computer နဲ့ Motherboard လိုပေါ့
Computer ထဲမှာ motherboard ရှိတယ်
( Computer HAS-A a Motherboard)
တကယ်လို့ Computer(Owner) သာ မရှိရင် Motherboard ကသူ့ဘာသူ မရပ်တည်နိုင်ဘူး
Coding Example
// Computer မှာ Motherboard ရှိကိုရှိရမယ်
// Motherboard က Computer ရဲ့ အရေးကြီး တဲ့ အစိတ်အပိုင်း ဖြစ်တယ်
public class Computer {
private final Motherboard motherboard;
public Computer(){
motherboard = new Motherboard();
}
}
class Motherboard{}
**********************************************
Aggregation
Aggregation ဟာ Weak ဖြစ်တဲ့ Association ဖြစ်တယ်။ relationship တစ်ခု မှာ ရှိတဲ့ Object နှစ်ခု ဟာ တစ်ခုပေါ်တစ်ခု မမှီခို ဘဲ ရပ်တည်နိုင်ရင် အဲ့ဒိ relationship ကို Aggregation လို့ သတ်မှတ်နိုင်တယ်။ ( Composition မှာ က object ၂ခု က တစ်ခုပေါ် တစ်ခု မှီခို ရတယ်)
ဥပမာ - Person နဲ့ Address object ၂ခု ကို စဉ်းစားကြည့်
(Person HAS-A Address)
Person object မှာ Address ၁ခု (သို့) အများကြီးရှိနိုင်တယ်
Address တစ်ခုစီတိုင်း မှာလည်း သက်ဆိုင်ရာ
attribute တေရှိ မယ်(state,city,town,street...etc)
person မရှိတော့ရင်လည်း address က ရှိနေမှာပဲ
address မရှိတော့ရင်လည်း person က ရှိနိုင်တာပဲ
ပြောချင်တာက person object ကို delete လည်း
address object က ဆက်ရပ်တည်နိုင်တယ်။
address object ကို delete လည်း person object ကဆက်ရှိမှာပဲ။
Code Example
public class Person {
private List addresses;
public Person(){
addresses = new ArrayList();
}
}
class Address{}
Click here to claim your Sponsored Listing.
Category
Contact the school
Telephone
Website
Address
Yangon