Skip to content

January 7, 2013

12

Game Development : හැදින්වීම

පරිගණක සහ විවිධ ක්‍රීඩා උපාංග භාවිතා කරන හැමෝගෙම ලොකු ආසාවක් තමා දෘශ්‍ය ක්‍රීඩා සෙල්ලම් කිරීම. කවුද අකමැති දෘශ්යව ක්‍රීඩා සෙල්ලම් කරන්න.  නමුත් ඔබට කවදාවත් සිතුනේ නැද්ද දෘශ්‍ය ක්‍රීඩා නිර්මාණය කරන්න? ඔව් ඔබටත් පුළුවනි. මේ එසේ දෘශ්‍ය ක්‍රීඩා නිර්මාණය ගැන කියන ලිපි පෙළක පළමු වන්නැයි.  මෙය ලියන මමත් තවම ඉගෙන ගන්න කෙනෙක්. එනිසා යම් වරදක් දැක්කොත් පහදා දෙන මෙන් ඉල්ලා සිටිනවා පටන් ගැනීමට පෙරම.  දෘශ්‍ය ක්‍රීඩා නිර්මාණය කිරීමට ඔබත් කැමතිද? පිළිතුර ඔව් නම් ඔබ සතුව තිබිය යුතු යම් කිසි දෑ කීපයක් තියෙනවා..
1. බලවත් කැමැත්ත සහ කැපවීම – දෘශ්‍ය ක්‍රීඩා නිර්මාණය පුළුල් විෂයක් මෙන්ම ඉගෙනගන්න දේ බොහොමයි. ඒවගේම කැමැත්ත නැත්නම් බොහොම වෙහෙසකාරී දෙයක්. ගොඩක් අය දෘශ්‍ය ක්‍රීඩා නිර්මාණය පටන් ගත්තත් සති දෙකෙන් තුනෙන් නවතා දමනවා මොකද ක්රීදඩා සෙල්ලම් කිරීම තරම් ප්‍රියජනක දෙයක් නොවන නිසා. නමුත් ඔබ මෙයට ඉතාම කැමැත්තක් දක්වනවා නම් එය වෙහෙසකාරී වීම කෙසේ වෙතත් විනෝදකාරි දෙයක් වේවී.
2. යම් පරිගණක භාෂාවක් හදාරා තිබීම සහ එහි සැලකියයුතු තරමේ දැනුමක් ලබා තිබීම. අඩුම තරමේ මේ කොටස් වත් ඔබ ඉතා හොදින් පරිශීලනය කර තිබිය යුතුයි.
  • Variable types
  • Functions
  • Control structures
  • References
  • Pointers
  • Arrays
  • Data structures ( Stacks, Queues, Trees )
  • Object Oriented Concepts ( class, objects, method, Constructor, polymorphism)
  • Operator Overloading
( ඔබ මේවා ගැන දැනුමක් නැතිනම් ක්‍රීඩා නිර්මාණය අපහසුයි. එනිසා පළමුව යම් පරිගණක භාෂාවක් ඉගෙන ගන්න.. C++ ඉගෙනීම ඉතාම යෝග්යීයි.  මේ සබැඳියාවහි ඇති පොත ඔබට ඉතාම වැදගත් වනු ඇති. )
3. ගණිතමය දැනුම – ඔබ පාසලේ ලබපු දැනුමට අමතරව මේ මේ දේවල් උවමනා වෙනවා. ( සංකීර්ණ ත්‍රිමාණ ක්‍රීඩා සැදීමට පමණි )
  • 3D Vectors
  • Matrix Algebra
  • Transformations
 උසස් පෙලට ගණිත විෂය හැදෑරුවේ නැහැ කියල බයවෙන්න දෙයක් නෑ. කැමැත්ත සහ කැපවීම තිබේ නම් ඉගෙන ගන්න අමාරු නැහැ.
