Autor Wątek: Początek gier 2D  (Przeczytany 2881 razy)

Offline rafal3920

  • Użytkownik

# Marzec 28, 2014, 22:30:09
Od moich ostatnich postów minęło trochę czasu i dużo się nauczyłem. Potrafię zrobić tekstowego RPG, snake czy tetrisa... no ale to wszystko w konsoli. Już powoli ogarniam jak się używa (porządnie) klas i postanowiłem że jak ukończę tetrisa opartego budową na klasach to wezmę się za robienie gier 2D. I tu pojawia się problem: w czym najlepiej robić gry? SDL, SFML czy WinApi? Wiem że to ostatnie jest najgorsze do robienia typowych gier ale jest mnóstwo różnych poradników, a do pozostałych dwóch znalazłem kursy/poradniki ale są nieskończone, po prostu urwane w połowie... Najlepiej by było gdyby można było (na pewno jest tak w SDL) wczytywać całe obrazki robione w innych programach, a nie rysowane programowo. Czy możliwe jest też wrzucanie animacji robionych n.p. w pivocie? Chcę zrobić bijatykę, a pivot najbardziej odpowiada temu czego potrzebuję. No i czy znacie jakieś dobre poradniki do SDL lub SFML? Niestety nie mogę żadnego takiego znaleźć. Z góry dziękuję za pomoc!

edit:
Aha, i jeszcze dobrze by było gdyby była obsługa dwóch padów... ja znalazłem tylko jak wrzucić joysticka...

Offline Mr. Spam

  • Miłośnik przetworów mięsnych

Offline Ziemowit

  • Użytkownik
    • Ziemowit DevBlog

  • +1
# Marzec 28, 2014, 23:02:34
świetne tutoriale do SFMLa są po prostu na stronie biblioteki:
http://www.sfml-dev.org/tutorials/2.1/
do tego dokumentacja, i więcej nie potrzebujesz.

Osobiście polecam właśnie SFMLa  - łatwa, szybka i przyjemna.

Offline Kyroaku

  • Użytkownik

# Marzec 28, 2014, 23:43:10
Mówisz, ze WinAPI jest najgorsze, a wymieniles 2 biblioteki, które korzystają z WinAPI :)
P.S. ludzie mogą ci polecac rożne rzeczy, ale głupota jest oceniać cokolwiek na podstawie opinii innych... Sprobuj i ocen sam. Gdyby ktoś mógł ci powiedzieć, co jest najlepsze, ludzie nie korzystali by z xxx rożnych libek :)
« Ostatnia zmiana: Marzec 28, 2014, 23:46:54 wysłana przez Kyroaku »

Offline Malkavian Ass...

  • Użytkownik

  • +4
# Marzec 29, 2014, 08:07:46
Mówisz, ze WinAPI jest najgorsze, a wymieniles 2 biblioteki, które korzystają z WinAPI :)
P.S. ludzie mogą ci polecac rożne rzeczy, ale głupota jest oceniać cokolwiek na podstawie opinii innych... Sprobuj i ocen sam. Gdyby ktoś mógł ci powiedzieć, co jest najlepsze, ludzie nie korzystali by z xxx rożnych libek :)
Ten post powinien zostać nominowany do najgłupszego w tym miesiącu.

rafal3920: Jesteś jeszcze bardzo początkujący i jeśli chcesz ogarnąć o co chodzi w robieniu gier 2D, to może na początek warto by zerknąć na starego, dobrego Flasha?

Offline Estivo

  • Użytkownik
    • Blog

  • +2
# Marzec 29, 2014, 11:44:49
Jako, ze nie mialem doczynienia z SDL polece SFML. Sam w nim pisze, a te tutki urwane w polowie wystarcza Ci na start w zupelnosci. Zobaczysz czy pasuje Ci skladnia i ogolnie biblioteka.

Offline BlackCat

  • Użytkownik

# Marzec 29, 2014, 14:11:09
proponuje wybrać  SDL

strony:
http://www.libsdl.org/ - strona główna
http://cpp0x.pl/kursy/Kurs-SDL-C++/Wstep/92 - kurs po polsku
http://lazyfoo.net/SDL_tutorials/ - tu są tutki do SDL w wersji 1.2 i 2.0 oraz parę artykułów ogólnych
http://warsztat.gd/wiki/Kurs+biblioteki+SDL%2C+cz%C4%99%C5%9B%C4%87+1 - kurs z strony warsztatu

Na początek w zupełności wystarczy.



Offline flexi

  • Użytkownik

  • +2
# Marzec 29, 2014, 15:07:36
Moim zdaniem SFML będzie lepszym wyborem gdyż nauczy się przy okazji programowania obiektowego :-)

Offline MofC

  • Użytkownik

# Marzec 29, 2014, 18:48:24
Korzystałem z SDL1.2 ,Allegro i SFML i mi najbardziej przypadła do gustu biblioteka SDL w wersji 1.2(nie miałem do czynienia z nową wersją). Właściwie to wszystkie używa się podobnie.

Offline Shelim

  • Użytkownik
    • Homepage

  • +1
# Marzec 29, 2014, 19:04:54
Od łebka który używał obu bibliotek w niezależnych większych projektach. Zatem porównanie SDL 2.0/SFML:

