Яка хороша стартова платформа для підліткового ігрового програміста? [зачинено]


32

Мій син (15) вирішив, що хоче продовжити кар'єру ігрового програміста. Я вже казав, що йому слід почати зараз із простої гри. У нього ще немає досвіду програмування, але я програміст (бізнес-програми, а не ігри), тому я можу навчити його програмуванню, але яка б це була хороша платформа для нього? Спочатку я шукаю щось, що може забезпечити швидкі результати, щоб підтримувати його ентузіазм.

Що б ти запропонував?


13
Зачинено? Ви повинні жартувати! Я поставив це запитання позаминулого року. У ньому було щонайменше 19 оновлених відповідей, його відповіді отримали щонайменше 86, а 5 людей відзначили це як фаворит. І відповіді включають факти, посилання або певну експертизу. Нарешті, це було неймовірно корисно і мені, і, я б сказав, і іншим людям. Як я можу оскаржити це рішення?
gkrogers

1
Ви можете створити публікацію про це на мета, якщо ви дуже хочете. meta.gamedev.stackexchange.com
Зошит

Відповіді:


30

XNA - хороше рішення для досить впевненого програміста. Це було б хорошою метою, на яку потрібно прагнути в майбутньому.

Комплект Unreal Development - це спосіб отримати результати набагато швидше і простіше, і це може бути гарним місцем для початку. Коментарі вказують на те, що UDK насправді є досить поганою альтернативою, тому я не можу його рекомендувати.

Єдність - це альтернатива, вона працюватиме на телефонах, що UDK не може зробити (наскільки я знаю). Отже, якщо він займається програмуванням ігор для телефонів, можливо, єдність буде кращою?


4
Я згоден з цим. Єдність - це альтернатива UDK, хоча я думаю, що це трохи складніше. Подивіться, чи зможете ви змусити його возитися з деяким UnrealScript (мовою написання сценарію Unreal Development Kit). XNA, безумовно, є першою справжньою мовою програмування гри з нуля, яку він повинен використовувати; це найпростіше (відносно кажучи; не для абсолютних початківців), і я люблю це за прототипування, тому що ви можете досить швидко почати малювати речі на екрані.
Ricket

2
+1 для пропозиції XNA. Якщо він прагне добре засвоїти це та має гарні ідеї, він може легко заробити гроші, продаючи ігри на Zune / WP7 / XBOX 360.

2
Unity працює на iPhone та у веб-переглядачі, тому це хороший спосіб розповсюдження гри для тестування людей та використання звичаю, щоб її спалахнули рано
Chris S

4
Уникайте УДК. Це може бути дуже сильним, але також є величезним болем. Тут повно "хат" і недокументованих обмежень.
Peter Ølsted

4
Мені теж 15, навчився спочатку паскаль у 10, потім С, потім С ++. Спробував запрограмувати кілька ігор на C ++ та allegro на 12 + -, не дуже успіху, я міг зробити багато речей, але я не міг думати, як побудувати цілу гру. Це мене стримувало. З XNA все було набагато простіше, а також, легке поводження з помилками C # винятків, показаних під час налагодження, дуже допомагає вам дізнатися, де ви робите щось не так. Звичайно, в інших мовах теж є, але я думаю, що Visual C # має найкращий інструмент для налагодження.
Густаво Масьєль

20

Мені теж 15, тож я думаю, що це може допомогти? : P

Нещодавно я почав вивчати Python (займався C ++ рік або близько того), і мені здається, що це набагато простіше, ніж C ++. Підводних каменів набагато менше, і вам потрібно небагато коду, щоб щось відобразити на екрані - те, що я знаходжу, змушує вас продовжувати.

А для графічної сторони є обгортки, такі як Pygame та Pyglet над SDL / OpenGL.

Перш ніж він почне робити прості ігри, я б радив вивчити мову принаймні пару місяців. (Звичайно, текстові ігри, такі як здогадка про кількість та вішалка, - хороші вправи за цей час)


9
Python and Pygame були подихом свіжого повітря після написання ігор у С протягом багатьох років. Я подумав, що можу зробити те саме, що робиться приблизно в 10% часу в Python через аспект вищого рівня до всього.
dash-tom-bang

Я знаю, я відчуваю те саме (і роблю С ++ протягом року).
Качка комуністична

