Warsztat.GD

Programowanie => Szkółka => Wątek zaczęty przez: wozix w Kwiecień 20, 2012, 23:05:21

Tytuł: Programowanie gier - potrzebne rozjaśnienie.
Wiadomość wysłana przez: wozix w Kwiecień 20, 2012, 23:05:21
Witam,
jestem domorosłym programistą (znam c++ i Java tak, że jakieś zadania mogę wykonać) i wręcz od zawsze fascynuje mnie temat tworzenia gier. Zapewne mój wątek wygląda bardzo podobnie jak zwykle zadawane pytania czyli "jak się nauczyć robić gry". No cóż, w pewnym sensie chcę o to zapytać.
Wiem, że do robienia gier potrzebuję w czymś programować grafikę: OpenGL, DirectX lub inne bilbioteki. Mogę użyć gotowego silnika, ale chcę raczej eksperymentować samemu. Drugą kwestią jest to, że jedyne co wiem o grach, to to, że działają w pętli czasu rzeczywistego. No niestety znam takie ogóły, że nawet szukając materiałów do nauki w środku znajduje się tyle niewiadomych, że po pewnym czasie rzucam to wszystko - po prostu gubię się w tym. Czytając coś o OpenGL'u jest to tak dalekie od standardowego programowania (w sumie takiego z jakim miałem do czynienia), że już nie wiem co z czym połączyć. I tu przychodzi czas na moje pytanie - czy istnieje jakaś pozycja, może tutorial, który przybliży schemat działania gry, lekko naprowadzi na właściwą drogę? Będę wdzięczny za jakiekolwiek odpowiedzi. Pozdrawiam!
Tytuł: Odp: Programowanie gier - potrzebne rozjaśnienie.
Wiadomość wysłana przez: Avaj w Kwiecień 20, 2012, 23:50:58
olej 3D, rób 2D. Wtedy możesz olać OpenGL/DirectX i robić w np. SFML.

Albo bierzesz coś wysokopoziomowego jak HTML5 albo Flash i wtedy takie bajery jak rysowanie obrazków będziesz miał już w standardzie.

generalnie to zdecyduj się na konkretne technologie, a wtedy coś się poradzi.
Tytuł: Odp: Programowanie gier - potrzebne rozjaśnienie.
Wiadomość wysłana przez: Troll w Kwiecień 21, 2012, 00:06:20
Z książek mogę polecić "Perełki programowania gier".

