Nevanger demo untuk Unigine dan Godot

Prototipe alternatif dengan biomachines (dan tidak hanya bio-), yang ia kumpulkan selama berkenalan dengan mesin game Unigine 2 dan Godot 3.







Mesin Unigine



Mari kita mulai dengan versi Unigine. Kami menggunakan versi 2.11, dirilis musim semi ini, yang dimulai dengan lisensi gratis yang muncul di mesin. Saat ini 2,12 keluar dan 2,13 diharapkan segera.



Apa yang umumnya perlu diketahui tentang Unigine adalah mesin game Tomsk yang sering digunakan untuk tolok ukur dan simulasi. Selama bertahun-tahun, ia telah merilis game seperti Oil Rush, Cradle, dan di sini, misalnya, Dual Universe mmo yang relatif baru.



Cukup banyak solusi menarik dan menjanjikan yang digunakan di dalamnya, ini menghasilkan gambar yang cukup indah dan bisa sangat menarik bagi seniman, terutama jika mereka membuat model dalam paket 3D terpisah, dan bukan melalui mesin itu sendiri.



Medan ada di luar kotak, serta air, awan, volumetrik, proyektor, dan hal berguna lainnya. Berbagai topeng diterapkan di atas medan untuk detailing dan hal-hal lain - alat yang sangat keren untuk menciptakan lanskap, meskipun dalam hal kegunaan masih ada ruang untuk perbaikan.



Sebagai alat untuk developer game - di sini, pada prinsipnya, pengalaman menggunakan C # di Unity dapat diterapkan, meskipun Unigine tidak memiliki variasi solusi komponen siap pakai yang sama. Namun demikian, beberapa hal dasar telah diterapkan, dan dokumentasi akan membantu Anda menulis sisanya. C ++ juga tidak ke mana-mana.



Mesinnya belum cocok untuk platform seluler, serta untuk pengembangan tanpa pemrograman (meskipun direncanakan untuk mengembangkannya di area ini juga). Persyaratan perangkat keras pada tingkat kueri Unreal, ukuran file aplikasi minimum cukup besar. Tapi itu bagus dan dioptimalkan dengan baik.



Tapi kembali ke prototipe game. Dalam versi Unigine, kesulitan utama dikaitkan dengan desain visual fisika untuk mesin tik, karena dokumentasi menyarankan melakukan semua ini secara membabi buta, melalui kode, selain itu, semua jenis pengaturan fisik tersebar di berbagai tempat editor dan jalur perakitan visual itu sendiri tidak dijelaskan. Artinya, tidak ada contoh siap pakai sepele yang bisa dimodifikasi tanpa terjun ke semua nuansa. Di 2.12, demo muncul dengan traktor menggali tanah, tetapi, mungkin, lagi-lagi dirakit dengan kode, saya tidak menonton momen ini.



Bagaimanapun, saya kurang lebih merakit mesin, dengan fokus pada dokumentasi. Tentang apa yang saya tulis sebelumnya di artikel yang sesuai: Bagaimana saya mengumpulkan fisika roda di Unigine .



Dari segi gameplay, di Unigine, tidak seperti Unity dan Godot, misalnya, ternyata cukup mudah untuk mengganti physics mobil dengan cepat, tidak hanya visualnya, tetapi juga lokasi / ukuran rodanya. Tanpa datang dengan trik tambahan agar tidak jatuh ke lantai, dan tanpa membangun kembali model. Meskipun, ada kemungkinan jatuh ke dalam tekstur, tetapi dalam situasi yang sama sekali berbeda, dan bukan pada saat mengganti mesin tik.



Konsep kendaraan tunggal yang hanya mengubah bentuknya, bertransformasi, beradaptasi, melihat apa yang terjadi di dimensi lain, dan seterusnya cocok untuk semua ini. Setidaknya gameplay utama dapat dibangun di sekitar peralihan seperti itu, meskipun tidak harus.



Yang menyedihkan tentang mesin ini adalah perakitan UI dari editor - semuanya entah bagaimana rumit, dengan skrip terpisah tergantung untuk setiap elemen interaktif. Meskipun di sini saya hanya mengedit implementasi yang ada di contoh, saya tidak banyak mengerti, selain itu, saya tidak langsung mengetahui cara menampilkan lapisan gui untuk melihat representasi visual di editor.

