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
Kategori
Film Review

KITA TIDAK PERNAH SELESAI DENGAN ATTACK ON TITAN

Aku tidak pernah selesai dengan Attack on Titan, karenanya aku menonton Attack on Titan: The Last Attack yang sebenarnya hanya rekap episode-episode terakhir anime tersebut. Setelah itupun, aku masih belum selesai. Ada perasaan, seperti tidak puas, mungkin kecewa, tapi juga tidak ada pilihan untuk tidak menerima, seperti terpaksa menerima. Kurang lebih, sama seperti yang aku rasakan bertahun lalu saat membaca episode terakhir dari manganya. Perasaan yang tidak pernah selesai.

Karenanya aku ingin menuliskan, lebih tepatnya menguraikan unek di hati ini agar lega. Harusnya aku menuliskannya, bukan mengetikkannya. Seperti ada yang lebih bisa menguras saat menulis di atas kertas. Namun, menulis seperti itu juga ada kekurangannya, dalam publikasi dan dalam merapikan pilihan kata yang tepat agar puas.

Suatu cerita dikatakan selesai, serta selesai dengan memuaskan, jika:

  • Permasalahan serta pertanyaan yang muncul dalam cerita telah terjawab dan terselesaikan
  • Nasib karakter-karakter utama di dalamnya dijelaskan di akhir; sub-plot masing-masing karakter selesai

Begitu menurutku. Apakah film ini membantu cerita Attack on Titan memenuhi keduanya?

PERTANYAAN SOAL MOTIVASI

Sulit untuk hanya memilih satu pertanyaan terbesar yang harus di jawab dalam cerita Attack on Titan. Begitulah kalau sebuah cerita terlalu banyak menyinggung banyak topik. Perang, kebebasan, rasialisme, dan genosida; intinya, Attack on Titan membahas paradoks kehidupan yang kejam namun sekaligus indah serta siklus kekerasan yang tidak ada habisnya. Dalam lingkup itu, ada beberapa hal yang menarik dibahas. [FF1] 

Pembahasan ini bukan ingin menggali pesan moral atau semacamnya, karena itu tidak penting. Yang paling penting dalam konteks Attack on Titan, kita ingin ada alur logika yang masuk akal tentang motivasi setiap karakter. Khususnya, karakter protagonis yang berubah jadi antagonis seperti Eren. Memang sih, di kehidupan nyata, motivasi kebanyakan orang itu ga logis. Namun, dalam dunia fiksi, ini seperti sebuah kewajiban yang dituntut oleh penonton atau pembaca.

Aku pikir, yang sering bikin kita kesal adalah jika motivasi antagonis dipatahkan oleh protagonis dengan argumen yang lemah. Atau, jika motivasi atau landasan ideologis tiap karakter terlalu belibet, terlalu dalam atau terlalu dangkal, dan terasa seperti ‘alur plotnya begini karena keren aja kalau gini’. Jadi, aku ingin menilai, atau memahami lebih dalam, mengenai beberapa poin motivasi yang menarik dari karakter utama di cerita.

EUTHANASIA/EUGENICS DAN MENGAPA ZEKE MENYERAH SOAL INI

Rencana besar Zeke Yeager, salah satu antagonis sekunder dalam cerita, adalah menggunakan kekuatan Founding Titan untuk membuat orang Eldia tidak dapat mempunyai keturunan. Bangsa Eldia dibenci karena memiliki kemampuan untuk berubah menjadi Titan yang mengancam bangsa lain. Jika Eldia punah, urusan selesai. Baginya, ini solusi terbaik. Mencabut hak reproduksi, dan hak hidup generasi masa depan Eldian lebih baik daripada membiarkan dunia hidup dalam ketakutan terhadap orang Eldia sementara orang Eldia terus-terusan mendapat perlakuan kejam dan diskriminatif dari Marley dan seluruh dunia.

Lagian, buat apa sih hidup? Makhluk hidup cuma berkembang biak tanpa tujuan. Tidak ada yang spesial dari menyelamatkan hak hidup orang-orang Eldia. Tidak ada yang spesial juga dalam menyelamatkan dunia dari kehancuran oleh Rumbling (yang diterjemahkan secara gak enak sebagaii… ‘Guncangan Tanah’, yah, gak kepikiran alternatif lain sih aku juga).

Argumen Zeke, yang terjebak di alam “The Path”, ini dibenturkan kepada Armin yang ingin menyelamatkan dunia dari Rumbling. Sepertinya Armin tidak punya jawaban dari tujuan ‘kehidupan’ yang dipikirkan Zeke. Namun, Armin mencoba untuk mengalihkan pada satu momen. Momen kecil, seperti saat waktu kecil, Armin, Eren, dan Mikasa berlomba lari menuju pohon. Armin merasa bahagia sekali saat itu, sampai merasa bahwa itulah alasannya dilahirkan ke dunia. Ternyata, Zeke juga merasa punya momen seperti itu, Bagi Zeke, itu adalah saat ia bermain lempar bola dengan gurunya, Xavier. Dan untuk momen-momen kecil seperti itulah, yang tentunya berbeda-beda bagi tiap orang, hidup dan kehidupan layak diselamatkan.

