Làm cách nào để có trải nghiệm PS3 / Xbox 360 mà không cần truy cập vào bộ dụng cụ Dev?


24

Tôi là một lập trình viên vừa chớm nở đang cố gắng tham gia vào lập trình công nghiệp cho PS3, Xbox 360. Vấn đề chính tôi thấy là cần phải chứng minh các kỹ năng của mình với một nhà tuyển dụng tiềm năng, nhưng không có quyền truy cập vào bộ dụng cụ Dev cho PS3 hoặc Xbox 360, Điều này trực tiếp là không thể.

Câu hỏi của tôi là, cách thay thế tốt nhất để thể hiện các nhà phát triển giao diện điều khiển các kỹ năng của tôi là gì?

Lập trình C ++ trong DirectX cho Windows có vẻ gần như thể hiện các kỹ năng lập trình Xbox 360 và lập trình C ++ trong OpenGL dường như tương đối gần với việc thể hiện các kỹ năng lập trình PS3. Thật không may, dường như từ nghiên cứu web như thể cả Xbox 360 và PS3 thực sự có thư viện riêng, do đó dường như làm cho điều này không phải là một nỗ lực hiệu quả 100%. Cách tiếp cận này có vẻ gần nhất, nhưng cũng tốn thời gian nhất. Thêm vào đó, bạn không thực sự làm bất cứ điều gì chạy trên bảng điều khiển.

Mặt khác, lập trình trong XNA có lợi ích là các trò chơi của bạn thực sự nằm trên bảng điều khiển, mặc dù tôi có ấn tượng rằng điều này được xem là không phải là "thỏa thuận thực sự" vì nó chỉ là một trình bao bọc cho DirectX và sử dụng C # thay vì C ++.

Có ai có kiến ​​thức hoặc kinh nghiệm từ bên trong ngành để biết loại trình diễn trò chơi nào sẽ hữu ích nhất để hiển thị cho một nhà tuyển dụng tiềm năng không? C ++ trong DirectX, OpenGL, XNA, Unreal Engine, Unity3d, Flash, v.v ...? Chỉ có rất nhiều giờ trong ngày và tôi muốn biết làm thế nào để chỉ đạo những nỗ lực của mình.

Cảm giác ruột của tôi là DirectX sẽ là lựa chọn tốt nhất, vì nó có vẻ gần với những gì được sử dụng trên Xbox 360, nhưng nếu có một bản demo tốt trong một ngôn ngữ / công cụ khác cũng tốt như vậy, rõ ràng sẽ ít tốn thời gian hơn một tuyến đường khác.

Cảm ơn trước sự giúp đỡ và lời khuyên của bạn!

Câu trả lời:


17

Phụ thuộc vào con đường bạn đang đi xuống, thật lòng mà nói, hầu hết mọi người không mong đợi các kỹ năng nền tảng cụ thể ở một thiếu niên.

Nếu bạn là một lập trình viên trò chơi, hãy tạo ra rất nhiều trò chơi.

Nếu một lập trình viên kỹ thuật của bạn tạo ra một tải các bản trình diễn công nghệ. Đọc những tờ giấy trắng thú vị và thử những thứ mới. Nếu bạn làm điều gì đó thú vị khiến các lập trình viên đi Ooooo, chúng tôi sẽ MUỐN nói chuyện với bạn. Chúng tôi muốn trò chuyện về điều thú vị nhỏ này bạn đã làm. Nó không cần phải là một trò chơi.

SỰ THẬT CHÍNH: Bản demo của bạn nên chạy trên nhiều loại máy, bao gồm quay video để sao lưu. Chỉnh sửa không thô.


8

Đối với vai trò cơ sở, tôi không tìm kiếm nhiều kinh nghiệm trong bất kỳ API cụ thể nào, mà thay vào đó là nắm bắt tốt các khái niệm liên quan.

Nếu đó là vị trí liên quan đến đồ họa mà bạn đang tìm kiếm, hãy chứng minh rằng bạn biết toán học 3D và cách sử dụng API tốt (OpenGL hoặc D3D, đừng quan tâm đến điều đó thực sự - chỉ cần đảm bảo bạn tối ưu hóa tốt nó). Thành thật mà nói, tất cả các API ít nhiều sôi nổi để lập danh sách những thứ cần vẽ, gửi chúng và quản lý trạng thái - và có những cách tốt và cách xấu để làm những điều đó, vì vậy hãy hiểu điều đó.

