Gra 2D online, Pygame

0

Witam, zaciekawił mnie temat stworzenia średnio skomplikowanej gry 2D.

Jakiś czas temu kupiłem książkę Hello World z której uczyłem się języka programowania Python.

Opiszę jak mniej więcej chciałbym żeby ta gra wyglądała.

Kierujemy osadą na jakimś terenie, obok naszej osady są osady innych graczy. (Chciałbym żeby to była gra online, jakas prosta baza danych, pobieranie wysyłanie, ping nie byłby aż tak ważny, więc możliwe są do zastosowania jakieś "amatorskie rozwiązania", wybaczcie za dobór słów).

Musimy dbać o dobre relacje z kowalem, jakimś tam zbrojmistrzem, piekarzem żeby mieć zniżki na jedzenie dla moich poddanych/żołnierzy.

Ważna częścią tej gry byłaby dyplomacja z innymi graczami, więc wysyłanie wiadomości, tworzenie jakiś koalicji itp.

Nie mam pomysłu na system walk z innymi graczami.

Chciałbym tworzyć własne grafiki, wygląd postaci do wyboru itp...

Od czego zacząć? Próbować kombinować w Pygame? Czy zastosować całkiem inny język programowania do tego zadania?

Jak Wy podeszlibyscie do tematu?

Pozdrawiam :)

0

pygame jak na obecny postęp w dziedzinie tworzenia gier jest dość toporny...

Jak już musisz w Pythonie, to zrób sobie w nim backend (pośredniczący między bazą danych i graczem).

Zaś resztę gry poskładaj w Unity 3D (C#).

0

Rozumiem, więc Unity będzie bardziej przyjazny? Jak się do tego zabrać? Rozpisać sobie poszczególne elementy gry i powoli je wprowadzać ucząc się przy tym programować w C#?

Czy lepiej "pokodzic" jakiś czas w C# i dopiero się zabrać za resztę?
W jakim programie tworzyć elementy terenu? Myślałem o Blenderze.
Pozostaje kwestia teksturowania terenu i nadania "realizmu" elementom. Chciałbym aby teren i elementy wyglądały mniej więcej jak te z diablo 3 :)

Pozdrawiam

1

Najpierw zrób kilka małych gier. Jak już będziesz oswojony z workflowem wszystkich narzędzi to rób na czysto. Jak zaczniesz robić duży projekt bez wiedzy, to co chwilę będzie trzeba coś przerabiać, bo dowiesz się rzeczy, których nie wiedziałeś rozpoczynając implementację.

Na razie Twój projekt wygląda na zbyt duży by go uciągnąć "z marszu". Diablo robił cały zespół specjalistów, nie tylko w dziedzinie programowania. Jak jesteś dobrym grafikiem oraz masz dobre narzędzia, to pewnie uda Ci się osiągnąć realistyczny wygląd. Blender jest ok, a realizmu dodaje szereg tekstur. Albedo, Normal Map, Detail Map, Occlusion Map...

Ja ogarniałem C# na bieżąco ucząc się Unity. Znając wcześniej C++, Javę, Pythona, OpenGL itd. - napisałem wcześniej kilka mini gierek BEZ Unity i C#.

0

w prawie pythonie to zainteresuj sie godot

0

Chyba jednak kupię tę książki dla początkującego do Pythona i zacznę od Godot, bo Unity i C# nie ogarne...

0

też tak miałem tylko, że z UE4 i myślałem, że nie dam rady. Poczytałem chwilę dokumentację techniczną i teraz widzę, że używanie silnika jest łatwizną w porównaniu z pisaniem od zera np. w sfml (c++). Z resztą praktycznie wszystkie problemy które wymieniłeś mają setki rozwiązań na necie, np. tu ;)

0

Sam silnik mnie nie przeraża...gorzej z całym programowaniem zachowań, umiejętności i całości. Chodzi mi o całość związana ze skryptami w Unity :) Czuje że z tym będę miał problem :)

0

Jeśli uczysz się programowania dla stworzenia gry Python jest cóż delikatnie ujmując słabą opcją. Język nadaje się do BigData albo MachineLearning ale gry to lepiej C albo Java

0
szopen469 napisał(a):

Język nadaje się do BigData albo MachineLearning ale gry to lepiej C albo Java

C i Java tak samo nadają się do stworzenia gry jak Python...

Nie ma dla nich nowoczesnych rozwiązań w tym zakresie...

0

C z tego co mi wiadomo jest szybszy, co w grach ma pewne znaczenie. Poza tym sam fakt że gry stawia sie na C i C++ świadczy że są nieco lepsze. A co do Javy to niejedna gra na niej śmigała. Skoro developerzy je wybierają znaczy że jakaś przewaga jest.

0

Szybkość C miała znaczenie w grach - ale teraz nikt nie pisze od podstaw gier w C. Wątpię, czy są jakieś współczesne silniki do gier dla C - ale takie silniki zrobione z rozmachem, jak te które mamy dla C++ i C#.

Na Javie niejedna gra śmigała, zwłaszcza mobilne - ale czasem trendy się zmieniają, teraz większość gier w Google Play to Unity 3D.
Minecraft był w Javie, ale ta Java dużo mu nie dała, i tak używał LWJGL, więc ilość roboty jest porównywalna z pisaniem w C++ z OpenGL'em.

Java, Python, C, C++, C#... w nich wszystkich da się tworzyć gry i się je tworzy, ale po prostu TERAZ istnieją technologie, które bardzo usprawniają cały proces, a komputery które uciągną gry AAA, poradzą sobie z trochę mniejszymi grami niestawiającymi na maksimum wydajności.

0

Generalnie jeśli gra sama w sobie nie jest celem, a głównie chcesz się nauczyć programowania, to pisanie gry w Pythonie jest jak najbardziej dobrym pomysłem. Ja sam zacząłem uczyć się OOP właśnie robiąc sobie grę z wykorzystaniem pygame. To mogę powiedzieć ze swojego doświadczenia. Natomiast jeśli planujesz wejść w game dev to wybieraj Unity, albo UE i dobierz sobie do tego język.

powodzenia.

1 użytkowników online, w tym zalogowanych: 0, gości: 1