• Announcements

    • Peraturan Umum, Sila baca !

      1) Perbincangan illegal , seperti download , provide link muat turun, lanun sebagainya ditegah dan akan dipadam tanpa notis. Sila ambil perhatian , sebarang perbincangan mengenai download men-download, sharing link yang berkait kepada illegal material: - akan dipadam serta merta - tiada kompromi, user akan diberi warn jika melakukan kesalahan sama Contoh related : - " aku tengah sedut ni.. sejam lagi siap.. " - " kat mana ko dload laju gile.. aku lagi 14 hari nk siap" 2) Spamming, double pos, smiley semata-mata adalah satu kesalahan besar, elakkan membuat susulan pos dibawah susulan sendiri. Warning tanpa notis akan diberikan. 3) Elakkan drama fanboyism , samada berkait dengan konsol, permainan pc dan sebagainya 4) Perbincangan private server tidak dibenarkan, namun multiplayer via hamachi group dibenarkan. 5) Cheat codes dibenarkan, tetapi tidak kepada [email protected] 6) Screenshot seeloknya bersaiz 640 x 480 ke bawah, sila gunakan code spoiler sekiranya tidak resize pic anda. 7) One line posting (susulan satu baris) tanpa menjawab persoalan dan tidak memberi apa-apa manfaat dikira sebagai SPAM. SILA GUNAKAN FUNGSI REPORT JIKA TERDAPAT USER/TOPIK YANG MELANGGAR PERATURAN DI ATAS. ____________________________________________________________ _______________________________ .::. Kegagalan mematuhi terma dan syarat boleh mengakibatkan posting anda di padam dan anda mendapat warn level secara percuma .::. ____________________________________________________________ _______________________________

Kelab Bina Game: Tutorial Membuat Game 3d

136 posts in this topic

Posted · Report post

Ha ah. boleh buat kat dalam tu. Tapi kalau nak power lagi pakai OGRE. FREE. Tapi dari development team dia kata, library game takde, kena cari atau buat sendirik. Kalau nak Shadow, lighting, power power guna OGRE, tapi tutorial kat sini still pakai irrlicht. hehe. Simple.

Share this post


Link to post
Share on other sites

Posted · Report post

maaf jika soalan aku ni kelihatan seperti bodoh skit...

Game engine ni sebenarnya untuk apa?

Apa fungsi dia?

Share this post


Link to post
Share on other sites

Posted · Report post

hmm..menarik orge ni..cel shading pon clean..kena explore ni..thx zx.. ;)

*link gile yang aku maksudkan (saja kongsi)

Share this post


Link to post
Share on other sites

Posted · Report post

TUTORIAL

COLLISION DETECTION (LEVEL TUTORIAL: SEDERHANA)

Ok kalau kita nak buat collision (langgar dinding, panjat tangga, gravity) maka kita guna kaedah di bawah. Kod ini sebelum while

collision.jpg

Kod untuk buat collision detection, sebelum while.

//Memasukkan model ke dalam game

    scene::IAnimatedMesh* q3levelmesh = smgr->getMesh("dunia.3ds");
    scene::ISceneNode* q3node = 0;
    
    if (q3levelmesh)
        q3node = smgr->addOctTreeSceneNode(q3levelmesh->getMesh(0));


//Letak kamera FPS dan buat collision detection
    scene::ICameraSceneNode* camera = 
        smgr->addCameraSceneNodeFPS(0, 100.0f, 300.0f, -1, 0, 0, true);
    camera->setPosition(core::vector3df(-100,50,-150));

    scene::ISceneNodeAnimator* anim = smgr->createCollisionResponseAnimator(
        selector, camera, core::vector3df(30,50,30),
        core::vector3df(0,-3,0), 
        core::vector3df(0,50,0));
    camera->addAnimator(anim);
    anim->drop();


Ok Izmal, byk lagi kita dapat explore makin menarikkan? hehehe.. tu la

MENJAWAB SOALAN

Game engine ni sebenarnya untuk apa?

