stworzenie własnej, prostej gry - wyzwanie

0

Cześć,
dopiero uczę się programować w C++. Póki co umiem podstawy, ale w głowie mam już wiele programistycznych planów :).
Mam do was, bardziej doświadczonych osób, pytanie:
W przyszłości (niezbyt odległej) chciałbym stworzyć m.in. prostą grę (coś na wzór gier pisanych we fleshu), która będzie polegać na tym, że będzie plansza z "labiryntem". Labirynt jest w cudzysłowie, bo to nie będzie labirynt tylko kilka dróg przecinających się nawzajem, po których będą się poruszać kulki - wizualnie może się to skojarzyć z labiryntem :)
Na każdym przecięciu dwóch dróg będzie "mostek", który będzie się obracał po przyciśnięciu na niego myszką i będzie łączył jedną lub drugą drogę.
Po drodze, tak jak wspomniałem będą poruszać się kulki - z każdym poziomem będzie ich więcej.
Kulki będą poruszać się losowo i będą musiały dojść do "mety".

Celem gracza będzie ustawianie wspomnianych mostków w taki sposób, by kulka mogła przejść przez drogę. W innym wypadku, gdy most będzie łączył złą drogę, kulka spadnie z drogi w przepaść i "game over" :).
Dlatego, że kulki będą poruszać się w sposób losowy owe "mostki" trzeba będzie przekręcać na bieżąco, zanim kulka do niego dotrze.

Chodzi o taką grę na podzielność uwagi - przy kilku kulkach będzie to dość trudne.

Kiedyś grałem w taką gierkę ale po pierwsze nie mogę jej już znaleźć :( (może ktoś ją kojarzy i ma na nią namiar? :D) a po drugie miała ona kilka wad - np. w tamtej grze kulki na każdym poziomie poruszały się tak samo a nie losowo i najtrudniejszy poziom nie sprawiał kłopotu po kilkunastu/dziesięciu razach próby (po prostu znało się na pamięć która kulka jaką drogę wybierze i który mostek trzeba zmienić).

Wracając do pytań, gdyż chciałbym być świadomy co mnie czeka :). Czy możecie mi powiedzieć:

  1. Jak wy, bardziej doświadczeni programiści, oceniacie poziom trudności stworzenia takiej gry?
  2. ile czasu trzeba mniej więcej poświęcić by stworzyć taką gierkę przez początkującego i doświadczonego programistę (lub ile wam by to zajęło?). Wówczas będę miał jakiś punkt odniesienia by ocenić ile ja będę nad tym siedział :D (np. 10 razy dłużej ;])
  3. Jakie biblioteki mi się do tego przydadzą? Pomijam WinApi, którego właśnie się uczę. Głównie chyba przydałaby mi się jakaś biblioteka do grafiki (?) - chociaż raczej nie takiej jak w Starcraft II czy World of Warcraft - to ma być prosta gierka dla zabawy, ale też chcę by jakoś wyglądała :) - szczególnie by kulka była kulką a nie kwadracikiem :D
  4. Jakieś sugestie, rady, cokolwiek - jak przebrnąć przez pierwszy taki większy projekt? Czego i gdzie szukać, czego unikać, jak to zorganizować etc?

Zachęcam do dyskusji! Z góry dziękuję za waszą pomoc!
pozdrawia

0

Moja rada: najpierw naucz się podstaw i składni języka (tak tak, polimorfizm i szablony to jest część podstaw...), a potem sam będziesz sobie umiał na te pytania odpowiedzieć.

0

http://warsztat.gd/
na pewno Ci się przyda link ;)
co do bibloteki graficznej to ALLEGRO albo SDL. Sam pisałem coś tam w SDLu

0

A nie mógłbyś tak nieco bardziej rozwinąć swojej myśli? :)
Zarówno o polimorfiźmie jak i szablonach się uczyłem, ale fakt - nie miałem okazji jeszcze w praktyce stosować :). Póki co pisałem tylko proste programiki w konsoli i ograniczałem się do biblioteki standardowej.

Naprawdę nie da rady odpowiedzieć na tak proste pytania? Może być ogólnie a może być szczegółowo... Ale proszę o bardziej merytoryczną odpowiedź (odnoszącą się do zadanych pytań)

0

@fasadin Dzięki!

0

Mam nadzieję, że dyskusja dopiero się zaczęła i że jeszcze ktoś się wypowie :)
Bardzo mi zależy, by ktoś postarał się odpowiedzieć mi na zadane przeze mnie pytania :]
pozdrawiam

0

Ja polecam SFML, jeżeli chodzi o bibliotekę graficzną, ale polecam najpierw spróbować kilka prostrzych rzeczy w niej stworzyć, żeby nie rzucaćsię na za głęboką wodę :)

Ciężko powiedzieć ile czasu. Nie masz doświadczenia, więc pewnie twój kod będzie powstawać długo i w męczarniach, do tego pewnie będzie tragiczny, ale żeby to poprawić potrzeba po prostu doświadczenia, które nabędziesz pisząc takie projekty :)

