Mesin game dengan kreasi / manajemen entitas Lua yang baik [ditutup]

11

Saya mencari mesin yang membangun entitas itu menggunakan Lua atau bahasa scripting lainnya. Ini untuk mencari inspirasi dan melakukannya di mesin saya sendiri juga.

Saya tahu bahwa CryEngine menggunakan Lua untuk membuat entitas mereka, tetapi saya ingin tahu apakah ada beberapa alternatif lain yang bisa saya cari.

Terima kasih!

Mr.Gando
sumber

Jawaban:

7

Saya akan merekomendasikan untuk melihat LÖVE " kerangka kerja luar biasa yang dapat Anda gunakan untuk membuat game 2D di Lua. Ini gratis, open-source, dan bekerja pada Windows, Mac OS X dan Linux." Ini jelas bukan alternatif untuk Cryengine, tetapi harus menunjukkan bagaimana secara efektif memanfaatkan potensi Lua untuk pembuatan entitas dan logika permainan. Gabungkan pengetahuan itu dengan bagaimana Cryengine / mesin AAA lainnya memanfaatkan skrip backend, dan Anda harus memiliki semua inspirasi yang Anda butuhkan untuk membuat mesin sendiri dengan kemampuan skrip yang tangguh. :)

Ari Patrick
sumber
4

Sejauh yang saya ketahui, Relic's Essence Engine Series (seperti yang digunakan di Company of Heroes and Dawn of War II ) menggunakan Lua atau dialek untuk statistik unit dan penulisan misi. Tidak ada sumber web sungguhan untuk itu, tetapi Anda selalu dapat memeriksa beberapa mod di RelicNews.com untuk bertanya apakah Anda tertarik.

The Spark Mesin oleh Worlds diketahui seperti yang digunakan dalam permainan mereka mendatang Seleksi Alam 2 memungkinkan sebagian besar kode permainan berada di Lua sejauh yang saya tahu. SDK hadir dengan pre-order game dan saat ini dalam versi beta sebagaimana permainan.

Game lain yang pernah dipromosikan sangat mengandalkan Lua adalah Eufloria (sebelumnya Dyson ). Ada referensi modding Lua di forum mereka juga.

Permainan co-op gratis Valve Alien Swarm banyak menggunakan bahasa penulisan yang disebut "Squirrel" yang telah dipengaruhi oleh Lua. Alien Swarm SDK harus tersedia untuk diunduh di Steam. ( Dev wiki )

EDIT: Bagaimana saya bisa melupakan Dunia dalam Konflik ! Permainan melakukan banyak hal dalam Python menjadi jelas ketika melihat mod seperti Modern Warfare Mod yang menerapkan mekanisme yang sama sekali baru.

Koarl
sumber
Menambahkan tautan Anda untuk Anda.
Bebek Komunis
Terima kasih! // Menghapus komentar yang berisi tautan yang tidak diformat ...
Koarl
Jawaban yang bagus, saya berharap lebih banyak orang dapat menambahkan pertanyaan ini karena di masa depan saya benar-benar yakin akan ada lebih banyak jawaban. Terima kasih banyak Koarl (Saya penggemar berat btw)
Mr.Gando
2

Berikut adalah beberapa contoh game (sumber terbuka) yang menggunakan skrip untuk menerapkan perilaku entitas:

Frogato mengimplementasikan entitas menggunakan bahasa skrip khusus. Battle for Wesnoth mengimplementasikan entitas menggunakan bahasa deskripsi khusus tempat skrip Lua dapat disematkan. KQ mengimplementasikan perilaku entitas menggunakan skrip Lua.

Sunting: Tautan yang diposting sekarang saya diizinkan untuk ...

hmn
sumber
Frogato terlihat sangat dekat dengan apa yang saya cari, itu agak bertele-tele, tapi masih sangat menarik. Contoh yang setara di Lua akan mengguncang :)
Mr.Gando
2

Saya melakukan itu di mesin saya ( sumber tersedia , tetapi mungkin tidak layak diuraikan).

Dalam kasus saya, "entitas" adalah konsep yang sepenuhnya ada di dalam Lua. Tidak ada dukungan C ++ untuk "entitas". Dengan demikian, "entitas" adalah apa pun yang dibutuhkan oleh game tertentu. Kadang-kadang itu hanya sebuah tabel dengan sedikit data yang melekat padanya, kadang-kadang itu adalah elemen Frame 2d (perhatikan bahwa Frames sepenuhnya merupakan konstruksi Lua juga, saya hanya memiliki perpustakaan UI standar), kadang-kadang itu adalah sesuatu yang rumit dengan AI dan rendering dan kemudian masih saja hal yang dibuat di Lua.

Banyak orang menggunakan Lua untuk skrip sistem objek yang memiliki dukungan C ++, sehingga entitas "hidup" di C ++ dan memanggil Lua untuk skripnya. Saya biasa melakukan itu, tetapi saya mendapati diri saya semakin bahagia dan lebih bahagia ketika saya memindahkan kode dari C ++ dan ke Lua. Pada titik ini, saya menggunakan C ++ semata-mata untuk menangani panggilan API OS, dan semua tata letak / render / AI / logika game dalam 100% Lua murni.

Direkomendasikan.

Jangan ragu untuk bertanya, saya cukup bersedia untuk menjawab :)

ZorbaTHut
sumber
Bagaimana glorp dibandingkan dengan love2d?
deft_code
Seperti yang saya pahami, love2d memiliki jalur render set-in-stone yang signifikan. glorp tidak - ia memiliki binding OpenGL, dan Anda hanya me-render apa pun yang Anda inginkan (walaupun ia memiliki fungsi pembantu untuk hal-hal standar.) glorp memiliki sistem "menu / jeda / kembali ke menu" bawaan, ia melakukan remote pelaporan kesalahan pada crash, dan itu akan secara otomatis menghasilkan installer untuk OS apa pun yang Anda bangun. glorp tidak benar-benar dirancang sebagai API, namun - itu adalah kerangka kerja yang terus-menerus dimodifikasi untuk apa pun yang saya butuhkan. Sama sekali tidak kompatibel balik :)
ZorbaTHut