Để lập trình bảng điều khiển tổng quát hơn, hãy đảm bảo bạn có cách xử lý các vấn đề cụ thể mà nền tảng nhúng đòi hỏi. Bộ nhớ hạn chế (không trao đổi, phân mảnh xấu, v.v.), các quy tắc nghiêm ngặt về xử lý sự cố, băng thông I / O bị giới hạn, không có (hoặc giới hạn) khả năng vá / cập nhật, v.v.

Đó là về phong cách mã hóa, không phải chi tiết cụ thể.

Tôi thực sự sẽ tránh XNA nếu bạn đang tìm kiếm một vị trí thương mại, bởi vì nó không thực sự hữu ích trong lĩnh vực đó.


7

FWIW, tôi sẽ coi việc lập trình trên Xbox 360 trong C # / XNA là một sự thay thế rất tốt cho "thỏa thuận thực sự".

Xem xét:

  • Trong XNA trên 360, bạn phải xử lý bộ sưu tập rác; cụ thể, bạn cần tránh thực hiện quá nhiều, nếu có, phân bổ trên mỗi khung. Khi ở C ++ trên 360, bạn không phải xử lý bộ sưu tập rác (trừ khi bạn xử lý ngôn ngữ kịch bản, như Lua), nhưng bạn làm vẫn muốn tránh đưa ra nhiều, nếu có, phân bổ cho mỗi khung hình.
  • Để tận dụng phần lớn sức mạnh xử lý của 360, bạn cần làm cho mã của mình đa luồng. Điều này cũng đúng, nếu không phải như vậy, trong XNA cũng như trong C ++, do mong muốn bù đắp cho mã Managed được thực hiện ít hơn một chút so với C ++.
  • Ngoài rất nhiều chức năng và lớp trợ giúp tuyệt vời mà XNA cung cấp, API đồ họa trong XNA, được cho là dựa trên DirectX, cực kỳ giống với DirectX / C ++ trên 360.

Điều tuyệt vời về XNA là nó cho phép bạn tập trung ít hơn vào các vấn đề kỹ thuật để có được thứ gì đó trên màn hình và hơn thế nữa là làm cho trò chơi của bạn. Đơn giản chỉ cần tạo một trò chơi (bất kỳ trò chơi nào!), Tương đối không có lỗi và chạy ở tốc độ khung hình khá - đặc biệt là trong môi trường hạn chế mà XNA yêu thích - sẽ cung cấp cho bạn nhiều kinh nghiệm, bản demo mà bạn có thể chứng minh, và hy vọng, một chân trong cửa.


5

Nếu bạn muốn có kỹ năng lập trình PS3, bạn có thể tìm kiếm:

  • kiến thức về kiến ​​trúc PPC; điều này bạn có thể nhận được bằng cách thực hiện phát triển C / C ++ trên máy PowerPC, có thể là OS X trên máy Mac G5 cũ hoặc Linux trên bất kỳ máy PowerPC nào kể cả PS3.
  • kiến thức về AltiVec; một lần nữa, bạn có thể có được điều này với máy Mac hoặc với Linux trên máy PowerPC gần đây, nhưng kiến ​​thức về SSE3 có thể là đủ.
  • kiến thức về SPU: bạn chỉ có thể thực hành điều này trên PS3 bằng Linux.

Điều này sẽ không dạy bạn cách lập trình chip video PS3 hoặc cách sử dụng SDK chính thức. Mặc dù đối với lập trình video, các kỹ năng OpenGL và DirectX chung có lẽ sẽ là đủ, với một số HLSL cũng vậy. Ngoài ra còn có rất nhiều thông tin và tài liệu trên Internet, không phải tất cả đều là bất hợp pháp (ví dụ, phiên bản GCC sửa đổi của Sony cho PS3 được GPL bảo vệ).

Nếu bạn muốn kỹ năng lập trình X360, bạn sẽ tìm kiếm:

  • kiến thức về kiến ​​trúc PPC: xem ở trên

  • kiến thức về AltiVec: xem ở trên

  • kiến thức về DirectX: điều này bạn có thể thực hành trên Windows.

  • kiến thức về Xbox 360 SDK: những điểm tương đồng là việc thực hành XNA sẽ giúp ích rất nhiều.

