Wstęp
Znalezienie ramy dla silników 3D wykonanych dla i z Pythonem może okazać się bardzo trudne. Powodem tego jest to, że Python szybko napotyka problemy z wydajnością, gdy złożoność wzrasta. Szybka grafika nie jest tym, co Python robi najlepiej. Ponieważ jednak Python jest bardzo dobry do tworzenia logiki i jest dość popularny, masz wiele opcji uruchamiania ram napisanych w C++.
Aby to zadziałało dla silników 3D, nie możesz zrobić wszystkiego, co zwykle możesz zrobić w Python. Większość frameworków tworzy opakowanie dla swoich bibliotek C ++. Musisz wymyślić, jak skompilować, aby Python mógł przypomnieć sobie ten opakowanie. Obejmują w dokumentacji, jak skompilować z opakowaniem Python.
Styl gry i wybór języka
Zastanów się przed rozpoczęciem, czy Twoja gra jest platformówką, strzelanką pierwszej osoby, czy dialog na podstawie. Może stworzysz grę, która rzuca wyzwanie umiejętnościom intelektualnym. Nie wymaga to grafiki o wysokiej wydajności. Chodzi o to, że musisz wiedzieć, co próbujesz osiągnąć przed rozpoczęciem. Możesz być przyzwyczajony do Pythona do programowania. Ale jeśli chcesz tworzyć gry o wielu efektach, powinieneś rozważyć inne języki programowania. To wielki wysiłek, aby nauczyć się nowego języka, ale jest to również bardzo satysfakcjonujące po zdaniu, że początkowa przeszkoda podstaw. Czas, w którym regularna dokumentacja ma sens, nawet na krótkie spojrzenie.
Wiązania, biblioteki do rozważenia
Aby tworzyć gry, musisz tworzyć grafikę, menu i dźwięk. Istnieje kilka bibliotek i wiązań Python do obsługi tych przypadków. Jedną z najczęstszych z tych bibliotek jest SDL2, który zapewnia programistom bezpośredni dostęp do kadru wideo, wyjściu audio, myszy i klawiatury. Bez nich twoja gra będzie musiała używać zwykłych rutynów, które czasami mogą być powolne. Pierwsza wersja jest wciąż w pobliżu, ale SDL2 ma wszystkie niezbędne gadżety.
SFML2 odgrywa podobną rolę do większości funkcji multimedialnych i łączy wszystkie funkcje. W przeciwieństwie do tego, SDL2 zawiera wiele mniejszych elementów, które musisz przyciągnąć do kodu pojedynczo.
Do Pythona będziesz potrzebować odpowiednio pakietów PYSDL2 i PYSFML2.
Pyogre
Projektanci Pyogre napisali framework Ogre w C ++ z opakowaniem Pythona. Opakowanie to wbudowane opakowanie. Stary projekt jest nadal dostępny w Internecie. Podążanie za samouczkami może być przydatne, ale bądź ostrożny, ponieważ nie wszystko, co dostępne online, będzie poprawne. Ogre ma zajęcia dla wielu obiektów światowych, co daje warstwę na OpenGL i Direct3D.
Ogre działa ze scenami i może tworzyć wszystkie grafiki, których możesz potrzebować do gry. Moduły Pyogre działają dla wersji przed wersją OGRE V1.05. Następnie dostępne są inne moduły. Oprogramowanie OGRE zawiera skrypty Python do importowania danych z Blender do OGRE. To umożliwia stworzenie zasobów w blenderze do gry. Dostępne są również inne eksporterzy.
http: // wiki.Ogre3d.org/
Allegro
Allegro obsługuje całe ciężkie podnoszenie tworzenia okien, akceptowanie wprowadzania użytkowników, rysowania obrazów i odtwarzania dźwięków - wszystkie funkcje, które są przydatne do programowania gier i multimedialne. Projektanci Allegro nie twierdzą, że ten program jest silnikiem gry, ale jest przydatny do tworzenia gier.
Ponieważ Allegro został zbudowany w C ++, musisz stworzyć opakowanie, aby użyć tego programu w Python. Możesz wykonać ten krok, kompilując ze źródła. Proces tworzy klasy w pliku o nazwie Allegro.py. Po zakończeniu tego kroku możesz wybrać zajęcia z tego pliku, ale zaleca się, aby odczytać również regularną dokumentację, jak działa ten program. Może to komplikować proces, ale nauka C ++ jest również obowiązkiem.
https: // github.com/liballeg/allegro5
Armory 3D - rozszerzenie miksera
Ten pakiet wykorzystuje Blender jako platformę programistyczną, a Haxe jako język programowania. Tak, będziesz musiał przejść na Haxe, ale możesz przekonwertować istniejącą logikę gry z Python. Armory3D działa w Blender jako rozszerzenie, w którym możesz stworzyć wszystkie swoje zasoby do gry.
Mimo że Armory 3D nie działa na Python, rozważ ten program uważnie, ponieważ możesz zacząć bardzo szybko z tym narzędziem. https: // armory3d.org/
Urho3d
Ten pakiet wykorzystuje Blender jako platformę programistyczną i używa HAXE jako języka programowania. Znowu będziesz musiał przejść na Haxe, ale możesz przekonwertować istniejącą logikę gry z Pythona. Armory3D działa w Blender jako rozszerzenie, w którym możesz stworzyć wszystkie swoje zasoby do gry.
Mimo że URHO3D nie działa na Python, rozważ ten program również uważnie, ponieważ możesz zacząć bardzo szybko z tym narzędziem. https: // armory3d.org/
Ursina
Ursina jest napisana w Pythonie i zbudowana na panda3d. To narzędzie ma na celu zapewnienie wielu prymitywów, takich jak kostka, kula itp., abyś mógł jak najszybciej przejść do samej gry. Panda3D wykonuje głęboką pracę, a Ursina zapewnia gotowe funkcje programu. Klasa odtwarzacza daje opcje rejestrowania wciśniętych klawiszy i ruchów myszy.
Większość funkcji jest intuicyjna w użyciu z jasnymi nazwami i łatwo zrozumiałymi funkcjami. Będziesz mógł szybko rozpocząć swoją grę, jeśli użyjesz tego narzędzia do tworzenia gier. Ursina ma również narzędzia do konwersji plików mieszania i PSD.
https: // github.com/pokeepetter/ursina
Silnik gry blender (?)
Przed wersją 2.79, Blender miał wbudowany silnik gry. Jednak w późniejszych wersjach projektanci postanowili usunąć silnik gry ze standardowej kompilacji i skupić się na animacjach. Tak więc ludzie z UpBge postanowili stworzyć własne rozszerzenie, które działa w Blender. Dlatego możesz użyć Blender, aby stworzyć całą grę. Jak to wiąże się z Python Game Development?
BPGE ma interfejs API, który umożliwia dostęp do wszystkich tworzonych danych podczas pracy w Blender. Możesz użyć konsoli wewnątrz miksera, aby uzyskać dostęp i przetestować interfejs API. W rzeczywistości możesz napisać cały program w ten sposób, ale może to nie być najlepszy wybór dla twoich potrzeb. Przynajmniej będziesz mieć gotowe zasoby i sposób, w jaki chcesz je od momentu ich tworzenia.
Godot - GDScript, a nie Python
Jeśli chcesz napisać grę i czujesz się komfortowo z Pythonem, możesz również użyć Godota. Ten język jest bardzo podobny do Pythona, tylko on jest szczególnie do pisania gier.
Wniosek
Istnieje wiele ram do pisania gier w Python. Jeśli chcesz stworzyć wysoko wydajne gry 3D, powinieneś poważnie rozważyć naukę innych języków dla tych gier. Upewnij się, że wybór programu pozwala śledzić oryginalny pomysł na grę. W razie potrzeby dostosuj swój język programowania do swojej osobistej wizji.