ADS

Filosofi Desain Software Godot

 

Filosofi desain Godot

Sekarang setelah Anda mulai memahaminya, mari kita bicara tentang rancangan Godot.

Setiap mesin gim berbeda dan sesuai dengan kebutuhan yang berbeda. Tidak hanya menawarkan berbagai fitur, tetapi desain setiap mesin juga unik. Hal ini menyebabkan alur kerja yang berbeda dan cara yang berbeda untuk membentuk struktur gim Anda. Ini semua berasal dari filosofi desain masing-masing.

Halaman ini dibuat untuk membantu Anda memahami cara kerja Godot, dimulai dengan beberapa pilar utamanya. Halaman ini bukan daftar fitur yang tersedia, juga bukan perbandingan engine. Untuk mengetahui apakah suatu engine cocok untuk proyek Anda, Anda perlu mencobanya sendiri dan memahami desain serta keterbatasannya.

Silakan tonton Godot yang dijelaskan dalam 7 menit jika Anda mencari ikhtisar fitur mesin.

Desain dan komposisi berorientasi objek

Godot menggunakan desain berorientasi objek pada intinya dengan sistem adegan yang fleksibel dan hierarki Node. Godot mencoba menghindari pola pemrograman yang ketat untuk menawarkan cara intuitif dalam menyusun permainan Anda.

Pertama, Godot memungkinkan Anda menyusun atau menggabungkan adegan. Mirip seperti prefab bersarang: Anda dapat membuat adegan BlinkingLight dan adegan BrokenLantern yang menggunakan BlinkingLight. Lalu, buat kota yang dipenuhi BrokenLantern. Ubah warna BlinkingLight, simpan, dan semua BrokenLantern di kota akan langsung diperbarui.

Selain itu, Anda dapat mewarisi dari adegan mana pun.

Adegan Godot bisa berupa Senjata, Karakter, Item, Pintu, Level, bagian dari level... apa pun yang Anda inginkan. Ia berfungsi seperti kelas dalam kode murni, kecuali Anda bebas mendesainnya dengan menggunakan editor, hanya menggunakan kode, atau mencampur dan mencocokkan keduanya.

Berbeda dengan prefab yang Anda temukan di beberapa mesin 3D, karena Anda kemudian dapat mewarisi dan memperluas adegan tersebut. Anda dapat membuat Pesulap yang memperluas Karakter Anda. Ubah Karakter di editor dan Pesulap akan memperbaruinya juga. Ini membantu Anda membangun proyek sehingga strukturnya sesuai dengan desain permainan.

gambar0

Perhatikan juga bahwa Godot menawarkan berbagai jenis objek yang disebut node, masing-masing dengan tujuan tertentu. Node merupakan bagian dari pohon dan selalu mewarisi dari induknya hingga kelas Node. Meskipun mesin tersebut menampilkan beberapa node seperti bentuk tabrakan yang akan digunakan oleh badan fisika induk, sebagian besar node bekerja secara independen satu sama lain.

Dengan kata lain, simpul Godot tidak bekerja seperti komponen di mesin permainan lainnya.

gambar1

Sprite2D adalah Node2D, CanvasItem, dan Node. Ia memiliki semua properti dan fitur dari tiga kelas induknya, seperti transformasi atau kemampuan untuk menggambar bentuk khusus dan merender dengan shader khusus.

Paket lengkap

Godot mencoba menyediakan alatnya sendiri untuk menjawab kebutuhan yang paling umum. Ia memiliki ruang kerja skrip khusus, editor animasi, editor peta ubin, editor shader, debugger, profiler, kemampuan untuk memuat ulang secara lokal dan pada perangkat jarak jauh, dll.

gambar2

Tujuannya adalah untuk menawarkan paket lengkap guna membuat game dan pengalaman pengguna yang berkelanjutan. Anda tetap dapat bekerja dengan program eksternal selama ada plugin impor yang tersedia di Godot untuk itu. Atau Anda dapat membuatnya sendiri, seperti Tiled Map Importer .

Itulah sebabnya Godot menawarkan bahasa pemrogramannya sendiri, GDScript, bersama dengan C#. GDScript dirancang untuk memenuhi kebutuhan pengembang dan perancang permainan, dan terintegrasi erat dalam mesin dan editornya.

GDScript memungkinkan Anda menulis kode menggunakan sintaksis berbasis indentasi, tetapi mendeteksi tipe dan menawarkan kualitas pelengkapan otomatis bahasa statis. GDScript juga dioptimalkan untuk kode permainan dengan tipe bawaan seperti Vektor dan Warna.