Game engine ni membantu mengurangkan kod yang perlu dibuat. Contohnya kalau nak buat animasi guna CORE PROGRAMMING, memang panjang, adala dalam 1000 line. Tapi kalau pakai game/graphic engine, cuma paling koman 2 3 line je. Selain itu sesetengah game engine sediakan fizik game yang membantu membuat pegerakan dan bermacam-macam lagi. contoh irrlicth sediakan pegerakan FPS, cuma 1 line sahaja, Kalau code sendiri mau tulang belakang patah. Hehehe. Dan banyak lagi fungsi-fungsi yang memudahkan pembangunan game.

Apa fungsi dia?

Membantu menyediakan fizik, animasi, modelling, texturing, material dan map lebih mudah berbanding core programming.

Sebelum kita pergi lebih lanjut, adalah lebih baik kita diskus mengenai COLLISION, info diatas tu ringkas je... any question? Jwb soalan lagi bagus. senang sikit nak jelas.

Share this post


Link to post
Share on other sites

Posted · Report post

Dalam semua game engine, kita seringkali diberitahu bahawa adanya feature 'collision detection'. Apakah definisi sebenar collision detection dalam sesebuah game. Kalo ikut pengetahuan orang biasa:

(1) Collision - perlanggaran/ pertembungan/ penghampiran

(2) Detection - pengesanan

Cikgu Zsuperxtreme boleh terangkan lebih lanjut tak?

Share this post


Link to post
Share on other sites

Posted · Report post

MENJAWAB SOALAN

DEFINISI

(1) Collision - perlanggaran/ pertembungan/ penghampiran

Collision (Pelanggaran) adalah suatu method dimana sesuatu objek adalah terpaut dengan teori-teori fizik graviti dan pelanggaran pada sesuatu permukaan yang tidak boleh ditembusi. Oleh itu dengan adanya pengiraan "collision" ini objek tidak dapat menembusi dinding, pokok, kereta, dan objek-objek lain seumpama dunia realiti. Selain itu dengan adanya teknik ini juga, objek dapat berkedudukan pada lokasi begraviti dimana ia boleh memanjat tangga, jatuh dari bangunan dan menggelonsor dari permukaan curam. Dengan adanya teknik "collision" ini game akan kelihatan lebih realistik. Berikut adalah bagaimana "collision detection dapat dijelaskan dalam bentuk gambarajah. Garisan Kuning menandakan kawasan yang telah disetkan ke dalam model agar objek tidak menembusi ruangan tersebut, dan terdapat ruangan yang boleh ditembusi.

collision1.jpg

(2) Detection - pengesanan

Pengesanan collision ini terbahagi kepada banyak peringkat

1. Sphere Collision Detection

Objek bulat mewakili mana mana objek untuk mengesan 2 objek bulat berlanggar antara satu sama lain

2. Box Collision Detection

Pengesanan pelanggaran dua objek melalui kekotak

3. Triangle Collision Detection

Pelanggaran ditentukan dengan samada objek memasuk ruangan segitiga yang telah disetkan.

Implementasi pengesanan pelanggaran

Pengesanan sesuatu pelanggaran boleh dilakukan dengan kaedah begini, pada kedudukan masa t1, t2 disemak samada berada di ruangan pelanggaran atau tidak, seperti rajah dibawah.

c1.gif

Berikut adalah contoh bagaimana penggunaan sphere collision detection

c2.gif

Selain itu collision sphere ni boleh dikecilkan lagi untuk permukaan yang bukan bulat

c3.gif

Kaedah yang dipakai oleh game engin (advance) adalah seperti berikut dan mempunyai algorithma pokok yang kompleks

c4.gif

Walaubagaimanapun, game engine dah sediakan algorithma collision untuk kita so don't worry, unless korang nak buat core programming, memang sakit kepala nak buat mcm nie.

Share this post


Link to post
Share on other sites

Posted (edited) · Report post

Terima kasih, dah paham dah sikit2...

Soalan Selanjutnya.

Adakah objek seperti peluru yang ditembak ke arah 'monster', laser, dan implementasi 'particle system' (letupan, api, air, awan, habuk etc.) adalah juga menggunakan collision detection?

