Od czego zacząć tworzenie gier? [Zamknięte]

65

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.

stevendesu
źródło
3
+1 Dobre tło programistyczne do konkretnych potrzeb.
Will Marcouiller,
6
+1, to dobrze przemyślane i zbadane pytanie, jak rozpocząć tworzenie gry. Czuję też twój ból związany z Unreal SDK.
James
Polecam sprawdzenie samouczków Raven67854 dotyczących UDK. Są wymienione pod filmami, ludzie je lubią.
Jesse Dorsey
Moja rada to po prostu zacząć coś robić. Zwykle ludzie, którzy zadawali tego rodzaju pytania, chcą utorować sobie drogę liniową (bo kiedyś zadaję to samo pytanie). Jednak z mojego dotychczasowego doświadczenia, krzywa uczenia się tworzenia gier jest krzywą nieliniową. Zwykle przechodzę od problemu do problemu --- jeśli utknąłem, wtedy pytam / szukam odpowiedzi. Dlatego po prostu wypróbuj różne rzeczy, ucz się na zasadzie prób i błędów. Zwykle zaczynam od samouczków. Jednak te samouczki nigdy nie zawierają wystarczających szczegółów, więc muszę poprosić / wyszukać / eksperymentować o odpowiedzi.
user1542

Odpowiedzi:

38

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 Studiozająć się tworzeniem gier. Następnie przejdź do tego, co chcesz osiągnąć jako wiedzy / technologii. XNAnauczył 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ć.

  1. Od czego zacząć pisać gry, jakieś samouczki lub tym podobne?
  2. Jakie są podstawy tworzenia gier? (Interesujące pytanie, IMHO)
  3. Oddzielanie fizyki i logiki gry od kodu interfejsu użytkownika
  4. Przenoszenie mojego duszka w XNA za pomocą klas

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. =)

Will Marcouiller
źródło
1
Przepraszam za opóźnioną odpowiedź =) Czytałem każdy z postów, do których mnie przekierowałeś (również jeden z postów powiązany ze stroną MSDN na temat tworzenia gier 3D za pomocą XNA, który mnie zainteresował, ponieważ strona silnika gry XNA początkowo wyglądała tak był przeznaczony wyłącznie do gier 2D). Zdecydowanie uważam, że to dobry punkt wyjścia. Dziękuję Ci. Mam pobrać XNA dziś wieczorem i idę spać, a mam nadzieję, że jutro mogę spróbować zrobić Ponga lub coś takiego.
stevendesu,
@Steven: Nie ma problemu! Opublikowałem tę odpowiedź, aby pomóc entuzjastom programowania, takim jak ja, który poprosił o wskazówki! Mam nadzieję, że Ci się spodoba! Moim pierwszym i wciąż wyzwaniem jest opracowanie prostej gry podobnej do Arkanoid, w której muszę pracować nad wykrywaniem kolizji, jednocześnie pisząc moje zajęcia dla każdego statku kosmicznego, kuli energii i cegły. Następnie moja Game1klasa 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.
Will Marcouiller,
Być może wkrótce zadam kolejne pytanie (jutro) xx Pobrałem XNA Game Studio 4.0, zainstalowałem go ... I nie było oczywistych instrukcji, co robić dalej. Cała oficjalna strona internetowa XNA mówi po prostu „twórz gry dla Windows Phone 7” - nic o tworzeniu gier dla Windows. Rozpracuję to rano lub zapytam, czy nie mogę. Czas na łóżko =)
stevendesu
1
Utwórz nowy projekt za pomocą programu Visual Studio, a następnie wybierz XNA, gdzie możesz wybrać typ projektu. Następnie zacznij tworzyć gry dla systemu Windows! Twój szablon projektu gry XNA (nowy projekt) będzie się kompilował i działał w systemie Windows natywnie. XNA to biblioteka Microsoft do tworzenia gier, dlatego możesz tworzyć gry dla systemu Windows i XBox.
Will Marcouiller
1
Ze względu na przyszłość warto zauważyć, że XNA jest zasadniczo przestarzałe, ale Monogame żyje dalej. W większości przypadków ten sam kod będzie działał.
Mag
8

Możesz spróbować Unity 3D , ponieważ

  • można go zaprogramować w JavaScript, C # lub Boo
  • ma dobre samouczek nad tutaj
  • jego krzywa uczenia się nie jest tak stroma
  • odpowiedzi Unity , w których znajdziesz jeszcze więcej zasobów.

(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ę. ;)

xeophin
źródło
3
Co jest w tym niewłaściwego?
lathomas64
Też jestem ciekawa.
Jesse Dorsey
Może fakt, że (jak Flash lub Java) wymaga uruchomienia programu kontenerowego, więc uważa, że ​​jest to „niewłaściwe”, ponieważ nie można go po prostu skompilować i rozprowadzić wśród masowej publiczności bez żadnych problemów? Tak czy inaczej, teraz szukam XNA. Mogę sprawdzić Unity3D, jeśli XNA okaże się zbyt trudny.
stevendesu,
Cóż, słyszałem ludzi mówiących, że dla „właściwego” projektowania gry Unity nie należy traktować poważnie. Jak powiedziano wcześniej - używam go sam i jestem z tego całkiem zadowolony. W niektórych przypadkach Unity po prostu sprawia, że ​​wszystko jest podejrzanie łatwe, chyba…;) Po prostu się zabezpieczałem, ponieważ nie wiedziałem, jak ludzie zareagowaliby tutaj, wspominając o Unity. Może to spowodowało głosowanie?
xeophin
@steven_desu: Właściwie potrzebujesz tylko programu kontenerowego dla webplayera. Gry skompilowane do uruchamiania w systemie Windows lub Mac są całkowicie samodzielne.
xeophin,
2

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!

żart
źródło
2

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.

Brian
źródło
Samouczki są warte przeczytania, nawet jeśli nie używasz silnika. Istnieją również ładne samouczki na temat matematyki 3D.
DMan
2

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.

użytkownik9471
źródło
1

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.

użytkownik5877
źródło
1

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.

Triang3l
źródło
1

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ć.

NetSquirrel
źródło