Python

Mesin Permainan Python 3D yang bagus

Mesin Permainan Python 3D yang bagus

Pengenalan

Mencari kerangka untuk mesin permainan 3D yang dibuat untuk dan dengan Python boleh membuktikan sangat sukar. Sebabnya ialah Python cepat menghadapi masalah prestasi apabila kerumitan meningkat. Penyampaian grafik pantas bukanlah yang terbaik dilakukan Python. Namun, kerana Python sangat bagus untuk membuat logik dan cukup popular, anda mempunyai banyak pilihan untuk menjalankan kerangka kerja yang ditulis dalam C++.

Untuk menjadikan ini berfungsi untuk mesin permainan 3D, anda tidak dapat melakukan semua perkara seperti yang biasa anda lakukan di Python. Sebilangan besar kerangka membuat pembungkus untuk perpustakaan C ++ mereka. Anda perlu mencari cara menyusunnya sehingga Python dapat mengingat kembali pembungkus ini. Mereka membahas dalam dokumentasi bagaimana mengkompilasi dengan pembungkus Python.

Gaya Permainan dan Pilihan Bahasa

Pertimbangkan, sebelum anda memulakan, sama ada permainan anda adalah platformer, penembak orang pertama, atau berdasarkan dialog. Mungkin, anda akan membuat permainan yang mencabar kemahiran intelektual. Ini tidak memerlukan grafik berprestasi tinggi. Maksudnya ialah anda perlu mengetahui apa yang anda ingin capai sebelum anda memulakannya. Anda mungkin terbiasa dengan Python untuk pengaturcaraan. Tetapi jika anda ingin membuat permainan dengan banyak kesan, anda harus mempertimbangkan bahasa pengaturcaraan lain. Ini adalah usaha yang baik untuk belajar bahasa baru, tetapi juga sangat memuaskan setelah anda melewati rintangan awal asas. Masa dokumentasi biasa masuk akal, walaupun sekilas.

Ikatan, Perpustakaan untuk dipertimbangkan

Untuk membuat permainan, anda perlu membuat grafik, menu, dan audio. Terdapat beberapa perpustakaan dan ikatan Python untuk menangani kes-kes ini. Salah satu perpustakaan yang paling umum adalah SDL2, yang memberikan programmer akses terus ke framebuffer video, output audio, tetikus dan papan kekunci. Tanpa ini, permainan anda harus menggunakan rutin biasa, yang kadangkala lambat. Versi pertama masih ada, tetapi SDL2 mempunyai semua alat yang diperlukan.

SFML2 memainkan peranan yang serupa dengan kebanyakan fungsi multimedia, dan menyatukan semua fungsi. Sebaliknya, SDL2 mengandungi banyak potongan kecil yang perlu anda masukkan ke kod anda satu demi satu.

Untuk Python, anda akan memerlukan pakej PySDL2 dan PySFML2.

PyOgre

Pereka PyOgre menulis rangka Ogre dalam C ++ dengan pembungkus untuk Python. Pembungkus adalah pembungkus terbina dalam. Projek lama masih boleh didapati di web. Mengikuti tutorial boleh berguna tetapi berhati-hati, kerana tidak semua yang tersedia dalam talian akan betul. Ogre mempunyai kelas untuk banyak objek dunia, memberi anda lapisan di atas OpenGL dan Direct3D.

Ogre berfungsi dengan pemandangan dan dapat membuat semua grafik yang mungkin anda perlukan untuk permainan anda. Modul PyOgre berfungsi untuk versi sebelum versi Ogre v1.05. Selepas itu, ada modul lain yang ada. Perisian Ogre merangkumi skrip Python untuk mengimport data dari Blender ke Ogre. Ini memungkinkan untuk membuat sumber daya anda di Blender untuk permainan anda. Pengeksport lain juga ada.

http: // wiki.ogre3d.org /

Allegro

Allegro menangani semua peningkatan berat untuk membuat tingkap, menerima input pengguna, melukis gambar, dan memainkan suara - semua ciri yang berguna untuk permainan video dan pengaturcaraan multimedia. Pereka Allegro tidak mendakwa bahawa program ini adalah mesin permainan, tetapi berguna untuk membuat permainan.

Oleh kerana Allegro dibina di C ++, anda perlu membuat pembungkus untuk menggunakan program ini di Python. Anda boleh melakukan langkah ini dengan menyusun dari sumbernya. Proses membuat kelas dalam fail yang bernama الزام.py. Sebaik sahaja anda menyelesaikan langkah ini, anda boleh memilih kelas dari fail tersebut, tetapi disarankan agar anda juga membaca dokumentasi biasa untuk bagaimana program ini berfungsi. Ini mungkin menyukarkan prosesnya, tetapi belajar C ++ juga merupakan tugas.