Avaj ma rację, olej 3D, 2D rządzi :)
Tytuł: Odp: Programowanie gier - potrzebne rozjaśnienie.
Wiadomość wysłana przez: Cerberus w Kwiecień 21, 2012, 00:28:48
Jeśli chcesz zacząć, polecam najpierw ten art:
http://xion.org.pl/productions/texts/coding/game-programming/real-time-loop/ (http://xion.org.pl/productions/texts/coding/game-programming/real-time-loop/)
a później ten ;)
http://temporal.pr0.pl/devblog/download/arts/fixed_step/fixed_step.pdf (http://temporal.pr0.pl/devblog/download/arts/fixed_step/fixed_step.pdf)
Tytuł: Odp: Programowanie gier - potrzebne rozjaśnienie.
Wiadomość wysłana przez: Oti w Kwiecień 21, 2012, 00:43:43
@Cerberus
Tak, nie ma to jak robić mu wodę z mózgu na starcie.
Tytuł: Odp: Programowanie gier - potrzebne rozjaśnienie.
Wiadomość wysłana przez: flexi w Kwiecień 21, 2012, 00:58:33
Moze chcial go zniechecic xD (joke)
Tytuł: Odp: Programowanie gier - potrzebne rozjaśnienie.
Wiadomość wysłana przez: wozix w Kwiecień 21, 2012, 09:28:57
Załóżmy, że chcę iść drogą C++ i 2D (SDL?). Co dalej? Czemu nie korzystać z materiałów poleconych przec Cerberusa?
Tytuł: Odp: Programowanie gier - potrzebne rozjaśnienie.
Wiadomość wysłana przez: jjoker8 w Kwiecień 21, 2012, 10:14:16
www.lazyfoo.net -tu masz bardzo dobry tutorial do SDL, wszystko po kolei omówione jak zrobić grę w SDLu. Przy okazji poznasz jak działa wyświetlanie grafiki, kolizje, pętla główna, timer itp. czyli niezbędne rzeczy w każdej grze.
A artykuły podane przez Cerberusa rzeczywiście dla początkujących mogą być ciężkostrawne ;). Np. zagadnienia dotyczące timera w bibliotekach sprowadzają się raczej do biblioteka->timer.setFPS() niż samodzielnego pobierania czasu i sprzęgania z grą :). Chociaż akurat w SDLu trzeba samemu pisać timer
Tytuł: Odp: Programowanie gier - potrzebne rozjaśnienie.
Wiadomość wysłana przez: wozix w Kwiecień 21, 2012, 10:31:10
Świetna strona, o coś takiego mi chodziło. Dzięki za pomoc!
Tytuł: Odp: Programowanie gier - potrzebne rozjaśnienie.
Wiadomość wysłana przez: Fladimir Mielevsky w Kwiecień 21, 2012, 10:53:53
O zgrozo. Po co mu znowu wpychacie tego ślimaka SDL? Na nic mu to. Lepiej przysiądź przy Unity, przynajmniej szybko zauważysz jakieś efekty swojej pracy. W SDL wszystko będziesz musiał dodać sam, bo jest to cholernie niskopoziomowa biblioteka. Może z zewnątrz wygląda cool, ale ja na Twoim miejscu trzymałbym się póki co z daleka. Unity to prawdziwy silnik, jedyne co musisz robić to programować grę, nie engine.
Tytuł: Odp: Programowanie gier - potrzebne rozjaśnienie.
Wiadomość wysłana przez: jjoker8 w Kwiecień 21, 2012, 11:14:15
no niby tak ale autor chciał
Cytuj
pozycja, może tutorial, który przybliży schemat działania gry, lekko naprowadzi na właściwą drogę?
Cytuj
Mogę użyć gotowego silnika, ale chcę raczej eksperymentować samemu.
SDL jest rzeczywiście wolny i prymitywny ale prosty
Tytuł: Odp: Programowanie gier - potrzebne rozjaśnienie.
Wiadomość wysłana przez: Oti w Kwiecień 21, 2012, 19:25:00
SDL (..) to cholernie niskopoziomowa biblioteka.
To Ty chyba cholernie niskopoziomowej biblioteki nie widziałeś. :) SDL/allegro to biblioteki w sam raz nadające się na rozpoczęcie przygody z programowaniem.

Czemu nie korzystać z materiałów poleconych przec Cerberusa?
Bo podał dwa artykuły, które na samym początku niekoniecznie powinny Cię interesować(tak jak ktoś wyżej napisal, zamiast tego możesz użyć timerów), dodatkowo, przedstawiające dwa odmienne schematy działania pętli głównej. Czytasz artykuł Xiona, by po chwili przeczytać, że 'ten drugi jest lepszy i masz zapomnieć o tym co czytałeś'. ;P Obejdzie się bez tego, przynajmniej do czasu.
Tytuł: Odp: Programowanie gier - potrzebne rozjaśnienie.
Wiadomość wysłana przez: Fladimir Mielevsky w Kwiecień 21, 2012, 19:51:45
Ta, tylko że jak przyjdzie mu zaimplementować animacje, jakieś super-pro kolizje(a to wszystko będzie tak mulić, że najnowsze procesory niewydolą) i inne badziewia to mu od razu zapał zejdzie.
Tytuł: Odp: Programowanie gier - potrzebne rozjaśnienie.
Wiadomość wysłana przez: Vipa w Kwiecień 21, 2012, 19:56:31
Zejdzie? Właśnie wtedy zacznie się właściwe programowanie ;). Napisać by działało jest łatwo. Napisać by to działało w miarę szybko to już wyzwanie. Albo ktoś te wyzwania lubi albo nie. Bankowo go to nie ominie.
Tytuł: Odp: Programowanie gier - potrzebne rozjaśnienie.
Wiadomość wysłana przez: Fladimir Mielevsky w Kwiecień 21, 2012, 21:16:41
Vipa, jedni wolą korzystać z gotowych rozwiązań inni wolą te rozwiązania tworzyć. Nie wiemy jak będzie z autorem, w każdym razie słusznie mówisz. ;)
Tytuł: Odp: Programowanie gier - potrzebne rozjaśnienie.
Wiadomość wysłana przez: wozix w Kwiecień 21, 2012, 22:43:19
Urok polskich for, gdzie nie można być pewnym żadnego posta :)
Spróbuje SDL, żeby poznać jak działa to wszystko, a później na pewno przejde na cos bardziej zaawansowanego. W tym momencie nie obchodzi mnie wydajnosc biblioteki, bo nie wiem czy komukolwiek bede chwalil sie efektami pracy. To bedzie raczej sandbox do testowania, dopieszczania - rozgrzewka przed powazniejszym projektem. (oczywiscie osobistym i niekomercyjnym)
Tytuł: Odp: Programowanie gier - potrzebne rozjaśnienie.
Wiadomość wysłana przez: lukaszsa w Kwiecień 22, 2012, 00:31:07
Jak dla mnie weź się za SFML, bo te funkcje są liczone na karcie a nie na procku jak w SDL i przez to muli( nie mówię o wykorzystaniu OpenGL tylko o samym SDLu). Poza tym SFML jest niezwykle łatwy w użyciu.
Tytuł: Odp: Programowanie gier - potrzebne rozjaśnienie.
Wiadomość wysłana przez: ShadowDancer w Kwiecień 22, 2012, 01:12:35
SFML może nie muli? glBegin, glEnd to już nie ta epoka (no tak powstaje wersja 2.0, który to już rok?). Moim zdaniem najnowsze allegro jest obecnie najlepsze.