Argumentasi Terkait Argumen Armin

Mungkin argumen Armin ini terdengar lemmmmmah, karena tidak semua orang punya momen bahagia seperti itu. Itu adalah sebuah ‘privilege’ bagi yang tidak terlahir dalam kecacatan, peperangan, kemiskinan parah (seperti Levi waktu kecil di kota bawah tanah), perbudakan (seperti Titan pertama, Ymir), atau situasi lain yang ekstrim tapi memang banyak dialami orang. Lagipula, secara rasional, kebahagiaan itu tidak memiliki guna dan tujuan juga.

Namun, argumen ini buatku masih bisa diromantisir dan dipertahankan dalam konteks cerita. Jika kebahagiaan itu penting dan semua orang berhak merasakannya, maka memperbersar kemungkinan terjadinya dengan memperbanyak kehidupan adalah sebuah ‘net positive’, kalau tidak bisa dibilang sebuah kebaikan. Selama kehidupan dipertahankan, kita bisa berupaya mengurangi kondisi-kondisi ekstrim seperti disebut di atas sehingga lebih banyak orang yang mengalami momen-momen kecil bahagia yang membuat mereka merasakan bahwa itulah alasan mereka dilahirkan ke dunia.

Argumen di atas terdengar naif, tapi setidaknya, cukup masuk ke karakter Armin yang aslinya… uh… softboy. Biasanya, menangkal argumen nihilisme pesimistis seperti Zeke bisa pakai argumen nihilisme optimistis; karena hidup ga ada tujuan, kita bebas menentukan tujuan hidup kita sendiri. Cukup cocok dengan tema ‘kebebasan’ di cerita ini, tapi secara keseluruhan kurang pas karena Rumbling dan genosida yang dilakukan Eren ini juga bentuk ‘kebebasan’, bukan? Juga, aku rasa tidak cocok dengan karakter Armin.

Diskursus yang dibawa Zeke dan Armin ini memang berat. Mungkin yang membuatnya menjadi kurang meyakinkan adalah bahwa perbedaan pandangan ini diselesaikan dalam satu diskusi singkat dan berhasil meyakinkan Zeke serta sebagian jiwa-jiwa karakter pengguna kekuatan Titan terdahulu, karakter-karakter yang dikenal Zeke dan Armin yang (entah bagaimana) bersemayam di “The Path”, untuk membantu Armin dan teman-temannya. Sepertinya memang perlu waktu atau adegan-adegan tambahan untuk terasa lebih meyakinkan.

KENAPA GENOSIDA?

Attack on Titan berubah setelah season ketiga, atau setelah arc pertempuran di Shiganshina untuk merebut Wall Maria dari pada Titan. Kebenaran di luar tembok terungkap. Eren menyadari potensi kekuatannya, masa lalu ayahnya, dan saat menyentuh tangan Historia yang mewarisi kekuatan Founding Titan, ia mendapat pengelihatan masa lalu dan masa depan sekaligus. Saat itulah Eren berubah.

Segala hal yang dilakukan Eren setelahnya, baik itu secara mandiri atau melalui berbagai kolaborator seperti Zeke, Floch, dan Yelena, berujung pada penggunaan kekuatan Rumbling untuk memusnahkan semua umat manusia di luar Pulau Paradis yang menjadi tempat tinggal orang Eldia. Genosida ini (terlepas apakah penggunaan istilah tersebut tepat atau tidak karena pembunuhan massal yang Eren lakukan tidak terbatas pada satu etnis atau ras tertentu, tapi seluruh umat manusia di luar Pulau Paradis, baik itu orang Eldia atau bukan) memusnahkan 80% populasi dunia. Hal itu, dari sudut pandang penonton, sangat berlawanan dengan karakter Eren yang ingin membasmi para Titan dan menyelamatkan umat manusia (yang awalnya kita kira hanya ada di dalam area yang dipagari tembok-tembok besar di Pulau Paradis).

Dialog terakhir Armin dan Eren membahas motivasi Eren dalam melakukan semuanya. Namun, bagiku, dan sepertinya bagi banyak penggemar lainnya juga, dialog ini kurang memuaskan. Aku tidak merasa mendapat jawaban jelas atas pertanyaan: “Kenapa ceritanya harus gini?”

Ada dua hal yang perlu disebutkan di sini. Pertama, ada perbedaan antara dialog akhir ini di manga dan anime-nya. Dialog di manga mengesankan bahwa Armin terlalu memaklumi genosida yang dilakukan Eren. Kalau tidak salah, hal ini diprotes banyak penggemar. Tidak heran kalau dialognya berubah. Namun, perubahannya tidak besar juga, sih. Kedua, Rumbling terjadi atas prakarsa dua orang: Eren dan Ymir, Titan pertama yang masih gentayangan di “The Path” untuk merawat kekuatan Titan dan melindungi keturunan Raja Fritz (yang berarti juga keturunannya) yang mewarisi kekuatan Founding Titan. Jadi, ada dua motivasi yang berpengaruh pada Rumbling. Meski Eren bisa dibilang memprovokasi Ymir untuk mendorong terjadinya Rumbling, Ymir punya motivasi terpendam yang tidak sepenuhnya dipahami Eren.

