в смысле «кросс ассемблером»? Кросс компилятором?
Ну если строго формально подходить к вопросу, то кросс-ассемблер - это, ведь, частный случай кросс-компилятора.
На самом деле, очевидно, что C++ код пропускается через C++ компилятор. Но на финальной стадии, явно или неявно, все написанное программистами проходит через кросс-ассемблер, чтобы на выходе получить двоичный исполняемый код для целевой платформы - PS2. И т.к. процессоров там несколько разных, то и кросс-ассемблеров несколько разных используется. А сишные компиляторы есть только для двух из процессоров. Для остальных процессоров программисты, которые пишут библиотеки низкого уровня, вынуждены писать на ассемблере.
Во вторых, на каком уровне нужно знать вообще игры?
Я исхожу из того, что если задача хорошо формализована, то знать предметную область программисту необязательно. Конечно, игровой опыт желателен. Это позволяет избежать ситуации изобретения велосипедов. Но отсутствие такого опыта все же далеко не смертельно. В разработке игрового софта ничего магического нет. Это такой же софт, как и любой другой.
И на каком уровне вообще библиотеки низкого уровня? В смысле что оно может?
Примерно то же, что и DirectX или OpenGL.
То есть что нужно знать программисту?
Если речь идет о позиции 3D-программиста, то ему нужно иметь опыт написания программ 3D-графики в реальном времени (DirectX или OpenGL - неважно), хорошо знать и понимать эту предметную область, владеть алгеброй и аналитической геометрией хотя бы в обьеме первого курса мех-мата или физфака. Быть в курсе последних технологических новинок в этой области.
Если речь идет о программисте на физический движок, то тут необходимы знания в области механики и физики твердого тела.
Программисту на сетку необходимо иметь опыт написания сетевых программ.
Программисту на искусственный интеллект желательно владеть математикой на уровне первого курса физфака или мехмата, иметь некоторое представление о дискретной математике, теории графов, конечных автоматах.
Также ко всем программистам предъявляются серьезные требования относительно уровня владения C++ и парадигмой объектно-ориентированного программирования. Т.е. человек должен знать объектно-ориентированное программирование не на уровне синтаксиса языка, а он должен мыслить объектно-ориентированно.
Как текстурировать многоугольники, определять видимость, задавать параметры цвета, материала (параметры отражения к примеру) итд? Или этой библиотеке нужно передать что-то вроде указателя на массив трехугольников, у каждого из которых задан цвет, текстура, и координаты в 3d пространстве, и матрицу на которую нужно перемножить эти координаты чтоб получить проекцию на экран (ну и разделить на коэфицент по Z в соответсвиеи с «фокусным растоянием» «наблюдателя») а эти либы уже определят видимость, сделают Z-clipping и отрисуют что нужно? Или нужно сделать класс которому (в итоге) передается указатель на frame-buffer и который сам себя рисует?
Ответил выше: уровень абстракции примерно как в директ иксе.
Потом, как хорошо нужно знать механику и прочее игрушек? То есть суметь к примеру за день написать класс (к примеру сегмент «руки»), который к примеру имеет «массу», который сможет сам (ну, у него есть список многогранников, и он может определить расстояния до каждой плоскости от «снаряда», определить попал «снаряд» в эту (плоскость а потом в многогранник) или нет, соответственно по кинетической «энергии» снаряда определить импульс, и уже как-то рассчитать реакцию «плохого робота» на этот импульс).
Подход неверный.
Потроха современной игры выглядят примерно таким образом. Есть игровой мир, который состоит из игровых объектов. Каждый из объектов имеет несколько "граней": геометрия объекта, внешний вид (материалы), набор трехмерных анимаций этого объекта, физические свойства объекта (масса, центр масс, упругость и т.д.), поведение объекта (искусственный интеллект), специфические игровые свойства объекта ("жизненный опыт", "раса", набор диалогов и т.п. - зависит от типа игры), звуковая схема объекта (какие звуки он издает в различных ситуациях) и т.д. ...
Это я расписал что есть. Теперь, что и как происходит.
В простейшем случае (если нет распараллеливания вычислений) несколько десятков фреймов в секунду выполняется такой игровой цикл:
опрос устройств ввода, преобразование введенной информации в события игрового мира, обработка событий игрового мира всеми игровыми объектами согласно логики их поведения и принятие решений о предпринимаемых ими действиях, обработка действий игровых объектов физическим движком (задача которого - расчет изменения координат и других параметров игровых объектов в соответствии с законами физики), и, последняя фаза, отрисовка текущего состояния игрового мира графическим движком на экране телевизора и обработка звуковых событий звуковым движком...
Вот, собственно, полное описание того, как устроена типичная игра. Все очень просто.
В AI игрушек я вообще еще меньше понимаю
Можете почитать мою статью о том, как это делается:
http://metamal.com/articles/pw_ai_conception.
А сведений о skillсах к девелоперам у меня вообще нет. Нужен опыт написания игрушек вообще?
Как я уже дал понять выше, опыт написания игр желателен, но не обязателен.
Но дело не в этом. Может кто-то поделиться максимально полным списком рекрутов в Корее? Я знаю www.russiankorea.com, и korient. Кто еще?
В Корее на данный момент всего две рекрутерских компании, которые занимаются привлечением российских специалистов (это я точно знаю): Korient и Russia Search (Марка 21 века).
www.russiankorea.com - это не рекрутерская компания.
Это сайт, существующий на общественных началах и никакой организации не представляющий. Просто такое же место тусовки русскоязычной публики как и этот форум.
Еще вопрос, часто на сайтах рекрутов есть список вакансий. Следует или нет напрягаться в плане писания к каждой вакансии соответствующего резюме, или просто написать краткое объяснение почему ты можеш выполнять данную работу, или вообще не стоит напрягаться, все это fiction, для того чтоб набрать по-больше резюме?
Задайте это вопрос непосредственно рекрутерам. Для них у нас есть специально отведенная тема - "Агентство Russia Search: вопросы - ответы", где они отвечают на вопросы в их адрес: [url]http://polusharie.com/? скопирую ваш вопрос туда и, надеюсь, они в ближайшее время вам ответят.
Дальше, кто может чего сказать про Китай? Я понимаю что коммунизм, итд. Но в плане работы? Какие это принесет проблеммы, если альтернатива – продолжение рассылки резюме по Кореи? Фирма занимается в общем «digital video».
Имеет смысл задать этот вопрос в китайском разделе. Уж они-то точно знают лучше.
Еще вопрос по психологии Корейцев. Я читал что «Азия вообще скрытая культура» означает ли что к примеру письмо с рассказами о больших трудностях, выражение благодарности за терпение, обещание что дальше все ОК будет итд, что дело сдвинулось с мертвой точки, или это может означать что фирма, ну к примеру надеется заключить крупный контракт, и придерживает инженеров «на авось» чтоб потом не искать?
Дальше. Если я как электронщик устраиваюсь, как обозначить не только то что я непосредственно по работе делал, но и всякие hobby projects, то что я сделал в нерабочее время, не законченые по разным причинам проекты, ну, к примеру если я хочу устроиться в фирму которая занимается усилителями, имеет смысл рассказать про мой опыт работы с разными усилками, но это не более чем hobby project но сам experience ценный. Если есть например такой девайс http://geocities.com/bondarenkoartem/device/ имеет смысл его приткнуть куда-то в резюме? (Там моя электроника и софт (firmware/software) но общей уровень относительно того, что я делаю довольно низкий, (то есть просто все очень))
Это тоже стравлю рекрутерам.
Дальше. Большая фирма/маленькая фирма. Я правильно понимаю, в маленькой фирме можно большему научиться, так как фронт работ шире, а в большой фирме (типа Samsung, LG) будеш сидеть весь срок и делать одно и тоже.
Это не факт. Тут важнее другой аспект. Большие фирмы надежнее (там гораздо меньше риск, что кинут в плане денег), но в маленьких фирмах можно найти зарплату побольше (хотя риск выше).