Edited by LanoG

Share this post


Link to post
Share on other sites

Posted · Report post

MENJAWAB SOALAN

Adakah objek seperti peluru yang ditembak ke arah 'monster', laser, dan implementasi 'particle system' (letupan, api, air, awan, habuk etc.) adalah juga menggunakan collision detection?

Ya, objek yang ditembak (peluru) menggunakan collision detection pada monster yand ditembak. Pengesanan ini boleh dilakukan dengan cara mudah iaitu sphere detection atau susah tree detection. Gambar di bawah menjelaskan bagaimana implementasi tembakan pada monster

cdshoot.jpg

Bagi particle system pulak, normally particle yang dihasilkan di dalam game tidak melibatkan collision detection. Particle itu bebas dari collision detection tetapi mempunyai code yang diset untuk pergerakan particle dari segi graviti. Ini kerana particle yang menembusi objek dikira (hilang).

Mengenai Air dan Awan. Pegerakan yang disetkan adalah pada TEXTURE ANIMATION, bukan collision detection. Dan Air dan Awan tidak terikat pada struktur graviti code. Kerana Texture air contohnya air terjun telahpun dilukis awal-awal, dan pegerakannya hanya bergantung pada animasi yang di set. Jika air itu mempunyai particle (percikan air) penambahan kod particle diletakkan pada permukaan hentaman dan tiada collision detection.

Share this post


Link to post
Share on other sites

Posted · Report post

TUTORIAL

CODE PELANGGARAN MUDAH (LEVEL TUTORIAL : MUDAH)

Ok ini ada serba sedikit contoh bagaimana pelanggaran kekotak dengan satu titik dijalankan. Walaubagaimanapun jika kita guna game enjin, kod sebegini telah pun direka untuk kita. kita just panggil sahaja, contoh semaklanggar(). Simpel, jadi tutorial kali ini sekadar untuk pemahaman sahaja.

cdbox.jpg

Share this post


Link to post
Share on other sites

Posted · Report post

OUTSOURCE TUTORIAL

SEMAKAN PELANGGARAN ( LEVEL TUTORIAL: SUSAH )

Artikel dibuat oleh Kasper Fauerby, artikel ini mempunyai pelbagai jenis semakan yang sangat bagus dari segi pelanggaran, vektor dan normal pegerakan.

DOWNLOAD [754kb]: Collision Detection

Ok ada kat sapa-sapa kat sini dah catchup dengan semua tutorial yang aku buat ke?

Share this post


Link to post
Share on other sites

Posted · Report post

assalamualaikum...

err tak sempat tanya itu ari.. :huh:

1. dalam code post #9:

//Menambahkah model ke dalam game

IAnimatedMesh* mesh = smgr->getMesh("../../media/kotak.md2");

IAnimatedMeshSceneNode* node = smgr->addAnimatedMeshSceneNode( mesh );

apsal guna model .md2 bukan .3ds?

2. sumer code2 yg dh ditunjukkan tu masukkan dlm irrlicht ker? maksudnya dev c++ blum guna lagi?

3. collision detection tu sama ke dgn 'Hit Boxes' (model halflife guna istilah tu)

Share this post


Link to post
Share on other sites

Posted (edited) · Report post

Walalaikumsalam

MENJAWAB SOALAN

1. Apsal guna model .md2 bukan .3ds?

Semua jenis format yang boleh dipakai untuk mesh dalam irrlicht:

3D Studio meshes (.3ds)

B3D files (.b3d)

Alias Wavefront Maya (.obj)

Cartography shop 4 (.csm)

COLLADA (.xml, .dae)

DeleD (.dmf)

FSRad oct (.oct)

Irrlicht scenes (.irr)

Microsoft DirectX (.x) (binary & text)

Milkshape (.ms3d)

My3DTools 3 (.my3D)

OGRE meshes (.mesh)

Pulsar LMTools (.lmts)

Quake 3 levels (.bsp)

Quake 2 models (.md2)