Karenannya untuk membahas pertanyaan “Kenapa genosida?” atau “Kenapa ceritanya harus gini?” kita perlu membahas kedua sudut pandang motivasi tersebut.

Sudut Pandang Eren: Melawan Dunia untuk Menyelamatkan Kawan

Dialog terakhir Armin dan Eren adalah kesempatan terakhir kita untuk memahami motivasi Eren. Yang aku tangkap dari dialog tersebut, Eren ingin agar Pulau Paradis, khususnya teman-temannya, selamat dari siklus peperangan yang tidak akan berhenti. Jika musuh-musuh di luar Pulau Paradis tidak dibasmi, mereka akan terus-terusan diserang dan penderitaan mereka akan terus berlanjut. Manusia di dalam dan luar pulau akan terjebak dalam siklus balas dendam tanpa akhir. Dengan genosida ini, peradaban manusia akan mundur ke tingkat yang setara dengan Pulau Paradis. Sementara dunia luar memulihkan peradaban, Pulau Paradis akan aman untuk mengejar ketertinggalan mereka. Jika sudah setara, Pulau Paradis akan lebih mampu mempertahankan diri.

Tambah lagi, untuk menghilangkan kebencian antara orang Eldia dengan yang lainnya, ia mendorong teman-temannya untuk membunuh dirinya, menghentikan Rumbling, lalu mereka yang merupakan orang Eldia dari Pulau Paradis ini akan menjadi pahlawan bagi dunia. Untuk melakukan ini, Eren sampai melakukan hal-hal yang membuatnya dibenci atau dijauhi oleh teman-temannya.

Pertanyaannya: “Apa perlu se-ekstrim itu untuk mencapai tujuannya?” Sebelum membahasnya, aku ingin menyebutkan ada motivasi-motivasi lain yang bikin runtutan motivasinya agak ruwet. Hal-hal yang bikin: “Bentar, jadi alasan Eren bikin Rumbling tuh apa sebenarnya?”

Motivasi Supplementer

Pertama, Eren kecewa terhadap dunia luar yang ternyata tidak seindah dan sebebas yang ia bayangkan. Penindasan terjadi di mana-mana, sama seperti yang terjadi di dalam tembok di Pulau Paradis. Bisa jadi Eren awalnya mengira penderitaan orang-orang di sekitarnya adalah karena adanya tembok yang mengurung mereka dan ancaman Titan. Ternyata tanpa tembok dan Titan, kekejaman dan penderitaan tetap ada. Namun, aku tidak ingat apakah hal ini pernah disebutkan secara eksplisit dalam cerita. Yang selalu disebutkan adalah, Eren dan Armin mengira dunia di balik tembok lebih indah dari tempat mereka. Kekecewaan ini mungkin juga dialami Ymir yang seumur hidup jadi budak di bawah Raja Fritz yang keji.

Sebenarnya, motivasi ini bisa jadi relatable bagi beberapa orang (yang tidak hidup dalam kondisi seperti Eren dan Ymir) yang memiliki pikiran-pikiran intrusif seperti ‘Kita perlu wabah untuk mengurangi populasi dan menyelamatkan planet Bumi’, atau ‘Kebanyakan orang itu memang brengsek, populasi manusia perlu di-restart’, atau ‘Thanos was right.’ Orang-orang yang ga perlu dianggap serius, tapi bisa dipuaskan dengan logika dangkal.

Kedua, Eren memuja kebebasan sampai-sampai menyebut dirinya sebagai ‘budak dari kebebasan’. Pernyataan yang paradoksial, mungkin karena konsep kebebasan itu sendiri sebenarnya paradoksial. Atau setidaknya relatif dan sangat terikat konteks. Eren sejak kecil memang suka ngelawan dan ngotot. Dalam konteks Eren yang lahir di dalam tembok dan mendapat trauma karena Titan, bebas artinya keluar dari tembok dan lepas dari bahaya Titan.

Namun, kembali ke poin sebelumnya, dunia luar tidak memberi kebebasan dan keamanan baginya dan kaumnya. Hanya sebagai Founding Titan yang meratakan tanah dengan Rumbling dia bisa bebas dan aman di dunia luar. Dalam perspektif lain, dorongan untuk bebas sampai harus melakukan Rumbling, yang sebenarnya Eren sendiri tidak ingin lakukan, justru tidak terlihat seperti sebuah kebebasan.

Ketiga, Eren ingin menghapus kekuatan Titan. Bukan karena Titan menjadi ancaman. Justru di akhir-akhir episode, Pulau Paradis memutuskan bahwa mereka harus memiliki kekuatan Titan untuk melindungi diri dari Marley yang juga punya kekuatan Titan. Namun, kita ingat bahwa untuk mewariskan kekuatan tersebut pada orang lain, orang itu harus memakan pemegang kekuatan Titan sebelumnya. Tambah lagi, pemegang kekuatan Titan juga berumur pendek. Jika ia meninggal tanpa dimakan, kekuatan Titan-nya akan muncul kembali secara acak di antara bayi orang Eldia yang lahir, yang mungkin bukan orang Eldia di Pulau Paradis. Karenanya, saling memakan untuk menjaga agar kekuatan ini tidak lepas ke tangan ‘orang lain’ akan rutin dilakukan.