SFML jest łatwiejszy. Wiem, że to stwierdzenie zwodnicze zdaniem Wikipedii, dlatego rozwinę:
  • SFML działa po wyjęciu z pudełka, czyt. ściągnięciu ze strony. W przypadku SDLa sensowne jest przekompilowanie binarek i zależności bo:
    • Binarny release jest niezgodny ze starymi Visualami i Windowsami XP. Tracisz kilkanaście procent targetu, Windows XP jeszcze jest wspierany. Przez kilka dni.
    • Binarki są ultra stare. No może bez przesady, ale w systemie kontroli wersji SDLa jest dobrych 50 bugów już załatanych, które wciąż występują w binarkach ściąganych z oficjalnej strony (tych na stronie libsdl)
  • SFML ma wszystko czego potrzebujesz i możesz potrzebować. Obsługę grafiki, muzyki, sieci, etc. W SDLu musisz korzystać z bibliotek pomocniczych (jak SDL_Image, SDL_Net). Funkcjonalność niby ta sama, ale czas na assembling tooli większy (patrz punkt poprzedni)
  • SFML wymusza na tobie konkretny sposób kodowania. Ludzie mogą się z tym zgodzić lub nie, ale jeżeli dopiero zaczynasz to SFML zmusi cię do pisania obiektowego, i to obiektowego w konkretnym, poprawnym (z punktu widzenia akademickiego) stylu. W SDLu możesz pisać jak chcesz, ergo. jeżeli nie masz doświadczenia bardzo łatwo jest skopać układ klas, doprowadzić do sytuacji w której się zaplączesz i będziesz musiał zrobić coś, co w aktualnej hierarchii czy układzie jest niemożliwe.
  • SFML ma lepszą dokumentację. SDL posiada suchy opis klas na wiki, do tego z błędami (aktualnie zdaje się podkreślanymi przez community). Jest dużo mniej tutoriali do SDLa niż do SFMLa

To w czym SDL jest lepszy? Ano już notuję:
  • Łatwiejszy dostęp do OpenGLa, jeżeli chcesz rysować własne obiekty. W SFMLu jest to możliwe, ale dużo bardziej upierdliwe i, paradoksalnie wolne
  • SDL wspiera więcej platform (Android, iOS, etc.)
  • SDL nie wymusza na tobie konkretnego stylu kodowania (dla mnie to zaleta, dla ciebie na początku może to być wadą) - piszesz tak jak lubisz, a nie tak jak cię zmuszają
  • SDL ma więcej niskopoziomowych featuresów (np. w SFMLu nie zmienisz łatwo blending mode'u OpenGLa bez wywołania kosztownej funkcji zapamiętującej WSZYSTKIE stany OpenGLa)

Które wybrać? Zacznij od SFMLa, a jak się poczujesz biegły w projektach obiektowych, daj szansę SDLowi. Nie będzie tak łatwy na początku, ale jak się wdrożysz może okazać się nawet lepszy :-)

Offline rafal3920

  • Użytkownik

# Marzec 29, 2014, 19:33:55
Dziękuję za pomoc, sprawdzę więc SFML. Rysowania właśnie nie potrzebuję, wolę wczytane obrazy. Ten poradniki na CPP0x.pl czytałem jako pierwsze. Z angielskimi nie wiem jak będzie bo niby znam dobrze angielski, ale jest dużo zwrotów technicznych... Najwyżej będę czytał ze słownikiem na drugiej karcie :)
Aha, i używam VS 2007, to jest "starsza"?

Mam jeszcze 2 pytania do SFML:
1.Da się wrzucać animację gif czy trzeba robić tablicę obrazów?
2.Da się łatwo nauczyć program korzystać z Pad-ów? Najlepiej dwóch na raz?

Ogólnie to bardzo dziękuję za pomoc! Niedługo może wrzucę tu moją gierkę(jeśli się uda zrobić)

Offline P@tyS

  • Użytkownik
    • Patys coding

# Marzec 29, 2014, 19:48:10
Ad. 1. SFML z tego co wiem nie wspiera animacji gif, ale można w łatwy sposób zrobic animację z tileset'a np:
https://github.com/LaurentGomila/SFML/wiki/Source%3A-AnimatedSprite

Ad. 2 . Według dokumentacji da się korzystać z 8:
http://www.sfml-dev.org/documentation/2.0/classsf_1_1Joystick.php#details

Offline Estivo

  • Użytkownik
    • Blog

# Marzec 29, 2014, 20:05:21
Co do drugiego pytania to w ciągu 5 minut przepisałem kontrole nad graczem na pada (wyłączając obsługe inventory i innych troche bardziej skomplikowanych rzeczy, ale strzelanie chodzenie i celowanie to był banał ;)

Offline rafal3920

  • Użytkownik

# Marzec 29, 2014, 21:02:34
Bardzo dziękuję za tak szybkie odpowiedzi, temat chyba do zamknięcia

p.s.
Tobie zajęło 5 minut więc w godzinę może mi się uda :)

Offline Estivo

  • Użytkownik
    • Blog

# Marzec 29, 2014, 22:45:06
Zajeło mi 5 minut, bo to była kwestia zmiany input z klawiatury na input joysticowy :) Oczywiście do obsługi inventory, musisz myśleć o padzie, wiec rozwiązania typu cs global offensive, albo TES: Skyrim.