+1. Я мушу сказати, не дивлячись лише на те, що я трохи знайомий з Python, це моя перша рекомендація для початківців програмістів. Тепер нам просто потрібні роботи-пітони! Також хороші пропозиції, наприклад, вішалка. =)
орендувач

Чувак, ви повинні вивчити мову .net (мені подобається C #, F # не так багато, vb.net - це нормально. Підтримка завантаження у візуальних студіях :(). Мови менше схильні до помилок, ніж C ++, і ви отримуєте винятки, коли щось робите неправильно (дуже гарна річ. C ++ має робити більше цього). І ви можете навчитися використовувати стек викликів, спостерігати за змінними, точками переривання (я припускаю, що точки точки розриву працюють в IDE пітона?), і ви зможете швидко налагоджувати . Що чудово, коли ви пишете нестабільний код для початківців

13

Трохи неортодоксальної відповіді тут:

Starcraft II редактор галактики.

Ви можете зробити майже будь-яку гру в Starcraft 2.

Він також навчає більшості конструкцій програмування, таких як цикли, а також заяви, орієнтовані на GUI.

Після того, як він буде впевнений в основах, ви можете мати йому сценарій.

Якщо він добре в цьому і виявить це цікавим, йому сподобається правильне ігрове програмування.


3
Я збирався запропонувати Warcraft III. Початок роботи простою мовою сценаріїв - це дуже приємний спосіб. Як Warcraft III, так і Starcraft II має графічний інтерфейс, який ви можете використовувати для зручності, і функцію перегляду коду як вихідного сценарію, щоб побачити внутрішню роботу.
Вільям Маріагер

2
Правильний шлях . Починати з будь-якого редактора рівня - це найкращий шлях. Він може пропустити всі ліси і труднощі і отримати право на цікаву частину плетіння сценарію та проектування рівня.
bobobobo

Напевно, один з найкращих відповідей, які я коли-небудь бачив на цей тип запитань, я почав робити гру спочатку, коли мені було дуже мало з MS Powerpoint через гіперпосилання та грати в гру під назвою "клуб роботів"; який у своєму геймплейі навчає вас багатьом основам програмування гігантськогоb.com/the-robot-club/3030-29776
Джим Джонс

10

Я б приблизно розділив засоби розробки ігор на три широкі категорії:

  1. Легкий у вивченні та використанні, але обмежений. Game Maker, Game Salad, RPG Maker, Adventure Game Studio всі підпадають під цю категорію.
  2. Потужний, але з крутою кривою навчання. Сюди підходять C ++ та інші "хардкор" мови програмування.
  3. Проміжні мови, як правило, мови сценаріїв, такі як Lua, Python та ActionScript, які розділяють різницю, вимагаючи від вас фактично записати якийсь код, але піклуючись про більш незрозумілі деталі, такі як управління пам'яттю для вас.

Людям, які не мають досвіду програмування, я зазвичай раджу починати з першої категорії, просто почати робити щось. Коли вони відчувають себе комфортно з певним інструментом створення авторських прав, але насправді відчувають, що обмеження переважують переваги, настав час навчитися чомусь у наступній категорії.


9

Я знаю, що це мене дещо побачить, але дорослішаючи, мені дуже сподобалось P-Robots . Існує дійсно проста мета (перемогти інших роботів), простий API та короткий проміжок часу між змінами коду та переглядом результатів. Він поділяється на AI, схеми дизайну і навіть більш масштабну структуру коду (деякі з цих роботів можуть бути досить великими - а як щодо обміну кодом між роботами?). Якщо ви можете знайти щось подібне, але новіше, це був би хороший спосіб отримати частину "розпочати програмування". Пропозиції:

Як тільки це буде зроблено, подумайте про дійсно просту стрілку, платформер або подібну гру в аркадному стилі 2D-прокрутки - ви можете використовувати SDL або XNA або будь-яку найвідомішу. Навіть клонування понга і запуску в них не зовсім тривіально. Це дає вам невелике відлуння того, що це таке, як побудувати щось «заземлене».

Після цього вивчіть: мод на існуючу 3d гру (новий об’єкт, бот чи щось), щоб трохи ознайомитись з більшими двигунами.

Ключі, із того, що я бачив, здається:

  • швидка ітерація: здатність швидко бачити результати
  • прототипи: багато невеликих експериментів, щоб отримати широту досвіду та впевненості (добре, як би ми зробили гру з мармуром? як щодо космічних загарбників? тощо)
  • дослідження: навчитися любити вивчати, як будуються ігри інших людей, налаштовуючи їх тощо

2
+1 для штормів, але я б використовував ROBOCODE ( robocode.sourceforge.net ) замість P-Robots.
Callum Rogers

@Callum: блискуче, оновить відповідь =)
орендуюсь