Các kỹ năng quan trọng khác có thể bao gồm lập trình đa luồng (kiến thức chung, nhưng cũng có thể vận hành nguyên tử, thuật toán không khóa), tính di động (độ bền, kích thước con trỏ, tính năng phần cứng video, v.v.).

Vì vậy, như bạn đã đề cập, tôi tin DirectX sẽ là kỹ năng bổ ích nhất mà bạn có thể thành thạo. Tuy nhiên, hãy lưu ý rằng cuộc thi cũng sẽ diễn ra theo cách này và một vài bổ sung có thể tạo ra sự khác biệt.

Nguồn : Tôi đã làm tất cả những điều trên và có cho mình một công việc tuyệt vời trong ngành.


3

Câu hỏi này (hay đúng hơn, nguyện vọng của bạn) cần phạm vi. Ngày nay trong ngành công nghiệp hầu như không có thứ gọi là 'lập trình viên trò chơi'. Trừ khi bạn đang nhắm đến một studio rất nhỏ hoặc lập trình viên kết xuất, DirectX hoặc OpenGl không thực sự quan trọng. Những thứ đặt bàn giao tiếp ngoài PC là hiệu năng hạn chế, bộ nhớ hạn chế và các vấn đề đa lõi. Bất kể ngành lập trình nào trong ngành mà bạn mong muốn, đó là những ngành quan trọng, vì vậy cho thấy rằng bạn nhận thức được cách đối phó với những ý chí đó, imo, giúp đỡ. Biết C ++ của bạn. Biết những cạm bẫy của C ++. Biết cách không sử dụng STL. Đảm bảo mã của bạn là khung hình độc lập, đa luồng và sử dụng bộ cấp phát bộ nhớ tùy chỉnh. Làm nổi bật điều đó, tất nhiên. Tôi nghĩ điều thực sự quan trọng là bản demo của bạn là đã hoàn thành. Rất nhiều lập trình viên dừng lại khi cơ chế cốt lõi hoạt động, trong khi lực cản trong lập trình trò chơi là sự hoàn thiện - cho thấy rằng bạn biết cách thực hiện.

Hầu hết các hãng phim muốn biết kỹ năng của bạn là gì, AI, Gameplay, Rendering, Systems, Audio, Vật lý, không có gì. Hãy cố gắng để tìm ra điều đó. Là một người nói chung, không có kinh nghiệm trong ngành, sẽ là một khó khăn.

Chúc may mắn!


Điểm tuyệt vời về việc chọn một khu vực để tập trung vào.
jcurrie33

1

DirectX là một lựa chọn tuyệt vời. Đây là bản demo dễ nhất để chúng tôi chạy vì chúng tôi có PC với Windows rất có thể. Nếu bạn chọn đi với tùy chọn bảng điều khiển, thay vào đó, một video là một bản demo đẹp. Nhưng không có gì nhịp đập khi nhìn vào mã sống của bạn đang chạy.

Hãy thử và chạy mã của bạn trên một số máy để đảm bảo rằng bạn cho phép các thẻ video khác nhau, v.v. Ngày nay, điều đó chủ yếu là tự động, nhưng một số khác biệt vẫn có thể xảy ra.


0

Kiến thức về bất kỳ API 3D nào đều tốt. Nó không quan trọng cho dù đó là DirectX hay OpenGL. Các khái niệm 3D giống nhau ở mọi nơi, chỉ là các API là khác nhau. Biết OpenGL không khiến bạn gặp bất lợi cho người biết Direct3D khi cạnh tranh cho công việc XBOX cấp cơ sở. Những gì bạn cần thể hiện là khả năng mã hóa thứ gì đó và bạn hiểu C ++ (hoặc bất kỳ ngôn ngữ nào khác), các thư viện chuẩn, cấu trúc dữ liệu và thuật toán. Kiến thức về một công cụ trò chơi như UDK hoặc Unity là một phần thưởng. Điều này thể hiện khả năng làm việc của bạn với phần mềm trung gian, điều phổ biến trong các công ty trò chơi. Flash đã được sử dụng trong phát triển front-end, nó cũng là một kỹ năng không thể bỏ qua.

Quan trọng nhất là bạn chỉ cần xây dựng một bản demo (bằng bất kỳ ngôn ngữ nào), làm cho nó tốt và xem đến cuối. Chúc may mắn!

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.