Який основний набір навичок, який повинен мати Професійний програміст ігор? [зачинено]


11

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

Деякі кажуть, що C ++ - це добре, а інші кажуть, що JAVA може бути кращим, а інші кажуть, що інша мова - це ур-мова, як-от Python, Lua, UnrealScript тощо. Також передбачається, що треба знати ігрові двигуни, такі як Unreal, Torque, Blender, Panda тощо, а також необхідні знання OpenGL, AI, Collision Detection. Я навіть створив гру за допомогою Android SDK.

Я хочу запитати:

  • Який основний набір навичок, який повинен мати Професійний програміст ігор? Це 1 мова мови програмування + 1 мова сценарію + 1 знання ігрового двигуна + OpenGL? (Phew !!)
  • Якщо я хочу увійти в Ігрову індустрію як ігровий програміст або програміст AI, то чи можу я вступити в неї за допомогою своїх нинішніх навичок та портфеля (як зазначено вище)?
  • Чи достатньо вивчення однієї мови програмування для розвитку ігор?

Будь-яка настанова буде корисною.

Відповіді:


6
  1. Ви повинні бути досвідченими та компетентними принаймні однією мовою програмування. Це допоможе вам легше підібрати інші мови. Тип роботи, до якої ви подаєте заявку, залежить від того, яку мову ви, мабуть, повинні знати до початку. Більшість потрійних заголовків A, випущених на ПК та консолі, швидше за все, будуть розроблені в C ++. З іншого боку, мобільні додатки та ігри, швидше за все, будуть використовувати Java (Google Android та інші телефони) або Objective-C (iPhone). Якщо ви поглянете на списки вакансій для інженерів програмного забезпечення на веб-сайтах розробників, зазвичай це буде згадка про те, який мовний досвід потрібно мати. Наприклад, "Досвідчені та знаючі C ++" або "Досвід C ++ протягом принаймні двох років". Вивчення мови сценаріїв вам не зашкодить. Це вам тільки принесе користь. Навчання завжди корисне, і ніколи не шкодить. Вам не потрібно володіти робочими знаннями щодо будь-якого ігрового двигуна, але якщо ви звернетесь до компанії, яка використовує цей конкретний двигун, це, ймовірно, допоможе вам відновити роботу. Якщо ви фахівець з двигуна Source, але ви застосовуєте програмне забезпечення id і нічого не знаєте про двигуни id tech, це насправді не дуже корисно (але корисна причина навчання завжди корисна).

  2. Якщо ви закінчили проекти від початку до кінця, і ви показуєте, що у вас є, то я думаю, що це допоможе збільшити ваше відновлення. Я не впевнений у безлічі технологічних демонстрацій. Багато людей, здається, роблять технічні демонстрації, і у них не виконано жодного чи кількох ігрових проектів. Ігровий програміст, як правило, є молодшим. рівень позиції, так що так, залежно від вашого резюме ви повинні десь знайти роботу.

  3. Я думаю, що знати одну мову та вміти нею вміло та грамотно краще, ніж знати 5 мов та ледве знати, як ними користуватися.

Відмова: Ніколи не працював у галузі, це лише мої думки, які були сформовані після прочитання декількох тем та статей про завдання програмування в іграх, виходячи з того, що, на мою думку, було найрозумнішими статтями / думками, які я читав.


7
Я б доповнив пункт 1 точки "знанням однієї мови програмування, яка використовує покажчики ". Покажчики є такою принциповою вимогою до розуміння того, що відбувається з мовою, що ніколи не маючи досвіду з ними може бути величезним недоліком при переході на потрібну їм мову. C ++ надзвичайно поширений для ігор, що не належать до Інтернету, тому ви можете також почати саме там.
Тетрад

@ShrimpCrackers Ви знаєте, що за допомогою редактора можна зробити фактичні "Пункти балів", правда? ;)
Бен

Ви повинні показати, що знаєте хоча б мову програмування, яка широко не використовується в промисловості, але має якусь цікаву особливість: це повідомляє, що ви дізнаєтесь через інтерес до можливостей, що ви поліглот, який розуміє різні філософії / підходи, і ви можете (сподіваємось) ) злиття найкращого з обох світів.
FxIII

