Zaraz wyruszam w podróż do tworzenia gier. Po odpowiedziach na moje ostatnie pytanie będę używać C # i XNA.
Jednak nie znam osobiście innych twórców gier i nie pracuję w branży, więc jako taka będzie samoukiem. Wyjątkiem jest oczywiście zadawanie pytań i czytanie informacji online / drukowanych, ale nadal uważałbym to za samouka.
W związku z tym chcę być przygotowany na problemy, które mogę napotkać, ponieważ nie mam kogoś, kto „trzymałby mnie pod swoim skrzydłem”.
Analogicznie, samoucząc się gry na gitarze, grałem akord A-dur w taki sposób, że utrudniałem przejście do akordu, którego nauczyłem się później.
Byłbym wdzięczny za podzielenie się wyciągniętymi doświadczeniami i poradami na temat tego, co może pójść nie tak podczas uczenia się tworzenia gier.
Zdaję sobie sprawę, że popełnianie błędów jest największą częścią uczenia się, ale jeśli wystąpią błędy, mogę się na nie przygotować, wtedy byłbym z tego zadowolony.
Odpowiedzi:
Tworzenie gier przypomina inżynierię strukturalną
Istnieją minimalne wymagania dotyczące funkcjonalności. Minimalne wymagania nie są wyjątkowo trudne i wiele osób może nauczyć się je spełniać. To część funkcji . To mała część. W tym momencie podejmowane są decyzje dotyczące tego, jakiego języka użyć, platformy do opracowania lub jakich bibliotek użyć.
Następna część to duża część. Część formularza . Forma naprawdę odróżnia dobre gry od wspaniałych. To jest część sztuki tworzenia gier. Nie mówię tylko o zasobach sensorycznych (grafika, dźwięk itp.). Mówię o tworzeniu doświadczenia. To jest najtrudniejsza część.
Część funkcji pochodzi z samouczków, bibliotek i trochę czasu. Każdy może to zrobić.
Część formularza pochodzi od ciebie. To pasja sprawiła, że przede wszystkim chcesz tworzyć gry. To tak, jakby opowiadać historię, wymyśloną historię (lub prawdziwą historię, którą upiększasz, dużo). Im więcej opowiadasz historii, tym lepiej. W rozwoju oprogramowania nazywamy to iteracją. Twoja historia to Twój kod. Za pierwszym razem, gdy to powiesz, nie będzie to zbyt dobre. Wszystko będzie nie na miejscu, zdasz sobie sprawę, że ten kawałek powinien tam pójść, a ten tutaj. Przekonasz się, że rzeczy prawdopodobnie będą przebiegać lepiej, jeśli ułożysz je w ten sposób lub rozwiniesz na tym bicie. Tak jak dobra historia, opowiesz ją, ocenisz, jak jest dobra, a następnie zmodyfikujesz. To wymaga poświęcenia, a to wymaga czasu. Nie martw się, jeśli pierwszą rzeczą, którą produkujesz, nie jest złoto. Ja pracowałem długo i ciężko na wielu częściach mojej grze tylko zgrać je później, bo myślał o wielelepszy sposób na zrobienie tego. Nie martw się tym, to część procesu uczenia się. Zawsze uczysz się na własnych błędach i często popełnianie tych błędów prowadzi cię do lepszego sposobu robienia rzeczy.
Więc powinieneś zabrać to:
Internet jest pełen informacji w postach na blogach, samouczkach i podobnych społecznościach. Podsumowując, powiedziałbym, że to całkiem niezłe skrzydło. Zasadniczo zagrożenia nie są poważne. Przez pewien czas możesz robić rzeczy w „zły” lub trudny sposób, ale w końcu się nauczysz. Wygląda na to, że masz duże doświadczenie w programowaniu, więc myślę, że szybko zauważysz część funkcji. Błędy popełniane przy tworzeniu gier i „regularnym” rozwoju często się pokrywają. Twoje doświadczenie pomoże ci uniknąć wielu typowych problemów, jakie napotykają nowi twórcy gier. Myślę, że poradzisz sobie dobrze. Powodzenia.
źródło
Tak, nie mieć nikogo, kto byłby tam wcześniej i powiedziałby ci, co robić, jak to naprawić, itp. Itp. Może być najgorszą rzeczą, jaką zdasz. Ale bez obaw! Nadal możesz czytać DUŻO blogów ludzi, którzy tam byli, dzielą się swoimi doświadczeniami w branży, jak odnieśli sukces, jak zawiodła poprzednia gra i dlaczego, itp.
Dobrymi przykładami są:
I wiele więcej!
Moje ostatnie powiedzenia to: nie bój się. Ja też jestem samoukiem, od 4 lat zapoznałem się z twórcami gier, pojawiło się wiele barier, ale nic, czego nie można rozwiązać w Google i czytaniu niektórych tekstów. Powodzenia w podróży :)
źródło
release
gry nie jest jednak związany tylko z jej rozwojem. W każdym razie to dobra lektura. Linki zamieściłem bardziej jako odniesienie, aby nie śledzić bloga. Jeśli wrócisz do archiwum, istnieje kilka przykładów prototypów i wszystko, co pomogło im w świecie goo i innych „mniej małych” prototypów: DTo podejście. To podejście „nie dotykaj go, dopóki nie będziesz wiedział, jak to zrobić idealnie”. To naprawdę cię powstrzyma.
Widzisz to podejście wśród początkujących programistów wszelkiego rodzaju - nie tylko gier. Strony internetowe również. Hej, strona internetowa to baza danych z interfejsem HTML z jakimś javascript. Poznajesz technologie w dowolny sposób, tworzysz swoją pierwszą witrynę. To nie będzie fantastyczne, ale po zrobieniu rzeczy w sposób nieoptymalny nie jest wielką cholerną sprawą !! Jeśli zrobisz to „daleko” za pierwszym razem, zawsze możesz to zrobić lepiej za drugim razem. Chodzi mi o to, że nie ma niebezpieczeństwa. Może z wyjątkiem tej postawy. Takie podejście powstrzymuje cię przed zrobieniem czegokolwiek, ponieważ zawsze będziesz bał się zadania i powiesz „Jeszcze nie wiem, jak to zrobić”.
Postawa, że istnieje „właściwy sposób” na robienie rzeczy. Nie ma Rzeczy są dokładnie takie, jakie się wydają. Musisz umieścić piksele na ekranie i wydawać dźwięki, gdy coś się wydarzy.
źródło
W zależności od tego, czy chcesz później uczynić to swoim zawodem (zakładam, że myślisz o tym, a to nie jest tylko hobby), oto, co uważam za niezwykle skuteczne:
To zostało powiedziane wcześniej, ale powiem to jeszcze raz - zacznij od małych kawałków, zapoznaj się z silnikiem, strukturą, narzędziem lub programem. Po opanowaniu podstaw -> powiększ się.
To może wydawać się nieco ekstremalne, ale mam na myśli, aby dowiedzieć się jak najwięcej o KAŻDYM aspekcie rozwoju gry - bez względu na to, czy jesteś programistą, artystą czy projektantem. Znajomość rurociągu jest kluczem do budowania rzeczy w najbardziej efektywny sposób. Jeśli wdrażasz broń -> zaprojektuj ją, wymyśl, modeluj, implementuj, koduj! Oczywiście nie musisz być artystą koncepcyjnym, projektantem i kujonem Pipeline - ale powinieneś znać wszystkie narzędzia tego procesu i rozumieć każdy etap tworzenia. Sprawdź także strony z grami, aby uzyskać informacje o nowościach i aktualizacjach w branży - gamasutra.com, kotaku itp. Zawierają świetne artykuły na temat biznesu i techniki. Nie ograniczaj się tylko do jednej dziedziny rozwoju - chłonąć CAŁĄ wiedzę, którą możesz zdobyć :)
Będziesz ssał to, co robisz. Na początku. Zawsze tak jest (wierz mi, wiem.: D), ale będzie tylko lepiej, jeśli będziesz kontynuować i NIGDY nie przestaniesz szukać sposobów na ulepszenie swojej pracy. Internet jest doskonałym źródłem samouczków, referencji i pomocy. Nigdy nie utkniesz naprawdę, więc skorzystaj z najbardziej szalonych pomysłów, ponieść porażkę, uczyć się na błędach i stać się gorszym z tym procesem.
Podczas gdy internet jest doskonałym źródłem, uzyskanie bezpośredniej informacji zwrotnej jest czymś, z czym musisz poradzić sobie ALOT w pracy. Dlatego ważne jest również podnoszenie umiejętności miękkich. Jeśli nie masz jeszcze mentora lub generalnie nie znasz zbyt wielu osób pracujących w branży, powinieneś rozejrzeć się po okolicy w poszukiwaniu niezależnych spotkań, iść na konwencje i sprawdzić inne wydarzenia, w których możesz zacząć budować osobista sieć wiedzy i kontaktów. Pomaga także budować coś z innymi ludźmi - samouk jest świetny, ale tworzenie gier jest grą zespołową, więc sprawdź fora poświęcone projektowi hobbystycznemu - na przykład Epickie Forum dla projektów UDK, forów Unity lub nawet forów CryEngine -wszystkie trzy z tych silników są szeroko rozpowszechnione, jest tam mnóstwo utalentowanych ludzi pracujących nad pobocznymi projektami i „
Myślę, że to prawie cała rada, jaką mogę udzielić. Mam nadzieję, że to ci pomogło :)
źródło
W ogóle nie mam doświadczenia w C # i XNA, ale myślę, że nie popełni mnie to w poniższym stwierdzeniu:
Nauka programowania bez nauczyciela jest całkowicie w porządku. Jeśli kod działa *, tak naprawdę nie ma znaczenia, w jaki sposób został zakodowany. Cóż, tak samo jest w przypadku programowania zespołowego, ale wtedy nie będziesz już sam kodować, prawda? Może także sprawić, że Twój kod będzie mniej czytelny w przyszłości, utrudniając korzystanie ze starych komponentów lub debugowanie nowych błędów, ale na dłuższą metę wszystkie Twoje błędy będą twoimi mocnymi stronami. Najtrudniejszą rzeczą w nauce projektowania OOP i MVC jest zrozumienie, dlaczego powinienem robić to „w ten sposób”. Jeśli masz już doświadczenie w tworzeniu złych programów, poznasz zalety wzorców i wykorzystasz je na swoją korzyść. Jeśli zawsze tworzysz dobre programy, kierując się wzorami, których ktoś cię nauczył, będziesz nadal robić dobre (w sensie poprawnego kodu) programy, ale zamiast korzystać z wzorców będziesz przez nich ograniczony, ponieważ nie zrozumiesz ich wystarczająco, aby wprowadzić przydatne modyfikacje. Ostatecznie najważniejsze jest, aby ćwiczyć, a nie jak, więc w obu przypadkach prędzej czy później otrzymasz dość podobne doświadczenie.
* jedno jest jednak ważne! W przypadku bezpieczeństwa naprawdę powinieneś zapytać kogoś doświadczonego, czy Twój kod jest dobrze wykonany, ponieważ dziury w zabezpieczeniach nie wyskakują ostrzeżenia o błędach.
źródło
Jakoś to świetne pytanie! :-)
Niedawno rozpocząłem swoją działalność gamedev i będzie to drugi raz, więc mogę podzielić się swoimi przemyśleniami. Masz rację, że dobrze jest mieć mentora. Tym mentorem będzie internet. Im więcej informacji jest udostępnianych w Internecie, tym łatwiej będzie ci się uczyć. Właśnie dlatego XNA / C # jest doskonałym wyborem na początek. Jest wielu amatorskich i profesjonalnych niezależnych graczy, którzy dzielą się artykułami oraz w Internecie. Inne rzeczy do wspomnienia:
źródło
Dotyczy to każdej dyscypliny związanej z branżą kreatywną:
Największym niebezpieczeństwem jest próba zbudowania czegoś „zbyt dużego” lub „epickiego” z bramy.
Na przykład, jeśli zaczynasz od tworzenia muzyki, nie zaczynasz od stworzenia 50-godzinnej 2-godzinnej symfonii.
W projektowaniu poziomów objawia się to próbą stworzenia „największej mapy w historii” lub wykorzystaniem systemu gry do zbudowania największej, najbardziej złożonej rzeczy, którą może obsłużyć silnik gry. W programowaniu może to popaść w „samodzielne stworzenie całej gry”, zaczynając od zerowego kodu źródłowego. Naprawdę potrzebujesz dużego doświadczenia i dyscypliny, aby zacząć od źródła zerowego, a nawet wtedy jest to niezwykle trudne, a podejmowanie decyzji projektowych nad wszystkim jest trudne przez cały czas, gdy opracowujesz projekt wszystkiego. Nawet uproszczona gra wymaga obecnie dość dużej ilości programowania w nowoczesnym systemie operacyjnym i języku. Również jeśli zaczniesz od kogoś innego, możesz dowiedzieć się, co działa, a co nie działa tak dobrze, więc praca z tak dużą liczbą silników, jak to możliwe, jest również ogromnym plusem.
Na początek polecam coś w rodzaju następujących planów:
Najlepiej jest wziąć istniejący gotowy silnik (albo modyfikowalny, albo inny open source) i zacząć hakować go, i zrobić to kilka razy na kilku różnych silnikach, aż znajdziesz taki, który ci się spodoba.
źródło