Я б використовував LegoMindstorms разом з NXC
Joe Person

6

Моя порада - робити ігри на веб-основі. Чому? Ну, по-перше, JavaScript - це прекрасна мова, яка навчить його всіх основних концепцій програмування, і ви насправді можете зробити з ним чудову, грамотну та кросплатформенну гру. Це також кваліфікує його для багатьох інших речей, крім того, щоб просто робити ігри ... Якщо ви з якихось причин не хотіли б, щоб ваш син вступав у веб-розробку, то я пропоную використовувати Python, з модулем під назвою PyGame. У мене також є досвід з цим, і я приголомшливий. Те, що я не пропоную, починається з C / C ++, це я і зробив, і це жахливо, і це може зробити його немотивованим для програмування взагалі.

З іншого приводу, ти, мабуть, дивовижний батько, вітаю!


1
Гарні пропозиції. Це сказав, що я почав з C (не те, що тоді були реальні альтернативи), і це насправді було не так боляче; Звичайно, це не привід використовувати його тепер, коли існують мови вищого рівня.
o0 '.

1
Спасибі! Крім того, я не починав з ігор, і мій погляд був на тому, що він, вивчивши мову вищого рівня, краще зрозуміє загальну концепцію програмування і не вичерпає його мотивацію. І звичайно - я там трохи перебільшував;)
jcora

1
У цьому віці мотивація легко ділитися своїми творіннями з друзями була мотиватором. Веб-ігри легше ділитися. Ви розміщуєте свою URL-адресу у Facebook і просите своїх друзів спробувати її. Actionscript / Flash або Javascript / HTML5 - це, мабуть, найкращі ставки на те, що ви зможете легко ділитися з Java або Unity близько секунди.
amitp

5

Mindstorms Roboter - це справді класно. У нас були деякі NXT в школі, і минулого тижня ми почали з програмування таких речей, як слідування лінії, і це. Ви можете легко отримати результати.

Також я знайшов www.3dgamestudio.de деякий час тому. Я більше не займався цим, але це було дійсно цікаво. Ви можете програмувати з Lite-C, який є:

Lite-C - мова програмування для мультимедійних програм та комп'ютерних ігор, що використовує підмножину синтаксису мови програмування C з деякими елементами мови програмування C ++

На http://tutorial.3dgamestudio.net/ ви потрапляєте в нього. А також є редактор рівня, моделі та рельєфу місцевості.

ps: мені 16, і я почав з другом, який програмував веб-сайт і налаштовував запрограмований ігровий сервер. Тож це теж може бути цікавим для нього.


+1 Дуже проста документація, як це зробити, здається, дуже легко впоратися.
Приз

4

Я не можу цього досить запропонувати, але будуючи власні рівні для своєї улюбленої гри на вибір .

Для когось із такого віку / рівня кваліфікації вони повинні почати з побудови рівнів у своєму улюбленому ігровому двигуні на вибір .

Багато чудових ігор оснащені редактором рівнів, які дозволяють отримати багато ступенів свободи.

RPG : Obsidian в NWN 2 електронний набір інструментів серії , Elder Scrolls

RTS : Редактор рівня Warcraft III - це фантастичний редактор RTS і навіть відкручується власною грою ( ліга легенд та героїв новішого ).

FPS : Молот для періоду напіввиведення 2. Контрстрайк спочатку був модом напіввиведення.

Почніть тут . Побудова рівнів для вашої улюбленої гри, мабуть, найкраще місце для початку.



3

Хоча вся інформація тут корисна, я хотів би зазначити, що STEM Challenge (національний ігровий конкурс, який проводять Білий дім та ESA), має деякі пропозиції щодо платформ http://www.stemchallenge.org/about/Default.aspx

