Zacząłem programować wiele lat temu. Teraz próbuję tworzyć gry. Przeczytałem wiele zaleceń, aby rozpocząć klonowanie niektórych dobrze znanych gier, takich jak galaga, tetris, arkanoid itp. Przeczytałem również, że powinienem przejść na całą grę (w tym menu, dźwięk, partyturę itp.).
Wczoraj skończyłem pierwszą pełną wersję mojego klonu arkanoidalnego. Ale to jeszcze nie koniec. Nadal mogę nad tym pracować przez wiele miesięcy (w wolnym czasie programuję jako hobby), wdrażając przełącznik rozdzielczości ekranu, mapowanie klawiszy kontrolnych, dopalacze spadające z połamanych cegieł, ogromne itp.
Ale nie chcę wiecznie uczyć się klonowania JEDNEJ gry. Mam ochotę przejść do następnego klonu, aby zastosować kilka pomysłów projektowych, na które natknąłem się podczas tworzenia tego arkanoidalnego klonu (jednocześnie czytam książkę GoF i dużo kodu źródłowego z konkursu gry Ludum Dare 21).
Pytanie brzmi zatem: czy powinienem ciągle ulepszać klon arkanoidalny, dopóki nie będzie on miał wszystkich funkcji, jakie posiadała oryginalna gra? czy powinienem przejść do następnego klonu (są prawie nieskończone gry do klonowania) i zacząć naprawiać to, co zrobiłem źle z poprzednim klonem?
To może być bardzo subiektywne pytanie, dlatego ograniczaj odpowiedzi na najskuteczniejszy sposób, aby nauczyć się tworzyć własne gry (nie klonując pomysłów). Dziękuję Ci!
WYJAŚNIENIE
Aby wyjaśnić, co wdrożyłem, tworzę tę listę:
Zaimplementowane funkcje:
- Możliwości odbijania się (piłka odbija się od ścian, cegieł i paska).
- Brzmi, gdy odbija się od cegieł i paska, a gracz wygrywa lub przegrywa.
- Podstawowe menu tytułów (tylko nowa gra i wyjście). Również menu w grze i menu wygranej / przegranej.
- Tylko trzy poziomy, ale system map jest tak łatwy, że nie sądzę, że wiele mnie nauczy (czy się mylę?).
Funkcje niezaimplementowane:
- Dopalacze przy łamaniu cegieł.
- Złożone klocki (z więcej niż jednym „punktem życia” i niezwyciężonym).
- Lepsza grafika (nie jestem w tym naprawdę dobra).
- Programowanie polerowania (intensywniej wykorzystuj wzorce projektowe).
Oto link do jego (minimalnej) strony: http://blog.acamara.es/piperine/ Wstydzę się jej pokazać, więc proszę nie uderzaj mnie zbyt mocno :-)
Moje pytanie dotyczyło niezaimplementowanych funkcji. Zastanawiałem się, jaka była najszybsza (optymalna) ścieżka do nauki. 1) zaimplementuj niezaimplementowane funkcje w tym projekcie, który się powiększa, lub 2) stwórz nową grę, która prawdopodobnie nauczy mnie tych lekcji i nowych.
ODPOWIEDŹ
Wybieram odpowiedź @ ashes999, ponieważ w moim przypadku uważam, że powinienem bardziej dopracować i spróbować „wysłać” grę. Myślę, że wszystkie inne odpowiedzi również należy wziąć pod uwagę, więc jeśli przybyłeś tutaj z tym samym pytaniem, zanim podejmiesz szybką decyzję, przeczytaj całą dyskusję.
Dziękuję wam wszystkim!
źródło
Odpowiedzi:
Całkowicie nie zgadzam się z odpowiedzią Patricka . Jeśli chcesz odnieść sukces jako twórca gier, najważniejszą umiejętnością, której musisz się nauczyć, jest pomysł i dostarczenie kompletnej, dopracowanej gry.
Z czasem zdasz sobie sprawę (co zdałem sobie sprawę po kilku latach), że programowanie to tylko niewielka część twojej gry. To proste, ponieważ jest fajne. Ale trzymanie się tylko programowania pozostawi po sobie ślad niepełnej weryfikacji koncepcji i wersji demonstracyjnych.
Zamiast tego radzę bardzo mocno założyć stronę internetową i blog (Wordpress jest świetny do tego rodzaju rzeczy), dokończyć gry (poczynając od Arkanoid) i wypuścić je na wolność.
Ważne jest również, aby zdać sobie sprawę, że jeśli to zrobisz, będziesz kontrolować, kiedy gra się zakończy. Jeśli chcesz 1000 poziomów z 10 głównymi funkcjami, w porządku. Jeśli chcesz 10 poziomów z 3 głównymi funkcjami, w porządku. (W rzeczywistości częściej polecam mniejsze projekty, ponieważ uczysz się więcej i dużo koncentrujesz na polerowaniu w ten sposób).
Edycja: W odpowiedzi na ludzi, którzy się nie zgadzają, czuję, że muszę to wyjaśnić. Jeśli stworzyłeś grę tylko dla jednego celu / eksperymentu (co robię cały czas), to zdecydowanie , zmniejsz zakres i wyślij ją. Nikt nie powiedział, że Arkanoid potrzebuje 1000 poziomów, aby być dopracowaną grą; po prostu zrób wystarczająco dużo poziomów, aby Twoim zdaniem było fajnie i iść dalej.
Możliwe jest spędzanie lat na grze i nigdy nie wysyłanie. Ale wydaje mi się, że o wiele łatwiej jest wpaść w inną dziurę, polegającą na tworzeniu technicznych demonstracji i prototypów na zawsze. Ponad 10 lat zajęło mi przestanie tego robić.
źródło
Sugerowałbym syntezę dwóch poprzednich odpowiedzi. Zasadniczo zgadzam się, że niezwykle ważne jest nauczenie się, jak wpadać na pomysł i wysłać kompletną, dopracowaną grę. Internet jest zaśmiecony niepełnymi projektami, które ktoś zaczął, a potem się nudził. Umiejętność trzymania się projektu od początku do końca, którą nazywam „umiejętnością końcową”, jest rzadka i cenna, a zdobywa się ją, zmuszając się do jej przećwiczenia.
Jednak nie jesteś jeszcze na tym etapie nauki; Nie polecam robienia tego z pierwszą grą, ale raczej zrób kilka mniejszych gier do nauki przed przystąpieniem do pierwszego pełnego projektu.
(na bok: nigdy tak naprawdę nie zdawałem sobie z tego sprawy, ale teraz, gdy o tym myślę, myślę, że umiejętność wykańczania jest najważniejszą rzeczą, jaką widzę, oddzielając doświadczonych programistów od nowicjuszy)
DODATEK: Myślę, że wiele nieporozumień między odpowiedziami sprowadza się do różnych założeń dotyczących tego, gdzie jest w trakcie procesu. Na przykład, kiedy powiedział: „Skończyłem pierwszą pełną wersję mojego arkanoidalnego klonu”, co może oznaczać wiele różnych rzeczy. W moim przypadku, ponieważ wcześniej powiedział „Przeczytałem również, że powinienem przejść na całą grę (w tym menu, dźwięk, partyturę”), zakładam, że rzeczywiście zaimplementował te rzeczy i pyta, czy powinien iść dalej. w przypadku, gdybym powiedział „nie”, nazwij ten projekt zrobiony i przejdź do następnego.
Jest to jednak tylko moje założenie; tak naprawdę nie powiedział, że to zrobił , tylko to przeczytał. Jeśli tego nie zrobił, powiedziałbym, że nie ruszaj się, dopóki tego nie zrobisz.
źródło
Myślę, że masz dobry pomysł, aby przejść teraz do następnego projektu. Myślę, że to dlatego, że już nauczyłeś się od pierwszego i chcesz zastosować to, czego się nauczyłeś! Gdy spowolnisz naukę podstaw, nadejdzie czas, aby sklonować głębsze funkcje, od których możesz się uczyć.
Pamiętaj, że pracujesz nad umiejętnościami programowania, a nie projektowaniem gier, więc po zakończeniu nauki chcesz mieć możliwość zaprogramowania dowolnego projektu gry.
źródło
Dlaczego nie uczynić klonu „twoim”? Dodaj nowe ciekawe zwroty akcji, które Cię zainteresują.
Zaletą rozpoczęcia „własnego” projektu jest poczucie, że nigdy wcześniej go nie realizowano. Rzeczywistość jest taka, że ktoś prawdopodobnie ma już coś podobnego. O ile nie planujesz wynaleźć nowego gatunku gier, proponuję uczynić te „klony” własnymi.
Przykład: mój kolega z college'u stworzył „klon” ponga. Zrobił to sam, dodał zupełnie nowy rodzaj rozgrywki, w którym ulepszenie pozwalało na prowadzenie słodkiego czołgu przez około 15 sekund i niszczenie jak największej liczby klocków!
Najlepszym sposobem na naukę tworzenia gier (grafika, kod, projektowanie) jest po prostu to zrobić. Na początku możesz nie robić tego dobrze, ale kluczem jest po prostu trzymać się go i pisać więcej kodu, rysować więcej animacji i projektować więcej poziomów !! Moim zdaniem nie ma znaczenia, czy „klonujesz” coś tak długo, jak długo tworzysz coś własnego, rób to, spraw, aby było ciekawe i baw się dobrze!
źródło
Aby odpowiedzieć na twoje pytanie, tak , dopracowanie obecnego projektu będzie lepszym doświadczeniem edukacyjnym niż rozpoczęcie nowego.
1) Musisz nabrać zwyczaju kończenia rzeczy. To samo w sobie stanowi doświadczenie edukacyjne.
2) W zadaniach, które jesteś „zbyt leniwy, by je dodać” (z powodu braku lepszego terminu) może znajdować się mnóstwo lekcji dla twórców gier, z których po prostu się pomijasz.
3) Jeśli znudzi cię Arkanoid, zawsze możesz odłożyć go na bok i na razie popracować nad czymś innym. Nie ma w tym nic złego.
1) Zbyt wiele niedokończonych rzeczy jest złe. Naprawdę nie możesz użyć niedokończonego produktu, aby skutecznie pochwalić się swoimi umiejętnościami.
Dzieje się tak, ponieważ posiadanie szeregu niedokończonych rzeczy jest jak szafa pełna śmieci. Niektóre z nich wydają się przydatne, ale w rzeczywistości wszystko jest bardzo bezużyteczne, a rzeczywistość branży gier jest taka, że niewielu doceni twoje „śmieci” (niedokończone gry).
Niedokończone gry są zbyt powszechne. Ludzie je tam umieszczają i mówią: „ta gra była StreetFighter… teraz możesz poruszać się tam iz powrotem…” . Nie imponujące . Nikt nie widzi w twojej głowie, czym była gra „sapposa”. Widzą to tylko takie, jakie jest, niedokończone.
Niedokończona gra jest jak na wpół upieczona tarta. Niektórzy ludzie mogą to docenić, ale w rzeczywistości smakuje to obrzydliwie, a 20 minut dłużej w piekarniku może sprawić, że to, co już zrobiliście, jest pyszne dla wszystkich.
2) Funkcje, nad którymi unikasz pracy, mogą zawierać bardzo cenne lekcje.
Rzeczy, które przeszkadzasz w ukończeniu:
Funkcje niezaimplementowane:
Niektóre z tych rzeczy możesz pominąć. Na przykład „Bardziej intensywnie używaj wzorców projektowych”. Refaktoryzacja tego typu jest stratą czasu dla projektu zwierzaka, aby go zastosować, wystarczy rozpocząć nowy projekt.
Niektóre z nich są łatwe. Np. Złożone cegły. Niektóre z nich to w rzeczywistości dużo pracy . Wzmocnienia nie są łatwe, wymagają użycia funkcji budowania, takich jak pistolety, pociski, wymagałyby dodania kodu skrzyżowania promieni.
Myślę, że to, co widzisz, to „montaż rusztowania na miejscu było tak łatwe ... i wyglądało na to, że prawie gotowe. Wykończenie byłoby tak dużym nakładem pracy, może równie dobrze się teraz skończyć”. Tak, wzniesienie drewnianej ramy domu jest również „łatwe” i może to być połowa pracy. Płyty gipsowo-kartonowe, elektryczność, hydraulika to „detale”. Ale nie dokończąc domu, nikt nie „kupi” tego, jak wspaniały byłby dom , gdybyś tylko go ukończył.
3) Jeśli jesteś znudzony tym, nad czym pracujesz, nie ma nic złego w rozpoczęciu czegoś innego.
Nie oznacza to śmieci, nad którymi pracujesz, ale nie ma nic złego w spędzeniu miesiąca lub dwóch na myśleniu o innych rzeczach lub rozpoczynaniu nowej gry. Możesz wrócić do Arkanoid ze świeżą perspektywą.
Również ostatni punkt. Oprócz budowania wszystkich oczekiwanych cech Arkanoid, jeszcze bardziej interesujące jest nadanie mu własnego charakteru. Zamiast zatrzymywać się na klonie, powinieneś pójść o krok dalej i wprowadzić innowacje w oryginalnej grze.
źródło
Właściwa odpowiedź naprawdę zależy od tego, co chcesz zrobić dalej. Jeśli przejdziesz do czegoś nowego, możesz ryzykować, że będziesz musiał od nowa rozwiązać te same stare problemy i nie poszerzysz swoich umiejętności, ale możesz przejść do czegoś nowego. Jeśli będziesz kontynuować polerowanie, z krótkiej listy, którą podałeś, będziesz się uczyć przydatnych rzeczy, które zapewnią ci dobrą przyszłość, ale nadal pracujesz nad tą samą starą bazą kodu.
To, co poleciłbym, a jest to czysto osobista opinia, to przejść do czegoś nowego i zapisać na to polski. Jednocześnie spróbuj rozciągnąć się na tym czymś nowym. Więc jeśli obecnie nie korzystasz z interfejsu API 3D, naucz się go i używaj. Jeśli używasz jednego, naucz się drugiego i używaj go. Lub przejdź do bardziej zaawansowanego poziomu na tym, którego używasz. Dołącz lepszy dźwięk, fizykę lub silnik wejściowy od samego początku. Niezależnie od tego, co uważam za ważną rzecz, to trochę wyjść poza swoją obecną strefę komfortu i zdobyć więcej umiejętności i wiedzy, jednocześnie dobrze się przy tym bawiąc.
źródło