Python

Gode ​​3D Python-spilmotorer

Gode ​​3D Python-spilmotorer

Introduktion

At finde en ramme for 3D-spilmotorer lavet til og med Python kan vise sig meget vanskeligt. Årsagen til dette er, at Python hurtigt løber ind i ydelsesproblemer, når kompleksiteten øges. Hurtig grafikgengivelse er ikke, hvad Python gør bedst. Da Python er meget god til at skabe logikken og er ret populær, har du mange muligheder for at køre rammer skrevet i C++.

For at få dette til at fungere for 3D-spilmotorer kan du ikke gøre alt, som du normalt gør i Python. De fleste rammer skaber en indpakning til deres C ++ - biblioteker. Du bliver nødt til at finde ud af, hvordan du kompilerer, så Python kan huske denne indpakning. De dækker i dokumentationen, hvordan man kompilerer til med Python-indpakningen.

Spilstil og sprogvalg

Overvej, inden du starter, om dit spil er en platformspiller, first person shooter eller dialogbaseret. Måske opretter du et spil, der udfordrer intellektuelle færdigheder. Dette kræver ikke grafik med høj ydeevne. Pointen er, at du bliver nødt til at vide, hvad du prøver at opnå, før du starter. Du kan være vant til Python til programmering. Men hvis du ønsker at skabe spil med mange effekter, bør du overveje andre programmeringssprog. Det er en stor indsats for at lære et nyt sprog, men det er også yderst tilfredsstillende, når du først har bestået den indledende forhindring i det grundlæggende. Det tidspunkt, hvor den almindelige dokumentation giver mening, selv med et hurtigt blik.

Bindinger, biblioteker at overveje

For at lave spil skal du oprette grafik, menuer og lyd. Der er flere biblioteker og Python-bindinger til håndtering af disse sager. En af de mest almindelige af disse biblioteker er SDL2, som giver programmører direkte adgang til videorammebufferen, lydoutput, mus og tastatur. Uden disse bliver dit spil nødt til at bruge regelmæssige rutiner, som nogle gange kan være langsomme. Den første version er stadig rundt, men SDL2 har alle de nødvendige gadgets.

SFML2 spiller en lignende rolle som de fleste multimediefunktioner og sætter alle funktioner sammen. I modsætning hertil indeholder SDL2 mange mindre stykker, som du skal trække ind i din kode en ad gangen.

For Python skal du henholdsvis PySDL2 og PySFML2-pakkerne.

PyOgre

Designerne af PyOgre skrev Ogre-rammen i C ++ med en indpakning til Python. Indpakningen er en indbygget indpakning. Det gamle projekt er stadig tilgængeligt på nettet. At følge vejledningerne kan være nyttigt, men vær forsigtig, da ikke alt tilgængeligt online vil være korrekt. Ogre har klasser til mange verdensobjekter, hvilket giver dig et lag oven på OpenGL og Direct3D.

Ogre arbejder med scener og kan oprette al den grafik, du muligvis har brug for til dit spil. PyOgre-modulerne fungerer for versioner før Ogre version v1.05. Derefter er der andre moduler til rådighed. Ogre-softwaren inkluderer Python-scripts til import af data fra Blender til Ogre. Dette gør det muligt at oprette dine ressourcer i Blender til dit spil. Andre eksportører er også tilgængelige.

http: // wiki.ogre3d.org /

Allegro

Allegro håndterer alt det tunge løft ved at oprette vinduer, acceptere brugerinput, tegne billeder og afspille lyde - alle funktioner, der er nyttige til videospil og multimedieprogrammering. Designerne af Allegro hævder ikke, at dette program er en spilmotor, men det er nyttigt til at lave spil.

Da Allegro blev bygget i C ++, skal du oprette indpakningen for at bruge dette program i Python. Du kan udføre dette trin ved at kompilere fra kilden. Processen opretter klasser i en fil med navnet allegro.py. Når du har gennemført dette trin, kan du vælge klasser fra den fil, men det anbefales, at du også læser den almindelige dokumentation for, hvordan dette program fungerer. Dette kan komplicere processen, men at lære C ++ er også en opgave.