Tak terkecuali pewaris darah bangsawan Reiss yang menjadi kunci untuk membuka kekuatan Founding Titan. Salah satunya teman Eren, Historia Reiss. Secara spesifik, Eren tidak ingin agar kehidupan Historia diatur-atur oleh masalah pewarisan kekuatan Titan. Aku lupa hubungan mereka bagaimana sehingga kurang yakin hal tersebut bisa jadi motivasi yang kuat. Yang jelas, Eren memberitahukan rencananya terkait Rumbling pada Historia sebelumnya. Ditambah lagi, ada teori bahwa Historia mengandung anak Eren, tapi ini tidak pernah dikonfirmasi. Historia jarang diceritakan di akhir-akhir episode, sehingga peran atau pengaruhnya pada motivasi Eren sulit ditakar.

Meski demikian, semua motivasi ini menurutku bukan argumen yang mengarahkan Eren secara personal untuk melakukan Rumbling. Kalaupun ngaruh, ini terasa seperti argumen sampingan yang mengikis hambatan-hambatan moral yang menghalanginya. Seakan argumen ini ditumpuk-tumpuk setelah pembaca kurang teryakinkan dengan langkah-langkah Eren di Season keempat dari animenya (atau paska time-skip di manga-nya).

Mungkin ‘Motivasi’ dan ‘Penyebab’ Adalah Dua Hal Berbeda

Kembali ke dialog Eren dan Armin, semua motivasi sampingan di atas disebutkan. Langkah Eren untuk menyelamatkan Pulau Paradis, khususnya teman-temannya, dengan menjadikan mereka pahlawan terasa runut dan mudah dipahami. Namun, motivasinya yang kurang meyakinkan. Sayangnya, kita hanya bisa menilai argumen yang secara eksplisit dan mungkin juga implisit disebutkan dalam cerita, dan memilih yang paling mudah kita pahami.

Hal yang perlu digarisbawahi dari dialog terakhir tersebut adalah… Eren sebenarnya hanya pemuda labil yang diberi kekuatan (dan tanggung jawab) terlalu besar. Sejak kekuatan Founding Titan-nya aktif saat menyentuh tangan Historia, dia mendapat ingatan masa lalu dan masa depan sehingga mengacaukan pikirannya. Tambah lagi, kekuatan seperti itu jatuh di tangan Eren yang memang sejak awal bukan orang yang paling cerdas atau sehat mentalnya.

Jadi… yah. Motivasi Eren melakukan semuanya adalah seperti yang dibahas di atas. Namun, penyebab Eren memilih secara spesifik tentang hal-hal yang dilakukannya, katanya (setidaknya yang dari yang aku tonton di film terakhir), adalah karena… Eren bego.

Jadi ingat video OSP tentang Idiot Plot. Idiot Plot itu plot yang tidak akan terjadi kalau semua karakter yang terlibat berpikir logis dan cerdas. Sebuah cerita bisa saja sama seperti suatu kejadian di dunia nyata; orang-orang yang terlibat tidak memiliki logika yang sempurna. Biasanya cerita seperti itu bikin garuk-garuk kepala; cacat logika yang kentara akan menghalangi orang untuk memahaminya atau menikmatinya. Namun, cerita seperti itu akan dapat diterima jika kebodohan yang terjadi memang sesuai dengan kepribadian dari karakter kunci dalam jalannya plot. Jadi, apakah karakter Eren memang membuat ceritanya jadi Idiot Plot yang dapat diterima?

Entahlah. Paska time-skip, Eren terlihat begitu meyakinkan dalam setiap langkahnya. Dia tidak terlihat ragu atau setengah-setengah dalam menjalankan rencananya. Kecuali, saat dia menyelamatkan seorang anak imigran di Marley, meski tahu bahwa dia akan membunuh anak itu dalam Rumbling. Kejadian ini ada di manga dan anime-nya, tapi aku rasa mendapat penekanan lagi di versi film-nya. Selain itu, Eren juga sudah mencoba memikirkan rencana-rencana lain, namun ingatan masa depannya menunjukkan kalau rencana lain tidak akan berhasil. Dia juga tidak mendapat jawaban lain terkait cara menyelamatkan Pulau Paradis dari orang-orang yang lebih pintar seperti Komandan Hange.

Secara umum, aku kurang teryakinkan bahwa Eren paska time-skip selabil Eren sebelumnya. Mungkin itu juga disadari oleh penulis cerita. Karenanya, dalam dialog Eren dengan Armin ada adegan Eren ‘merengek’ tidak ingin mati dan ingin bersama Mikasa. Namun, tetap saja Rumbling masih terasa seperti keputusan berdasarkan kalkulasi dingin, bukan keputusan bodoh dari bocah yang tidak mampu menemukan cara lain.