wozix (http://forum.warsztat.gd/index.php?action=profile;u=3562): Jak znajdziesz takie forum, gdzie można być pewnym każdego posta (język nieważny), to daj znać :)
Tytuł: Odp: Programowanie gier - potrzebne rozjaśnienie.
Wiadomość wysłana przez: Cerberus w Kwiecień 22, 2012, 01:55:01
Cytuj
pozycja, może tutorial, który przybliży schemat działania gry, lekko naprowadzi na właściwą drogę?

Właśnie dlatego rzuciłem propozycje, które nie są tutorialami do konkretnych bibliotek, tylko traktują o sprawach występujących wszędzie. Moim zdaniem, jeśli ktoś nie miał zbytnio styczności z kodzeniem gier, to po przejrzeniu tych artów powinna mu się cała koncepcja odrobinę rozjaśnić.
A to, że większość bibliotek ma coś w rodzaju .setFPS() zaimplementowane nie oznacza, że nie można wiedzieć, jak to działa ;)
Tytuł: Odp: Programowanie gier - potrzebne rozjaśnienie.
Wiadomość wysłana przez: voytech w Kwiecień 22, 2012, 02:06:51
Może parę odcinków z tworzenia sokobana coś rozjaśni: http://www.youtube.com/watch?v=MgouEkk1tr4
Tytuł: Odp: Programowanie gier - potrzebne rozjaśnienie.
Wiadomość wysłana przez: Frondeus w Kwiecień 22, 2012, 12:41:02
SFML może nie muli? glBegin, glEnd to już nie ta epoka (no tak powstaje wersja 2.0, który to już rok?).
Tak BTW:
Cytuj
15 april 2012

SFML 2.0 RC is out

The release candidate of SFML 2.0
Wiec blizej konca niz poczatku :)
Tytuł: Odp: Programowanie gier - potrzebne rozjaśnienie.
Wiadomość wysłana przez: Charibo w Kwiecień 22, 2012, 14:38:44
Nie wiem czy ktoś już wspominał, ale możesz spróbować ogarnąć Unity, albo UDK, albo jak chcesz większy low-level to XNA. Te środowiska są dosyć proste, da się szybko ich nauczyć i szybko mieć jakieśtam efekty, zamiast miesięcy babrania się w wyświetlanie sprajtów. To jest droga na skróty, dobra jeżeli masz pomysły na grę i chciałbyś je szybko prototypować. Chyba, że interesuje cię nie tyle programowanie gier, co poznanie róznych technologii od podszewki. Wtedy, niestety trzeba zacząć od początku :)
Tytuł: Odp: Programowanie gier - potrzebne rozjaśnienie.
Wiadomość wysłana przez: vashpan w Kwiecień 22, 2012, 17:13:02
XNA czy SFML to podobny poziom abstrakcji... Jezeli chcesz na serio zajac sie pisaniem gier, to naprawde warto zaczac od raczej niskiego poziomu i C++ Przechodzenie z nizszego na wyzszy poziom jest znacznie latwiejsze potem, a do tego programisci ktorzy zaczynali od nizszego poziomu sa lepszymi programistami na poziomie wyzszym.

