Dev 키트에 액세스하지 않고 PS3 / Xbox 360 경험을 얻는 방법?


24

저는 PS3, Xbox 360의 산업 프로그래밍에 들어 가려고하는 신진 게임 프로그래머입니다. 제가 본 가장 큰 문제는 잠재적 인 고용주에게 내 기술을 보여줄 필요가 있지만 PS3 또는 Xbox 360 용 Dev 키트에 액세스 할 수는 없다는 것입니다. 이것은 직접 불가능합니다.

내 질문은 콘솔 개발자에게 내 기술을 보여줄 수있는 가장 좋은 대안은 무엇입니까?

Windows 용 DirectX의 C ++ 프로그래밍은 Xbox 360 프로그래밍 기술을 보여주는 데 가깝고 OpenGL의 C ++ 프로그래밍은 PS3 프로그래밍 기술을 보여주는 것과 거의 비슷합니다. 불행히도, 웹 연구에 따르면 Xbox 360과 PS3 모두 실제로 자체 라이브러리가있는 것처럼 보이므로 100 % 유익한 노력이 아닌 것처럼 보입니다. 이 방법은 가장 가깝지만 시간이 많이 소요되는 것 같습니다. 또한 실제로 콘솔에서 아무것도 실행하지 않습니다.

반면에 XNA에서의 프로그래밍은 게임이 실제로 콘솔에 있다는 이점이 있지만 DirectX를 감싸는 래퍼 일뿐 아니라 대신 C #을 사용하기 때문에 이것이 "실제 거래"가 아닌 것으로 보입니다. C ++.

잠재적 인 고용주에게 어떤 종류의 게임 데모가 가장 유용한 지 알기 위해 업계의 지식이나 경험이 있습니까? DirectX, OpenGL, XNA, Unreal Engine, Unity3d, Flash 등의 C ++? 하루에 너무 많은 시간이 있으며, 노력을 지시하는 방법을 알고 싶습니다.

내 생각은 DirectX가 Xbox 360에서 사용되는 것에 더 가깝게 보이기 때문에 최선의 선택이 될 것입니다. 그러나 다른 언어 / 엔진으로 좋은 데모를 얻는 것이 좋으면 분명히 시간이 덜 걸릴 것입니다. 다른 길.

당신의 도움과 조언에 미리 감사드립니다!

답변:


17

어떤 길을 가고 있는지에 따라 솔직히 대부분의 사람들은 주니어의 특정 플랫폼 기술을 기대하지 않습니다.

게임 프로그래머라면 많은 게임을 만드십시오.

기술 프로그래머가 많은 기술 데모를 작성하는 경우 흥미로운 백서를 읽고 새로운 것을 시도해보십시오. 프로그래머가 OOOoo로 이동하게하는 흥미로운 일을한다면 우리는 당신과 이야기하고 싶습니다. 우리는 당신이 한이 작은 흥미로운 일에 대해 이야기하고 싶습니다. 게임 일 필요는 없습니다.

주요 사실 : 데모는 비디오 레코딩을 백업으로 포함하는 다양한 머신에서 실행해야합니다. 원시가 아닌 편집.


8

주니어 역할의 경우 특정 API에 대한 경험이 많지 않지만 관련된 개념을 잘 파악하고 있습니다.

찾고있는 그래픽 관련 위치라면 3D 수학과 API를 사용하는 방법 (OpenGL 또는 D3D, 어떤 것을 신경 쓰지 않아도됩니다-최적화하는 것이 좋습니다)을 보여줍니다. 솔직히 모든 API는 그리기, 제출 및 상태 관리에 대한 목록을 작성하는 데 사용됩니다. 이러한 작업을 수행하는 좋은 방법과 나쁜 방법이 있으므로 이해하십시오.

보다 일반적인 콘솔 프로그래밍의 경우 임베디드 플랫폼에 수반되는 특정 문제를 처리해야합니다. 제한된 메모리 (스왑 없음, 조각화 불량 등), 충돌에 대한 엄격한 규칙, 제한된 I / O 대역폭, 패치 / 업데이트 기능 없음 (또는 제한된) 등

세부 사항이 아닌 코딩 스타일에 관한 것입니다.

상업적 위치를 찾고 있다면 실제로 XNA를 피할 것입니다 . 왜냐하면 그 분야에서 실제로 그렇게 유용하지 않기 때문입니다.


7

FWIW, 난으로 C # / XNA에서 X 박스 360에 프로그래밍을 고려할 것입니다 매우 "진짜 거래"에 대한 좋은 대체.

치다:

  • 360의 XNA에서는 가비지 수집을 처리해야합니다. 특히, 프레임 당 할당이 너무 많으면 피해야합니다. 360의 C ++에서는 Lua와 같은 스크립팅 언어를 다루지 않는 한 가비지 수집을 처리 할 필요는 없지만 프레임 당 많은 할당을 피하는 것이 좋습니다 .
  • 360의 처리 능력을 최대한 활용하려면 코드를 다중 스레드로 만들어야합니다. 관리되는 코드를 보완하기 위해 C ++보다 성능이 약간 떨어지기 때문에 C ++에서와 마찬가지로 XNA에서도 마찬가지입니다.
  • XNA가 제공하는 많은 도우미 함수 및 클래스 외에도 XNA의 그래픽 API는 DirectX를 기반으로한다는 점에서 360의 DirectX / C ++와 매우 유사합니다.

XNA의 멋진 점은 화면에 무언가를 얻는 기술적 인 문제에 집중할 수없고 게임 제작에 더 집중할 수 있다는 것입니다. 비교적 버그가없고 적절한 프레임 속도로 (특히 XNA가 제공하는 제한된 환경에서) 실행되는 게임 (모든 게임!)을 만들면 많은 경험과 시연 할 수있는 데모, 그리고 희망적으로, 문에 발.


