Kategori
Devlog/Studlog

1 Hari 1 Tutorial: Hari 21 – Data from Spreadsheet

Karena kemarin berhasil snapping kartu pakai Area2D, dan karena 10 hari kedepan dari hari ini perlu tutorial yang lebih pendek buat antisipasi sibuk di masa mudik, aku break dulu dari tutorial game kartu yang kemarin. Tapi yang ini… sebenarnya bukan tutorial sih, lebih ke explainer. Video ini cuma menjelaskan sistem parsing data JSON yang sudah dterapkan dalam game dan menggunakan extension buat download data JSON dari Google Sheet.

Yah, lumayan buat ngulang soal parsing JSON yang udah dilakuin di Hari 14. Lumayan penting buat diingat. Jadi yang kulakukan cuma ngubah tutorial Hari 14 pakai data dari Google Sheet dan menyesuaikan sintaks agar mirip yang di tutorial.

Github: OneDay-OneTut: Latihan ngerjain 1 tutorial Godot tiap hari selama bulan Maret

Kategori
Devlog/Studlog

1 Hari 1 Tutorial: Hari 20 – Card Deck

Masih melanjutkan tutorial card game. Kali ini menambahkan deck yang pada dasarnya hanya tempat nge-spawn kartu jika di-klik. Di sini semakin kentara pakai Raycast untuk semua objek yang bisa diklik, tanpa pakai objek Button satu pun.

Hari ini juga sempat mengubah viewport yang tadinya pakai camera (meski ga disuruh di tutorial) jadi pakai viewport saja, dan, akhirnya, membuat mekanisme snap kartu pada slot tanpa harus mengarahkan mouse di atas area slot. Sepertinya memang benar harus pakai Node2D. Tapi mungkin perlu cek lagi yang pakai Control. Beberapa variasi yang saya bikin sendiri (dan yang diajarin tutorial) kelihatannya masih bisa di-refactoring dan dirapikan lebih baik, tapi hari ini agak sibuk.

Github: OneDay-OneTut: Latihan ngerjain 1 tutorial Godot tiap hari selama bulan Maret

​Asset: Kenney Playing Card Pack

Kategori
Devlog/Studlog

1 Hari 1 Tutorial: Hari 19 – Hand of Cards

Masih melanjutkan seri tutorial bikin card game dari Barry’s Development Hell. Kali ini hasilnya cukup kelihatan menarik sih, meski dari cara nulis codingnya agak aneh. Memang katanya ini reupload setelah channel lamanya kehapus, jadi mungkin ini footage dari video lama yang masih pakai Godot versi lama. Namun, codingnya sih jalan semua dan videonya bilang ini tutorial buat Godot 4.3.

Thumbnailnya agak nipu, ini belum bikin layout hand model kipas kayak gitu.

Tutorial ini lagi-lagi adalah implementasi layout pakai Node2D alih-alih pakai Control yang memang untuk bikin UI dengan method yang memudahkan layouting. Hasilnya sih cukup bagus, meski belum tahu apakah yang seperti ini bisa diduplikasi dengan pakai Control atau ga.

Di luar tutorial, aku melakukan penyesuaian dan tambahan, seperti membuat kartu di hand menyesuaikan posisi saat suatu kartu mulai di-drag, dan menambahkan animasi saat snapping ke slot.

Github: OneDay-OneTut: Latihan ngerjain 1 tutorial Godot tiap hari selama bulan Maret

Asset: Kenney Playing Card Pack

Kategori
Devlog/Studlog

1 Hari 1 Tutorial: Hari 18 – Card Slots

Masih melanjutkan seri tutorial yang sama. Kira-kira ini sudah sampai pada level yang hampir sama dengan yang tutorial pake built-in method. Namun, jika dibandingkan secara mekanik masih kurang.

Di sini, kartu hanya bisa sampai disimpan pada slot yang tersedia dengan benar. Jika sudah ter-snap di slot, kartu tidak bisa diambil lagi. Rasanya kurang enak. Aku coba buat utak-atik lagi biar kartu bisa dicabut lagi, tapi belum berhasil. Kebayang sih caranya, tapi harus ngubah struktur kodenya yang mungkin bakal ganggu ke depannya kalau lanjutin seri tutorial ini.