Jadi, yah, seluruh rangkaian adegan mulai dari Eren melakukan pembantaian di Marley hingga Rumbling, semuanya terasa terjadi karena “ceritanya bakal seru kalau begitu”. Namun, entahlah. Mungkin, kita lihat dulu saja sudut pandang yang satunya lagi.

Sudut Pandang Ymir: Cinta Adalah Perbudakan?

Di sisi lain, ada Ymir yang motivasinya lebih tidak jelas. Ymir yang memiliki kekuatan Titan pertama adalah budak, dan selir, Raja Fritz yang kejam. Meski hidupnya sedemikian menderita, namun Eren terkejut menemukan bahwa Ymir sebenarnya mencintai Raja Fritz. Entah semacam Stockholm Syndrome atau apalah, tapi ini agak gila. Ymir bahkan sampai melindungi Raja Fritz dari upaya pembunuhan dan malah meninggal karenanya. Ia lalu merawat kekuatan Titan dan melindungi bangsawan keturunan Raja Fritz dari dalam “The Path”. Bahkan sampai bisa menyelamatkan pewaris darah bangsawan seperti Zeke dari kematian.

Mungkin seperti seorang budak yang tidak tahu apa lagi yang bisa ia lakukan dalam hidup selain menghamba pada tuannya. Itu adalah cara dia berguna bagi orang lain. Dan dalam konteks Ymir, menggunakan kekuatan Titan-nya untuk kekuasaan Raja Fritz adalah caranya agar bisa terhubung dengan orang lain. Menurut Eren, Ymir merawat kekuatan Titan juga agar bisa terhubung dengan orang lain.

Yang Ditunjukkan oleh Mikasa

Aku coba memahami sudut pandang Ymir ini, dan tetap merasa bahwa ini gila. Ymir mungkin sadar bahwa dia diperbudak oleh penghambaannya dan cintanya pada Fritz, atau keinginannya untuk menjalin hubungan dengan orang lain. Dan dia melihat bahwa Mikasa memiliki jawaban atas masalahnya. Ini juga tidak aku pahami. Mungkin rasanya sama seperti Eren yang tidak mengetahui apa yang akan Mikasa lakukan padanya di akhir, tapi tahu bagaimana hasilnya.

Di akhir, setelah Mikasa membunuh Eren, yang berdampak pada lenyapnya kekuatan Titan dari seluruh orang-orang Eldia, Mikasa bertemu dengan Ymir. Aku ingat ini adalah adegan tambahan yang tidak ada di versi awal dari manganya. Adegan ini menegaskan kembali bahwa Ymir diperbudak oleh cintanya pada Raja Fritz. Mikasa menunjukkan bahwa meski ia mencintai Eren, dia tetap dapat melawannya untuk menghentikan Rumbling. Mungkin, inilah yang ingin dilihat oleh Ymir; bahwa seseorang bisa membebaskan diri dari cinta. Setelah akhirnya tersadar dan membebaskan diri dari cintanya pada Fritz, Ymir tidak lagi merawat kekuatan Titan.

Jadi, semua plot yang mengantarkan kita pada Rumbling, adalah untuk meyakinkan Ymir untuk menghilangkan kekuatan Titan. Bukan membunuh Eren, tapi membebaskan Ymir dari penghambaannya lah yang membuat kekuatan Titan lenyap.

Aku baru menyadari ini saat nulis. Mungkin perlu waktu untuk mencernanya.

Ini benar-benar mengubah perasaanku terkait ending Attack on Titan.

Ah, baru nyadar juga. Eren pernah bilang kalau darah keturunan Ackerman seperti Mikasa dan Levi punya kecenderungan ‘menghamba’ pada seseorang. Ini sudah dikonfirmasi sebagai kebohongan. Namun, kondisi itu mirip seperti perasaan Ymir terhadap Raja Fritz. Menurutku, kalaupun teori soal keturunan Ackerman tersebut tidak benar, Ymir melihat perasaan Mikasa terhadap Eren mirip dengan yang ia miliki. Pada akhirnya, sikap mereka berbeda saat cinta mereka menjadi perwujudan kekejaman dunia; Ymir menyelamatkan Fritz, sedangkan Mikasa membunuh Eren. Itulah yang menghentikan siklus kekuatan Titan.

Ini Penting Nanti Saat Memahami Epilog Mikasa

Dialog (mungkin lebih tepatnya monolog) di akhir antara Mikasa dengan Ymir cukup menarik. Jiwa-jiwa yang hilang karena kekuatan Titan tidak akan kembali, Mikasa bilang, tapi ia berterima kasih kepada Ymir, karenanya lah ia hidup; karenanya lah orang-orang yang disayanginya dilahirkan. Itu menegaskan kembali tentang tema yang ingin disampaikan oleh Attack on Titan; bahwa lahir ke dunia adalah suatu anugerah yang indah.

EPILOG KARAKTER