5

PS3 프로그래밍 기술을 원하면 다음을 찾을 수 있습니다.

  • PPC 아키텍처에 대한 지식; 이를 통해 PowerPC 머신에서 C / C ++ 개발을 수행 할 수 있습니다. 구형 G5 Mac에서는 OS X이거나 PS3를 포함한 모든 PowerPC 머신에서는 Linux입니다.
  • AltiVec에 대한 지식; 다시 말하지만, 최근 PowerPC 시스템에서 Mac 또는 Linux를 사용하여이를 얻을 수 있지만 SSE3에 대한 지식이 충분할 수 있습니다.
  • SPU에 대한 지식 : Linux를 사용하여 PS3에서만이를 연습 할 수 있습니다.

이것은 PS3 비디오 칩을 프로그래밍하는 방법이나 공식 SDK를 사용하는 방법을 가르쳐주지 않습니다. 비디오 프로그래밍의 경우 HLSL과 함께 일반적인 OpenGL 및 DirectX 기술로 충분할 것입니다. 인터넷에는 많은 정보와 자료가 있으며, 모든 것이 불법 인 것은 아닙니다 (예를 들어, PS3에 대한 소니의 수정 된 GCC 버전은 GPL에 의해 보호됩니다).

X360 프로그래밍 기술을 원하면 다음을 찾으십시오.

  • PPC 아키텍처에 대한 지식 : 위 참조

  • AltiVec에 대한 지식 : 위 참조

  • DirectX에 대한 지식 : Windows에서 연습 할 수 있습니다.

  • Xbox 360 SDK에 대한 지식 : XNA를 연습하면 많은 도움이됩니다.

다른 중요한 기술로는 다중 스레드 프로그래밍 (일반 지식뿐만 아니라 원자 연산, 잠금없는 알고리즘), 이식성 (엔디안, 포인터 크기, 비디오 하드웨어 기능 등)이있을 수 있습니다.

예, 언급했듯이 DirectX가 마스터 할 수있는 가장 보람있는 기술이 될 것이라고 믿습니다. 그러나 경쟁은 이런 식으로 진행될 것이며, 몇 가지 추가 요소가 차이를 만들 수 있습니다.

출처 : 위의 모든 작업을 수행하여 업계에서 훌륭한 직업을 얻었습니다.


3

이 질문 (또는 오히려 당신의 열망)에는 범위가 필요합니다. 오늘날 업계에서는 '게임 프로그래머'와 같은 것이 거의 없습니다. 매우 작은 스튜디오 또는 렌더링 프로그래머를 목표로하지 않는 한 DirectX 또는 OpenGl은 중요하지 않습니다. 콘솔을 PC와 차별화시키는 것은 성능 제한, 메모리 제한 및 멀티 코어 문제입니다. 업계에서 어떤 프로그래밍 분야를 열망하든 관계없이 이러한 프로그래밍은 중요하므로 이러한 의지, imo, 도움을 처리하는 방법을 알고 있음을 보여줍니다. C ++을 아십시오. C ++의 함정을 알고 있습니다. STL을 사용하지 않는 방법을 알고 있습니다. 코드가 프레임 속도 독립적이고 멀티 스레드이며 사용자 지정 메모리 할당자를 사용하는지 확인하십시오. 물론 강조하십시오. 정말 중요한 것은 데모가 끝났다는 것입니다. 핵심 프로그래머가 작동하면 많은 프로그래머가 멈추는 반면 게임 프로그래밍의 드래그는 최종적입니다. 어떻게해야하는지 알 수 있습니다.

대부분의 스튜디오는 AI, 게임 플레이, 렌더링, 시스템, 오디오, 물리학 등 기술이 무엇인지 알고 싶어합니다. 알아 내려고 노력하십시오. 업계 경험이없는 일반 주의자가되는 것은 어려운 일입니다.

행운을 빕니다!


집중할 영역을 선택하는 것에 대한 좋은 점.
jcurrie33

1

DirectX는 훌륭한 선택입니다. Windows가 이미 설치된 PC가 가장 많기 때문에 실행하기 가장 쉬운 데모입니다. 콘솔 옵션을 선택하면 비디오가 좋은 데모입니다. 그러나 라이브 코드 실행을 보는 것보다 좋은 것은 없습니다.

여러 컴퓨터에서 코드를 실행하여 다른 비디오 카드 등을 허용하는지 확인하십시오. 요즘 대부분은 자동이지만 약간의 차이가 여전히 발생할 수 있습니다.


0

모든 3D API에 대한 지식이 좋습니다. DirectX인지 OpenGL인지는 중요하지 않습니다. 3D 개념은 어디에서나 동일하지만 API 만 다릅니다. OpenGL을 아는 것은 주니어 레벨 XBOX 작업을 할 때 Direct3D를 아는 사람에게는 불리하지 않습니다. 시연해야 할 것은 무언가를 코딩 할 수 있고 C ++ (또는 다른 언어), 표준 라이브러리, 데이터 구조 및 알고리즘을 이해한다는 것입니다. UDK 또는 Unity와 같은 게임 엔진에 대한 지식은 보너스입니다. 이는 게임 회사에서 일반적으로 사용되는 미들웨어 작업 능력을 보여줍니다. 플래시는 프론트 엔드 개발에 사용되었으며 간과하지 않는 기술이기도합니다.

가장 중요한 것은 데모를 (어떤 언어로든) 구축하고, 잘 만들고, 끝까지 보는 것입니다. 행운을 빕니다!

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.