4. ගැටළු විසදීමේ හැකියාව  –  මේ සදහා නම් පුරුද්ද තිබිය යුතුයි. එනිසා පුළුවන් තරම් කේතකරණයේ යෙදෙන්න. ඔබ සතු පුරුද්ද අඩු නම් හොදම දේ තමා කේතකරණ වෙබ් අඩවියක සාමාජිකත්වය ගෙන එහි නියැලීම. දවසකට පැය බාගයක් කලත් හොදටම ඇති.  www.topcoder.com  සහ USACO මේ සදහා ඉතාම හොදයි.
මම මේ ලිපිවලදී ලියන්න බලාපොරොතු වෙන්නේ සරල ක්‍රීඩා නිර්මාණය ගැනයි. එනිසා ගැඹුරු ගණිත දැනුමක් හෝ ගැඹුරු data structure දැනුමක් අත්‍යවශ්‍ය වෙන්නේ නෑ. නමුත් ඔබ ඉදිරියට කරගෙන යන්න අදහසක් තිබේ නම් එම දැනුම තිබීම අනිවාර්යයි.
දෘශ්‍ය ක්‍රීඩා නිර්මාණය තවදුරටත්…
දෘශ්‍ය ක්‍රීඩා නිර්මාණය කිරීමේදී එය අනිත් කේතකරණ විදි වලින් යම් තරමක් වෙනස් වෙනවා. අපි බලමු ඇයි ඒ කියල?
  1. ශබ්ද මාද්‍ය / Audio
  2. රූපමය මාද්‍ය / Video
  3. ගැටුම් හදුනා ගැනීම / Collision Detection
  4. පාලනය කිරීම / Controlling
  5. Polling CPU activity
පාලනය කිරීම යනු ක්‍රීඩාව පාලනය කිරීමයි (මුසිකය, යතුරු පුවරුව සහ game pads ). Polling CPU activity යනු නිතරම අපේ ප්‍රොසෙසරය අපෙන් මෙහෙයවීමක් බලාපොරොත්තුවෙන් සිටීමයි. අපි එදිනෙදා කරන even driven apps  වලට වඩා වෙනස් වෙනවා.
මෙලෙස අපි දෘශ්‍ය ක්‍රීඩා සැදීමේදී ඉහත කියන ලද දේවල් ගැන සැලකිලිමත් වීම අනිවාර්යයි. සාමාන්‍යයෙන් අපි දන්නා පරිගණක භාෂාවකින් මේ හැම දෙයක් ම කරන්න බැහැ. එනිසා මෙය වෙනත් විදි දෙකකින් කරන්න පුළුවනි.
  1. ක්‍රීඩා සැදිමටම නිර්මාණය වූ භාෂාවක් භාවිතය (උදා – Blitz Basic, Dark Basic)
  2. සාමාන්‍ය භාෂාවක් සමහ game library හෝ API එකක් භාවිතය
