![]() ![]() |
Kelab Bina Game: Tutorial Membuat Game 3d, Mari belajar membuat game (3D Game) |
Dec 29 2006, 05:02 PM
Kiriman
#1
|
|
|
Ahli Rajin ![]() ![]() ![]() ![]() ![]() Grup: Moderator Jr. Kiriman: 1,062 Penyertaan: 9-August 04 Ahli ke- 1,667 |
![]() KELAB BINA GAME _______________________________________________ KELAB BINA GAME : GAME DESIGN TUTORIAL BAHAN BAHAN UNTUK MENGIKUTI TUTORIAL Oleh kerana kabel di Taiwan masih belum dibaiki, maka hanya senarai peralatan perisian akan disenaraikan. 1. Irrlicht 1.2 (Free) Digunakan untuk enjin game http://irrlicht.sourceforge.net/ 2. Dev-C++ 4.9.9.2 (Free) Digunakan untuk kompil game http://sourceforge.net/projects/dev-cpp/ 3. Anima8or (Free) Digunakan untuk buat model http://www.anim8or.com/main/index.html 4. G.I.M.P (Free) Digunakan untuk lukis texture dan fx http://www.gimp.org/ Dlm tutorial nie ada guna 3dsmax, tapi tak digalakkan sbb license. Just guna 3dsmax utk mudah buat tutorial. Cara kat Anima8or sama je, just different gui. ASAS GRAFIK (LEVEL TUTORIAL : TERLALU MUDAH) Ok semua tau yang grafik buat game nie mempunyai dua konsep 2d dgn 3d. Tapi mcm mana konsep ini dilaksanakan dalam game? Ok seperti yang kita ketahui 2d nie adalah imej yang rata, boleh dilihat dari depan sahaja (x,y). Manakala 3d adalah objek yang dibentuk melalui vertex-vertex pada (x,y,z) dan mempunyai permukaan normal dan setiap permukaan 3d terdiri dari imej (texture) yang menyebabkan objek itu kelihatan 3 dimensi. ![]() VERTEX = Titik biru Kenapa vertex ini penting dalam pembinaan game? Bukankah "Senang sahaja guna 3dsmax utk create vertex". Ok, jawapannya dengan mengenali vertex lebih mendalam, game developer boleh menguruskan UVW, BONE, COLLISION, TEXTURE, dan bermacam-macam lagi... jadi vertex ini bukan sekadar membuat box sahaja dan nilai penggunaan vertex ini perlu difahami sebelum langkah seterusnya. Maka adalah amat penting bagi game programmer mengenali apa itu vertex. Ini adalah 2d imej yang dilukis oleh hackezz ![]() Imej 2d itu diletak pada permukaan objek 3d diantara vertex-vertex yang disusun pada satu normal. ![]() Kiriman ini telah diubahsuai oleh zsuperxtreme: Feb 3 2007, 04:15 PM -------------------- ALLAH S.W.T THE ALMIGHTY
|
|
|
|
Dec 29 2006, 06:48 PM
Kiriman
#2
|
|
|
Ahli Sangat Rajin ![]() ![]() ![]() ![]() ![]() ![]() Grup: Members Kiriman: 2,882 Penyertaan: 21-May 06 Dari: worblesworld Ahli ke- 16,976 |
Dalam erti kata lain, kita masukkan SKIN pada permukaan sesebuah object supaya nampak bentuk 3D lebih ketara le kan. Gabungan vertex-vertex ini akan membentuk WIREFRAME yang menjadi tulang belakang sesebuah object... betul tak. Okey, teruskn sambungan, ZX.
-------------------- TIME IS RELATIVE, IMAGINATION IS INFINITE (www.freewebs.com/lanogame)
Mari jimatkan penggunaan petrol & diesel dengan Mygreenoil! Hubungi saya untuk keterangan lanjut. |
|
|
|
Dec 31 2006, 03:28 PM
Kiriman
#3
|
|
|
Ahli Rajin ![]() ![]() ![]() ![]() ![]() Grup: Members Kiriman: 1,438 Penyertaan: 1-July 04 Ahli ke- 1,029 |
Imej 2d tue texture untuk objek ker??
Bagaimana pulak untuk objek bulat?? Kat mana kedudukan vertex dia dan macamana nak letak texture dia?? -------------------- www.adtoreal.com | www.b1naryc0de.com | www.b1naryc0de.com/phero-gent/
|
|
|
|
Dec 31 2006, 03:38 PM
Kiriman
#4
|
|
|
Ahli Rajin ![]() ![]() ![]() ![]() ![]() Grup: Moderator Jr. Kiriman: 1,062 Penyertaan: 9-August 04 Ahli ke- 1,667 |
PENGENALAN CODE (LEVEL TUTORIAL : TERLALU MUDAH)
Ok selepas kita fahami vertex, kita akan pergi lebih lanjut kepada driver untuk melaksanakan game kita. Untuk memudahkan kefahaman mengenai aturcara maka Visual Basic dan DirectX 8.0 dipilih. Berikut adalah penerangan bagaimana setup untuk antaramuka game boleh dilakukan. ************************************************************ PEMBOLEHUBAH Dim Dx as DirectX8 Objek yang dihubungkan kepada directx8 Dim D3D as Direct3D8 Memberikan kawalan terhadap objek dalam directx Dim D3DDevice as Direct3DDevice8 Mewakili perkakasan untuk tujuan melukis pada skrin (render) ************************************************************ PERMULAAN Public Function Initialise() as Boolean On Error Goto ErrHandler: Dim DispMode as D3DDISPLAYMODE '//Mewakili mode display contoh 640 x 480 Dim D3DWindow as D3DPRESENT_PARAMETERS '// Mewakili skrin yang kita lihat Set Dx = New DirectX8 '// Membina object directx 8 Set D3D = Dx.Direct3DCreate() '//Dari objek directx kita buat antaramuka directx berkenaan D3D.GetAdapterDisplayMode D3DADAPTER_DEFAULT, DispMode '// Mendapatkan mode resolusi komputer yang dipakai D3DWindow.Windowed = 1 '// Menggunakan skrin dalam window D3DWindow.SwapEffect = D3DSWAPEFFECT_COPY_VSYNC '//Refresh skrin D3DWindow.BackBufferFormat = DispMode.Format '//Menggunakan resolusi yang sedia ada // Membuat device pada permukaan directx, iaitu ruangan untuk rendering. Set D3DDevice = D3D.CreateDevice(D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, FrmMain.Hwnd, _ _ D3DCREATE_SOFTWARE_VERTEXPROCESSING, _ _ D3DWindow) Initialise = True Exit Function ErrHandler: Initialise = False End Function ************************************************************ RENDER (LUKIS PADA SKRIN) Public Sub Render() '//Padam segala lukisan yang terdapat pada skrin di ruangan device. D3DDevice.Clear 0, ByVal 0, D3DCLEAR_TARGET, &HCCCCFF, 1#, 0 '//Memulakan senario game D3DDevice.BeginScene '//Disinilah kesetiap objek bagi directx dilukis contoh kotak, rumah, dan berbagai lagi D3DDevice.EndScene '//Perbaharui skrin untuk memaparkan objek yang baru. D3DDevice.Present ByVal 0, ByVal 0, 0, ByVal 0 End Sub ************************************************************ PUSINGAN UTAMA Private Sub Form_Load() Me.Show bRunning = Initialise() //Memulakan driver directx Do While bRunning Render '//Memanggil fungsi render dan memaparkan objek yang dilukis DoEvents '//Masa berhenti untuk cpu melakukan process yang dirender Loop '//Padam directx Set D3DDevice = Nothing Set D3D = Nothing Set Dx = Nothing Unload Me End End Sub Ok ini adalah asas untuk memulakan antaramuka untuk membuat game... Jadi ada sesiapa yang tak faham tanya sekarang sebelum kita terus ke pengaturcaraan yang lebih detail WARNING : Ini untuk tujuan kefahaman sahaja, jgn confuse dengan code ini, walaupun ia penting kebanyakan SDK dah sediakan. Jadi janganlah give up ok. Tutorial seterusnya adalah mcm mana kita nak letak objek yang kita blukis diatas kedalam code, tutorial hanya dibuat selepas tiada soalan mengenai code diajukan. Kiriman ini telah diubahsuai oleh zsuperxtreme: Dec 31 2006, 04:08 PM -------------------- ALLAH S.W.T THE ALMIGHTY
|
|
|
|
Dec 31 2006, 03:50 PM
Kiriman
#5
|
|
|
Ahli Rajin ![]() ![]() ![]() ![]() ![]() Grup: Moderator Jr. Kiriman: 1,062 Penyertaan: 9-August 04 Ahli ke- 1,667 |
MENJAWAB SOALAN
1. Imej 2d tue texture untuk objek ker?? Ya imej 2d tu adalah texture yang dilukis mengunakan paint, adobe photoshop, g.i.m.p atau lain lain 2.Bagaimana pulak untuk objek bulat?? Kat mana kedudukan vertex dia dan macamana nak letak texture dia?? Untuk objek yang bulat (banyak permukaan) boleh menggunakan UVW mapping seperti dibawah. Dimana setiap permukaan boleh diletakkan texture yang berlainan dan mudah digunakan. Walaubagaimanapun jika kita cuma ada 1 texture yang hendak diletak pada permukaan bulat, kita tidak memerlukan UVW editor nie, kita just drag texture dari material ke object sahaja. UVW mapping ni bila kita mahukan texture yang berlainan dan kita mahu adjust kedudukan vertex texture.
-------------------- ALLAH S.W.T THE ALMIGHTY
|
|
|
|
Jan 1 2007, 08:02 PM
Kiriman
#6
|
|
|
Ahli Sangat Rajin ![]() ![]() ![]() ![]() ![]() ![]() Grup: Members Kiriman: 4,445 Penyertaan: 26-April 04 Ahli ke- 356 |
wohhh
guwd2 nt aku nak mengetest wat..ko ajo lax cara nak mapping -------------------- tenuktutorials.blogspot.com
Saye Menjual Rapidshare account.PROMOSI RM20 sebulan..Cpat2 |
|
|
|
Jan 2 2007, 06:23 PM
Kiriman
#7
|
|
|
Ahli ![]() ![]() Grup: Members Kiriman: 76 Penyertaan: 7-July 04 Dari: where oh? Ahli ke- 1,092 |
lol, cool tutorial, gratz pada ko zsuperxtreme
adiex -------------------- ::: not intimidate just innovative :::
|
|
|
|
Jan 3 2007, 10:02 AM
Kiriman
#8
|
|
|
Ahli Rajin ![]() ![]() ![]() ![]() ![]() Grup: Moderator Jr. Kiriman: 1,062 Penyertaan: 9-August 04 Ahli ke- 1,667 |
Thanks, sapa-sapa nak menyelit tutorial selit je, tapi jgn off topic la mcm bagi tutorial nak jahit baju ke, jgn la.. hehehe.
Ok any question geng? Sapa sapa dah faham mengenai tempek texture dengan coding basic tu? -------------------- ALLAH S.W.T THE ALMIGHTY
|
|
|
|
Jan 3 2007, 10:52 AM
Kiriman
#9
|
|
|
Ahli Rajin ![]() ![]() ![]() ![]() ![]() Grup: Moderator Jr. Kiriman: 1,062 Penyertaan: 9-August 04 Ahli ke- 1,667 |
TUTORIAL
ENJIN GRAFIK (LEVEL TUTORIAL : MUDAH) Ok setelah kita ketahui basic startup Directx guna VB, mari kita samakan dengan enjin irrlicht percuma nie... kita takkan guna core programming, sbb terlalu susah untuk beginner, jd kita proceed dengan irrlicht supaya korang mudah faham. Irrlicht nie menggunakan C++. //Memulakan irrlicht
#include <irrlicht.h> using namespace irr; using namespace core; using namespace scene; using namespace video; using namespace io; using namespace gui; //Menggunakan library irrlicht #pragma comment(lib, "Irrlicht.lib") int main() { //Menyediakan satu permukaan pada skrin untuk rendering IrrlichtDevice *device =createDevice(EDT_SOFTWARE, dimension2d<s32>(512, 384), 16,false, false, false, 0); device->setWindowCaption("Hello Dunia Putera"); //Menentukan resolusi skrin komputer IVideoDriver* driver = device->getVideoDriver(); //Pengurusan dalam game ISceneManager* smgr = device->getSceneManager(); //Antaramuka game IGUIEnvironment* guienv = device->getGUIEnvironment(); //Letak text pada antaramuka iaitu pada guienv guienv->addStaticText(L"Hello geng putera, jom rock",rect<int>(10,10,200,22), true); //Menambahkah model ke dalam game IAnimatedMesh* mesh = smgr->getMesh("../../media/kotak.md2"); IAnimatedMeshSceneNode* node = smgr->addAnimatedMeshSceneNode( mesh ); //Meletakkan texture pada model tadi if (node) { node->setMaterialFlag(EMF_LIGHTING, false); node->setFrameLoop(0, 310); node->setMaterialTexture( 0, driver->getTexture("../../media/kotak.bmp") ); } //meletakkan camera dalam ruangan game, iaitu view player smgr->addCameraSceneNode(0, vector3df(0,30,-40), vector3df(0,5,0)); // RENDER, lukis apa yang kita dah set ke dalam game while(device->run()){ driver->beginScene(true, true, SColor(0,200,200,200)); smgr->drawAll(); //Lukis 3 dimensi game guienv->drawAll(); //Lukis paparan 2d game driver->endScene(); //Bagitau driver takat tu je, pastu render } //Padam device->drop(); return 0; } Kiriman ini telah diubahsuai oleh zsuperxtreme: Jan 12 2007, 12:50 PM -------------------- ALLAH S.W.T THE ALMIGHTY
|
|
|
|
Jan 3 2007, 11:40 AM
Kiriman
#10
|
|
|
Ahli Rajin ![]() ![]() ![]() ![]() ![]() Grup: Moderator Jr. Kiriman: 1,062 Penyertaan: 9-August 04 Ahli ke- 1,667 |
TUTORIAL
REKABENTUK MAP (LEVEL TUTORIAL : MUDAH) Selepas kita berjaya memasukkan objek kotak ke dalam ruangan game, adalah baik untuk kita membina map bagi ruangan game kita yang kita boleh terokai dalam bentuk 3d. Berdasarkan tutorial satu, bina satu ruangan persekitaran seperti contoh di bawah. Selepas ini kita akan membina sebuah persekitaran 3d menggunakan irrlicht dengan menggunakan map yang kita bentuk.
-------------------- ALLAH S.W.T THE ALMIGHTY
|
|
|
|
Jan 3 2007, 03:18 PM
Kiriman
#11
|
|
|
Ahli Rajin ![]() ![]() ![]() ![]() Grup: Members Kiriman: 922 Penyertaan: 22-November 05 Dari: Dalam monitor,depan kau, rumah kau, Malaysia Ahli ke- 12,313 |
err...jgn marah..!!
software apa yang digunakan untuk ko lukis benda tu.. klau Google Sketchup boleh ker...ni jelah software 3d yg aku ada... nak save kena dalam format apa klau dlm pembuatan game ni?? aku harap tutorial ni boleh difahami semua bahasa (c,c++,c#, Python, Vb dan apa-apa lagi lah....) -------------------- Bahaya sebenar adalah bukan komputer akan berfikir seperti manusia tetapi manusia berfikir seperti komputer.
---Sydney J. Harris--- Hargailah otak anda |
|
|
|
Jan 3 2007, 04:22 PM
Kiriman
#12
|
|
|
Ahli Rajin ![]() ![]() ![]() ![]() ![]() Grup: Moderator Jr. Kiriman: 1,062 Penyertaan: 9-August 04 Ahli ke- 1,667 |
Powerabu
Tutorial nie menggunakan 3DSMAX, selain dari 3dsmax, ko bleh guna MAYA, LIGHTWAVE, TrueSpace, dan berbagai lagi. Bagi memudahkan lagi tujuan pembelajaran nie gunalah 3dsmax Kalau nak guna google sketch tu make sure dia boleh export kepada most popular format *.3ds. Normally kalau nak buat game kena ada format *.3ds, *.md2, *.mdl, *.bsp, *.x, dan lain-lain. Tutorial kita nie "aturcara majmuk", sekejap ke enjin 3d, sekejap ke C++, sekejap ke VB. Supaya korang dapat rasakan persamaan. Tapi buat masa nie kita focus ke IRRLICHT guna C++, sbb FREE. hehehe. Kiriman ini telah diubahsuai oleh zsuperxtreme: Jan 3 2007, 04:34 PM -------------------- ALLAH S.W.T THE ALMIGHTY
|
|
|
|
Jan 3 2007, 07:27 PM
Kiriman
#13
|
|
|
Ahli Rajin ![]() ![]() ![]() ![]() ![]() Grup: Moderator Jr. Kiriman: 1,062 Penyertaan: 9-August 04 Ahli ke- 1,667 |
TOOLS : ANIMA8OR (FREE)
Oleh kerana kita nak guna semua tools adalah free maka, Anima8or digunakan selain menggunakan 3dsmax. Berikut adalah contoh Anima8or dan sampel bulatan yang direka. Gunakan Export seperti yang tertera pada image untuk export kepada format *.3ds.
Kiriman ini telah diubahsuai oleh zsuperxtreme: Jan 3 2007, 09:03 PM -------------------- ALLAH S.W.T THE ALMIGHTY
|
|
|
|
Jan 3 2007, 08:02 PM
Kiriman
#14
|
|
|
Ahli Sangat Rajin ![]() ![]() ![]() ![]() ![]() ![]() Grup: Members Kiriman: 2,882 Penyertaan: 21-May 06 Dari: worblesworld Ahli ke- 16,976 |
Dah hampir 2 tahun aku guna Anim8or nie... software nie memang power, lightweight, mudah dan simple. Latest version update pada bulan September 2006 kalo tak silap.
Kepada powerabu, kalo nak guna 3D software yang free boleh guna Anim8or (mudah digunakan) dan Blender (open source tapi susah sket nak guna). Ko try google, mesti jumpe punya. Okey, teruskan cikgu zsuperxtreme.... -------------------- TIME IS RELATIVE, IMAGINATION IS INFINITE (www.freewebs.com/lanogame)
Mari jimatkan penggunaan petrol & diesel dengan Mygreenoil! Hubungi saya untuk keterangan lanjut. |
|
|
|
Jan 3 2007, 09:02 PM
Kiriman
#15
|
|
|
Ahli Rajin ![]() ![]() ![]() ![]() ![]() Grup: Moderator Jr. Kiriman: 1,062 Penyertaan: 9-August 04 Ahli ke- 1,667 |
TOOLS : BLENDER (FREE)
Ok ni adalah tools modelling free yang Lanog explain tadi. So korang bleh lah pilih antara Anima8or dengan Blender nie. Ikut kesukaan korang. Tapi yang penting kedua-dua software nie boleh convert *.3ds.
-------------------- ALLAH S.W.T THE ALMIGHTY
|
|
|
|
Jan 4 2007, 09:01 AM
Kiriman
#16
|
|
|
Ahli Rajin ![]() ![]() ![]() ![]() ![]() Grup: Moderator Jr. Kiriman: 1,062 Penyertaan: 9-August 04 Ahli ke- 1,667 |
TUTORIAL
GERAK FIRST PERSON SHOOTER (FPS) (LEVEL TUTORIAL : MUDAH) So ok, ini adalah code untuk korang bergerak dalam model persekitaran yang korang dah buat dan telah di export kepada 3ds. Potongan code nie hendaklah diletakkan sebelum smgr->drawAll; dan sebelum loop while. // Memasukkan model kotak yang kita lukis guna Anima8or atau Blender scene::IAnimatedMesh* mesh = smgr->getMesh("kotak.3ds"); // Node ini mewakili view model yang hanya player nampak pada skrin scene::ISceneNode* node = 0; // Hanya model yang nampak pada skrin di clip kan.... cantas... supaya CPU laju if (mesh) node = smgr->addOctTreeSceneNode(mesh->getMesh(0)); // Meletakkan pegerakan FIRST PERSON SHOOTER... simple je. smgr->addCameraSceneNodeFPS(); // Mouse punye icon dipadamkan. device->getCursorControl()->setVisible(false); Ok selepas nie kita akan see complete code, tp tunggu..... -------------------- ALLAH S.W.T THE ALMIGHTY
|
|
|
|
Jan 4 2007, 09:12 AM
Kiriman
#17
|
|
|
Ahli Rajin ![]() ![]() ![]() ![]() ![]() Grup: Moderator Jr. Kiriman: 1,062 Penyertaan: 9-August 04 Ahli ke- 1,667 |
Untuk lebih mudah memahami mana kod yang perlu dipakai atau diubah, sila baca setiap komen yang diber pada setiap line code dan cuba faham setiap fungsi.
-------------------- ALLAH S.W.T THE ALMIGHTY
|
|
|
|
Jan 5 2007, 08:37 AM
Kiriman
#18
|
|
|
Ahli Rajin ![]() ![]() ![]() ![]() ![]() Grup: Members Kiriman: 2,006 Penyertaan: 24-September 04 Dari: is from.. Ahli ke- 2,779 |
assalamualaikum...
jadi mesti ada prog. VB lah yer? kalu guna Visual C++ takleh ker? Direct X 8.0 tu ape plak? program khas atau yg dpt free masa beli cd game tuh? pasal dlu masa main game NFSU dia pakai DX 9.0c. Yg tu ker? lagi satu ni wat game fps kan? tutorial nih bleh guna utk wat game keta gak ker? mcm game VW golf rally dulu tuh...(modelling sya guna Milkshape3D, tpi ada convert ke .3ds ,cuma ter rotate 90 drjh..) sya byk taktau psal programming nih...ansur2 blaja...C++ pun gagap -------------------- NEW PTC:
http://www.easyflowup.com/register.php?r=nakduit2 https://www.giantbux.com/?r=nakduit2 ---- مييوتو كاينو ساراوادينكيتي ... مالاينيوماي |
|
|
|
Jan 5 2007, 08:53 AM
Kiriman
#19
|
|
|
Ahli Rajin ![]() ![]() ![]() ![]() ![]() Grup: Moderator Jr. Kiriman: 1,062 Penyertaan: 9-August 04 Ahli ke- 1,667 |
Malayneumaya, oleh kerana VB menggunakan license dan kita ingin menggunakan Irrlicht maka C++ digunakan. Sila semak senarai peralatan untuk buat game pada post #1. Kesemua peralatan itu percuma. Tidak memerlukan Directx SDK untuk buat game kali ini, sbb Directx 9.0c dah ada dlm pc dalam kebanyakan user.
Tutorial kali ini lebih kepada genre FPS, RACING, SIMULATOR, RPG, PUZZLE dan lain-lain dalam bentuk 3d. -------------------- ALLAH S.W.T THE ALMIGHTY
|
|
|
|
Jan 5 2007, 09:54 AM
Kiriman
#20
|
|
|
Ahli ![]() ![]() Grup: Members Kiriman: 50 Penyertaan: 21-December 06 Dari: Kuala Lumpur Ahli ke- 22,130 |
zsuperxtreme - kalau bake texture dgn alpha mcm mana plk?thx in advance
-------------------- Ke3Dan adalah hak milik setiap insan
- http://izmalsk8.tripod.com - |
|
|
|
Jan 5 2007, 10:08 AM
Kiriman
#21
|
|
|
Ahli Rajin ![]() ![]() ![]() ![]() ![]() Grup: Moderator Jr. Kiriman: 1,062 Penyertaan: 9-August 04 Ahli ke- 1,667 |
MENJAWAB SOALAN kalau bake texture dgn alpha mcm mana plk? Kalau kita nak bake texture, make sure enjin atau aturcara yang di setup tu open "Alpha blending". Tp most of the enjin yang ada dah built in open. So antara format yang sesuai untuk tujuan Alpha ialah *.TGA dan *.DDS. Kalau nak bake texture cuba guna G.I.M.P, set background as transparent and draw mcm biasa. Pastu save as *.TGA. So dia include Alpha pada format tu. Kalau kau nak alpha pada programming interface dah tak through DirectX atau OpenGL, kau akan nampak side alpha jadi black, atau tak boleh open. So jika tak menggunakan Graphic Engine nie, ko bleh guna *.GIF, yang ini biasa je. < |




Dec 29 2006, 05:02 PM






