Як отримати досвід PS3 / Xbox 360, не маючи доступу до комплектів Dev?


24

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

Моє запитання, який найкращий альтернативний спосіб показати розробникам консолей свої навички?

Програмування на C ++ в DirectX для Windows здається близьким до показу навичок програмування Xbox 360, а програмування на C ++ у OpenGL здається порівняно близьким до показу навичок програмування PS3. На жаль, з веб-досліджень здається, що як у Xbox 360, так і в PS3 насправді є власні бібліотеки пропітера, тому, здається, зробити це не 100% плідною справою. Такий підхід здається найбільш близьким, але також вимагає найбільшого часу. Крім того, ви насправді нічого не змушуєте працювати на консолі.

З іншого боку, програмування в XNA має перевагу в тому, що ваші ігри насправді знаходяться на консолі, хоча у мене складається враження, що це вважається не "справжньою угодою", оскільки це просто обгортка навколо DirectX і використовує C # замість C ++.

Хтось має знання чи досвід зсередини галузі, щоб дізнатися, які демо-версії ігор були б найбільш корисні показати потенційному роботодавцю? C ++ у DirectX, OpenGL, XNA, Unreal Engine, Unity3d, Flash, тощо, тощо, тощо? У день всього стільки годин, і я хотів би знати, як спрямовувати свої зусилля.

Я відчуваю, що DirectX був би найкращим вибором, оскільки він здається ближчим до того, що використовується на Xbox 360, але якщо хороша демонстрація на іншій мові / двигуні така ж гарна, очевидно, це займе менше часу. інший маршрут.

Заздалегідь дякую за допомогу та поради!

Відповіді:


17

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

Якщо ваш ігровий програміст, зробіть багато ігор.

Якщо ваш технічний програміст зробить велику кількість демонстрацій технологій. Читайте цікаві білі папери та спробуйте нові речі. Якщо ви зробите щось цікаве, що змушує програмістів піти OOOoo, ми ХОЧЕМЕ поговорити з вами. Ми хочемо поговорити про цю маленьку цікаву справу, яку ви зробили. Це не обов'язково повинна бути грою.

КЛЮЧОВИЙ ФАКТ: Ваші демо-версії повинні працювати на широкому спектрі машин, включати відеозапис як резервне копіювання. Відредаговано не сировиною.


8

Для молодшої ролі я не шукаю багато досвіду в будь-якому конкретному API, а натомість добре розумію залучені концепції.

Якщо це графічне пов'язані позиції ви шукаєте, ви знаєте , продемонструвати 3D математики, і як використовувати API добре (OpenGL або D3D, не має значення , який на самому ділі - просто переконайтеся , що ви оптимізувати його добре). Відверто кажучи, всі API більш-менш зводяться до складання списків речей для малювання, подання їх та управління станом - і є хороші способи і погані способи зробити це, тому розумійте це.

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

Йдеться про стиль кодування, а не про специфіку.

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


7

FWIW, я б вважав, що програмування на Xbox 360 в C # / XNA є дуже хорошою заміною "реальної угоди".

Поміркуйте:

  • У XNA на 360 ви маєте справу зі збиранням сміття; конкретно, вам потрібно уникати занадто багато, якщо такі є, виділень на кадр. У той час як в C ++ , на 360, вам не доведеться мати справу зі збором сміття (якщо ви не маєте справу з мовою сценаріїв, як Lua), але ви ж все ще хочете , щоб уникнути багатьох, якщо такі є, розподілу в кадрі.
  • Для того, щоб скористатися великою частиною процесорної потужності 360, вам потрібно зробити свій код багатопоточним. Це так само вірно, якщо не більше, то в XNA, як і в C ++, через бажання компенсувати керований код трохи менш ефективно, ніж C ++.
  • Окрім безлічі допоміжних функцій та класів, які надає XNA, графічний API в XNA, враховуючи, що він заснований на DirectX, надзвичайно схожий на DirectX / C ++ на 360.