Di sisi lain, jika yang kami maksud adalah game yang lebih berorientasi konsol, tentang gameplay yang terkait dengan sejumlah kecil tombol, dengan penggunaan antarmuka yang minimal dan dengan elemen antarmuka yang minimal, maka ini bukan lagi masalah yang terlihat.



Hal menyedihkan lainnya, animasi sederhana yang direkam pada instrumen internal - pelacak. Ya, ini kuat dengan caranya sendiri, tetapi entah bagaimana terlalu bersarang untuk digunakan. Selain itu, animasi yang direkam dengan cara ini hanya dapat diputar menggunakan bahasa UnigineScript yang sudah ketinggalan zaman. Ini sementara di Unity atau Godot Anda dapat menganimasikan secara harfiah segala sesuatu di sekitar perimeter. Ya, Anda dapat mengimpor animasi tulang, tetapi itu sedikit berbeda (selain itu, saya belum mencoba metode ini dan tidak tahu bagaimana caranya).



Jika, sekali lagi, Anda melihatnya dari sisi lain, maka mesin masih lebih fokus pada simulasi dan interaksi fisik, jadi mengapa tidak menggunakan ini daripada memanggang beberapa animasi preset di sana - yaitu, membuat beberapa pemancar, sakelar, berinteraksi struktur, menerapkan gaya, menggunakan gravitasi, dan sebagainya. Jadi Anda dapat melakukannya tanpa animator internal, tetapi jika itu diterapkan dengan benar, maka ini juga merupakan masalah besar, meskipun hanya dalam hal arah - dengan beberapa klik Anda dapat merekam penerbangan kamera di seluruh panggung dengan semua jenis elemen interaktif, dan di sini Anda memiliki film yang sudah jadi. Apalagi dengan peluang seperti itu untuk gambar sinematik.



Adapun proyek saya - saat ini, setelah beberapa iterasi, saya akhirnya menyusun dan memposting demo yang kurang lebih solid yang dapat diuji.





Arsip untuk Win64 dapat diunduh di sini (berat 687Mb): DROPBOX

atau di halaman itch.io : NEWANGERS

membongkar mengambil 3Gb



Apa yang ada:



  • Build ini memiliki tiga mode tampilan utama - "siang" dan "malam" (dengan preset pengaturan grafis tinggi), dan mode "a la comic" (dengan pengaturan grafis lebih rendah).
  • Untuk beralih di antara mode, tekan Esc sehingga kursor mouse muncul, dan pilih opsi yang diinginkan pada menu di kiri atas.
  • Ada objek interaktif di level - portal berbentuk bintang biru, yang melaluinya mobil diangkut ke dunia lain dan Anda dapat kembali dengan mengemudi ke portal dari sisi itu.
  • Banyak objek pada level yang dapat ditembus, tetapi beberapa memiliki colliders dan levelnya sendiri lebih atau kurang dikelilingi oleh dinding pembatas.
  • , , WASD. Q E. , , , R. Tab , , , .
  • , .
  • 1,2,3,4,5,6,7 β€” . .
  • , «» .
  • PgUp , . PgDown β€” .
  • P β€” , L β€” .


Seorang teman memposting sumber prototipe ini sebelumnya di halamannya, bersama dengan beberapa pengeditan pada fisika roda versi aslinya: GITLAB .



Mesin Godot



Pindah ke mesin berikutnya di daftar kami. Solusi kompak open source dengan kemampuan besar (Blender dari dunia mesin game), tetapi, sekali lagi, masih kalah dengan Unity yang sama dalam hal variasi komponen yang sudah jadi. Meskipun, cukup banyak solusi tidak resmi, serta contoh dengan kode sumber untuk Godot, telah ditulis, dan karena kesederhanaan / kecepatan implementasi fungsionalitas baru yang relatif, saya tidak dapat mengatakan bahwa ini adalah semacam masalah saat ini.



