Python

Gode ​​3D Python-spillmotorer

Gode ​​3D Python-spillmotorer

Introduksjon

Å finne et rammeverk for 3D-spillmotorer laget for og med Python kan vise seg å være veldig vanskelig. Årsaken til dette er at Python raskt støter på ytelsesproblemer når kompleksiteten øker. Rask grafikkgjengivelse er ikke det Python gjør best. Siden Python er veldig bra for å skape logikken og er ganske populær, har du mange muligheter til å kjøre rammer skrevet i C++.

For å få dette til å fungere for 3D-spillmotorer, kan du ikke gjøre alt som du vanligvis gjør i Python. De fleste rammeverk lager en innpakning for sine C ++ - biblioteker. Du må finne ut hvordan du kan kompilere slik at Python kan huske denne innpakningen. De dekker i dokumentasjonen hvordan du skal kompilere for med Python-innpakningen.

Spillstil og språkvalg

Tenk, før du begynner, om spillet ditt er en plattformspiller, førstepersonsskytespill eller dialogbasert. Kanskje du vil lage et spill som utfordrer intellektuelle ferdigheter. Dette trenger ikke grafikk med høy ytelse. Poenget er at du må vite hva du prøver å oppnå før du begynner. Du kan være vant til Python for programmering. Men hvis du ønsker å lage spill med mange effekter, bør du vurdere andre programmeringsspråk. Det er en stor innsats for å lære et nytt språk, men det er også ekstremt tilfredsstillende når du har bestått det første hinderet i det grunnleggende. Tiden da den vanlige dokumentasjonen gir mening, selv med et raskt blikk.

Bindinger, biblioteker å vurdere

For å lage spill, må du lage grafikk, menyer og lyd. Det er flere biblioteker og Python-bindinger for å håndtere disse sakene. En av de vanligste av disse bibliotekene er SDL2, som gir programmerere direkte tilgang til videorammebufferen, lydutgangen, musen og tastaturet. Uten disse vil spillet ditt måtte bruke vanlige rutiner, som noen ganger kan være sakte. Den første versjonen er fortsatt rundt, men SDL2 har alle nødvendige dingser.

SFML2 spiller en rolle som de fleste multimediafunksjoner, og setter alle funksjonene sammen. I kontrast inneholder SDL2 mange mindre biter som du trenger for å trekke inn koden din om gangen.

For Python trenger du henholdsvis PySDL2- og PySFML2-pakkene.

PyOgre

Designerne av PyOgre skrev Ogre-rammeverket i C ++ med en innpakning for Python. Innpakningen er en innebygd innpakning. Det gamle prosjektet er fremdeles tilgjengelig på nettet. Å følge veiledningene kan være nyttig, men vær forsiktig, da ikke alt tilgjengelig online vil være riktig. Ogre har klasser for mange verdensobjekter, noe som gir deg et lag på toppen av OpenGL og Direct3D.

Ogre jobber med scener og kan lage all grafikken du trenger for spillet ditt. PyOgre-modulene fungerer for versjoner før Ogre versjon v1.05. Etter det er det andre moduler tilgjengelig. Ogre-programvaren inkluderer Python-skript for å importere data fra Blender til Ogre. Dette gjør det mulig å lage ressursene dine i Blender for spillet ditt. Andre eksportører er også tilgjengelige.

http: // wiki.ogre3d.org /

Allegro

Allegro håndterer alt det tunge løftet med å lage vinduer, godta brukerinngang, tegne bilder og spille av lyder - alle funksjoner som er nyttige for videospill og multimedia-programmering. Designerne til Allegro hevder ikke at dette programmet er en spillmotor, men det er nyttig for å lage spill.

Siden Allegro ble bygget i C ++, må du lage omslaget for å bruke dette programmet i Python. Du kan utføre dette trinnet ved å kompilere fra kilden. Prosessen oppretter klassene i en fil som heter allegro.py. Når du har fullført dette trinnet, kan du velge klassene fra den filen, men det anbefales at du også leser den vanlige dokumentasjonen for hvordan dette programmet fungerer. Dette kan komplisere prosessen, men å lære C ++ er også en jobb.