2

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

  • Здатність добре працювати в командній атмосфері. Створення ігор займає надзвичайну кількість людей, просто читання кредитів в деяких іграх AAA сьогодні займає 10+ хвилин, якщо ви не можете добре працювати з людьми і ваша мета - працювати з іншими людьми, щоб зробити чудову гру, тоді я побоюйтеся, що це не правильна галузь. Це одна з тих м'яких навичок, яка зазвичай розвивається з часом, працюючи над проектами з іншими людьми.
  • Знайдіть те, що вам подобається робити. Це щось із відкритим небом, але дізнайтеся, що вам подобається у розробці гри та які навички вам потрібні для цього. Я знаю, що це такий варіант відповіді, який ви шукаєте, але я можу позбутися всіх навичок, які вам можуть знадобитися, щоб бути розробником двигуна, розробником графіки або розробником геймплея, але ви можете дуже багато знайти цю інформацію в Інтернеті. Ваші навички потребуватимуть дуже тісно пов'язатись із тим, що вас цікавить. Наприклад: Не турбуйтеся про те, що знаєте, у OpenGL та DirectX в’їзджають, якщо ви насправді зацікавлені у розробці серверної сторони та навпаки.
  • Будьте власником мови низького рівня. Однак, як було сказано вище, я погоджуюся з іншими плакатами, що мова низького рівня - це гарна ідея. Я знаю, коли я перейшов із C # до C ++, я багато чого дізнався про те, як працює магія C #, це знання, які дають вам хороше розуміння того, як ефективно спілкуватися з комп’ютером незалежно від мови.
  • Розумійте архітектуру комп’ютера - маючи на увазі, я не маю на увазі, що ви повинні мати ступінь CE або EE, щоб дійсно розуміти кожну частину комп'ютерної архітектури, але знаєте основи роботи пам'яті, процесора та GPU. Незалежно від сфери розвитку ігор, в яку ви входите, буде корисно хоча б зрозуміти, як вони працюють. Якщо ви хочете перейти до графічного програмування чи програмування двигунів, то вам потрібно буде ще більше зрозуміти в цьому просторі.

5
ви справді відчуваєте себе старими, коли люди називають C ++ мовою низького рівня
дрета

@dreta Я не такий уже й старий, і я не вважаю це мовою низького рівня. Можливо, це стосується C ++, що є першою мовою, якою я користувався.
Пол Манта

2

Від ваших кар’єрних цілей залежить дуже багато. Якщо все, що ви хочете, це "ігри, що займаються роботою", перш ніж робити необхідні 5,5 років і згоряти і виїжджати, то я гадаю, що ви просто дивитесь на відкриття вакансій початкового рівня і шукаєте те, що хочуть, вивчайте це та застосовуєте заявку. Простий. (Але тоді, якщо ваше запитання дійсно зводиться до того, "які мінімальні зусилля мені потрібно докласти, щоб влаштуватися на роботу?", Тоді відповідь "якщо ви докладете мінімум зусиль, ви отримаєте мінімальну роботу! ")

Але в довгостроковій перспективі я не думаю, що справа в тому, щоб знати якусь кількість мов чи вивчати певну. Мови змінюються - десять років тому ніхто не використовував Objective-C або XNA або C # або AS3, а десять років відтепер будьте впевнені, що будь-яка мова, яку ви сьогодні вивчите, до цього часу буде застарілою.

Тож одне, що має бути впевненим у майбутньому, - це не просто "вивчити мову", а навчитися ЯК вивчати нові мови. Після того, як ви опановуєте 3-ма мовами, ви зрозумієте, що підбирати нову не так вже й погано. У більшості випадків більшість основних компонентів однакові - у кожній мові є змінні, масиви, цикли, умовні умови тощо, тому мова йде лише про вивчення синтаксису.

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

Якщо ви хочете зробити себе більш товарним, то вивчіть спеціальність програмування, що стосується ігор, що б вас не цікавило ... AI, бази даних, мережеві роботи, інструменти та інше.


1

Існує ще одна дуже важлива навичка, яка, здається, трохи не помічена. Вам потрібно знати, як вписатись та працювати з командою людей, починаючи від інших ігор, до дизайнерів та керівників проектів та ін. Це не технічна майстерність, але вона все ще дуже важлива, оскільки ти можеш бути найкращим розробником в будинку, і якщо ти не можеш впоратися з людьми, робити великі ігри буде проблемою!

Крім того, оскільки ShrimpCrackers добре володіє однією мовою краще, ніж приблизно знати 5 мов, а розуміння того, що відбувається під кришкою тієї мови, на якій ви працюєте, ще краще, що стосується ігор, ви повинні знати, як досягти найкращої продуктивності поза мовою.

І останнє, але не менш важливо, знаючи трохи про обладнання, зокрема, GPU не зашкодить!


0

Для програмування соціальних ігор є основні навички, які єдині необхідні.

  1. Сценарій дії програми (можна використовувати середовище elipse та svn), використовується для переднього кінця гри (веб-сторінки)

  2. Програма java (що також можна зробити при затемненні використання svn), це використовується для дій сервера для отримання запитів веб-сторінки.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.