Zwykle za każdym razem, gdy chcę rozpocząć grę, pomyślę o dobrej podstawowej architekturze do renderowania i lepszej pętli gry od zera. Zwykle nie chcę używać istniejących silników. Powodem tego jest to, że chcę go wdrożyć samodzielnie, aby się czegoś nauczyć.
Ale wiele blogów i deweloperów twierdzi, że nie jest to dobra opcja, aby ponownie wynaleźć koło.
Czy coś brakuje?
architecture
Ayyappa
źródło
źródło
Odpowiedzi:
Nie, to wcale nie jest takie złe. Uczenie się i umiejętność uczenia się są absolutnie fundamentalne dla bycia dobrym programistą.
ALE
Ważną rzeczą przy budowaniu czegoś od zera jest ukończenie go do końca. Nie ma znaczenia, jak hackerski i niezoptymalizowany jest, jeśli go ukończysz, poczujesz satysfakcję jak nikt inny. Wszystko to zapewni Ci cenne doświadczenie i zawsze możesz uczynić kod bardziej eleganckim lub działać lepiej później, gdy masz coś funkcjonalnego. Ostatecznie jedynymi rzeczami, które oddzielają wspaniałych programistów od miernych, są doświadczenie i praktyka.
Oczywiście, gdy masz już coś do zrobienia i chcesz stworzyć kolejne gry, nie ma powodu, aby ponownie używać starej bazy kodu.
Jeśli chcesz rozpocząć karierę w tworzeniu gier lub naprawdę w jakikolwiek sposób, doświadczenie zabierze Cię bardzo, bardzo daleko. Ale jeśli chcesz szybko i łatwo rezygnować z gier (stosunkowo łatwo, w porównaniu do pisania własnych rzeczy), użyj istniejącego silnika.
Szczerze mówiąc, połączenie doświadczenia w korzystaniu z własnego kodu ORAZ korzystania z różnych bibliotek i silników sprawi, że będziesz znacznie lepszym programistą.
źródło
To chyba najważniejsza rzecz. Jeśli Twoim celem jest nauka, pisanie od podstaw własnych silników renderowania i pętli do gier jest w porządku i zapewnia doskonałą naukę. Jeśli Twoim celem jest szybkie i łatwe ukończenie gry, użyj istniejącej struktury.
źródło
Nowe odkrywanie koła uczy, jak działają koła.
źródło
Zależy od tego, czego szukasz. Jeśli chcesz się uczyć, wymyśl na nowo tyle kół, ile chcesz. Znam ludzi, którzy napisali własne JVM lub programy ładujące PNG.
Większość blogów prawdopodobnie udziela porad na temat tego, jak szybko dostać pieniądze, ale nie wiem, czy to dobra strategia długoterminowa. Jeśli nie wiesz, z czym się bawisz, skąd wiesz, czy to dobry wybór? Co zrobisz, gdy napotkasz problemy, zaczniesz narzekać na forach lub sam to wymyślisz?
źródło
Jest dużo zniechęcenia tym zwrotem w ogólnej społeczności programistów, ale myślę, że wszyscy wiemy, że wielu z nas nie lubi niczego więcej niż odkrywanie koła i znalezienie sposobu, aby obrócić go trochę lepiej, szybciej i chłodniej.
Cały czas pojawiają się nowe technologie, które wymagają od ludzi wynalezienia nowego koła. Dobrym przykładem są OpenCL i inne języki obliczeniowe GPU.
Możesz skorzystać z frameworka, który obejmował tegoroczne nowe możliwości, ale robiąc to sam, jeśli naprawdę przeprowadzisz badania i wprowadzisz ulepszenia w tym, co już istnieje, .. możesz naprawdę wypróbować nowy grunt pod względem wydajności i użyteczności.
Kiedy już wymyśliłeś kilka kół, abyś mógł się toczyć, znasz swoje rzeczy całkiem dobrze, a to duży bonus!
A do tego cholernie dobra zabawa.
źródło
Są też tacy, którzy twierdzą, że są bardziej produktywni właśnie dlatego, że ponownie wynaleźli koło.
Przykład: Eskil Steenberg, twórca World of Love (doskonałe wideo, w którym opowiada o swojej grze, silniku i niesamowitych narzędziach oraz swojej filozofii: http://vimeo.com/18423305 )
źródło
Jeśli jest to twój pierwszy raz, nawet dla nauki, lepiej jest użyć jakiegoś silnika, ponieważ dowiesz się, co silnik może ci zapewnić.
„Koło” użyte w metaforze jest koncepcją, a nie implementacją. Nawet jeśli nie wymyślisz koła na nowo, nadal musisz wybrać, czy je kupisz, czy zrobisz samodzielnie. Dlatego też stworzenie własnego silnika nawet nie wymyśla na nowo koła, po prostu chcesz stworzyć własne koło do jakiegoś celu, na przykład do nauki, taniego, małego rozmiaru lub do konkretnego zastosowania lub wymagań.
źródło
Chodzi o to, że dużo czasu zajmuje gra, tworzenie i testowanie zawartości, zasobów, a nie pisanie kodu. Prawdopodobnie dlatego łatwo jest pominąć tę część i użyć istniejącego silnika, aby móc poświęcić więcej czasu na zawartość, projektowanie gry i błędy na wyższym poziomie.
Myślę, że robienie rzeczy od zera, aby się uczyć, zapewni dobre wyczucie pracy za istniejącymi silnikami i poprawi możliwość późniejszego wyboru w razie potrzeby.
Dla zabawy i nauki rób wszystko, co chcesz. Gdybym musiał pisać klasy potoków treści od zera, zajmując się wszystkimi irytującymi szczegółami i przypadkami brzegowymi systemu plików i programów ładujących zasoby, oszalałbym - tak długo, jak nauczyłem się wystarczająco, aby naprawdę dobrze zrozumieć, jak to zrobić, Staram się unikać robienia tego, jeśli ktoś już to zrobił dobrze (choć to prawda, wiele frameworków i silników nie pasuje do mojego własnego pomysłu „dobrego”, co mogłoby spowodować przepisanie czegoś). Jeśli nie wiem, jak to zrobić, naprawdę lubię to robić co najmniej raz, tylko po to, aby uchwycić najdrobniejsze szczegóły tego, co to jest - jak już powiedział Ray Dey.
źródło
To tylko błąd, jeśli nie masz czasu na naukę. Jeśli masz czas, idź. Jeśli nie, to nie rób tego.
źródło