https: // github.com / liballeg / allegro5

Armory 3D - Blenderforlengelse

Denne pakken bruker Blender som utviklingsplattform og HAXE som programmeringsspråk. Ja, du må bytte til Haxe, men du kan konvertere noen eksisterende spilllogikk fra Python. Armory3D opererer inne i Blender som en utvidelse, hvor du kan lage alle ressursene dine for spillet.

Selv om Armory 3D ikke kjører på Python, bør du vurdere dette programmet nøye likevel, siden du kan komme veldig raskt i gang med dette verktøyet. https: // armory3d.org /

Urho3D

Denne pakken bruker Blender som utviklingsplattform og bruker HAXE som programmeringsspråk. Igjen må du bytte til Haxe, men du kan konvertere noen eksisterende spilllogikk fra Python. Armory3D opererer inne i Blender som en utvidelse, hvor du kan lage alle ressursene dine for spillet.

Selv om Urho3D ikke kjører på Python, bør du vurdere dette programmet også nøye, siden du kan komme veldig raskt i gang med dette verktøyet. https: // armory3d.org /

Ursina

Ursina er skrevet i Python og bygget på Panda3D. Dette verktøyet er designet for å gi mange primitiver, for eksempel en terning, kule osv., slik at du kan gå videre til selve spillet så snart som mulig. Panda3D gjør det dype arbeidet, og Ursina gir deg ferdige programfunksjoner. En spillerklasse gir deg mulighetene til å registrere trykkede taster og musebevegelser.

De fleste funksjonene er intuitive å bruke med klare navn og lett forståelige funksjoner. Du vil kunne komme raskt i gang med spillet ditt hvis du bruker dette spillskapende verktøyet. Ursina har også verktøy for å konvertere både blend- og psd-filer.

https: // github.com / pokepetter / ursina

Blender Game Engine (?)

Før versjon 2.79, Blender hadde innebygd spillmotor. I senere versjoner valgte designerne imidlertid å fjerne spillmotoren fra standardutformingen og fokusere på animasjoner. Så, folkene på UPBGE bestemte seg for å lage sin egen utvidelse som fungerer inne i Blender. Du kan derfor bruke Blender til å lage hele spillet. Hvordan knytter dette seg til Python-spillutvikling?

BPGE har en API som lar deg få tilgang til alle dataene du oppretter mens du arbeider i Blender. Du kan bruke konsollen inne i Blender for å få tilgang til og teste API-en. Faktisk kan du skrive hele programmet på denne måten, men det er kanskje ikke det beste valget for dine behov. I det minste vil du ha alle ressursene klare og slik du vil ha dem fra det øyeblikket du oppretter dem.

GODOT - GDscript, IKKE Python

Hvis du vil skrive et spill og er komfortabel med Python, kan du også bruke GODOT. Dette språket er veldig likt Python, bare det er spesielt for å skrive spill.

Konklusjon

Det er mange rammer for å skrive spill i Python. Hvis du ønsker å lage 3D-spill med høy ytelse, bør du seriøst vurdere å lære andre språk for disse spillene. Sørg for at programvalget ditt lar deg følge din opprinnelige spillidee. Hvis nødvendig, kan du tilpasse programmeringsspråket ditt til din personlige visjon.

Kamp for Wesnoth 1.1. 3.6 Utvikling utgitt
Kamp for Wesnoth 1.1. 3.6 utgitt i forrige måned, er den sjette utgivelsen i 1.1. 3.x-serien, og den leverer en rekke forbedringer, spesielt til bruke...
Slik installerer du League Of Legends på Ubuntu 14.04
Hvis du er fan av League of Legends, er dette en mulighet for deg å prøvekjør League of Legends. Merk at LOL støttes på PlayOnLinux hvis du er en linu...
Installer det siste OpenRA-strategispillet på Ubuntu Linux
OpenRA er en Libre / Free Real Time Strategy-spillmotor som gjenskaper de tidlige Westwood-spillene som den klassiske Command & Conquer: Red Alert. Di...