Nasib-nasib karakter (yang masih hidup) di Attack on Titan cukup jelas, meski tidak akan pernah memuaskan. Sejujurnya, mengingat banyaknya kematian di awal-awal cerita, banyaknya karakter yang masih hidup cukup mengejutkan. Karakter-karakter utama seperti Armin melanjutkan upaya perdamaian, perlindungan Pulau Paradis, dan rekonstruksi paska Rumbling, sementara Pulau Paradis sendiri mulai dikuasai oleh… Nazi? Ada sedikit perbedaan di manga dan anime, tapi tidak begitu signifikan.

SEMUA DIMAAFKAN?

Hampir semua karakter utama memiliki ‘masalah’ dan ‘dosa’. Semuanya pernah melakukan pembunuhan manusia baik secara langsung maupun tidak langsung. Sebagian bisa dimaklumi karena kondisi perang, tapi beberapa terlalu kejam bahkan untuk ukuran peperangan. Misalnya, Armin yang meledakkan pelabuhan di Marley dengan korban orang-orang sipil atau Reiner yang membobol tembok Maria dan mengakibatkan puluhan ribu kematian. Kasus Armin mungkin bisa dipahami sebagai strategi perang, kasus Reiner lebih sulit dimaklumi meski strategis (lagian, hei, setidaknya ia hampir bunuh diri karena menyesalinya), tapi yang paling sulit dimaklumi adalah: Annie.

Dosa-dosa Annie pada dasarnya sama strategis-nya dengan Reiner (termasuk saat ia membunuh seluruh anggota Squad Levi yang merupakan karakter-karakter penting), tapi adegan ia sebagai Female Titan memainkan mayat seorang anggota Survey Corps dan memutar-mutarkannya kayak yoyo, itu sangat berkesan buruk buatku karena seperti menunjukkan tidak adanya sisi kemanusian pada Annie. Aku suka Annie, dan kasus itu memang cocok dengan karakter Annie yang agak sadis. Namun, kalau Annie bakal bergabung dengan protagonis, rasanya masih perlu adegan lain yang membuat dosa-dosanya termaafkan. Memang, sih, aneh juga kalau aku memaklumi pembantaian-nya Armin, tapi tidak dengan kasus Annie itu.

Apapun itu, hanya Berthold dan Zeke yang ‘dihukum’ karena dosa-dosanya. Namun, Berthold, yang sama dosanya seperti Reiner, ‘dihukum mati’ karena dia ga sempet survive lebih lama aja sih seperti Reiner. Sedangkan Zeke, meski di akhir-akhir mendukung untuk menghentikan Eren, perlu dibunuh untuk memutus hubungan darah bangsawan dengan Founding Titan. Atau, agar Levi ada semacam ‘closure’ untuk menjalankan perintah terakhir dari mendiang Erwin untuk mengeksekusi Zeke. Yah, bisa diperdebatkan apakah Zeke layak diampuni jika Reiner bisa dimaafkan.

Secara umum, hampir semua yang punya kekuatan Titan punya dosa besar yang mungkin secara moral agak sulit dimaafkan meski sudah berkontribusi menghentikan Rumbling. Di dunia nyata, bakal banyak yang menuntut mereka atas kejahatan-kejahatan yang dilakukannya. Namun, kalau di dunia nyata sih, lebih banyak lagi penjahat perang yang tidak dihukum meski berada di pihak yang kalah. Apalagi kalau menang.

SOAL MIKASA DAN KELUARGA BARUNYA

Mikasa diceritakan kembali sendirian lebih dulu ke Pulau Paradis (bagaimana? Apa ada perahu yang bisa dipake buat nyebrang ke sana?). Menguburkan kepala Eren, yang dia penggal sendiri, di bawah pohon tempat mereka biasa bermain waktu kecil. Masih menangisi kehilangannya (lalu ada burung yang membetulkan syal Mikasa dan orang berspekulasi Eren berubah jadi burung, tapi lupakan soal itu).

Pada sebuah montase epilog, diperlihatkan Mikasa yang sering mengunjungi makam Eren, lalu bersama seorang lelaki, lalu bersama dengan anak-anak. Dan, lelakinya punya potongan rambut mirip Jean. Jadi, apakah akhirnya Mikasa menerima Jean, yang sudah lama menaksirnya lalu mengambil kesempatan setelah Eren tak ada? Tidak bisa dipastikan. Namun, berdasarkan dialog terakhir Armin dan Eren, setidaknya Mikasa menikah sepeninggal Eren sudah diperkirakan.

Kembali ke adegan pertemuan Mikasa dengan Ymir, sangat cocok bahwa setelahnya Mikasa akan mencoba kebahagiaan dalam melahirkan kehidupan ke dunia; mencoba hal terbaik yang dilakukan Ymir. Adegan pertemuan itu sepaket dengan montase epilog. Keduanya adalah tambahan dari versi revisi yang sepaket untuk menekankan hal itu. Siapapun pria yang bersamanya, masuk akal jika Mikasa memilih menikah dan memiliki anak daripada sendiri seumur hidup.

