Zapytałem o to wcześniej w tym wątku na stackoverflow.com. Jeden z pierwszych komentarzy przekierował mnie tutaj na gamedev.stackexchange.com, więc przesyłam ponownie.
W poszukiwaniu powiązanych pytań znalazłem wiele bardzo szczegółowych pytań, ale obawiam się, że szczegóły okazały się dla mnie bezowocne i po 4 godzinach w Google nie jestem bliżej niż zacząłem, więc czułem, że kontakt ze społecznością może być w porządku.
Po pierwsze, mój cel: nigdy wcześniej nie grałem, chociaż kilka razy zastanawiałem się nad tą możliwością. Postanowiłem w końcu usiąść i zacząć uczyć się kodować gry, korzystać z silników gier itp. Wszystko po to, aby pewnego dnia (mam nadzieję, że wkrótce) będę mógł tworzyć funkcjonalne (choć proste) gry. Mogę zacząć dodawać złożoność później, na razie byłbym zadowolony, gdyby kamera sterowana za pomocą klawiatury poruszała się w świecie 3D bez żadnych interakcji poza tym.
Moje doświadczenie: pracowałem w kilku językach programowania, od PHP do C ++, Java i ASM. Nie obawiam się żadnych wyzwań związanych z nauką nowej składni lub ograniczeń związanych z nowym językiem. Całe moje dotychczasowe doświadczenie w programowaniu było jednak całkowicie graficzne i zwykle z niewielką lub bardzo prostą interakcją podczas wykonywania. Stworzyłem rozbudowane i genialne algorytmy do rozwiązywania problemów logicznych i matematycznych, a także problemów graficznych. Jednak w każdym przypadku dane wejściowe zostały zdefiniowane w pliku, przekazane z formularza HTML lub wpisane do konsoli. Interakcja w czasie rzeczywistym z użytkownikiem to coś, z czym nie mam doświadczenia.
Moje pytanie: od czego powinienem zacząć tworzyć gry? Jeszcze lepiej - od czego powinienem zacząć od stworzenia środowiska 3D, w którym można sterować za pomocą klawiatury? Podczas wyszukiwania online znalazłem kilka zasobów powiązanych z silnikami gier, silnikami graficznymi i silnikami fizyki. Oto krótkie podsumowanie moich doświadczeń z kilkoma silnikami, które wypróbowałem:
Unreal SDK: filmy instruktażowe zakładają, że masz już dogłębną wiedzę na temat modelowania 3D, silników graficznych, animacji itp. Strona „Pierwsze kroki” nie zawiera formalnych wyjaśnień dotyczących rozwoju gry, ale przeskakuje o tym, jak Unreal może usprawnić procesy, które zakłada. są już zaznajomieni z. Po pobraniu zestawu SDK i uruchomieniu go, aby sprawdzić, czy narzędzia były tak intuicyjne, jak twierdzili, przywitano mnie około 60 przyciskami i pustą pustką dla mojego modelowania 3D. Klikając „dodaj objętość” (aby spróbować dodać podstawową kostkę), zobaczyłem menu z 30 opcjami. Panikując, zamknąłem edytor.
Crystal Space: Witryna wydawała się raczej informacyjna, wyjaśniając, że Crystal Space służyła tylko grafice, a oprogramowanie towarzyszące, CEL, zapewniało logikę bytu do tworzenia gier. Udostępniono grę demo, która została zbudowana przy użyciu „CELStart”, ich prostego narzędzia dla osób nie posiadających wiedzy na temat programowania gier. Uruchomiłem grę, aby zobaczyć, czego mogę się spodziewać. Kilka razy zamarł, menu były błędne, były tysiące błędów graficznych, wrogowie nie reagowali na obrażenia, a kiedy zamknąłem grę, to się zamknęło. Zrezygnowałem z tego silnika.
IrrLicht: Samouczek zakłada, że mam program Visual Studio 6.0 (mam program Visual Studio 2010). Postępując zgodnie z ich instrukcjami, nie byłem w stanie poprawnie zaimportować biblioteki do Visual Studio i nie mogłem wywołać żadnej z funkcji, z których nadal korzystały. Ręczne kopiowanie plików nagłówków, plików klas i bibliotek DLL do folderu mojego projektu - projekt nie został poprawnie skompilowany.
Najwyraźniej nie mam dobrego startu i chodzę w kółko. Czy ktoś może skierować mnie we właściwym kierunku? Czy powinienem zacząć od pobrania programu takiego jak Blender i uczenia się modelowania 3D, czy też powinienem nauczyć się obsługi silnika graficznego? Czy powinienem szukać kompleksowego silnika gry, czy może lepiej jest wypróbować własną logikę gry? Jeśli ktoś stworzył własne gry, wolałbym usłyszeć, jak to się zaczęło.
Również uczęszczanie na zajęcia w mojej szkole nie jest opcją. Nic nie jest oferowane.