Projek Senang-senang Mari Bikin Game
Posted in Sekeripting by Primata Tampan on 07/01/2010 | 5 Comments

Jadi ma pren, sekian lama ndak ngisi blog (buset males banget yak ngisi blog sendiri), dan setelah berkutat kembali dengan Pemerogeraman a.k.a Sekeripting maka saya selaku perogeremer yang tadinya kondektur metro mini ini akhirnya memutuskan untuk membuat Game. Iyaaak benar sekali sodara-sodara saya lagi ada proyek senang-senang bikin game huhui.
Keinginan bikin game sebenernya sudah lama. Mungkin kalo dulu-dulu cuma sekedar bikin pong yang kayak ping pong tapi under console dan di masak pake C murni. Nah saya kepikiran ini kenapa nggak bikin yang pake SDL. Dulu pengennya sih bikin RPG, yaaaa gegara itu lah Final Fantasy, tapi sebelum saya gila ya diputuskan untuk sementara bikin yang simple-simple aja.
Jadi, karena saya gaptek bener sama yang namanya SDL ini sekitar 6 bulanan nyari-nyari gugling-gugling engine game yang cihuy. Bukannya makin simple kok makin ruwet. Tadinya saya kepengen tetep kekeuh pake C buat sekeripnya. Tapi lama-lama C ada beberapa hal yang ndak bisa di handle. Dan terlalu ruwet sekeripting OOP pake C. Yaaaa saya ngaku, saya masih katro kok.
Setelah beberapa hari sebelumnya bikin iseng-isengan PortScanner ndak berguna sama sekali yang dibuat dalam waktu 3,5 jam beberapa hari yang lalu, kok ya makin kepengen buat bikin game. Ah iya ini portskenernya saya kasih nama TanpoGuno-PortScanner, ya bener-bener ndak ada guna, masih ndak akurat. Sebenernya dibikin gegara nyoba-nyoba lagi nginget-nginget socket programming di C. Eiya ini bukan rencana saya yang bikin portskener sekampung itu. Ini cuma iseng doang, bisa diliat DISINI gan. Lanjut dah, nah ada beberapa alasannya kenapa saya kepengenbener bikin game itu :
1. Linux maupun FreeBSD en di ader BSD masih dikit gamenya.
2. Pengen bikin game yang kacau balau buat lucu2an.
3. Kepengen belajar lagi C++ (iya ini ane sampe bener-bener lupa)
Nah, karena projek senang-senang ya digarapnya gak pake deadline. Jadi ya sembari ane belajar. Berhubung ane ini penggemar berat TeeWorld kalo di linux atau di BSD, saya kepengen juga deh nyoba bikin semacem TeeWorld ala saya sendiri. Kalo ndak tau apa itu Teeworld nih saya emmbed pidio dari Yutubnya :
(Ini dia si TeeWorld itu...)
Cuma masalahnya gini, kalo TeeWorld ini maennya kudu Online. Lah terus kalo yang gak lagi online begimana? Atau online tapi benwit ngos-ngosan? Karena itu lah ane kepingin bikin itu yang namanya game kayak TeeWorld ini, bisa Online bisa juga Offline. Dan yang pasti ane sih pengen enteng.
Mulai dah masuk ke ide ceritanya. Ane pengen bikin game yang semacam Battle Royal gitu saling bunuh-bunuhan (hwakakakakak) dimana tokoh-tokohnya itu orang-orang yang berkecimpung dibidang IT Security. Makanya itu gambar diawal itu ane kasih judul Project Mayhem-Battle Royal, iseng aja sih, pengen buat lucu-lucuan aja. Jadi nanti tokohnya itu kartun memang, cuma kepalanya ya kepala orang-orang yang dari pihak Project Mayhem Blekhet versus IT Security Profesional Waithet. Lucu aja sih buat ane. Ya berhubung ane gak bisa ngehek mendingan ane bikin game sekalian latian huehehehe.
Pengennya sih pake muka-muka orang-orang IT Security atau Heker2nya di Indonesia, cuma ane gak tau dah rata-rata pada misterius sih. Kira-kira ijinnya begimana lah. Ane males kalo urusan ijin2,lah wong ini nanti mo di lisensiin BSD Lisence kok kalo jadi.
Oke lanjut dah bergeraka ke teknisnya. Jadi dari kemarin malam ane udah bikin alurnya dan kira-kira ngebutuhin ini nih :
==============
HEADER NYA
==============
1. AturStdoutnya.h : Buat ngatur Standar Input Output di Gamenya (menu, loading, de el-el)
2. ProjectMayhem.h : Ini header intinya, buat segala static sama struct main.cpp
3. IPConvertNegara.h : Kkalo online gitu, IPnya di konversi dari negara mana, siapin DBnya
4. BudakBelianLib.h : Header yang ngatur antara Video output dengan frame yang di hasilkan via SDL
5. ClientLibnyo.h : Yang ngatur segala struct Client
6. ServerLibnyo.h : Yang ngatur segala struct Server
7. NgaturConfLib.h : Ini kerjaannya yang ngomandoin konfigurasi2 string library yang dibutuhin
8. PMayhemShell.h : Header inti permainan
9. GfxJadul.h : Handling SDL kalo ada yang pake video output jadul
10. NyariFile.h : Tukang nyari file2 yang dibutuhin (vector, karakter, map de el el)
11. InputanGamenya.h : Bagian ngatur Keyboard atau Joystik via SDL
12. NgaturString.h : Yang tukang mroses string-string (lempar ke strcpy tapi di return dong)
13. Packagingnyo.h : Ini header buat ngumpulin semua library jadi satu paket ndak bubar kemana2
14. Error.h : Bagian pengatur yang salah-salah atau error gitu nantinya
15. ControlerPernikPernik.h : Ini header yang ngatur Bar Panel, Panel Score dan lain2
16. SimRenderFisik.h : Yang ngerender karakter + map biar gabung (via SDL lagi)
17. Parsernya.h : We Need Parser d00d!!! Gilaaa apa loh gak pake parser...(pake logat anak gaul)
18. PMayhemMon15.h : Fungsi SDL juga (kalo dari buku buat monitoring framebuffer)
19. HandlingCrash.h : Kalo crash??? ya ada yang ngurusin dong gan huehehehe
20. Cursor.h : Cursor Mouse gan, biar signal diterima sama SDL
21. ParserCss.h : masupin warna kedalam int sama bolean (buat SDL lagi sih)
22. AturFont.h : Ini yang ngatur font-fontnya
23. Timer.h : Ngitung Waktu battle sama current time gan (current time kalo terhubung inet)
24. NetChannel.h : Yang ngatur en nentuin siapa jadi serper siapa jadi client kalo pas cetingan
25. Cache.h : Ini nyontoh dari teeworld, biar ndak berat en ngehindarin global function en memcpy
26. AturProfile.h : Set-set int ke dalam karakter en objek (senjata, papan, tembok)
27. ClientIRC.h : pake protokol IRC buat cetingnya
28. BuatGoyangLambada.h : Musiiiik mosok bisu
29. Debug.h : Proses Debug selama pembuatan, gantinya -ggdb gitu biar lebih manusiawi
30. AturTaskEnTrit.h : Yang kerjaannya nentuin event, task sama trit tiap2 function
31. ClientGameMode.h : Ngubah mode permainannya, online apa offline gitu
32. LogCetingan.h : Hell Yeah, ai lop Log hwakakakak
33. StaticAssert.h : Makro assert tapi statik, buat templating ntar
34. PMayhemCommand.h : Command buat game main nya
35. mayhem/pmayhem.h : Koneksiin SDL dengan main gamenya
36. game/Game.h : Bawaan dari SDL, buat koneksiin antar input dengan makro
37. sound/SoundsBase.h : Bawaan maning dari SDL buat sound
38. game/ListServer.h : nyari serper yang aktip (openport 8081, kalo teeworld kayaknya 7000 deh)
39. StatikGUI/ClientBar.h : header GUI statik buat widget panel bar client yang di bawah gitu
40. StatikGUI/Grapiknyo.h : grafik GUI statistik gamenya
41. StatikGUI/Menunyo.h : GUI Menuuuuuu
42. StatikGUI/ClientChatDock.h : ChatDock statik buat client (ini nyontoh dari Teeworld)
43. SkinnedGUI/CGuiSkin.h : Client GUI Skinned (ini nyontoh punya wormux, lebih simple)
44. breaker/EkstrakInformation.h : fungsi load en initialize gamenya
Nah itu dia headernya, dan baru kebikin 3 biji, yang headernya hwakakakakak. Kalo main.cpp nya masih sisa sekitar 70 persen lagi. Baru tahap load menu, sama makro buat pemilihan settingan. Ini ane catet biar ane gak lupa, soalnya daripada lupa malah buyar semua. Yang penting kata kuncinya udah ada. Ohya, ane banyak nyontek dari sorsnya TeeWorld, mantep bener emang, kalo dibandingin sama kodingan ane kayaknya keliatan bener amatirnya wakakakakak.
Garis besarnya mungkin kayak gitu, sisa header lainnya bawaan dari library standar sama dari SDLnya aja. Nanti kalo masih kurang ya ditambah lagi dah, oh baidewei saya baru bikin 368 line code dari subuh tadi sampe jam 8 pagi huhuhuhu lama bener soalnya sembari liat-liat sors wormux sama teeworld biar sesuai standar dan sedkit nyuri ilmu. Ah ya segitu saja dah brai, bay bay.