Seberapa mungkin bahwa pria itu Jean? Terakhir diperlihatkan dia sedang merapikan rambutnya untuk ‘gadis-gadis yang melihatnya di buku sejarah’, tapi mungkin itu dalih untuk mengalihkan pertanyaan Reiner… yang sedang dikritik Jean karena masih naksirin Historia yang sudah berkeluarga. Dengan konteks pembicaraan soal ‘gebetan lama’, bisa jadi setidaknya Jean memang masih ingin mendekati Mikasa. Jadi, ada kemungkinan bahwa pria di epilog itu Jean. Namun, kasihan juga kalau dia menikahi orang yang seumur hidup berkabung atas kepergian orang yang sebenarnya paling dicintainya.

Montase epilog terakhir yang menampilkan Mikasa memperlihatkan tubuh renta dalam upacara pemakaman. Dalam adegan pemakamannya tersebut, Mikasa masih mengenakan syal merah pemberian Eren di pertemuan pertama mereka yang tragis.

DAN SIKLUS ITU BERLANJUT

Cerita-cerita yang merefleksikan tentang siklus peperangan biasanya berakhir pada salah satu dari dua kesimpulan: siklus ini bisa diakhiri atau tidak. Attack on Titan memilih yang terakhir. Bagian-bagian akhir montase memperlihatkan perkembangan Pulau Paradis dari sudut pandang pohon tempat Eren (dan Mikasa) dikuburkan. Pada akhirnya, jauh setelah menara-menara futuristis dibangun, Pulau Paradis kembali luluh lantak dalam peperangan. Hingga ribuan tahun berlalu dan seorang anak dan anjingnya berlarian di antara puing-puing yang ditutupi hutan, lalu berhenti di depan pohon makam yang sudah berubah menjadi seperti pohon tempat pertama kali Ymir menemukan kekuatan Titan.

Montase epilog itu adalah tambahan versi ‘tankobon’ atau jilid manga yang tidak ada di versi awal yang rilis di majalah Bessatsu Shonen. Versi awalnya berhenti sampai adegan burung yang membetulkan syal Mikasa. Di titik itu, ending terasa optimistis dengan Armin yang akan melakukan negosiasi damai dengan Historia. Aku pikir, ‘wow jadi siklus peperangan di dunia bakal berhenti di sini, naif juga.’ Namun, setelah versi revisi ini, endingnya jadi pesimis-realistis.

Di anime, ada perbedaan kecil terkait bentuk bangunan saat Pulau Paradis mengalami peperangan lagi; bangunan di versi awal terasa lebih mirip era modern saat ini sedangkan di anime terlihat lebih futuristis. Mungkin ingin mengesankan bahwa kejadian ini jauh terjadi di masa depan dan Eren berhasil menghentikan siklus peperangan (atau setidaknya mencegah kehancuran Pulau Paradis) sampai beberapa generasi. Ini seperti ingin menekankan keberhasilan Eren jauh dari motivasi awalnya untuk melindungi teman-temannya.

Aku masih terbuka terkait ending seperti apa yang lebih baik untuk cerita ‘grimdark’ yang menyinggung siklus peperangan dan kemanusiaan seperti Attack on Titan. Jujur, semakin tua, semakin tidak tahan dengan cerita yang gelap, sadis, dan pesimistis. Cerita yang setidaknya berakhir dengan secercah harapan, atau lebih jauh lagi, sangat optimis-utopis mungkin (biasanya) lebih jelek. Namun, di tengah dunia yang makin gelap, rasanya lebih ingin cerita yang berakhir bahagia.

ARTIS FANART ATTACK ON TITAN TERBAIK ADALAH MANGAKANYA SENDIRI

Dan… adegan paska kredit tiba-tiba menampilkan Eren, Armin, dan Mikasa di usia remaja habis menonton film Attack on Titan di bioskop. Geek-Armin in komplain mengenai endingnya yang menurutnya kurang jelas dan masih menyisakan banyak hal tak terjawab. Goth-Mikasa, yang berurai air mata sehabis nonton film tersebut, mendebatnya. Menurutnya endingnya sengaja begitu biar fans bisa menafsirkannya masing-masing. Lalu, mereka menanyakan pendapat Eren, yang hanya menjawab bahwa ia senang menonton film bersama mereka berdua.

Aku baru tahu bahwa alternate universe ini dari Attack on School Caste, parodi bikinan Hajime Isayama sendiri yang muncul sebagai selipan di jilid manga dan punya ceritanya sendiri. Karakter-karakter dari Attack on Titan muncul dengan peran yang agak beda. Levi jadi tukang bersih-bersih di bioskop. Dan ada setengah Marco di kursi bioskop di belakang Eren (setelah membaca cerita lain dari parodi ini, aku sadar itu bukan setengah Marco, tapi HANTU setengah Marco).

Adegan di paska kredit [FF2] ini juga ada muncul di selipan volume terakhir dengan dialog yang kurang lebih sama. Jadi Hajime Isayama sudah lama menyadari bahwa ending Attack on Titan ini kontroversial dan kurang lebih membagi penggemar jadi Geek-Armin dan Goth-Mikasa. Entah yang mana yang lebih banyak (sepertinya Armin, seenggaknya yang lebih vokalnya). Yang jelas, aku tidak relate dengan Eren; aku nonton film ini sendirian, Yeager!

