Piton

Motoare de joc Python 3D bune

Motoare de joc Python 3D bune

Introducere

Găsirea unui cadru pentru motoarele de joc 3D realizate pentru și cu Python se poate dovedi foarte dificilă. Motivul este că Python întâmpină rapid probleme de performanță atunci când complexitatea crește. Redarea grafică rapidă nu este ceea ce Python face cel mai bine. Cu toate acestea, deoarece Python este foarte bun pentru crearea logicii și este destul de popular, aveți multe opțiuni pentru a rula cadre scrise în C++.

Pentru ca acest lucru să funcționeze pentru motoarele de jocuri 3D, nu puteți face totul așa cum ați putea face de obicei în Python. Majoritatea cadrelor creează un wrapper pentru bibliotecile lor C ++. Va trebui să vă dați seama cum să compilați, astfel încât Python să poată aminti acest wrapper. Acestea acoperă în documentație cum să compilați cu împachetarea Python.

Stilul jocului și alegerea limbii

Luați în considerare, înainte de a începe, dacă jocul dvs. este un platformer, un shooter la prima persoană sau un dialog. Poate că veți crea un joc care provoacă abilitățile intelectuale. Acest lucru nu are nevoie de o grafică de înaltă performanță. Ideea este că va trebui să știți ce încercați să realizați înainte de a începe. Puteți fi obișnuit cu Python pentru programare. Dar dacă doriți să creați jocuri cu multe efecte, ar trebui să luați în considerare alte limbaje de programare. Este un mare efort să înveți o limbă nouă, dar este, de asemenea, extrem de satisfăcător odată ce ai trecut de obstacolul inițial al elementelor de bază. Momentul în care documentația obișnuită are sens, chiar și dintr-o privire rapidă.

Legături, biblioteci de luat în considerare

Pentru a crea jocuri, va trebui să creați grafică, meniuri și sunet. Există mai multe biblioteci și legături Python pentru a gestiona aceste cazuri. Una dintre cele mai frecvente dintre aceste biblioteci este SDL2, care oferă programatorilor acces direct la buffer-ul de cadre video, ieșire audio, mouse și tastatură. Fără acestea, jocul dvs. va trebui să folosească rutine obișnuite, care uneori pot fi lente. Prima versiune este încă în jur, dar SDL2 are toate gadgeturile necesare.

SFML2 joacă un rol similar cu majoritatea funcțiilor multimedia și pune toate funcțiile la un loc. În schimb, SDL2 conține multe piese mai mici pe care trebuie să le trageți în codul dvs. pe rând.

Pentru Python, veți avea nevoie de pachetele PySDL2 și respectiv PySFML2.

PyOgre

Proiectanții PyOgre au scris cadrul Ogre în C ++ cu un wrapper pentru Python. Învelișul este un înveliș încorporat. Vechiul proiect este încă disponibil pe web. Urmarea tutorialelor poate fi utilă, dar aveți grijă, deoarece nu tot ceea ce este disponibil online va fi corect. Ogre are clase pentru multe obiecte din lume, oferindu-vă un strat deasupra OpenGL și Direct3D.

Ogre funcționează cu scene și poate crea toate elementele grafice de care ai putea avea nevoie pentru jocul tău. Modulele PyOgre funcționează pentru versiuni anterioare versiunii Ogre v1.05. După aceea, există și alte module disponibile. Software-ul Ogre include scripturi Python pentru importul datelor din Blender în Ogre. Acest lucru face posibilă crearea resurselor dvs. în Blender pentru jocul dvs. Sunt disponibili și alți exportatori.

http: // wiki.ogre3d.org /

Allegro

Allegro se ocupă de greutatea ridicată a creării ferestrelor, acceptării intrărilor utilizatorilor, desenării imaginilor și redării sunetelor - toate caracteristici utile pentru programarea jocurilor video și multimedia. Designerii Allegro nu susțin că acest program este un motor de joc, dar este util pentru a face jocuri.

Deoarece Allegro a fost construit în C ++, va trebui să creați învelișul pentru a utiliza acest program în Python. Puteți efectua acest pas compilând din sursă. Procesul creează clasele într-un fișier numit allegro.py. După ce ați parcurs acest pas, puteți alege clasele din acel fișier, dar este recomandat să citiți și documentația obișnuită pentru modul în care funcționează acest program. Acest lucru poate complica procesul, dar învățarea C ++ este, de asemenea, o corvoadă.