Godot memiliki reputasi yang lebih baik sebagai mesin 2D, berkat berbagai alat yang dikembangkan dengan baik khusus untuk 2D, tetapi mereka merupakan nilai tambah tambahan untuk 3D - jauh lebih mudah untuk membuat UI game. Bahkan lebih mudah daripada di Unity, bagiku. Saat ini, Godot dalam perkembangannya telah mencapai versi 3.2.3 yang stabil (tetapi semua orang menunggu 4 karena gunung berapi, pengoptimalan, dan sebagainya. Kumpulan gemetar dari empat, omong-omong, Anda sudah dapat mencoba - setidaknya mengevaluasi gambar).



Mesin tidak memerlukan perangkat keras yang kuat untuk grafik 3D dan menghasilkan gambar yang cukup bagus. Tidak ada sejumlah besar alat tiga dimensi yang siap pakai, tetapi beberapa yang paling penting, berguna, dan universal telah diterapkan. Hal yang sama berlaku untuk pengoptimalan. Misalnya, mesin menerapkan pemusnahan frustrum yang biasa, yang memotong geometri dari bidang pandang kamera. Pemusnahan oklusi (agar tidak menghitung objek yang ditutup oleh dinding), Anda harus memikirkan implementasinya sendiri (yang tidak begitu sulit, terutama di beberapa tempat titik, dan tidak di setiap game yang Anda butuhkan). Juga di luar kotak di mesin tidak ada kumpulan geometri (meskipun ada sebagian untuk gles2) dan medan, tetapi ini bukan masalah, Anda hanya perlu mengoptimalkan sesuatu secara manual - menjahit beberapa mata jaring, memecah geometri menjadi bagian-bagian kecil atau menggunakan potongan dan sebagainya. Lebih lanjut.Anda dapat menemukan beberapa jenis implementasi di toko kecil lokal, misalnya, menambahkan solusi medan siap pakai ke proyek Anda.



Omong-omong, antarmuka mesin cukup bijaksana dan dapat disesuaikan (meskipun ada beberapa elemen yang tidak fleksibel). Secara umum nyaman digunakan. Ada cukup bahasa yang didukung untuk berbagai tingkat pencelupan. Ada C ++ dan C # dan GDScript internal yang cukup nyaman yang berjalan tepat di dalam editor tanpa memerlukan lingkungan terpisah untuk diluncurkan. Skrip visual juga hadir, sehingga tanpa pengetahuan pemrograman di Godot juga sangat mungkin untuk hidup - untuk merancang beberapa logika minimal, untuk menghidupkan sesuatu (Godot memiliki alat yang sederhana dan keren untuk merekam animasi).



Bobot aplikasi yang rendah, sifat multiplatform, kecepatan pengembangan, kemudahan implementasi berbagai solusi pihak ketiga juga merupakan keunggulan penting engine. Ada dua opsi rendering - gles2 dan gles3, keduanya mendukung 3D, tetapi yang pertama lebih sederhana dan secara umum lebih cocok untuk 2D dan ponsel. Gles3 memberikan level grafik yang lebih canggih, beberapa bagian dari perangkat seluler juga mendukungnya.



Mari beralih ke prototipe game berdasarkan mesin ini. Di Godot, model kendaraan fisik sederhana sudah hampir dikeluarkan dari kotaknya, jadi membawa mobil Anda ke sini cukup mudah.



Dengan beberapa masalah muncul - tidak mudah untuk mengintervensi objek fisik yang diluncurkan, misalnya, untuk memindahkannya dari satu titik ke titik lain atau untuk mengubah lokasi roda mobil dengan cepat. Oleh karena itu, di sini trik seperti di Unigine tidak berfungsi dan, seperti yang saya pahami, di Godot lebih mudah untuk membuat ulang objek daripada mengubah konfigurasi fisika atau sesuatu seperti itu dengan cepat. Tetapi pada kenyataannya, semua ini tidak terlalu diperlukan, dan dalam prototipe ini saya baru saja kembali ke ide standar gameplay, ketika Anda mengendarai mobil yang berbeda, berganti dari satu ke yang lain di suatu tempat di tempat khusus yang terpisah.



Godot memiliki alat menarik seperti objek CGS dan multi-mesh. Saya menulis lebih detail tentang fitur penggunaannya di artikel: Godot, 1000 hal kecil



