Bagaimana cara mendapatkan pengalaman PS3 / Xbox 360 tanpa memiliki akses ke perangkat Dev?

24

Saya seorang programmer game pemula yang mencoba masuk ke pemrograman industri untuk PS3, Xbox 360. Masalah utama yang saya lihat adalah perlunya mendemonstrasikan keahlian saya kepada pemberi kerja potensial, tetapi tanpa akses ke perangkat Dev untuk PS3 atau Xbox 360, melakukan ini secara langsung tidak mungkin.

Pertanyaan saya adalah, apa cara alternatif terbaik untuk menunjukkan kepada para pengembang konsol keterampilan saya?

Pemrograman C ++ pada DirectX untuk Windows tampaknya hampir menunjukkan keterampilan pemrograman Xbox 360, dan pemrograman C ++ dalam OpenGL tampaknya relatif dekat dengan menunjukkan keterampilan pemrograman PS3. Sayangnya, tampaknya dari penelitian web seolah-olah baik Xbox 360 dan PS3 benar-benar memiliki perpustakaan propietary sendiri, oleh karena itu tampaknya membuat ini bukan usaha yang bermanfaat 100%. Pendekatan ini tampaknya paling dekat, tetapi juga paling memakan waktu. Plus Anda tidak benar-benar membuat apa pun berjalan di konsol.

Di sisi lain, pemrograman dalam XNA memiliki keuntungan bahwa game Anda sebenarnya ada di konsol, meskipun saya mendapat kesan bahwa ini dipandang sebagai bukan "masalah nyata" karena itu hanya pembungkus di sekitar DirectX dan menggunakan C # daripada C ++.

Adakah yang memiliki pengetahuan atau pengalaman dari dalam industri untuk mengetahui jenis permainan demo apa yang paling berguna untuk ditunjukkan kepada calon pemberi kerja? C ++ dalam DirectX, OpenGL, XNA, Unreal Engine, Unity3d, Flash, dll dll? Hanya ada berjam-jam dalam sehari, dan saya ingin tahu bagaimana mengarahkan usaha saya.

Perasaan saya adalah bahwa DirectX akan menjadi pilihan terbaik, karena tampaknya lebih dekat dengan apa yang digunakan pada Xbox 360, tetapi jika memiliki demo yang baik dalam bahasa lain / mesin sama baiknya, itu jelas akan lebih sedikit memakan waktu untuk pergi rute lain.

Terima kasih sebelumnya atas bantuan dan saran Anda!

jcurrie33
sumber

Jawaban:

17

Tergantung jalur apa yang akan Anda lalui, terus terang sebagian besar orang tidak mengharapkan keterampilan platform khusus di tingkat junior.

Jika Anda seorang programmer game, buat banyak game.

Jika seorang programmer teknis membuat banyak demo teknologi. Baca kertas putih yang menarik dan coba barang baru. Jika Anda melakukan sesuatu yang menarik yang membuat para programmer pergi OOOoo kami INGIN berbicara dengan Anda. Kami ingin mengobrol tentang hal menarik kecil yang telah Anda lakukan. Tidak perlu menjadi permainan.

FAKTA UTAMA: Demo Anda harus dijalankan pada berbagai mesin, termasuk rekaman video sebagai cadangan. Diedit tidak mentah.

Kimau
sumber
8

Untuk peran junior, saya tidak mencari banyak pengalaman dalam API tertentu, melainkan pemahaman yang baik tentang konsep-konsep yang terlibat.

Jika itu adalah posisi yang berhubungan dengan grafik yang Anda cari, tunjukkan bahwa Anda tahu matematika 3D, dan cara menggunakan API dengan baik (OpenGL atau D3D, tidak peduli yang benar-benar - pastikan Anda mengoptimalkannya dengan baik). Sejujurnya, semua API sedikit banyak bermuara pada pembuatan daftar hal-hal untuk digambar, mengirimkannya, dan mengelola negara - dan ada cara yang baik dan cara yang buruk untuk melakukan hal-hal itu, jadi pahami itu.