Apa ga usah lanjutin seri tutorialnya ya? Mungkin cari yang lain yang lebih ngasih pemahaman baru. Tapi cari yang pas agak susah, mending lanjutin yang ini deh.

Github: OneDay-OneTut: Latihan ngerjain 1 tutorial Godot tiap hari selama bulan Maret

Asset: Kenney Playing Card Pack

Kategori
Devlog/Studlog

1 Hari 1 Tutorial: Hari 17 – Hover Effect

Sepertinya masih menarik untuk melanjutkan tutorial dari seri yang sama ini. Tahap berikutnya ini sebenarnya menerapkan efek sederhana saja, tapi karena ngoding dari awal, gak pake built-in method, jadi agak ribet. Hampir semua yang dipraktekin di sini sebenarnya lebih mudah kalau pakai node Control. Tapi seperti yang sudah dicoba kemarin-kemarin, mungkin bakal ada fleksibilitas yang lebih baik kalau ngoding sendiri pakai node Node2D.

Hari ini gak sempat ngubah macem-macem. Agak lemes.

Github: fajarfh/OneDay-OneTut: Latihan ngerjain 1 tutorial Godot tiap hari selama bulan Maret

Asset: Kenney Playing Card Pack

Kategori
Devlog/Studlog

1 Hari 1 Tutorial: Hari 16 – Dragging Card

Karena masih penasaran, coba lagi tutorial nge-drag and drop tapi ga pake method built-in. Kali ini ngikutin tutorial yang pake Area2D dan Raycasting. Sebenarnya ga terlalu ngerti Raycast-nya di mana karena ga disebut eksplisit, tapi Raycast nya di-emit dari mouse yang nembak ke objek di bawahnya saat diklik, dan kalau kena Node yang punya Area2D, objek itu bisa didrag mengikuti posisi mouse.

Aku juga bisa ngubah posisi drag sehingga saat didrag, kartunya tidak ter-teleport ke posisi mouse.

Saat ini masih mekanik drag-nya saja yang dibahas. Karena harus ngecoding dari dasar, jadinya tidak sependek yang kemarin dan wajar kalau dipecah ke beberapa tutorial. Namun, liat-liat dikit tutorial selanjutnya mungkin tidak bakalan menghasilkan mekanisme drag and drop seperti yang aku inginkan. Moga saja setidaknya ada petunjuk yang bisa bikin seperti itu. Tapi belum tahu juga sih mekanik yang aku bayangin itu lebih baik atau tidak.

Github: fajarfh/OneDay-OneTut: Latihan ngerjain 1 tutorial Godot tiap hari selama bulan Maret

Asset: Kenney Playing Card Pack

Kategori
Devlog/Studlog

1 Hari 1 Tutorial: Hari 15 – Drag and Drop

Tutorial yang singkat-ish lagi, tapi jadi lama karena ngerasa kurang puas dengan hasilnya. Ini adalah tutorial mekanik drag and drop pake method built-in pada node node Control. Konsepnya sih, drag and drop ini cuma mindahin data dari objek pada awal mula nge-drag ke area tempat nge-drop. Dan di sini datanya adalah Texture2D.

Liat tutorial lain buat ide tambahan, data yang dipindahin bisa berupa Dictionary jadi bisa lebih fleksibel.

Tetep ngerasa gak puas. Objek yang di drag hanya bisa di drop kalau kursor mouse masuk ke area drop. Inginnya meski mouse belum masuk area drop tapi objek drag udah sebagian besar beririsan dengan area drop, objek tetap bisa didrop di area. Kalau liat-liat tutorial lainnya lagi, banyak yang bikin sistem sendiri pakai Rigidbody2D dll. Kayaknya sih kalau pakai itu, bisa kayak yang aku inginkan.

Github: fajarfh/OneDay-OneTut: Latihan ngerjain 1 tutorial Godot tiap hari selama bulan Maret

Asset: Kenney Playing Card Pack