Gamestar Mechanic, Gamemaker, Kodu, Scratch, PBS KIDS, готовий вивчити потоковий контент

У мене є відчуття, що існують ресурси громади щодо цих платформ, зокрема, як це стосується STEM.

Дивіться також цей чудовий підручник про python та pygame (який також є онлайн-книгою) http://inventwithpython.com/chapters/ ось PDF продовження книги спеціально про пігме http://inventwithpython.com/blog/making -games-with-python-pygame /

Ось ще одна стаття в Нью-Йорку 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 & scp = 1 & adxnnlx = 1322489239-tMp1Wjl9FUcI8rLaJ6cbOw

Оновлення: ось Slashdot дискусія http://ask.slashdot.org/story/11/12/27/152228/ask-slashdot-tools-for-teaching-high-school-kids-how-to-make-games


2

Game Maker - відмінний вибір для людей, які не мають досвіду програмування. Він має безкоштовну версію та відносно дешеву платну версію. Це дозволяє швидко робити ігри з інтерфейсом перетягування, але включає підтримку більш просунутого сценарію.


5
Я не збираюсь робити це спростуванням, але GameMaker і Visual Basic - це інструменти, які навчають поганому синтаксису (VB), а GameMaker насправді не дуже великий. Для одного, у вас немає доступу до таких приємних IDE, як VS, Drag-And-Drop-ігри не дуже навчають нічого.
Джо Персона

1
Я не впевнений, чому ви згадуєте VB; Ігровий виробник орієнтовно орієнтований на C. Незважаючи на те, Game Maker - це хороший спосіб прогресувати від нічого не знаючи до розуміння типу мислення, необхідного для розробників ігор. Реагування на події, підтримка ігрового циклу, використання зв’язків між графічними ресурсами та кодом, переведення проекту від ідеї до публікації; це все, про що ви можете дізнатися з розробкою перетягування. Я погоджуюся, що GML є обмеженою мовою, але система в цілому є хорошим стрибком.
Gregory Avery-Weir

1
Я згадую VisualBasic через DarkBASIC, який є ще одним жахливим інструментом програмування.
Джо Персона

Ігровий виробник, безумовно, хороший спосіб для навчання, орієнтованого на результат. Не потрібно вчитися фізиці чи рендерінгу. Просто використовуйте вбудовані функції. А перехід до C ++ простий, оскільки ви можете почати, роблячи dlls і використовуючи їх у Game Maker, а пізніше, повністю викопайте Game Maker.
Вільям Маріагер

Ніколи, ніколи не пропонуйте GameMaker комусь старше одинадцяти років ... Якщо йому буде п’ятнадцять, він може також обернути голову навколо програмування.
jcora

2

Як згадував Мартін, UDK - це, мабуть, найшвидший спосіб налагодити щось, тому що це стосується такої кількості попередньо виготовлених речей, як AI, моделі, а також багатство книг. Він має дуже хороший редактор карт, а мова - це Java-esque (і схожий на ECMA-скрипт).

Альтернативою може бути спробувати робити ігри у Flash або Silverlight - почніть з простих 2D ігор. Який би ігровий жанр йому не подобався, диктує інструментарій.


1
Ні! Не УДК! Це: баггі, повільні, схильні до помилок, складні тощо. Замість цього йдіть з Unity.
Джо Персона

@ firude67 UDK баггі, схильний до помилок? жартує?
Куазі Ірфан

на моєму досвіді це надзвичайно відставало, все, що я створив, дав BSOD, і я не зміг знайти жодної корисної документації. Навіть приклади проектів не бігали.
Джо Персона

1
Я ніколи не знаходив баггі UDK, але настійно НЕ рекомендую його ігровому програмісту. Художник, так, але програміст, ні. "Документація" - це жарт, і щоб знайти класи, які ви повинні підкласирувати, вам потрібно відкрити батьківський клас, оскільки вони вирішили не давати вам посилання на API. Крім того, потрібно зробити багато роботи для створення різних видів ігор, оскільки це серце FPS двигуном.
DMan

1

Починаючи з 14-річного віку, ця порада може бути корисною. Я вважаю, що найкращим способом вибору платформи є платформа, яка найбільше відповідає цілі. Я раніше писав цю посаду багато разів.