Untuk pemrograman konsol yang lebih umum, pastikan Anda memiliki pegangan pada masalah tertentu yang memerlukan platform tertanam. Memori terbatas (tanpa swap, fragmentasi buruk, dll.), Aturan ketat tentang mengatasi crash, bandwidth I / O terbatas, tidak ada (atau terbatas) kemampuan untuk menambal / memperbarui, dll.

Ini tentang gaya pengkodean, bukan spesifik.

Saya benar-benar akan menghindari XNA jika Anda mencari posisi komersial, karena itu sebenarnya tidak berguna di arena itu.

JasonD
sumber
7

FWIW, saya akan mempertimbangkan pemrograman pada Xbox 360 di C # / XNA menjadi pengganti yang sangat baik untuk "real deal".

Mempertimbangkan:

  • Di XNA on 360, Anda harus berurusan dengan pengumpulan sampah; khususnya, Anda harus menghindari membuat terlalu banyak, jika ada, alokasi per-bingkai. Sementara di C ++ pada 360, Anda tidak harus berurusan dengan pengumpulan sampah (kecuali Anda sedang berhadapan dengan bahasa scripting, seperti Lua), tetapi Anda jangan masih ingin menghindari membuat banyak, jika ada, alokasi per-frame.
  • Untuk memanfaatkan banyak dari kekuatan pemrosesan 360, Anda perlu membuat kode Anda multi-threaded. Ini sama benarnya, jika tidak lebih dari itu, dalam XNA seperti halnya di C ++, karena keinginan untuk menebus kode Managed menjadi sedikit kurang berkinerja daripada C ++.
  • Selain dari banyak fungsi pembantu dan kelas yang disediakan XNA, grafik API di XNA, mengingat bahwa itu didasarkan pada DirectX, sangat mirip dengan DirectX / C ++ pada 360.

Hal yang luar biasa tentang XNA adalah memungkinkan Anda untuk lebih sedikit fokus pada masalah teknis untuk mendapatkan sesuatu di layar, dan lebih banyak pada membuat game Anda. Cukup membuat game (game apa saja!), Yang relatif bebas bug dan berjalan pada frame rate yang layak - terutama di lingkungan terbatas yang diberikan XNA - akan memberi Anda banyak pengalaman, demo yang dapat Anda tunjukkan, dan semoga, satu kaki di pintu.

Blair Holloway
sumber
5

Jika Anda ingin keterampilan pemrograman PS3, Anda dapat mencari:

  • pengetahuan tentang arsitektur PPC; ini bisa Anda dapatkan dengan melakukan pengembangan C / C ++ pada mesin PowerPC, baik itu OS X pada G5 Mac lama, atau Linux pada mesin PowerPC apa pun termasuk PS3.
  • pengetahuan tentang AltiVec; lagi, Anda bisa mendapatkan ini dengan Mac atau dengan Linux pada mesin PowerPC baru-baru ini, tetapi pengetahuan tentang SSE3 mungkin cukup.
  • pengetahuan tentang SPU: Anda hanya bisa mempraktikkannya di PS3 menggunakan Linux.

Ini tidak akan mengajari Anda cara memprogram chip video PS3, atau cara menggunakan SDK resmi. Meskipun untuk pemrograman video, OpenGL umum dan keterampilan DirectX mungkin akan cukup, dengan beberapa HLSL juga. Ada juga banyak informasi dan materi di seluruh Internet, tidak semuanya ilegal untuk diperoleh (misalnya, versi GCC yang dimodifikasi Sony untuk PS3 dicakup oleh GPL).

Jika Anda ingin keterampilan pemrograman X360, Anda akan mencari:

  • pengetahuan tentang arsitektur PPC: lihat di atas

  • pengetahuan tentang AltiVec: lihat di atas

  • pengetahuan tentang DirectX: ini dapat Anda praktikkan di Windows.

  • pengetahuan tentang Xbox 360 SDK: kesamaannya sedemikian sehingga mempraktikkan XNA akan banyak membantu.

