Krajta

Dobré 3D herní motory pro Python

Dobré 3D herní motory pro Python

Úvod

Nalezení rámce pro 3D herní enginy vyrobené pro a s Pythonem se může ukázat jako velmi obtížné. Důvodem je to, že Python rychle narazí na problémy s výkonem, když se zvyšuje složitost. Rychlé vykreslování grafiky není to, co Python umí nejlépe. Protože je však Python velmi vhodný pro vytváření logiky a je velmi populární, máte mnoho možností pro spuštění frameworků napsaných v C++.

Aby to fungovalo pro 3D herní enginy, nemůžete dělat všechno tak, jak to obvykle děláte v Pythonu. Většina frameworků vytváří obal pro své knihovny C ++. Budete muset přijít na to, jak to zkompilovat, aby si Python mohl tuto obálku vybavit. Zahrnují v dokumentaci, jak kompilovat s obálkou Pythonu.

Volba stylu hry a jazyka

Než začnete, zvažte, zda je vaše hra plošinovka, střílečka z pohledu první osoby nebo dialog. Možná vytvoříte hru, která zpochybňuje intelektuální schopnosti. To nepotřebuje vysoce výkonnou grafiku. Jde o to, že budete muset vědět, čeho se snažíte dosáhnout, než začnete. Možná jste na programování zvyklí na Python. Pokud však chcete vytvářet hry se spoustou efektů, měli byste zvážit jiné programovací jazyky. Naučit se nový jazyk je velkým úsilím, ale je také velmi uspokojivé, jakmile překonáte počáteční překážku základů. Čas, kdy má běžná dokumentace smysl, a to i na první pohled.

Vazby, knihovny ke zvážení

Chcete-li vytvářet hry, budete muset vytvořit grafiku, nabídky a zvuk. K řešení těchto případů existuje několik knihoven a vazeb Pythonu. Jednou z nejběžnějších z těchto knihoven je SDL2, která umožňuje programátorům přímý přístup k video framebufferu, audio výstupu, myši a klávesnici. Bez nich bude vaše hra muset používat běžné rutiny, které mohou být někdy pomalé. První verze je stále k dispozici, ale SDL2 má všechny potřebné gadgety.

SFML2 hraje podobnou roli jako většina multimediálních funkcí a spojuje všechny funkce dohromady. Naproti tomu SDL2 obsahuje mnoho menších kousků, které musíte do kódu vložit po jedné.

U Pythonu budete potřebovat balíčky PySDL2 a PySFML2.

PyOgre

Návrháři PyOgre napsali rámec Ogre v C ++ s obálkou pro Python. Obálka je integrovaná obálka. Starý projekt je stále k dispozici na webu. Následující návody mohou být užitečné, ale buďte opatrní, protože ne všechno dostupné online bude správné. Ogre má třídy pro mnoho světových objektů, což vám dává vrstvu nad OpenGL a Direct3D.

Ogre pracuje se scénami a dokáže vytvořit veškerou grafiku, kterou pro svou hru potřebujete. Moduly PyOgre fungují pro verze před verzí Ogre v1.05. Poté jsou k dispozici další moduly. Software Ogre obsahuje skripty Pythonu pro import dat z Blenderu do Ogre. Díky tomu je možné pro vaši hru vytvářet zdroje v Blenderu. K dispozici jsou také další vývozci.

http: // wiki.ogre3d.org /

Allegro

Allegro zvládá všechny těžké kroky při vytváření oken, přijímání vstupů uživatelů, kreslení obrázků a přehrávání zvuků - všechny funkce, které jsou užitečné pro videohry a multimediální programování. Návrháři Allegro netvrdí, že tento program je herní engine, ale je užitečný pro tvorbu her.

Vzhledem k tomu, že Allegro byl postaven v C ++, budete muset vytvořit obálku pro použití tohoto programu v Pythonu. Tento krok můžete provést kompilací ze zdroje. Proces vytvoří třídy v souboru s názvem Allegro.py. Po dokončení tohoto kroku můžete vybrat třídy z tohoto souboru, ale doporučuje se také přečíst si běžnou dokumentaci o tom, jak tento program funguje. To může proces komplikovat, ale naučit se C ++ je také fuška.

