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.
Odpowiedzi:
Zadałem takie pytanie, kiedy dołączyłem do GD. Oto kilka linków, które mogą Cię zainteresować i mam nadzieję, że poprowadzą cię do twojego celu.
Krótko mówiąc, chciałbym
XNA Game Studio
zająć się tworzeniem gier. Następnie przejdź do tego, co chcesz osiągnąć jako wiedzy / technologii.XNA
nauczył mnie pracy z duszkami i pozwolił mi wykorzystać część mojej wiedzy od samego początku mojej krzywej uczenia się, dzięki czemu byłem w stanie uzyskać wystarczającą szybkość, aby zrozumieć, w jaki sposób powinienem zaprojektować swoją grę do korzystania z klas podczas pracy z zastrzyk uzależnienia i tak dalej. Więc każę ci już nie czekać.Dlaczego zapytasz XNA? Po prostu ze względu na twoje środowisko Java. XNA używa C #, który jest podobny do Java na wiele różnych sposobów, a także jest prostym w użyciu frameworkiem, który abstrahuje od Game Loop i innych rzeczy, abyś mógł skoncentrować się na tym, co ważne.
Naprawdę mam nadzieję, że dzięki temu zaczniesz. =)
źródło
Game1
klasa jest używana jako kontroler gier, który moim zdaniem jest klasą, która będzie kontrolować i mówić innym klasom, co ma robić, itp. Wyjaśniam trochę ten aspekt link nr 4 i nr 5.Możesz spróbować Unity 3D , ponieważ
(Oświadczenie: Nie jestem w żaden sposób związany z twórcami Unity, po prostu korzystam z niego sam i uważam, że jest to świetne narzędzie do nauki podstaw).
Ale tak - ustawiłeś się na całkiem niezłe zadanie. Jestem teraz w szóstym semestrze, studiując projektowanie gier i nadal nie czuję się, jakbym podrapał bardziej niż powierzchnią. Nic dziwnego, że w branży znajdują się specjaliści w prawie każdym aspekcie procesu tworzenia gry.
Edycja: Pojawił się komentarz o tym, że Unity nie jest postrzegane jako „właściwy” silnik gry, co może być źle zrozumiane, gdy to mówię - dlatego pojawiają się poniższe komentarze. Wręcz przeciwnie, nie miałem zamiaru sugerować, że Unity nie może zostać wykorzystane do właściwego projektowania gier. Sam go używam i podoba mi się. ;)
źródło
Cóż, jeśli miałeś problemy z irlicht, powinieneś także wypróbować Ogre3D; to nie jest łatwiejsze, ale może działać lepiej, jeśli poświęcisz temu trochę czasu. Ważną rzeczą, którą musisz zrozumieć, jest to, co jest framelistener, jak uzyskać czas od wyświetlenia ostatniej klatki, i to właściwie jedyna rzecz, którą musisz zrozumieć, jeśli chcesz stworzyć tę aplikację, o której mówisz.
Miałem również pewne trudności z irllicht, samouczki nie są zbyt aktualne, ale powinieneś był wypróbować próbki!
Na początku też dużo biegałem w kółko, bawiąc się panda3d i innymi rzeczami, takimi jak pygame itp. Postaraj się skupić na pewnym pomyśle i wdrażaj jedną rzecz na raz.
I spróbuj zapamiętać matematykę matematyczną, która będzie miała zastosowanie w 3D!
źródło
Niedawno rozpocząłem ten sam pościg jak ty. Wpadłem na czysty silnik Java o nazwie jMonkeyEngine, który poprowadził mnie przez fantastyczny zestaw samouczków. Nie wiem, czy to naprawdę tłumaczy projektowanie gier w ogromnym stopniu, ale pomaga zacząć graficznie.
Sugeruje / łączy do narzędzi, których możesz użyć do modelowania, i zawiera dobrze opisane przykłady kopiowania i wklejania, które przeprowadzą Cię przez umieszczenie pola na ekranie w celu skonfigurowania silnika fizyki.
Zdecydowanie warte przeczytania - miałem dobre pojęcie o tym, co robiłem już po kilku godzinach.
źródło
Naprawdę powinieneś spróbować Flixel http://flixel.org/ Zrobiłem moją pierwszą grę „demo” używając flixel. Fajna społeczność, fajne samouczki.
To nie jest 3D, ale ma wiele ciekawych funkcji, które ułatwiają pierwsze kroki w środowisku programowania gier.
Takie, że: Wyświetl tysiące ruchomych obiektów
Podstawowe kolizje między obiektami Prosto pogrupuj
obiekty
Łatwo generuj i
emituj cząstki Twórz poziomy gier za pomocą mapowania
ekranu Wyświetlanie tekstu, zapisywanie gier, przewijanie Wprowadzanie
myszy i klawiatury
Narzędzia matematyczne i kolorowe
I jest darmowy do użytku komercyjnego, co jest niesamowite.
źródło
Jeśli w ogóle nie pracowałeś z grafiką. Przed rozpoczęciem nauki open gl lub direct x to początek. Tak zaprogramowałem swoją pierwszą grę. Silniki naszej firmy znajdują się w domu, a większość systemów w jakiejś formie obsługuje open gl. Nauczyłem się podczas pracy, przeglądając kod napisany przed rozpoczęciem pracy. Możesz rzucić okiem na niektóre projekty typu open source, aby zobaczyć, jak konfigurowana jest struktura gry i zacząć je modyfikować, dopóki nie poczujesz się komfortowo, gdy zaczniesz tworzyć własne. Sugeruję również, że „Kodowanie gier zakończone” jest doskonałym odniesieniem do wszystkich drobnych elementów programowania gier, o których nie zdajesz sobie sprawy, takich jak odpowiednia struktura plików i zarządzanie zasobami.
źródło
Wypróbuj Source Engine . Łatwo jest tworzyć na nim gry. Możesz zdobyć platformę dystrybucji (Steam) i sprzedawać swoją grę za darmo, jeśli podpiszesz umowę z Valve Corportaion.
źródło
Polecam zacząć od gier flashowych, ponieważ naprawdę masz wszystko, czego potrzebujesz w jednym pakiecie, aby tworzyć proste gry. Istnieje mnóstwo blogów z instrukcjami, na przykład Emanuele Feronato . Ma nawet książkę z 10 kompletnymi grami.
Korzystam z FlashDevelop, który jest wystarczający do programowania.
Chrisa Moellera „Creating asteroids Flash Game” to doskonały przykład, z kompletnym podejściem krok po kroku z wykorzystaniem flashowania.
W przypadku gier opartych na kafelkach Ironcoding oferuje doskonały samouczek .
Uzbrojony w to wszystko, zalecam znaleźć miejsce, w którym istnieje wyzwanie dla gier wideo, ze społecznością ludzi tworzących gry. Zbuduj jedną grę wideo miesięcznie, koncentrując się na czymś małym, co możesz ukończyć, dopracować i zaprezentować przed przystąpieniem do następnego projektu. Mam udział w miesięcznym gier wideo wyzwanie tutaj .
Zachowaj mały rozmiar, abyś mógł go ukończyć i zwolnić.
źródło