Co do SDL - masa niesprawiedliwych bzdur w sumie tutaj padla... Po pierwsze - biblioteka ma 15 lat, kiedy powstawala akceleratory 3D dopiero raczkowaly. Po drugie - to nie jest biblioteka do pisania gier, tylko wieloplatformowa warstwa abstrakcji na rozne medialne podsystemy, zeby latwiej bylo tworzyc aplikacje na wiele systemow. Po trzecie - w srodowisku bez akceleracji 3D, nie rysuje sie wszystkiego co klatke. A tak zapewne ci ktorzy pisza o jego domniemanej "powolnosci" robia ci ktorzy tak pisza. Nalezy rysowac tylko to co sie zmienia, tak np. wyglada rysowanie GUI w kazdym OS'ie. A po czwarte - w zwiazku z jej wiekiem, raczej lepiej uzywac czegos innego, chociazby tego SFML, ktory choc niewydolnie, naiwnie napisany, to ma proste API i do prostych gier starczy.

Na niskim poziomie mozna poznac OpenGL i DirectX - i nie, wyswietlanie sprite'ow nie zajmie "miesiace babrania"



Tytuł: Odp: Programowanie gier - potrzebne rozjaśnienie.
Wiadomość wysłana przez: Bloodian w Kwiecień 23, 2012, 01:55:55
Urok polskich for, gdzie nie można być pewnym żadnego posta :)
Spróbuje SDL, żeby poznać jak działa to wszystko, a później na pewno przejde na cos bardziej zaawansowanego. W tym momencie nie obchodzi mnie wydajnosc biblioteki, bo nie wiem czy komukolwiek bede chwalil sie efektami pracy. To bedzie raczej sandbox do testowania, dopieszczania - rozgrzewka przed powazniejszym projektem. (oczywiscie osobistym i niekomercyjnym)
-- powinieneś dziękować, a nie narzekać bo na większości for zostałbyś wysłany do kosza z "używaj wyszukiwarki" jako że ten temat był już wałkowany.. no.. naprawdę dużą ilość razy :) Na szczęście te forum i "Szkółka" są bardzo przyjacielskie dla ludzi zaczynających swoją przygodę z programowaniem.

-- jako początkujący, z doświadczenia, polecę Ci żebyś nie przeanalizowywał. . Nie myśl o tym jak zagubiony jesteś, ani o tym jaką najlepiej bibliotekę wybrać. Wybierz cokolwiek tutaj Ci polecili ( tak naprawdę każdy ma "swoją" rację, więc tak - nie możesz być pewnym żadnego posta). Napisz cokolwiek. Jak Ci nie będzie pasować to zmień na coś innego i klep dalej. Byle byś klepał :) Zobaczysz że jak wklepiesz raz, to drugim razem będzie Ci łatwiej przejść na inną bibliotekę/silnik. Za setnym razem nie będziesz się w ogóle zastanawiał.

-- jeżeli chcesz coś łatwego to rzeczywiście weź się za jakąś bibliotekę/silnik 2d, jeżeli chcesz 3d to też dasz radę, ale radziłbym na początku silnik (ja pisałem w ogrze) i zająć się perspektywą 2d. Później będzie Ci łatwiej przejść do 3d.
Tytuł: Odp: Programowanie gier - potrzebne rozjaśnienie.
Wiadomość wysłana przez: flexi w Kwiecień 23, 2012, 09:33:44
OGRE nie jestem dobrym silnikiem dla poczaktujacego :)
Tytuł: Odp: Programowanie gier - potrzebne rozjaśnienie.
Wiadomość wysłana przez: PsichiX (ΨΧΞ) w Kwiecień 23, 2012, 10:30:06
a może by tak..
http://xenon.psichix.com

(http://forum.7fuegos.com/style_emoticons/default/trollface.png)