https: // github.com / liballeg / allegro5

Armory 3D - Extensie Blender

Acest pachet folosește Blender ca platformă de dezvoltare și HAXE ca limbaj de programare. Da, va trebui să treceți la Haxe, dar este posibil să convertiți unele logici de joc existente din Python. Armory3D funcționează în interiorul Blender ca o extensie, unde vă puteți crea toate resursele pentru joc.

Chiar dacă Armory 3D nu rulează pe Python, luați în considerare acest program cu atenție, cu toate acestea, deoarece puteți începe foarte repede cu acest instrument. https: // armory3d.org /

Urho3D

Acest pachet folosește Blender ca platformă de dezvoltare și folosește HAXE ca limbaj de programare. Din nou, va trebui să treceți la Haxe, dar puteți converti unele logici de joc existente din Python. Armory3D funcționează în interiorul Blender ca o extensie, unde vă puteți crea toate resursele pentru joc.

Chiar dacă Urho3D nu rulează pe Python, luați în considerare și acest program cu atenție, deoarece puteți începe foarte repede cu acest instrument. https: // armory3d.org /

Ursina

Ursina este scris în Python și construit pe Panda3D. Acest instrument este conceput pentru a oferi multe primitive, cum ar fi un cub, o sferă etc., astfel încât să puteți trece la jocul în sine cât mai curând posibil. Panda3D face munca profundă, iar Ursina vă oferă funcții de program gata pregătite. O clasă de jucători vă oferă opțiunile de a înregistra tastele apăsate și mișcările mouse-ului.

Majoritatea funcțiilor sunt intuitive de utilizat cu nume clare și funcții ușor de înțeles. Veți putea începe rapid cu jocul dvs. dacă utilizați acest instrument de creare a jocului. Ursina are, de asemenea, instrumente pentru conversia atât a fișierelor blend cât și a fișierelor psd.

https: // github.com / pokepetter / ursina

Blender Game Engine (?)

Înainte de versiunea 2.79, Blender avea un motor de joc încorporat. Cu toate acestea, în versiunile ulterioare, designerii au ales să elimine motorul de joc din versiunea standard și să se concentreze asupra animațiilor. Deci, oamenii de la UPBGE au decis să creeze propria extensie care funcționează în interiorul Blender. Prin urmare, puteți utiliza Blender pentru a crea întregul joc. Cum se leagă acest lucru de dezvoltarea jocului Python?

BPGE are un API care vă permite să accesați toate datele pe care le creați în timp ce lucrați în Blender. Puteți utiliza consola din Blender pentru a accesa și testa API-ul. De fapt, ai putea scrie întregul program în acest fel, dar este posibil să nu fie cea mai bună alegere pentru nevoile tale. Cel puțin, veți avea toate resursele pregătite și modul în care le doriți din momentul în care le creați.

GODOT - GDscript, NU Python

Dacă doriți să scrieți un joc și vă simțiți confortabil cu Python, puteți utiliza și GODOT. Acest limbaj este foarte asemănător cu Python numai că este special pentru jocuri de scris.

Concluzie

Există multe cadre pentru scrierea jocurilor în Python. Dacă doriți să creați jocuri 3D de înaltă performanță, ar trebui să luați în considerare în mod serios învățarea altor limbi pentru acele jocuri. Asigurați-vă că alegerea programului vă permite să vă urmăriți ideea originală de joc. Dacă este necesar, adaptați-vă limbajul de programare la viziunea dvs. personală.

Open Source Ports of Commercial Game Engines
Free, open source and cross-platform game engine recreations can be used to play old as well as some of the fairly recent game titles. This article wi...
Cele mai bune jocuri de linie de comandă pentru Linux
Linia de comandă nu este doar cel mai mare aliat al tău când folosești Linux - poate fi și sursa de divertisment, deoarece poți să o folosești pentru ...
Best Gamepad Mapping Apps for Linux
If you like to play games on Linux with a gamepad instead of a typical keyboard and mouse input system, there are some useful apps for you. Many PC ga...