introduzione
Trovare un framework per i motori di gioco 3D realizzati e con Python può rivelarsi molto difficile. La ragione di ciò è che Python si imbatte rapidamente in problemi di prestazione quando la complessità aumenta. Il rendering grafico veloce non è ciò che Python fa meglio. Tuttavia, poiché Python è molto buono per creare la logica ed è abbastanza popolare, hai molte opzioni per eseguire framework scritti in C++.
Per far funzionare questo per i motori di gioco 3D, non puoi fare tutto come potresti fare di solito in Python. La maggior parte dei framework crea un wrapper per le loro librerie C ++. Dovrai capire come compilare in modo che Python possa ricordare questo wrapper. Coprono nella documentazione come compilare con il wrapper Python.
Stile di gioco e scelta del linguaggio
Considera, prima di iniziare, se il tuo gioco è un platform, un tiratore in prima persona o un dialogo basato su. Forse, creerai un gioco che sfida le abilità intellettuali. Questo non ha bisogno di grafica ad alte prestazioni. Il punto è che dovrai sapere cosa stai cercando di ottenere prima di iniziare. Potresti essere abituato a Python per la programmazione. Ma se stai cercando di creare giochi con molti effetti, dovresti considerare altri linguaggi di programmazione. È un grande sforzo per imparare una nuova lingua, ma è anche estremamente soddisfacente una volta che hai superato quell'ostacolo iniziale delle basi. Il tempo in cui la documentazione regolare ha senso, anche a un'occhiata rapida.
Vincoli, biblioteche da considerare
Per realizzare giochi, dovrai creare grafica, menu e audio. Esistono diverse biblioteche e attacchi di Python per gestire questi casi. Una delle più comuni di queste librerie è SDL2, che offre ai programmatori l'accesso diretto al frame boffer video, all'uscita audio, al mouse e alla tastiera. Senza questi, il tuo gioco dovrà usare routine regolari, che a volte possono essere lenti. La prima versione è ancora in giro, ma SDL2 ha tutti i gadget necessari.
SFML2 svolge un ruolo simile alla maggior parte delle funzioni multimediali e mette insieme tutte le funzioni. Al contrario, SDL2 contiene molti pezzi più piccoli che devi attirare il codice uno alla volta.
Per Python, avrai bisogno dei pacchetti PysDL2 e Pysfml2, rispettivamente.
Pyogre
I designer di Pyogre hanno scritto il framework Ogre in C ++ con un wrapper per Python. Il wrapper è un involucro integrato. Il vecchio progetto è ancora disponibile sul web. Seguire i tutorial può essere utile ma fai attenzione, poiché non tutto ciò che è disponibile online sarà corretto. Ogre ha lezioni per molti oggetti mondiali, dandoti uno strato in cima a OpenGL e Direct3D.
Ogre funziona con le scene e può creare tutta la grafica di cui potresti aver bisogno per il tuo gioco. I moduli Pyogre funzionano per le versioni prima della versione V1.05. Dopodiché, ci sono altri moduli disponibili. Il software OGRE include script Python per l'importazione di dati da Blender a OGRE. Questo consente di creare le tue risorse in Blender per il tuo gioco. Sono disponibili anche altri esportatori.
http: // wiki.Ogre3d.org/
Allegro
Allegro gestisce tutto il pesante sollevamento della creazione di Windows, accetta l'input dell'utente, disegno di immagini e suoni di riproduzione - tutte le funzionalità che sono utili per la programmazione di videogiochi e multimedia. I designer di Allegro non affermano che questo programma sia un motore di gioco, ma è utile per realizzare giochi.
Poiché Allegro è stato costruito in C ++, dovrai creare l'involucro per utilizzare questo programma in Python. È possibile eseguire questo passaggio compilando dalla fonte. Il processo crea le classi in un file denominato Allegro.Py. Una volta completato questo passaggio, puoi scegliere le classi da quel file, ma si consiglia di leggere anche la documentazione regolare su come funziona questo programma. Questo può complicare il processo, ma l'apprendimento di C ++ è anche un lavoro ingrato.
https: // github.com/liballeg/allegro5
Armory 3D - estensione del frullatore
Questo pacchetto utilizza Blender come piattaforma di sviluppo e Haxe come linguaggio di programmazione. Sì, dovrai passare a Haxe, ma puoi convertire una logica di gioco esistente da Python. Armory3D opera all'interno di Blender come estensione, dove è possibile creare tutte le tue risorse per il gioco.
Anche se Armory 3D non viene eseguito su Python, considera comunque questo programma, poiché puoi iniziare molto rapidamente con questo strumento. https: // armory3d.org/
Urho3d
Questo pacchetto utilizza Blender come piattaforma di sviluppo e utilizza Haxe come linguaggio di programmazione. Ancora una volta, dovrai passare a Haxe, ma potresti convertire una logica di gioco esistente da Python. Armory3D opera all'interno di Blender come estensione, dove è possibile creare tutte le tue risorse per il gioco.
Anche se URHO3D non viene eseguito su Python, considera anche questo programma attentamente, dal momento che puoi iniziare molto rapidamente con questo strumento. https: // armory3d.org/
Ursina
Ursina è scritta in Python e costruito su Panda3D. Questo strumento è progettato per fornire molti primitivi, come un cubo, una sfera ecc., in modo che tu possa passare al gioco stesso il più presto possibile. Panda3d fa il lavoro profondo e Ursina ti offre funzioni di programma preparate. Una classe di giocatore ti dà le opzioni per registrare i tasti premuti e i movimenti del mouse.
La maggior parte delle funzioni sono intuitive da utilizzare con nomi chiari e funzioni facilmente comprensibili. Sarai in grado di iniziare rapidamente con il tuo gioco se usi questo strumento di creazione di giochi. Ursina ha anche strumenti per convertire i file di miscela e PSD.
https: // github.com/pokepetter/ursina
Blender Game Engine (?)
Prima della versione 2.79, Blender aveva un motore di gioco incorporato. Nelle versioni successive, tuttavia, i designer hanno scelto di rimuovere il motore di gioco dalla build standard e concentrarsi sulle animazioni. Quindi, le persone a UpBge hanno deciso di creare la propria estensione che funziona all'interno di Blender. Puoi quindi usare Blender per creare l'intero gioco. Come si lega allo sviluppo del gioco Python?
BPGE ha un'API che ti consente di accedere a tutti i dati creati mentre si lavora all'interno di Blender. È possibile utilizzare la console all'interno di Blender per accedere e testare l'API. In effetti, potresti scrivere l'intero programma in questo modo, ma potrebbe non essere la scelta migliore per le tue esigenze. Per lo meno, avrai tutte le risorse pronte e il modo in cui le vuoi dal momento in cui le crei.
Godot - GdScript, non Python
Se vuoi scrivere un gioco e ti senti a tuo agio con Python, puoi anche usare Godot. Questo linguaggio è molto simile a Python solo che è particolarmente per la scrittura di giochi.
Conclusione
Ci sono molti framework per scrivere giochi a Python. Se stai cercando di creare giochi 3D ad alte prestazioni, dovresti considerare seriamente l'apprendimento di altre lingue per quei giochi. Assicurati che la scelta del programma ti consenta di seguire la tua idea di gioco originale. Se necessario, adatta il tuo linguaggio di programmazione alla tua visione personale.