Kategori
Devlog/Studlog

1 Hari 1 Tutorial: Hari 14 – API Calls

Yang ini sangat singkat; cuma konek HTTP dan parsing JSON untuk konek ke API. Aku belum biasa pakai API. Yah, untuk sampai ke demo make API-nya, atau bikin indikator loading saat nunggu datanya diambil, mending cari tutorial lain.

Atau bisa diulik sendiri sih, sekalian permak tombol dan nge-pas-in ukuran window di Itch.io. Tapi untuk kali ini, I just wanna be done with it.

Github: fajarfh/OneDay-OneTut: Latihan ngerjain 1 tutorial Godot tiap hari selama bulan Maret

Kategori
Devlog/Studlog

1 Hari 1 Tutorial: Hari 13 – Joint2D

Tutorial ini sebenarnya pengenalan fitur dasar saja. Node-node unik di Godot yang menarik tapi kalau ga dikasih tahu ga bakal nyadar kalau fitur ini ada. Joint2D ini terdiri dari 3 jenis Node yang bisa menghubungkan 2 node berjenis Physics2D dan turunannya; DampedSpringJoint2D, GroovrJoint2D, dan PinJoint2D. Videonya dibikin 4 tahun lalu dan pake Godot 3.2, tapi masih relevan. Kayak yang… fiturnya ga berkembang sejak itu. Kenapa ya?

Video pengenalan fitur dasar gini memang mudah dipahami, tapi kalau tidak ada konteks implementasinya dalam kasus real-life bakal bingung juga nanti makenya gimana. Di sini diliatin (diliatin doang) kalau fitur ini bisa dipake misalnya dalam objek mobil yang menggabungkan Rigidbody kotak dengan roda. Aku coba-coba sendiri bikin kayak, tapi ga berhasil.

Bahkan, kayaknya node-node ini agak kurang berhasil bikin mekanik yang aku mau. Misal pas mau bikin platform jungkat-jungkit pakai PinJoint2D, platform berputar terlalu cepat pas player menginjaknya. Bahkan properti angular_limit yang harusnya membatasi sudut perputaran platform ga berfungsi sama sekali.

Kayaknya jadi paham kenapa disarankan banget buat ganti physics library dari GodotPhysics ke alternatif-alternatif pihak ketiga.

Akhirnya di praktek tutorial ini aku bikin aja game platformer yang kemaren dengan ditambahin objek-objek yang pakai Joint2D. Agak berantakan, tapi seenggaknya jalan.

Github: fajarfh/OneDay-OneTut: Latihan ngerjain 1 tutorial Godot tiap hari selama bulan Maret

Asset: Kenneys

Kategori
Devlog/Studlog

1 Hari 1 Tutotial: Hari 12 – Gridmap

Sudah gatal pingin nyobain 3D di Godot, tapi kebanyakan tutorialnya panjang. Yang ini lumayan pendek dan basic jadi layak dicoba.

Gridmap ini cukup oke tapi ga seenak Tilemap di 2D. Yang paling ga enak dari 3D adalah (dan aku rasain di 3D software-software lain juga) navigasinya ga enak. Tambah lagi, Godot kayaknya ga punya Hand Tool yang bisa nge-grab layar dan ngegeser secara intuitif. Apalagi pas make Gridmap. Makanya aku ngerjain tutorial ini cuma sampai ‘yah, aku bisa pakai ini’, tapi ga sampai bikin level yang estetik apalagi proper pakai Gridmap. Mungkin perlu belajar dari tutorial yang lebih dasar lagi.

Btw, karena tutorial ini pake Godot 4.1, di Godot 4.3 udah agak beda. Update MeshLibrary bisa nimpa file yang sama karena ada pilihan ‘Merge’. Kemudian, buat edit TextureMesh di salah satu objek 3D di Mesh library, kayaknya Texturenya harus dibikin ‘Make Unique’ dulu biar bisa diedit.

Github: fajarfh/OneDay-OneTut: Latihan ngerjain 1 tutorial Godot tiap hari selama bulan Maret

Asset:

  • Kenneys