Mój syn (15) zdecydował, że chce kontynuować karierę jako programista gier. Powiedziałem, że powinien zacząć od prostej gry. Nie ma jeszcze doświadczenia w programowaniu, ale jestem programistą (aplikacje biznesowe, nie gry), więc mogę nauczyć go programowania, ale jaka byłaby dla niego dobra platforma? Początkowo szukam czegoś, co może zapewnić szybkie rezultaty, aby podtrzymać jego entuzjazm.
Co byś zasugerował?
Odpowiedzi:
XNA to dobre rozwiązanie dla dość pewnego programisty. Byłoby dobrym celem do osiągnięcia w przyszłości.
Zestaw Unreal Development Kit to sposób na uzyskanie wyników znacznie szybciej i łatwiej, i może być dobrym miejscem do rozpoczęcia. Komentarze wskazują, że UDK jest naprawdę złą alternatywą, więc nie mogę tego polecić.
Jedność jest alternatywą, będzie działać na telefonach, czego UDK nie może zrobić (o ile wiem). Więc jeśli zajmuje się programowaniem gier na telefony, być może jedność byłaby lepsza?
źródło
Mam również 15 lat, więc myślę, że to może pomóc? : P
Niedawno zacząłem uczyć się języka Python (od około roku pracuję w C ++) i znacznie łatwiej jest mi się uczyć niż C ++. Jest dużo mniej pułapek i potrzebujesz małego kodu, aby dostać coś na ekranie - to, co znajduję, sprawia, że chcesz kontynuować.
Są też opakowania takie jak Pygame i Pyglet nad SDL / OpenGL po stronie graficznej.
Zanim zacznie tworzyć proste gry, radzę uczyć się języka przez co najmniej kilka miesięcy. (Oczywiście gry tekstowe, takie jak zgadywanie numeru i kata, są w tym czasie dobrymi ćwiczeniami)
źródło
Trochę niekonwencjonalna odpowiedź tutaj:
Edytor Galaxy Starcraft II.
W Starcraft 2 możesz stworzyć prawie każdą grę.
Uczy również większości konstrukcji programistycznych, takich jak pętle i instrukcje if w sposób zorientowany na GUI.
Gdy będzie już pewny podstaw, możesz poprosić go o skrypty.
Jeśli jest w tym dobry i uzna to za interesujące, pokocha odpowiednie programowanie gier.
źródło
Z grubsza podzieliłbym narzędzia do tworzenia gier na trzy szerokie kategorie:
Osobom bez doświadczenia w programowaniu zazwyczaj radzę zacząć od pierwszej kategorii, żeby zacząć robić COŚ. Kiedy czują się dobrze z danym narzędziem autorskim, ale naprawdę czują, że ograniczenia przeważają nad korzyściami, nadszedł czas, aby nauczyć się czegoś w następnej kategorii.
źródło
Wiem, że to trochę mnie umawi, ale dorastanie bardzo mi się podobało P-Robots . Istnieje naprawdę prosty cel (pokonanie innych robotów), prosty interfejs API i krótki czas między zmianami w kodzie a wyświetleniem wyników. Wpisuje się w sztuczną inteligencję, wzorce projektowe, a nawet strukturę kodu na większą skalę (niektóre z tych robotów mogą stać się dość duże - a co z udostępnianiem kodu między robotami?). Jeśli możesz znaleźć coś podobnego, ale nowszego, byłby to dobry sposób na uzyskanie części „rozpoczęcie programowania”. Propozycje:
Gdy to zrobisz, zastanów się nad wybraniem naprawdę prostej strzelanki 2D, platformówki lub podobnej gry w stylu arkadowym - możesz użyć SDL lub XNA lub czegoś, co jest najbardziej znane. Nawet uruchomienie w nich klonu ponga nie jest całkowicie trywialne. Daje to małe echo tego, jak to jest budować coś „od podstaw”.
Następnie zbadaj: modyfikację istniejącej gry 3d (nowy obiekt, bot lub coś takiego), aby uzyskać wgląd w większe silniki.
Klucze, z tego co widziałem, wydają się być:
źródło
Radzę tworzyć gry internetowe. Czemu? Po pierwsze, JavaScript jest pięknym językiem, który nauczy go wszystkich podstawowych pojęć związanych z programowaniem i naprawdę możesz stworzyć z niego świetną, kompetentną i wieloplatformową grę. Zakwalifikuje go także do wielu innych rzeczy niż tworzenie gier ... Jeśli z jakiegoś powodu nie chcesz, aby twój syn zajął się tworzeniem stron internetowych, sugeruję użycie Pythona z modułem o nazwie PyGame. Mam z tym także doświadczenie i jestem niesamowity. Co ja nie sugerować się wychodząc z C / C ++, to co zrobiłem i to jest okropne i może się mu motywacji do programowania w ogóle.
Z drugiej strony, prawdopodobnie jesteś niesamowitym ojcem, gratulacje!
źródło
Mindstorms Roboter są naprawdę fajni. Mamy trochę NXT w szkole, aw zeszłym tygodniu zaczęliśmy programować takie rzeczy jak przestrzeganie linii i tym podobne. Możesz łatwo uzyskać wyniki.
Znalazłem też www.3dgamestudio.de jakiś czas temu. Nie wciągnąłem się w to, ale to było naprawdę interesujące. Możesz programować za pomocą lite-C, który jest:
Na http://tutorial.3dgamestudio.net/ można się do niego dostać. Są też edytor poziomów, modeli i terenu.
ps: Mam 16 lat i zacząłem od znajomego, który programuje stronę internetową i dostosowuje zaprogramowany serwer gier. To może być dla niego również interesujące.
źródło
Nie mogę tego wystarczająco zasugerować, ale buduję własne poziomy dla swojej ulubionej gry .
Osoby o tym wieku / poziomie umiejętności powinny zacząć od budowania poziomów w ulubionym silniku gry .
Wiele świetnych gier jest wyposażonych w edytor poziomów, który pozwala na wiele stopni swobody.
RPG : seria zestawów elektronów Obsidian NWN 2 , Elder Scrolls
Edytor poziomów RTS : Warcraft III jest fantastycznym edytorem RTS, a nawet wyodrębnił własną grę ( League of Legends i Heroes of Newerth ).
FPS : Hammer na okres półtrwania 2. Counterstrike był pierwotnie modem na okres półtrwania.
Zacznij tutaj . Budowanie poziomów dla Twojej ulubionej gry jest prawdopodobnie najlepszym miejscem do rozpoczęcia.
źródło
Chociaż wszystkie informacje tutaj są pomocne, chciałem wspomnieć, że STEM Challenge (krajowy konkurs gier promowany przez Biały Dom i ESA) ma pewne sugestie dotyczące platform http://www.stemchallenge.org/about/Default.aspx
Gamestar Mechanic, Gamemaker, Kodu, Scratch, PBS KIDS Ready to Learn Stream
Mam wrażenie, że istnieją zasoby społeczności na temat tych platform, szczególnie w odniesieniu do STEM.
Zobacz także ten doskonały samouczek na temat python i pygame (który jest także książką online) http://inventwithpython.com/chapters/ tutaj znajduje się plik PDF kontynuacji książki o pygame http://inventwithpython.com/blog/making -games-with-python-pygame /
Oto kolejny artykuł NYT http://www.nytimes.com/2011/11/10/technology/personaltech/computer-programming-for-children-minus-cryptic-syntax.html?_r=2&sq=mitchel+resnick&st=cse&adxnnl= 1 i scp = 1 i adxnnlx = 1322489239-tMp1Wjl9FUcI8rLaJ6cbOw
Aktualizacja: oto dyskusja slashdot http://ask.slashdot.org/story/11/12/27/152228/ask-slashdot-tools-for-teaching-high-school-kids-how-to-make-games
źródło
Game Maker to doskonały wybór dla osób bez doświadczenia w programowaniu. Ma darmową wersję i stosunkowo tanią wersję płatną. Umożliwia szybkie tworzenie gier z interfejsem „przeciągnij i upuść”, ale zawiera obsługę bardziej zaawansowanych skryptów.
źródło
Jak wspomniał Martin, UDK jest prawdopodobnie najszybszym sposobem, aby coś działało, ponieważ ma tyle gotowych rzeczy, takich jak sztuczna inteligencja, modele, a także bogactwo książek. Ma bardzo dobry edytor map, a językiem jest Java-esque (i podobny do skryptu ECMA).
Alternatywą może być wypróbowanie gier we Flashu lub Silverlight - zacznij od prostych gier 2D. Jakikolwiek gatunek gier lubi, dyktuje zestaw narzędzi.
źródło
Ta rada, pochodząca od 14-latka, może być przydatna. Uważam, że najlepszym sposobem na wybór platformy jest platforma najlepiej dostosowana do tego celu. Pisałem ten post wiele razy wcześniej.
Od Reddit -
Spójrz na gry takie jak Minecraft. Na pewno napisany w Javie, języku, który ma bardzo mały udział w rynku w branży deweloperów gier. Czy to jednak obchodzi konsumentów? Nie. Dbają o funkcjonalność.
Ponieważ jednak twój syn nie ma żadnego doświadczenia w programowaniu, sugeruję naukę języka, który szybko koduje, takiego jak Python, lub korzystanie z istniejącej platformy, takiej jak XNA. Osobiście uwielbiam Slick2D z Javą, ale myślę, że to moja preferencja ...
źródło
Zostałem wprowadzony do programowania w młodym wieku (poniżej 15 lat), a mój tata postanowił użyć VB (1.0). Zrobiliśmy skręconą wersję ponga, używając obiektu timera i rysunku GDI. Podobało mi się to, ponieważ zaczynaliśmy od pustego płótna i mogliśmy nauczyć się podstaw struktur programistycznych, próbując jednocześnie zrobić coś fajnego.
Dzisiaj myślę, że wybrałbym XNA i wybrałbym prostą grę 2D. C # i XNA są dość proste i dają ci dużo miejsca na rozwój i są bezpłatne.
źródło
Jeśli po prostu chce tworzyć gry, powinien używać XNA, Unreal, Unity itp. Jeśli chce być programistą gier, powinien najpierw nauczyć się C / C ++ i OpenGL / SDL lub D3D.
XNA, Unreal, Unity itp. Są świetne do tworzenia gier, ale naprawdę źle robią dla ciebie zdecydowanie za dużo. Jestem pewien, że ludzie się ze mną nie zgodzą, ale w zasadzie zmieniają cię w leniwego programistę, a kiedy przyjdzie czas na naukę takich rzeczy jak punkty w C ++, będzie trudniej, ponieważ najpierw wybrałeś łatwiejsze opcje.
Peronalnie nigdy nie sugeruję niczego innego C / C ++ jako pierwszego języka do nauki, jeśli chcesz zostać programistą gier. Głównym powodem jest to, że nawet jeśli będziesz uczyć się języka C # / XNA, jeśli poważnie myślisz o zostaniu programistą gier, na pewnym etapie będziesz musiał znać C lub C ++, ponieważ nikt nie zatrudni cię inaczej. Więc jeśli poważnie podchodzą do zawodu, to opóźniasz naukę tego, czego się od ciebie oczekuje.
źródło