https: // github.com / liballeg / allegro5

Armory 3D - Blender Extension

Tento balíček používá Blender jako vývojovou platformu a HAXE jako programovací jazyk. Ano, budete muset přepnout na Haxe, ale můžete převést nějakou existující herní logiku z Pythonu. Armory3D funguje uvnitř Blenderu jako rozšíření, kde si můžete vytvořit všechny své zdroje pro hru.

Přestože Armory 3D na Pythonu nefunguje, zvažte tento program pečlivě, protože s tímto nástrojem můžete začít velmi rychle. https: // armory3d.org /

Urho3D

Tento balíček používá Blender jako vývojovou platformu a používá HAXE jako programovací jazyk. Opět budete muset přepnout na Haxe, ale můžete převést nějakou existující herní logiku z Pythonu. Armory3D funguje uvnitř Blenderu jako rozšíření, kde můžete vytvořit všechny své zdroje pro hru.

I když Urho3D nefunguje na Pythonu, zvažte také tento program pečlivě, protože s tímto nástrojem můžete začít velmi rychle. https: // armory3d.org /

Ursina

Ursina je napsána v Pythonu a je postavena na Panda3D. Tento nástroj je navržen tak, aby poskytoval mnoho primitiv, jako je krychle, koule atd., abyste mohli co nejdříve přejít k samotné hře. Panda3D dělá hlubokou práci a Ursina vám dává hotové programové funkce. Třída hráčů vám dává možnost zaregistrovat stisknuté klávesy a pohyby myši.

Většina funkcí je intuitivní, s jasnými názvy a snadno srozumitelnými funkcemi. Budete-li používat tento nástroj pro vytváření her, budete moci se svou hrou rychle začít. Ursina má také nástroje pro převod souborů blend i psd.

https: // github.com / pokepetter / ursina

Blender Game Engine (?)

Před verzí 2.79, Blender měl vestavěný herní engine. V pozdějších verzích se však návrháři rozhodli odstranit herní engine ze standardního sestavení a zaměřit se na animace. Lidé z UPBGE se tedy rozhodli vytvořit vlastní rozšíření, které funguje uvnitř Blenderu. Můžete tedy použít Blender k vytvoření celé hry. Jak to souvisí s vývojem her v Pythonu?

BPGE má API, které vám umožní přístup ke všem datům, která vytvoříte při práci v Blenderu. Konzolu uvnitř Blenderu můžete použít k přístupu a testování API. Ve skutečnosti byste mohli napsat celý program tímto způsobem, ale to nemusí být nejlepší volba pro vaše potřeby. Přinejmenším budete mít všechny zdroje připravené a tak, jak je chcete, od okamžiku, kdy je vytvoříte.

GODOT - GDscript, NE Python

Pokud chcete napsat hru a vyhovuje vám Python, můžete také použít GODOT. Tento jazyk je velmi podobný Pythonu, pouze pro psaní her.

Závěr

Existuje mnoho rámců pro psaní her v Pythonu. Pokud hledáte vytváření vysoce výkonných 3D her, měli byste vážně zvážit výukové jazyky pro tyto hry. Ujistěte se, že výběr programu vám umožní sledovat váš původní nápad hry. V případě potřeby přizpůsobte svůj programovací jazyk své osobní vizi.

Hry Jak používat AutoKey k automatizaci linuxových her
Jak používat AutoKey k automatizaci linuxových her
AutoKey je nástroj pro automatizaci stolních počítačů pro systémy Linux a X11, programovaný v programech Python 3, GTK a Qt. Pomocí jeho funkcí skript...
Hry Jak zobrazit počítadlo FPS v linuxových hrách
Jak zobrazit počítadlo FPS v linuxových hrách
Hraní na Linuxu získalo velký tlak, když společnost Valve v roce 2012 oznámila podporu systému Linux pro klienta Steam a jejich hry. Od té doby se mno...
Hry Jak stáhnout a přehrát Sid Meier's Civilization VI v systému Linux
Jak stáhnout a přehrát Sid Meier's Civilization VI v systému Linux
Úvod do hry Civilization 6 je moderní pojetí klasického konceptu představeného v sérii her Age of Empires. Myšlenka byla docela jednoduchá; začali bys...