Від Reddit -

Виберіть мову, яка відповідає вашому призначенню. Більшість геймерів не байдуже, на якій мові запрограмована гра. Їм байдуже, чи можуть вони в неї грати чи ні. Їм цікаво, чи швидко він працює на їхньому комп’ютері. Їм байдуже, чи гра не має розміру 10 Гб. Їм не байдуже, чи це його exe чи jar.

Подивіться на такі ігри, як Minecraft. Впевнені, що це написано на Java, мові, яка має надзвичайно малу частку ринку в індустрії ігрових розробників. Невже споживачам все одно? Ні. Вони дбають про функціональність.

Однак, оскільки ваш син не має досвіду програмування, я пропоную вивчити мову, яку швидко кодувати, наприклад, Python, або використовувати існуючу платформу, наприклад XNA. Особисто я люблю Slick2D з Java, але я думаю, що це моє вподобання ...


0

Мене познайомили з програмуванням в молодому віці (молодше 15 років), і мій тато вирішив використовувати VB (1.0). Ми зробили скручену версію понг, використовуючи об'єкт таймера та малюнок GDI. Мені це сподобалось, бо ми почали з чистого полотна і змогли вивчити основи структур програмування, намагаючись зробити щось цікаве.

Сьогодні я думаю, що я вибрав би XNA і вибрав просту 2D гру. C # і XNA досить прямо вперед, і вони залишають вам багато місця для зростання, і вони вільні.


-4

Якщо він просто хоче робити ігри, то він повинен використовувати XNA, Unreal, Unity тощо. Якщо він хоче стати програмістом ігор, то він повинен спочатку вивчити C / C ++ та OpenGL / SDL або D3D.

XNA, Unreal, Unity і т. Д. Чудово підходять для створення ігор, але дуже погано роблять занадто багато для вас. Я впевнений, що люди не погоджуються зі мною з цього приводу, але в основному вони перетворюють вас на ледачого програміста, і коли настане час вивчити такі речі, як точки в C ++, це буде складніше, тому що ви пішли з легшими варіантами спочатку.

Перонально я ніколи не пропоную аніціювати інші C / C ++ як першу мову, щоб дізнатися, чи хочеш ти бути програмістом ігор. Основна причина полягає в тому, що навіть якщо ви підете та вивчите C # / XNA, якщо ви серйозно станете розробником ігор, вам доведеться знати C або C ++ на якомусь етапі, тому що ніхто не буде найняти вас інакше. Тож якщо вони серйозно ставляться до професії, то ви лише затягуєтесь з тим, щоб дізнатися, що від вас чекає.


10
На той момент, коли 15-річний чоловік буде готовий до професійної роботи (вісім років відтепер), я не бачу причин припускати, що всі будуть використовувати C ++. Вісім років тому C ++ тільки починав застосовувати в іграх і отримувати свій перший дійсно практичний стандарт, і більшість всіх відправлялися з C. Вісім років до цього C ++ знаходився в смішно поганому стані для розвитку ігор та порядку дня було С і асм. Через вісім років більшість ігрових програмувань, мабуть, будуть схожі на XNA, ніж C ++ 03, що зараз. (продовж.)

8
Ключовим елементом є стати хорошим програмістом , незалежним від будь-якої мови. Для нових програмістів C # швидше зробить їх більш мотивованими. Вони повернуться назад і дізнаються більш детальні речі, якщо хочуть бути корисними, але вам потрібно підчепити їх досить довго, щоб дійти до цього етапу.

5
Важливі деталі ігрового програмування - SIMD, а не SSE; рядки кеша, а не стандартний макет C ++; хешування, не std :: unordered_map; поліморфізм, а не віртуальні функції. Ці останні речі є мінями і є випадковими, а не принциповими. Коли ви знаєте перших, останні прагнуть банально слідувати.

2
Починати з C ++ - це погана ідея. Це важка мова, і тим більше як перша.
Качка комуністична

4
Я почав C ++ в 15, і, хоча я задоволений тим, де зараз перебуваю, починаючи з чогось легшого, напевно, було б набагато менш болісно, ​​і дозволив зосередитись на фактичних розробниках гри, а не на покажчиках та segfault ...
Райлі Адамс
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.