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 løper inn i ytelsesproblemer når kompleksiteten øker. Rask grafisk gjengivelse er ikke det Python gjør best. Siden Python er veldig bra for å lage logikken og er ganske populær, har du mange alternativer til å kjøre rammer skrevet i C++.

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

Spillstil og språkvalg

Tenk, før du begynner, om spillet ditt er en plattformspiller, førstepersons skytter 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 å lære et nytt språk, men det er også ekstremt tilfredsstillende når du har bestått det første hinderet for det grunnleggende. Tiden da den vanlige dokumentasjonen er fornuftig, selv med et raskt blikk.

Bindinger, biblioteker å vurdere

For å lage spill, må du lage grafikk, menyer og lyd. Det er flere biblioteker og pythonbindinger for å håndtere disse sakene. En av de vanligste av disse bibliotekene er SDL2, som gir programmerere direkte tilgang til videorambuffer, lydutgang, mus og tastatur. Uten disse må spillet ditt bruke vanlige rutiner, noe som noen ganger kan gå sakte. Den første versjonen er fremdeles rundt, men SDL2 har alle nødvendige dingser.

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

For Python trenger du henholdsvis PYSDL2- og PYSFML2 -pakker.

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 opplæringen kan være nyttig, men vær forsiktig, da ikke alt tilgjengelig på nettet vil være riktig. Ogre har klasser for mange verdensobjekter, og gir deg et lag på toppen av OpenGL og Direct3D.

Ogre jobber med scener og kan lage all grafikken du måtte trenge 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 all tunge løfting av å lage vinduer, akseptere brukerinngang, tegne bilder og spille lyder - alle funksjoner som er nyttige for videospill og multimedia -programmering. Designerne av Allegro hevder ikke at dette programmet er en spillmotor, men det er nyttig for å lage spill.

Siden Allegro ble bygget i C ++, må du opprette innpakningen for å bruke dette programmet i Python. Du kan utføre dette trinnet ved å samle fra kilden. Prosessen lager 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 det å lære C ++ er også en oppgave.

https: // github.com/libleg/allegro5

Armory 3D - Blender Extension

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 forlengelse, hvor du kan lage alle ressursene dine for spillet.

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

Urho3d

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

Selv om URHO3D ikke kjører på Python, bør du også vurdere dette programmet nøye, siden du kan komme i gang veldig raskt 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 kube, sfære osv., slik at du kan gå videre til selve spillet så snart som mulig. PANDA3D gjør det dype arbeidet og Ursina gir deg ferdigbakt programfunksjoner. En spillerklasse gir deg alternativene til å registrere pressede nøkler og musebevegelser.

De fleste av funksjonene er intuitive å bruke med klare navn og lett forståelige funksjoner. Du vil kunne komme i gang raskt med spillet ditt hvis du bruker dette spill-skapende 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 en spillmotor innebygd. I senere versjoner valgte designerne imidlertid å fjerne spillmotoren fra standardbygget og fokusere på animasjoner. Så folket på UPBGE bestemte seg for å lage sin egen utvidelse som fungerer inne i Blender. Du kan derfor bruke blender for å lage hele spillet. Hvordan knytter dette seg til Python -spillutvikling?

BPGE har et API som lar deg få tilgang til alle dataene du oppretter mens du jobber inne i blender. Du kan bruke konsollen inne i Blender for å få tilgang til og teste API. 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 måten du vil ha dem fra det øyeblikket du lager dem.

Godot - Gdscript, ikke Python

Hvis du vil skrive et spill og du 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. Forsikre deg om at programvalget ditt lar deg følge den originale spillideen din. Tilpass om nødvendig programmeringsspråket ditt til din personlige visjon.