Чудова річ у XNA полягає в тому, що вона дозволяє менше зосереджуватися на технічних питаннях отримання чогось на екрані, а більше - на створення своєї гри. Просто створення гри (будь-якої гри!), Яка є відносно без помилок і працює з гідною частотою кадрів - особливо в обмеженому середовищі, яке надає XNA - дасть вам багато досвіду, демонстрацію, яку ви можете продемонструвати, і, сподіваємось, ногою у двері.


5

Якщо ви хочете навички програмування PS3, ви можете шукати:

  • знання архітектури КПП; це ви можете отримати, роблячи розробку C / C ++ на машині PowerPC, будь то OS X на старому G5 Mac або Linux на будь-якій машині PowerPC, включаючи PS3.
  • знання AltiVec; знову ж таки, ви можете отримати це за допомогою Mac або Linux на останній версії PowerPC, але знання SSE3 може бути достатньо.
  • знання SPU: це можна практикувати лише на PS3 за допомогою Linux.

Це не навчить вас програмувати відеосхему PS3 або використовувати офіційні SDK. Хоча для відеопрограмування, загальних навичок OpenGL та DirectX, ймовірно, буде достатньо, і деякі HLSL теж. В Інтернеті також є багато інформації та матеріалів, не всі з яких є незаконними для отримання доступу (наприклад, модифікована версія Sony GCC для PS3 охоплена GPL).

Якщо ви хочете навички програмування X360, ви шукаєте:

  • знання архітектури КПП: див. вище

  • знання AltiVec: див. вище

  • знання DirectX: це ви можете практикувати в Windows.

  • знання Xbox 360 SDK: подібність така, що практикування XNA допоможе дуже багато.

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

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

Джерело : Я зробив усе вищезазначене і влаштував собі приголомшливу роботу в галузі.


3

Це питання (точніше, ваші прагнення) потребує розмаху. Сьогодні в цій галузі навряд чи існує таке поняття, як «ігровий програміст». Якщо ви не прагнете поїхати в дуже маленьку студію або програмування візуалізації, DirectX або OpenGl насправді не мають значення. Те, що встановлює консолі окрім ПК, - це обмежена продуктивність, обмежена пам'ять та багатоядерні проблеми. Незалежно від того, до якої галузі програмування у цій галузі ви прагнете, вони є важливими, тому вони показують, що ви знаєте, як боротися з тими, хто допоможе вам допомогти. Знай свій C ++. Знайте підводні камені C ++. Знайте, як не використовувати STL. Переконайтесь, що ваш код має кадр незалежний, багатопотоковий і використовує спеціальні алокатори пам'яті. Виділіть це, звичайно. Я думаю, що дійсно важливо - це те, що демонстрація закінчена. Дуже багато програмістів зупиняються, коли працює основний механік, тоді як перетягнення в програмуванні ігор є найважливішим - покажіть, що ви знаєте, як це зробити.

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

Удачі!


Відмінний момент щодо вибору області, на якій слід зосередити увагу.
jcurrie33

1

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

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


0

Знання будь-якого 3D API хороше. Не має значення, чи це DirectX чи OpenGL. Концепції 3D є скрізь однаковими, просто API-файли різні. Знання OpenGL не ставить вас у невигідність для того, хто знає Direct3D, змагаючись за роботу молодшого рівня XBOX. Що вам потрібно продемонструвати, це ваша здатність щось кодувати і ви розумієте C ++ (або будь-яку іншу мову), стандартні бібліотеки, структури даних та алгоритми. Знання ігрового двигуна, такого як UDK або Unity, - це бонус. Це демонструє вашу здатність працювати з середнім програмним забезпеченням, що часто зустрічається в ігрових компаніях. Flash використовувались у розробці інтерфейсу, це також навичка не випускати з уваги.

Найголовніше, що ви просто створили демонстраційну версію (будь-якою мовою), зробите її гарною і перегляньте її до кінця. Удачі!

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