SEKUEL ATAU SEMESTA ALTERNATIF?

Ah, setelah Eren menjawab, ia melanjutkan bahwa kalau filmnya ada sekuel, ia ingin menontonnya bersama Armin dan Mikasa. Lalu, kamera menyorot ke adegan yang tidak ada di manga; di bukit belakang perkotaan yang menjadi latar ketiga kawan tersebut berdiri sebatang pohon yang tinggi menjulang. Seperti pohon yang ditemukan Ymir.

Apa ini menandakan kalau seri ini akan ada sekuelnya? Atau spin-off? Atau cerita lain berdasarkan semesta Attack on School Caste? Atau berdasarkan karakter anak laki-laki bersyal coklat (atau merah kusam?) yang menemukan pohon di akhir cerita? Atau cerita tentang apa yang terjadi setelah Armin dkk. sampai di Pulau Paradis dan melakukan upaya-upaya perdamaian, tentang Connie dan ibunya yang kembali menjadi manusia, tentang upaya Historia mengambil kekuasaan kembali dari militan Yeagerist, atau tentang Levi, Onyankopon, Yelena, Pieck, Annie, Reiner, Jean, Gabi, Falco, Annie, Hitch, dan karakter-karakter lain yang berkesan dan masih kita ingin ketahui nasibnya lebih jauh?

Di satu sisi, masih banyak yang bisa dieksplorasi dari karakter-karakter tersebut. Di sisi lain, sudahlah, biarkan mereka beristirahat. Biarkan Hajime Isayama, asisten-asistennya, dan para animator beristirahat. Biarkan cerita lain dari mangaka lain terdengar.

Di sisi lain-lainnya lagi, ada teori gila seperti ini.

GANJEL RASA TAK BERNAMA

Belakangan rasa sakit, atau mungkin lebih ke ‘mengganjal’, selalu ada sehabis menamatkan suatu seri. Aku merasakan ini juga sehabis menamatkan Macross Frontier tahun lalu. Dan saat ini pun, aku masih belum mantap memberi nama pada rasa ini. Apakah kecewa karena akhir ceritanya kurang sesuai harapan, baik sebagian atau keseluruhan? Atau justru karena ceritanya berakhir dan kita tidak akan melihat karakter-karakter dalam cerita lagi?

Apapun itu, aku berprasangka bahwa menuliskannya bisa mengurangi rasa itu. Mungkin aku benar, mungkin tidak. Mungkin aku jadi lebih memahami ceritanya saat menulis. Lalu aku lebih bisa mengapresiasi ceritanya, atau menemukan hal yang lebih jelek dari dugaan. Bagi kebanyakan penulis, hanya ada satu kesempatan untuk menyampaikan ceritanya kepada pembaca; yang pertama. Menurutku, setelah itu lewat, hal terbaik adalah untuk menerimanya. Apapun rasa yang kita bawa ke depan.

Biarkan suatu cerita selesai.

Mengingat nasib tragis karakter-karakternya, kayaknya kalau endingnya kayak gini, ga jelek-jelek amat

Bonus: Sebenarnya bukan penggemar fanatik banget Attack on Titan, tapi jarang-jarang ada serial anime yang bikin aku ‘coping’ seperti ini:

“Even so, the lives you gave birth to, are why I’m alive today. Rest in peace, Ymir.” Beres 11 Maret 2025, beberapa minggu setelah nonton The Last Attack, dan setelah menyadari pentingnya adegan tambahan ini.
“Last dedication.” Beres sekitar 14 November 2023, sekitar waktu tayang episode terakhir animenya.
“… Kalau diliatin dekat-dekat, bakal kelihatan corat-coret adegan epilog dari manganya.” Dicorat-coret habis baca episode manga terakhir. Perkiraan tanggal dibuat ada di bawah.
“Sudah hampir 4 tahun. Masih berat.”

Kategori
Devlog/Studlog

1 Hari 1 Tutorial: Hari 11 – Asynchronous Subscene Loading

Ini adalah tips alternatif perpindahan scene tanpa fungsi scene loader bawaan Godot. Di sini, kita tidak akan berpindah scene saat, misalnya, pindah level, karena level dijadikan instance dari scene utama (atau subscene). Saat berpindah level, kita hanya akan mengganti instance level tanpa meninggalkan atau me-load ulang scene utama.

Cara ini diklaim bisa me-load level lebih cepat (karena sebagian aset dan data ditaruh di scene utama), membuat kustomisasi transisi/perpindahan antar level lebih fleksibel, dan dapat membuat layar loading saat level di-load secara asynchronous (dijalankan berbarengan dengan perintah lain).

Sebenarnya kalau untuk membuat loading yang ada progressnya, ada tutorial lain yang tetap pakai fungsi scene loader. Namun, cara ini juga menarik. Aku belum bisa membayangkan kasus seperti apa yang tidak bisa pakai cara seperti ini.

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

Asset:

  • Kenneys