https: // github.com / liballeg / داalro5

Armory 3D - Sambungan Blender

Pakej ini menggunakan Blender sebagai platform pengembangan dan HAXE sebagai bahasa pengaturcaraan. Ya, anda perlu beralih ke Haxe, tetapi anda mungkin menukar beberapa logik permainan yang ada dari Python. Armory3D beroperasi di dalam Blender sebagai lanjutan, di mana anda boleh membuat semua sumber daya anda untuk permainan.

Walaupun Armory 3D tidak berjalan di Python, pertimbangkan program ini dengan berhati-hati, kerana anda boleh memulakan dengan cepat dengan alat ini. https: // persenjataan3d.org /

Urho3D

Pakej ini menggunakan Blender sebagai platform pengembangan dan menggunakan HAXE sebagai bahasa pengaturcaraan. Sekali lagi, anda perlu beralih ke Haxe, tetapi anda mungkin menukar beberapa logik permainan yang ada dari Python. Armory3D beroperasi di dalam Blender sebagai lanjutan, di mana anda boleh membuat semua sumber daya anda untuk permainan.

Walaupun Urho3D tidak berjalan di Python, pertimbangkan juga program ini dengan berhati-hati, kerana anda boleh memulakan dengan cepat dengan alat ini. https: // persenjataan3d.org /

Ursina

Ursina ditulis dalam Python dan dibina di Panda3D. Alat ini direka untuk menyediakan banyak primitif, seperti kubus, sfera dll., supaya anda dapat bergerak ke permainan itu sendiri secepat mungkin. Panda3D melakukan kerja mendalam dan Ursina memberi anda fungsi program siap sedia. Kelas pemain memberi anda pilihan untuk mendaftarkan kekunci ditekan dan pergerakan tetikus.

Sebilangan besar fungsi intuitif untuk digunakan dengan nama yang jelas dan fungsi yang mudah difahami. Anda akan dapat memulakan permainan anda dengan cepat jika anda menggunakan alat membuat permainan ini. Ursina juga mempunyai alat untuk menukar kedua-dua fail campuran dan psd.

https: // github.com / pokepetter / ursina

Mesin Permainan Blender (?)

Sebelum versi 2.79, Blender mempunyai enjin permainan yang dibina di dalamnya. Namun, pada versi yang lebih baru, para pereka memilih untuk mengeluarkan mesin permainan dari binaan standard dan fokus pada animasi. Oleh itu, orang-orang di UPBGE memutuskan untuk membuat sambungan mereka sendiri yang berfungsi di dalam Blender. Oleh itu, anda boleh menggunakan Blender untuk membuat keseluruhan permainan. Bagaimana ini mengaitkan dengan perkembangan permainan Python?

BPGE mempunyai API yang membolehkan anda mengakses semua data yang anda buat semasa bekerja di dalam Blender. Anda boleh menggunakan konsol di dalam Blender untuk mengakses dan menguji API. Sebenarnya, anda boleh menulis keseluruhan program dengan cara ini, tetapi itu mungkin bukan pilihan terbaik untuk keperluan anda. Sekurang-kurangnya, anda akan menyediakan semua sumber dan cara yang anda mahukan sejak anda membuatnya.

GODOT - Skrip GD, BUKAN Python

Sekiranya anda ingin menulis permainan dan anda selesa dengan Python, anda juga boleh menggunakan GODOT. Bahasa ini sangat mirip dengan Python hanya untuk menulis permainan.

Kesimpulannya

Terdapat banyak kerangka kerja untuk menulis permainan di Python. Sekiranya anda ingin membuat permainan 3D berprestasi tinggi, anda harus mempertimbangkan untuk mempelajari bahasa lain untuk permainan tersebut. Pastikan bahawa pilihan program anda membolehkan anda mengikuti idea permainan asal anda. Sekiranya perlu, sesuaikan bahasa pengaturcaraan anda dengan visi peribadi anda.

Enjin Permainan Sumber Percuma dan Terbuka untuk Membangunkan Permainan Linux
Artikel ini akan merangkumi senarai enjin permainan sumber percuma dan terbuka yang dapat digunakan untuk mengembangkan permainan 2D dan 3D di Linux. ...
Shadow of the Tomb Raider untuk Tutorial Linux
Shadow of the Tomb Raider adalah penambahan kedua belas untuk siri Tomb Raider - francais permainan aksi-pengembaraan yang dibuat oleh Eidos Montreal....
Cara Meningkatkan FPS di Linux?
FPS bermaksud Bingkai sesaat. Tugas FPS adalah mengukur kadar bingkai dalam pemutaran video atau persembahan permainan. Dengan kata mudah bilangan gam...