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!