Keterampilan penting lainnya mungkin termasuk pemrograman multithreaded (pengetahuan umum, tetapi juga operasi atom, algoritma bebas kunci), portabilitas (endianness, ukuran pointer, fitur perangkat keras video, dll.).

Jadi ya, seperti yang Anda sebutkan, saya percaya DirectX akan menjadi keterampilan paling bermanfaat yang bisa Anda kuasai. Namun, ketahuilah bahwa persaingan juga akan berlangsung seperti ini, dan beberapa tambahan mungkin akan membuat perbedaan.

Sumber : Saya melakukan semua hal di atas dan mendapatkan pekerjaan yang luar biasa di industri.

sam hocevar
sumber
3

Pertanyaan ini (atau lebih tepatnya, aspirasi Anda) perlu ruang lingkup. Saat ini di industri hampir tidak ada yang namanya 'programmer game'. Kecuali Anda bermaksud menggunakan studio atau program rendering yang sangat kecil, DirectX atau OpenGl tidak terlalu penting. Hal-hal yang membedakan konsol dari PC adalah kinerja terbatas, memori terbatas, dan masalah multicore. Tidak peduli apa pun cabang pemrograman dalam industri yang Anda cita-citakan, itu penting, jadi tunjukkan bahwa Anda sadar bagaimana menghadapi hal itu, baiklah, tolong. Ketahui C ++ Anda. Ketahui perangkap C ++. Ketahui cara tidak menggunakan STL. Pastikan kode Anda framerate independen, multi-threaded, dan menggunakan pengalokasi memori khusus. Sorot itu, tentu saja. Saya pikir yang benar-benar penting adalah bahwa demo Anda selesai. Banyak programmer berhenti ketika mekanik inti bekerja, sedangkan hambatan dalam pemrograman game adalah finalling - menunjukkan bahwa Anda tahu cara melakukannya.

Sebagian besar studio ingin tahu apa keahlian Anda, AI, Gameplay, Rendering, Sistem, Audio, Fisika, dan lainnya. Coba cari tahu itu. Menjadi seorang generalis, tanpa pengalaman dalam industri, akan sulit dijual.

Semoga berhasil!

Kaj
sumber
Poin bagus tentang memilih area untuk fokus.
jcurrie33
1

DirectX adalah pilihan yang bagus. Ini adalah demo termudah untuk kami jalankan karena kami memiliki PC dengan Windows sudah sangat mungkin. Jika Anda memilih untuk menggunakan opsi konsol, video adalah demo yang bagus. Tapi tidak ada yang mengalahkan melihat kode aktif Anda berjalan.

Cobalah dan jalankan kode Anda pada beberapa mesin untuk memastikan Anda mengizinkan berbagai kartu video, dll. Saat ini sebagian besar otomatis, tetapi beberapa perbedaan masih dapat terjadi.

Seffyroff
sumber
0

Pengetahuan tentang API 3D apa pun bagus. Tidak masalah apakah itu DirectX atau OpenGL. Konsep 3D sama di mana-mana, hanya API yang berbeda. Mengetahui OpenGL tidak menempatkan Anda pada posisi yang kurang menguntungkan bagi seseorang yang mengenal Direct3D ketika bersaing untuk pekerjaan XBOX tingkat junior. Apa yang Anda perlu tunjukkan adalah kemampuan Anda untuk mengkode sesuatu dan bahwa Anda memahami C ++ (atau bahasa lainnya), pustaka standar, struktur data, dan algoritma. Pengetahuan tentang mesin permainan seperti UDK atau Unity adalah bonus. Ini menunjukkan kemampuan Anda untuk bekerja dengan middleware, yang umum di perusahaan game. Flash telah digunakan dalam pengembangan front-end, ini juga merupakan keterampilan untuk tidak diabaikan.

Yang paling penting adalah Anda hanya membuat demo (dalam bahasa apa pun), membuatnya bagus dan melihatnya sampai akhir. Semoga berhasil!

5 tepat
sumber