Prototipe Nevanger pada mesin ini menerima nama terpisah -Mesin Liar . Secara umum, saya mendapatkan sejenis proyek keluarga serupa, yang disatukan oleh konsep mobil aneh yang bepergian melalui dunia yang aneh. Dan sebagai nama kolektif yang berfungsi, saya biasa memanggil mereka Nevangers, sampai nama yang lebih spesifik muncul. Prototipe Godot sekarang memiliki namanya sendiri, versi yang ditangguhkan pada versi 0.9 dari Unity (yang memulai semuanya) juga memiliki nama yang berbeda, tetapi akan muncul nanti, jika ada waktu untuk kembali ke sana.



Pada awalnya, saya tidak memiliki visi khusus tentang apa yang ingin saya terapkan dalam demo Mesin Liar, saya hanya membuat sketsa level, mencoba memahami cara menerapkan medan dengan lebih baik dan peluang seperti apa yang ingin saya lihat. Kemudian saya mendapat ide untuk membuat kamera bergerak di belakang mouse dan menjadi mungkin untuk mewujudkan tujuan senjata yang lebih terkontrol daripada di versi lain. Jadi, prototipe ini mungkin akan lebih fokus pada penggunaan pemotretan.



Sepanjang jalan, saya mulai mengumpulkan level dari platform yang terdiri dari blok-blok kecil, mencoba berbagai pendekatan untuk pengoptimalan dan mengukur kinerja. Pengoptimalan dengan pengoptimalan, tetapi pada titik tertentu saya sudah mengisi area yang terlihat oleh kamera dengan begitu banyak geometri sehingga editor berhenti menyeret seluruh adegan yang sedang berjalan, mengalami kesalahan. Yang diperbaiki dengan memasukkan lebih banyak memori dalam pengaturan. Kemudian saya mengambil lebih banyak generasi platform ke dalam kode, hanya menyisakan blok dimensi yang disederhanakan dengan pengenal di atas panggung, yang dengan sendirinya memuat platform yang diperlukan ke dalam diri mereka sendiri di awal permainan. Kemudian dia mengembalikan jumlah memori yang digunakan ke nilai yang lebih rendah dan meningkatkan level beberapa kali lebih banyak tanpa masalah. Selain itu, dengan implementasi seperti itu, selalu ada opsi untuk menggunakan kembali platform yang sudah dimuat, memindahkannya ke tempat lain di level tersebut,ketika mesin sedang menuju ke arah itu agar dapat menggambar ruang level dengan mereka secara praktis hingga tak terbatas dengan sumber daya yang sama dan tanpa transisi.



Dengan cara yang sama, saya kemudian mengumpulkan sketsa dengan level yang sama di Unigine, hanya di sana editor segera menggambar seluruh adegan tanpa perlu memuat platform ke dalam blok melalui kode (tetapi untuk Unigine, komputer yang jauh lebih kuat digunakan).



Alhasil, di versi demo Wild Engines ada 4 mobil, satu di antaranya harus dipilih untuk memulai, dan dua level kecil (Level A dan Level B). Beberapa peta awal juga tetap ada (Level 0 dan 1), tetapi mereka bahkan lebih menguji dan lanskap di sana tidak dioptimalkan.





Mode layar penuh dan bayangan dapat diaktifkan / dinonaktifkan di menu.



Tombol 1, 2, dan 3 mengubah posisi kamera. Mouse mengarahkan dan memutar kamera, semakin jauh kursor dari tengah.



WASD - pindah. PgDown - lompat. Q - impuls acak.



Tombol kiri mouse - bidik.



Dengan Enter, petunjuk tentang kontrol muncul dan tombol untuk kembali ke menu utama, di mana Anda dapat mengubah mesin / level.



Versi Win64 (42 Mb): DROPBOX wildengines_x64



Versi Linux (44 Mb): DROPBOX wildengines_linux



Bonus



Dan inilah salah satu mecha baru yang baru saja ditambahkan, Necromancer:





Anda bisa mengendarainya dalam versi Unigine.



Mecho baru lainnya, pink dengan backlighting biru, Debag, ada di sana-sini.



Ada juga satu kartrid tua tergeletak di sekitar ... bagaimana menurut Anda, klon dari game delapan-bit mana yang dapat disembunyikan dengan nama itu di kartrid Cina, jika Vangers adalah waralaba terkenal di dunia pada masa itu?






All Articles