https: // github.com / liballeg / allegro5

Armory 3D - Blenderforlænger

Denne pakke bruger Blender som udviklingsplatform og HAXE som programmeringssprog. Ja, du bliver nødt til at skifte til Haxe, men du kan konvertere en eksisterende spillogik fra Python. Armory3D fungerer inde i Blender som en udvidelse, hvor du kan oprette alle dine ressourcer til spillet.

Selvom Armory 3D ikke kører på Python, skal du overveje dette program alligevel nøje, da du kan komme i gang meget hurtigt med dette værktøj. https: // armory3d.org /

Urho3D

Denne pakke bruger Blender som udviklingsplatform og bruger HAXE som programmeringssprog. Igen skal du skifte til Haxe, men du kan konvertere nogle eksisterende spillogik fra Python. Armory3D fungerer inde i Blender som en udvidelse, hvor du kan oprette alle dine ressourcer til spillet.

Selvom Urho3D ikke kører på Python, skal du også overveje dette program nøje, da du kan komme i gang meget hurtigt med dette værktøj. https: // armory3d.org /

Ursina

Ursina er skrevet i Python og bygget på Panda3D. Dette værktøj er designet til at give mange primitive, såsom en terning, kugle osv., så du kan gå videre til selve spillet så hurtigt som muligt. Panda3D gør det dybe arbejde, og Ursina giver dig færdige programfunktioner. En spillerklasse giver dig mulighed for at registrere trykte taster og musebevægelser.

De fleste af funktionerne er intuitive at bruge med klare navne og let forståelige funktioner. Du vil være i stand til hurtigt at komme i gang med dit spil, hvis du bruger dette spilskabende værktøj. Ursina har også værktøjer til konvertering af både blend- og psd-filer.

https: // github.com / pokepetter / ursina

Blender-spilmotor (?)

Før version 2.79, Blender havde en spilmotor indbygget. I senere versioner valgte designerne dog at fjerne spilmotoren fra standardbygningen og fokusere på animationer. Så folk overfor UPBGE besluttede at oprette deres egen udvidelse, der fungerer inde i Blender. Du kan derfor bruge Blender til at oprette hele spillet. Hvordan knytter dette sig til Python-spiludvikling?

BPGE har en API, der giver dig adgang til alle de data, du opretter, mens du arbejder inde i Blender. Du kan bruge konsollen inde i Blender til at få adgang til og teste API'et. Faktisk kunne du skrive hele programmet på denne måde, men det er måske ikke det bedste valg til dine behov. I det mindste vil du have alle ressourcerne klar og den måde, du vil have dem fra det øjeblik, du opretter dem.

GODOT - GDscript, IKKE Python

Hvis du vil skrive et spil, og du har det godt med Python, kan du også bruge GODOT. Dette sprog ligner meget på Python, kun det er især til at skrive spil.

Konklusion

Der er mange rammer til skrivning af spil i Python. Hvis du ønsker at skabe højtydende 3D-spil, bør du seriøst overveje at lære andre sprog til disse spil. Sørg for, at dit programvalg giver dig mulighed for at følge din originale spilidee. Tilpas om nødvendigt dit programmeringssprog til din personlige vision.

Mus Sådan bruges Xdotool til at stimulere museklik og tastetryk i Linux
Sådan bruges Xdotool til at stimulere museklik og tastetryk i Linux
Xdotool er et gratis og open source kommandolinjeværktøj til simulering af museklik og tastetryk. Denne artikel dækker en kort vejledning om brug af x...
Mus Top 5 ergonomiske computermusprodukter til Linux
Top 5 ergonomiske computermusprodukter til Linux
Forårsager langvarig brug af computeren smerter i dit håndled eller fingre? Lider du af stive led og er konstant nødt til at ryste hænderne? Føler du ...
Mus Sådan ændres mus og touchpad-indstillinger ved hjælp af Xinput i Linux
Sådan ændres mus og touchpad-indstillinger ved hjælp af Xinput i Linux
De fleste Linux-distributioner leveres som standard med "libinput" -biblioteket til at håndtere inputhændelser på et system. Det kan behandle inputhæn...