0

@Kabum dzięki za posta.
A jak uważasz/cie ile doświadczonemu programiście by zajęło czasu stworzenie takiej gry? Czy to jest gra do stworzenia w jeden weekend czy jest tu znacznie więcej dłubania i miesiąc to minimum lub jeszcze więcej?
Jeśli chodzi o poziom trudności to się domyślam, że gra jest stosunkowo prosta - poza wyznaczeniem drogi dla kulek trzeba będzie stworzyć klasę samych kulek, które będą musiały w losowy sposób wybrać kierunek drogi na każdym skrzyżowaniu bez mostka oraz klasa samego mostka, który ma się obracać o 90 stopni w przypadku kliknięcia na niego myszką. Do tego piłeczka musi wiedzieć w jakiej pozycji jest mostek by ocenić ewentualne zakończenie gry w razie natrafienia na "przepaść".
Z tych trudniejszych rzeczy to chyba wszystko...
Typowa gra na podzielność uwagi, których mało w internecie. Chcę, by gracz sam sobie, według własnych potrzeba, dobierał liczbę piłeczek krążących po planszy, ale to drobne szczegóły :)
pozdrawiam

0

Jak się znajdzie już dobry algorytm to imo to można w 1 dzień naklepać. Jak nie wiadomo dokładne jak to zrobić i się siedzi nad tym no to wyjdzie tam pare dni.

0

Zalezy, jak sie wezmiesz do roboty to i weekend CI wystarczy. Pamietaj tylko, ze lepiej jednak najpierw poznac jakąś bibliotekę np. w/w SFML czy SDL i mieć "plan" jakiś, żeby totalnie na ślepo nie pisać.

0

Oki DokY!
Dzięki wszystkim za wypowiedzi.
Reasumując mam do wyboru takie biblioteki:

  1. SFML
  2. SDL
  3. Allegro

Którą Wy byście wybrali do mojego projektu i dlaczego?
Jakie są wady i zalety każdej z nich?
Czy są jeszcze jakieś sensowne biblioteki, które warto rozważyć przy pisaniu takiej prostej gry?

Z góry dzięki za pomoc.

0

Naprawdę nikt nie potrafi przedstawić wad i zalet tych bibliotek? :(

0

Ale o co chodzi? Pisz w czym chcesz i w czym Ci wygodniej.

0

Allegro i SDL są stare.

0

Polecam SFML 2.0, sam go używam :) Fajna i przyjemna dokumentacja, wsparcie na forum.

Choc mogą być problemy z instalacją, w Internecie jest mnóstwo instrukcji jak to zrobić. Ja sobie przygotowałem template w Code::Blocks z ustawieniami dot. projektu w SFML i jest git :)

SDL i Allegro mnie nie przekonały, ale tez nie uzywałem ich zbytnio. Sam jak wybierałem to rzuciłem okiem na nie tylko i na tej zasadzie wybrałem SFML i nie żałuję :)

0

@Wojtek_M przykro mi ale zabierasz sie za to od d**y strony. Napisz silnik tej gry, logikę, a grafiką zajmij się na końcu, bo to jest zupełny szczegół. Jak to dobrze napiszesz to grafikę w dowolnej technologii podepniesz w kilka chwil.

0

e tam napisz sobie klasycznego snake bez różnicy czy to będzie allegro czy SDL ważne żebyś widział efekt swej pracy który będzie motywacją do napisania czegoś bardziej skomplikowanego bo widzę że strasznie początkujący jesteś.

0

SFMLy wymagają chyba umiejętności programowania obiektowego, znowu ALLEGRO jak już napisali jest stare. Jest jednak ALLEGRO w v5 i w sumie czemu by się go nie uczyć ? Allegro nie wymaga programowania obiektowego, jest to chyba w niej nawet nie możliwe.

Sam jestem początkującym programistą, uczę się już jakieś 1,5 roku. Myślałem dzisiaj nad tą gierką i nie jest to wcale trudne, najgorzej by było z wyświetlaniem zmian na ekran bo strasznie by migał, i do tego właśnie potrzebowali byśmy biblioteki graficznej. Samo działanie programu polegało by na tym że tablice posiadają już określone wartości, na podstawie tych wartości kulka może przybrać losowo od 2-3 kierunków poruszania się, ale nie będę ci psuł zabawy. Jeśli jednak nie zajmowałeś się jeszcze żadnymi "większymi" projektami to polecam najpierw kółko i krzyżyk,statki,saper. Napisanie tych programów daje też wielką satysfakcję, jak masz jakieś pytania to wal :D

0

Dobra panowie, dzięki za wypowiedzi!
Decyzję podjąłem - padło na SFML :)
Tak jak pisałem wcześniej, nie jestem może jeszcze jakimś zawodowcem, ale podstawy - szczególnie programowanie strukturalne ogarniam :) a obiektowość mnie nie przeraża - wręcz przeciwnie! :P.
pozdrawiam

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