2. sumer code2 yg dh ditunjukkan tu masukkan dlm irrlicht ker? maksudnya dev c++ blum guna lagi?

Code tu dibuat dalam Dev C++, selepas install irrlicht dan configure Include dan Library irrlicht pada Dev C++.

Contoh nak configure Dev C++ untuk irrlicht : http://irrlicht.sourceforge.net/tut_devcpp.html

3. collision detection tu sama ke dgn 'Hit Boxes' (model halflife guna istilah tu)

Actually bagi half life dia guna teknik box collision = hit boxes, tapi sebenarnya teknik collision ni luas, selain tu kita ada sphere, triangle, plane, dan berbagai-bagai lagi.

Edit : Waalaikumsalam, lupa plak... hehehe.

Edited by zsuperxtreme

Share this post


Link to post
Share on other sites

Posted (edited) · Report post

TUTORIAL LINK

IrrWizard : Game Engine (LEVEL TUTORIAL : Sangat Susah)

LINK : http://irrwizard.sourceforge.net/

Ok setelah kita pelajari bagaimana nak buat grafik dengan IrrLicht, kita pergi kepada yang lebih advace, FPS wizard, so dengan wizard nie korang bleh buat FPS game guna irrlicht. Dari teknik grafik yang kita pelajari sebelum ini kita dapat jadikan impian untuk membuat game menjadi kenyataan dengan IrrWizard nie. Sebelum kita get through kepada IrrWizard, better korang study dulu introduction dan cara nak guna sebelum kita diskus.

irrWizard.jpg

Edited by zsuperxtreme

Share this post


Link to post
Share on other sites

Posted · Report post

Ok selepas ni kita akan buat sirius game, tapi sebelum aku continue, ada tak sesapa kat sini tak dapat lagi buat Kotak dan run kan dalam irrlicht graphic engine?

Share this post


Link to post
Share on other sites

Posted · Report post

Bagus2... hehehe.

Aku cadangkan en. ZX buat dulu flowchart yang simple, iaitu aliran proses yang digunakan sampai lah ke tahap sekarang. Ini secara tidak langsung akan memudahkan pemahaman konsep secara visual. Contohnya mula2 apa nak buat BUAT OBJEK (pakai Anim8or)----> MASUKKAN OBJECT dalam SCENE (pakai irrlitch) dan seterusnya........

Share this post


Link to post
Share on other sites

Posted (edited) · Report post

TUTORIAL LEARNING CURVE

Ok atas permintaan LanoG, ini adalah serba sedikit flow chart study untuk buat game.

tutorialflow.jpg

Edited by zsuperxtreme

Share this post


Link to post
Share on other sites

Posted · Report post

Actually yang sebelum nie kita belajar simple je.... lepas nie harder and more harder... so aku takkan proceed lagi selagi member kat sini tak ready for the next next next tutorial yang lebih complex. So any question?

Share this post


Link to post
Share on other sites

Posted · Report post

assalamualaikum...

waa..nanti jap

camner nk settingkn dev c++ terima enjin irrlicht tuhh? link yg zx bagi tu aku dh try, tpi xbleh pon. aku slh dl file ker?

dlm tutorial tu dia suruh linkkan 3 file nih dlm 'parameters - linker' devc++.

libIrrlicht.a -- the Irrlicht library

libjpeg.a -- the Independant JPEG group library

libz.a -- the zlib compression library

tpi aku jumpa file yg atas tu jer. mana lagi 2?

lagi satu dia asik klua:

confirm - there doesn't seem to be GNU make file in PATH or in devc++ Bin path.....bla bla panjang arr

tulungg..

* ko tulis 'Sangat Susah' kt ats tu mnakutkn aku la. hee

Share this post


Link to post
Share on other sites

Posted (edited) · Report post

Waalaikumsalam

Hehe... Cool down. ok aku ajar simple step

1. download Dev C++ dan Irrlicht 1.2 SDK

2. Install Dev C++ pada drive C:\ (contoh C:\Dev-CPP\)

3. Install Irrlicht pada drive C:\ (contoh C:\irrlicht-1.2\)

