Pytonorm

Bra 3D Python-spelmotorer

Bra 3D Python-spelmotorer

Introduktion

Att hitta en ram för 3D-spelmotorer gjorda för och med Python kan visa sig vara mycket svårt. Anledningen till detta är att Python snabbt stöter på prestandafrågor när komplexiteten ökar. Snabb grafikåtergivning är inte vad Python gör bäst. Eftersom Python är mycket bra för att skapa logiken och är ganska populär, har du många alternativ att köra ramar skrivna i C++.

För att få detta att fungera för 3D-spelmotorer kan du inte göra allt som du brukar göra i Python. De flesta ramar skapar ett omslag för sina C ++ - bibliotek. Du måste ta reda på hur du kompilerar så att Python kan komma ihåg det här omslaget. De beskriver i dokumentationen hur man kompilerar för med Python-omslaget.

Spelstil och språkval

Tänk, innan du börjar, om ditt spel är en plattformsspel, förstapersonsskjutare eller dialogbaserad. Du kanske skapar ett spel som utmanar intellektuella färdigheter. Detta behöver inte högpresterande grafik. Poängen är att du måste veta vad du försöker uppnå innan du börjar. Du kan vara van vid Python för programmering. Men om du vill skapa spel med många effekter bör du överväga andra programmeringsspråk. Det är en stor ansträngning att lära sig ett nytt språk, men det är också extremt tillfredsställande när du har klarat det grundläggande hindret. Den tid då den vanliga dokumentationen är vettig, även med en snabb blick.

Bindningar, bibliotek att tänka på

För att skapa spel måste du skapa grafik, menyer och ljud. Det finns flera bibliotek och Python-bindningar för att hantera dessa fall. Ett av de vanligaste av dessa bibliotek är SDL2, vilket ger programmerare direkt tillgång till videobildbufferten, ljudutgången, musen och tangentbordet. Utan dessa måste ditt spel använda vanliga rutiner, som ibland kan vara långsamma. Den första versionen finns fortfarande kvar, men SDL2 har alla nödvändiga prylar.

SFML2 spelar en liknande roll som de flesta multimediafunktioner och sätter ihop alla funktioner. Däremot innehåller SDL2 många mindre bitar som du behöver för att dra in till din kod en i taget.

För Python behöver du PySDL2- och PySFML2-paketen.

PyOgre

Designarna av PyOgre skrev Ogre-ramverket i C ++ med ett omslag för Python. Inslaget är ett inbyggt omslag. Det gamla projektet finns fortfarande tillgängligt på webben. Att följa handledningarna kan vara användbart men var försiktig, eftersom inte allt som finns tillgängligt online är korrekt. Ogre har klasser för många världsobjekt, vilket ger dig ett lager ovanpå OpenGL och Direct3D.

Ogre arbetar med scener och kan skapa all grafik du kan behöva för ditt spel. PyOgre-modulerna fungerar för versioner före Ogre version v1.05. Därefter finns det andra moduler tillgängliga. Ogre-programvaran innehåller Python-skript för att importera data från Blender till Ogre. Detta gör det möjligt att skapa dina resurser i Blender för ditt spel. Andra exportörer är också tillgängliga.

http: // wiki.ogre3d.org /

Allegro

Allegro hanterar alla tunga lyft att skapa windows, acceptera användarinmatning, rita bilder och spela ljud - alla funktioner som är användbara för videospel och multimedia-programmering. Designarna av Allegro hävdar inte att detta program är en spelmotor, men det är användbart för att göra spel.

Eftersom Allegro byggdes i C ++ måste du skapa omslaget för att använda detta program i Python. Du kan utföra detta steg genom att kompilera från källan. Processen skapar klasserna i en fil som heter allegro.py. När du har slutfört det här steget kan du välja klasser från den filen, men det rekommenderas att du också läser den vanliga dokumentationen för hur detta program fungerar. Detta kan komplicera processen, men att lära sig C ++ är också ett jobb.

https: // github.com / liballeg / allegro5

Armory 3D - Blender Extension

Detta paket använder Blender som utvecklingsplattform och HAXE som programmeringsspråk. Ja, du måste byta till Haxe, men du kan konvertera någon befintlig spellogik från Python. Armory3D fungerar inuti Blender som en förlängning, där du kan skapa alla dina resurser för spelet.

Även om Armory 3D inte körs på Python, bör du överväga detta program ändå, eftersom du kan komma igång mycket snabbt med det här verktyget. https: // armory3d.org /

Urho3D

Detta paket använder Blender som utvecklingsplattform och använder HAXE som programmeringsspråk. Återigen måste du byta till Haxe, men du kan konvertera någon befintlig spellogik från Python. Armory3D fungerar inuti Blender som en förlängning, där du kan skapa alla dina resurser för spelet.

Även om Urho3D inte körs på Python, överväg också detta program noga, eftersom du kan komma igång mycket snabbt med det här verktyget. https: // armory3d.org /

Ursina

Ursina är skriven i Python och byggd på Panda3D. Det här verktyget är utformat för att ge många primitiver, såsom en kub, sfär etc., så att du kan gå vidare till själva spelet så snart som möjligt. Panda3D gör det djupa arbetet och Ursina ger dig färdiga programfunktioner. En spelarklass ger dig möjlighet att registrera nedtryckta tangenter och musrörelser.

De flesta av funktionerna är intuitiva att använda med tydliga namn och lättförståeliga funktioner. Du kommer att kunna komma igång snabbt med ditt spel om du använder detta spelskapande verktyg. Ursina har också verktyg för att konvertera både blend- och psd-filer.

https: // github.com / pokepetter / ursina

Blender Game Engine (?)

Före version 2.79, Blender hade en spelmotor inbyggd. I senare versioner valde dock designarna att ta bort spelmotorn från standardbyggnaden och fokusera på animationer. Så människorna på UPBGE bestämde sig för att skapa en egen förlängning som fungerar inuti Blender. Du kan därför använda Blender för att skapa hela spelet. Hur knyter detta till utvecklingen av Python-spelet?

BPGE har ett API som låter dig komma åt alla data som du skapar när du arbetar i Blender. Du kan använda konsolen i Blender för att komma åt och testa API: et. I själva verket kan du skriva hela programmet på det här sättet, men det kanske inte är det bästa valet för dina behov. Åtminstone kommer du att ha alla resurser redo och hur du vill ha dem från det ögonblick du skapar dem.

GODOT - GDscript, INTE Python

Om du vill skriva ett spel och du är bekväm med Python kan du också använda GODOT. Detta språk liknar mycket Python, det är speciellt för skrivspel.

Slutsats

Det finns många ramar för att skriva spel i Python. Om du vill skapa högpresterande 3D-spel bör du på allvar överväga att lära dig andra språk för dessa spel. Se till att ditt programval låter dig följa din ursprungliga spelidé. Anpassa vid behov ditt programmeringsspråk till din personliga vision.

Topp 5 spelinspelningskort
Vi har alla sett och älskat streaming av spel på YouTube. PewDiePie, Jakesepticye och Markiplier är bara några av de bästa spelarna som har tjänat mil...
Hur man utvecklar ett spel på Linux
För ett decennium sedan skulle inte många Linux-användare förutsäga att deras favoritoperativsystem en dag skulle vara en populär spelplattform för ko...
Portar med öppen källkod för kommersiella spelmotorer
Gratis, öppen källkod och plattformsmekaniska rekreationer kan användas för att spela gamla såväl som några av de ganska senaste speltitlarna. I den h...