Dark Basic වැනි භාෂාවක් තෝරාගැනීම ඉගෙනීමට මෙන්ම ක්‍රීඩා හැදිමටත් පහසුයි. නමුත් ගැටලුව තියෙන්නේ මේවා සාමාන්‍ය භාෂාවක් තරම් හොදින් මෙමරි භාවිතය සහ ප්‍රොසෙසර් භාවිතය කිරීමට ඇති නොහැකියාවයි.එනිසා සාමාන්‍ය භාෂාවක් සමහ game library හෝ API එකක් භාවිතය පටන් ගැනීමට සුදුසුයි.
Game libraries – Unity, XNA, SLICK2D , Marte Engine, Cube, Aleph One, Libgdx
API – DirectX, OpenGL, SDL, SFML
මේවාට අමතරව තව ගොඩක් ක්‍රම තිබුනත් මේවා තමයි දැනට ලෝකේ වඩාත්ම පාවිච්චි වෙන කොටස්. API පාවිච්චි කරන එක තම ලෝකයේ සම්මතය. නමුත් එකවරම DirectX හෝ OpenGL වන්නක් භාවිතා කිරීම යම් තාක් දුරට අපහසුයි. එනිසා game library එකකින් ආරම්භ කිරීම යෝග්‍ය බව මගේ අදහසයි. තවත් අප විසින් සැලකීමත් විය යුතු දෙයක් තමයි අපි භාවිතා කරන API හෝ game library එක cross platform ද නැද්ද යන වග. එය තමුන්ගේ පුද්ගලික කැමැත්ත මත තීරණය කිරීම සුදුසුයි.
අප මේ ඉහත සදහන් කරන ලද API හෝ game library භාවිතා කර ද්විමාන මෙන්ම ත්‍රිමාණ ක්‍රීඩා නිර්මාණය කල හැකියි. ත්‍රිමාණ ක්‍රීඩා නිර්මාණය ඉතාම සංකීර්ණ වන අතර පෙර සදහන් කල යම් තාක් ගැඹුරු ගණිත දැනුමද අවශ්‍ය වෙනවා. එනිසා ආරම්භයක් ලෙස Microsoft සමාගමෙන් ලබාදෙන XNA libarary පාවිච්චි කරල ද්විමාන ක්‍රීඩා නිර්මාණ කිරීමේ ලබන ලිපියේ සිට බලාපොරොත්තු වන්න. ඔබට ජය!
Prasad Jayashanka
Read more from Articles, Guides, How To
12 Comments Post a comment
  1. Jan 7 2013

    ස්තුතියි..ඉතාමත් වටිනා ලිපියක්..මම සාමාන්‍යයේන් Blog හෝ (වෙනත්) Site එකේ නම බලලා නේමේ පෝස්ට් කියවන්නේ…..පෝස්ට් එක කියවනකොටම හිතුනා මට මේක ටෙක්කතාවල පෝස්ට් එකක්බව…..ඒකට හේතුව තමා අලුත් වැදගත් දෙයක් ලෝභ නැතුව දෙන්නේ ඔයාලා විම…..(තව අය නැතිවාම නෙමේ….)

    Reply
  2. Ruwan
    Jan 7 2013

    maxxxa macn …………… keep it up.

    Reply
  3. Ishan
    Jan 8 2013

    niyamai digatama karagena yanna apita deyak danagannawanam ithin techkatha thamai ithin,jaya wewaaaaaaaaaaaaaa!!!!!!!!!!!!!!!!

    Reply
  4. Nayana Priyankara
    Jan 10 2013

    ඉතාම වටිනා ලිපියක්. දිගටම ලියන්න.

    game හදන්න හොඳ game engine එකක් තියනව cry engine කියල.
    නොමිළේ දෙන සංස්කරණය දැන් ලබාගන්න පුළුවන්.
    crysis 3 හැදුවෙත් මේ මෘදුකාංගය පාවිච්චි කරල.

    http://www.mycryengine.com/ ලින්ක් එකෙන් වාණිජ නොවන භාවිතයසඳහා ලබාගන්න පුළුවන්.

    මේ game engine එක පාවිච්චිකරනඑක හරි ලේසී.

    Reply
    • Prasad
      Jan 16 2013

      ස්තුතියි 🙂 මම සහ මගේ යාලුවෙක් එක්ව ඔය cryengine 3 එක පාවිච්චි කරලා පොඩි මැප් එකක් ටෙස්ට් කරලා තියෙනවා. නමුත් එක රාමුවකට කොටු වීම තමා අවුල.

      Reply
  5. 3drad මෘදුකාංගය හරහා ෙල්සිෙයන්ම 3d game හදන්න හැකියි
    http://www.3drad.com

    Reply
  6. Prasad
    Jan 16 2013

    සැමට ස්තුතියි 🙂 හැම සතියෙම එකක් අනිවා ලියන්න උපරිම උත්සාහය දෙනවා 🙂

    Reply
  7. සමීර
    Feb 2 2013

    දිගටම ලියන්න. මේ වගේ දැනුම ලබා දෙන්න මහන්සි වෙන එකගැන මගේ ස්තූතිය.

    Reply
  8. Ramitha
    Mar 2 2013

    Good work.. keep it up..

    Reply
  9. DULAJ
    Mar 5 2013

    Great work machan.. Keep it up..
    I am KOGA.

    Reply
  10. gihan
    Apr 25 2013

    supirima wedak… danna deyak kiyala dena eka godak watinawa.. digatama liyanna..Thanks

    Reply
  11. Prasanna
    Oct 29 2013

    Suppa ………………..

    Reply

Share your thoughts, post a comment.

(required)
(required)

Note: HTML is allowed. Your email address will never be published.

Subscribe to comments

-->