4. Open Dev C++, open empty project (File->New->Project...->Blank Project) Save

5. Klik Project->project option (Alt+p)

6. Pergi ke tab "directories", klik tab include, pastu add directory (C:\irrlicht-1.2\include)

7. pastu pergi ke tab "parameters" pastu add "library or object", pastu select file (C:\irrlicht-1.2\lib\Win32-gcc\libIrrlicht.a)

8. Ok.

Siap, pastu ko try la guna example yang ada untuk test. Itu sahaja. RUN -> Well done... hehehe

Erm, mengenai "sangat susah", ko jangan risau, kalau ko follow tutorial nie, tanpa lalai, atau buat tak tahu setiap step, ko pasti berjaya. Lagipun aku taknak tipu, aku mention sangat susah tu kerana tutorial kali ini tak mcm sebelum nie, yang sebelum nie simpel, lepas nie akan lagi detail dan banyak coding, mungkin ini punca kita takde game programmer 3d nie, mungkin sebab dorang tak suka FIZIK....yang penting, study, don't worry, selagi aku ada aku akan bantu.

EDIT: Susah kerana melibatkan AI, GAME, CORE, dan ENGINE, coding yang tak direct tapi pusing sana-pusing sini.

Edited by zsuperxtreme

Share this post


Link to post
Share on other sites

Posted · Report post

Oo... baru aku tau.. extension *.a tue untuk library dalam dev c++.. aku guna visual c++ jer dan guna library libIrrlitch.lib..

ZsuperXtreme.. Ada perbezaan ker dari segi coding dan output dalam visual c++ dengan dev c++??

Share this post


Link to post
Share on other sites

Posted · Report post

Definitely "takda langsung" perbezaan. Sama je....

Actually banyak program boleh guna irrlicth, tapi output semua sama sahaja, so tak kesah nak pakai apapun bahasa pengaturcaraan, yang penting kena tau bagaimana irrlicht berfungsi sebagai (Graphic Engine) dan bagaiaman irrWizard berfungsi sebagai (irrlicht Game Engine).

Share this post


Link to post
Share on other sites

Posted (edited) · Report post

Visual C++ dan Dev C++ beza cara install je, lain semua sama.

Better guna Dev C++ sebab free, Visual kena bayar. Lagipun sekarang nie kita tengah tumpu penggunaan open source, so bila korang buat game, takde la kena bayar, tak perlu modal, cuma sebiji pc je. Itu target aku.

Antara bahasa yang boleh digunakan

1. LUA

2. RUBY

3. BCX

4. JAVA

5. PYTHON

6. PUREBASIC

7. C++, Visual C++, C#

Edited by zsuperxtreme

Share this post


Link to post
Share on other sites

Posted · Report post

Yup! Aku sokong penggunaan Open Source sebagai alatan untuk pembangunan game nie. Lagipun, kalo kita pakai semua adalah percuma. Sedangkan kalo pakai yang komersial punya, mesti ada di kalangan kita tak mampu nak beli (dalam erti kata lain guna yang c*tak r*mpak)... di sini pun kita punya iltizam dan harapan dah terpesong sebab kita nak hapuskan lanun2 daripada muka bumi Malaysia nie. Itu lah harapan kita dan semua pihak terutama programmer2 yang telah memerah keringat menghasilkan program/games yang bermutu. Sekian, harap maklum.

Share this post


Link to post
Share on other sites

Posted · Report post

assalamualaikum...

hahaha..ropenye aku silap dload lar..dev c++ yg takder compiler punya (mingw ape ntah) dlm 2 MB. pastu aku dload skali lgi yg fullnyer (8 MB) baru boleh..

anyway..timekaseh zx bgi tutorial tuh..

*emm (tarik napas..)

Share this post


Link to post
Share on other sites

Posted · Report post

Sama,sama.

Oh, bagus-bagus, akhirnya boleh jugak. Aku rasa mana nie aku nampak MalaYneuMaya je yang dah sampai tahap install, yang lain aku nampak kat binarycode, ada sapa-sapa lagi dah instal ke?

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now