Perhatikan bahwa dengan GDExtension, Anda dapat menulis kode berkinerja tinggi menggunakan bahasa yang dikompilasi seperti C, C++, Rust, D, Haxe, atau Swift tanpa mengompilasi ulang mesin.

Perhatikan bahwa ruang kerja 3D tidak memiliki banyak alat seperti ruang kerja 2D. Anda memerlukan program eksternal atau add-on untuk mengedit medan, menganimasikan karakter yang kompleks, dan sebagainya. Godot menyediakan API lengkap untuk memperluas fungsionalitas editor menggunakan kode permainan. Lihat Editor Godot adalah permainan Godot di bawah.

gambar4

Plugin editor State Machine di Godot 2 oleh kubecz3k. Plugin ini memungkinkan Anda mengelola status dan transisi secara visual.

Sumber terbuka

Godot menawarkan basis kode sumber terbuka sepenuhnya di bawah lisensi MIT . Ini berarti semua teknologi yang disertakan harus Bebas (dalam arti kebebasan). Sebagian besar, teknologi tersebut dikembangkan dari awal oleh kontributor.

Siapa pun dapat memasang alat milik sendiri untuk kebutuhan proyek mereka — alat tersebut tidak akan disertakan dalam mesin. Ini dapat mencakup Google AdMob, atau FMOD. Semua ini dapat hadir sebagai plugin pihak ketiga.

Di sisi lain, basis kode terbuka berarti Anda dapat belajar dari dan mengembangkan mesin sesuai keinginan Anda. Anda juga dapat men-debug game dengan mudah, karena Godot akan mencetak kesalahan dengan jejak tumpukan, meskipun kesalahan tersebut berasal dari mesin itu sendiri.

Catatan

Hal ini tidak memengaruhi pekerjaan yang Anda lakukan dengan Godot dengan cara apa pun: tidak ada ikatan apa pun pada mesin atau apa pun yang Anda buat dengannya.

Berbasis komunitas

Godot dibuat oleh komunitasnya, untuk komunitasnya, dan untuk semua kreator game di luar sana. Kebutuhan pengguna dan diskusi terbukalah yang mendorong pembaruan inti. Fitur-fitur baru dari pengembang inti sering kali berfokus pada apa yang akan menguntungkan sebagian besar pengguna terlebih dahulu.

Meski demikian, meskipun beberapa pengembang inti mengerjakannya secara penuh waktu, proyek ini memiliki ribuan kontributor saat artikel ini ditulis. Programmer yang baik hati mengerjakan sendiri fitur yang mungkin mereka butuhkan, jadi Anda akan melihat peningkatan di semua sudut mesin secara bersamaan di setiap rilis utama.

Editor Godot adalah permainan Godot

Editor Godot berjalan pada mesin permainan. Editor ini menggunakan sistem UI milik mesin itu sendiri, dan dapat memuat ulang kode dan adegan secara otomatis saat Anda menguji proyek, atau menjalankan kode permainan di editor. Ini berarti Anda dapat menggunakan kode dan adegan yang sama untuk permainan Anda, atau membuat plugin dan memperluas editor.

Hal ini menghasilkan sistem UI yang andal dan fleksibel, karena sistem ini mendukung editor itu sendiri. Dengan @toolanotasi, Anda dapat menjalankan kode game apa pun di editor.

gambar5

RPG in a Box adalah editor RPG voxel yang dibuat dengan Godot 2. Editor ini menggunakan alat UI Godot untuk sistem pemrograman berbasis node dan untuk seluruh antarmukanya.

Letakkan @toolanotasi di bagian atas berkas GDScript mana pun dan anotasi tersebut akan berjalan di editor. Ini memungkinkan Anda mengimpor dan mengekspor plugin, membuat plugin seperti editor level khusus, atau membuat skrip dengan node dan API yang sama yang Anda gunakan dalam proyek Anda.

Catatan

Editor sepenuhnya ditulis dalam C++ dan dikompilasi secara statis ke dalam biner. Ini berarti Anda tidak dapat mengimpornya sebagai proyek biasa yang memiliki file project.godot.

Mesin 2D dan 3D terpisah

Godot menawarkan mesin render 2D dan 3D khusus. Hasilnya, unit dasar untuk adegan 2D adalah piksel. Meskipun mesinnya terpisah, Anda dapat merender 2D dalam 3D, 3D dalam 2D, dan melapisi sprite dan antarmuka 2D di atas dunia 3D Anda.

Tidak ada komentar:

Posting Komentar