วิธีการรับประสบการณ์ PS3 / Xbox 360 โดยไม่ต้องเข้าถึงชุด Dev?


24

ฉันเป็นโปรแกรมเมอร์เกมรุ่นที่พยายามเข้าสู่อุตสาหกรรมการเขียนโปรแกรมสำหรับ PS3, Xbox 360 ปัญหาหลักที่ฉันเห็นคือต้องแสดงทักษะของฉันกับนายจ้างที่มีศักยภาพ แต่ไม่สามารถเข้าถึงชุด Dev สำหรับ PS3 หรือ Xbox 360 ได้ สิ่งนี้เป็นไปไม่ได้โดยตรง

คำถามของฉันคืออะไรทางเลือกที่ดีที่สุดในการแสดงทักษะให้นักพัฒนาคอนโซลของฉันคืออะไร

การเขียนโปรแกรม C ++ ใน DirectX สำหรับ Windows ดูเหมือนจะใกล้เคียงกับการแสดงทักษะการเขียนโปรแกรม Xbox 360 และการเขียนโปรแกรม C ++ ใน OpenGL นั้นค่อนข้างใกล้เคียงกับการแสดงทักษะการเขียนโปรแกรม PS3 น่าเสียดายที่มันดูเหมือนว่าจากการวิจัยเว็บราวกับว่าทั้ง Xbox 360 และ PS3 มีห้องสมุดที่เป็นของตัวเองจริง ๆ ดังนั้นจึงดูเหมือนว่าจะไม่ได้พยายามอย่างเต็มที่ที่จะเกิดผล 100% วิธีนี้ดูใกล้เคียงที่สุด แต่ใช้เวลามากที่สุด รวมทั้งคุณไม่ได้ทำอะไรเลยบนคอนโซล

ในทางกลับกันการเขียนโปรแกรมใน XNA มีประโยชน์กับเกมของคุณจริง ๆ บนคอนโซลแม้ว่าฉันจะได้รับความประทับใจว่านี่คือสิ่งที่มองว่าไม่ใช่ "ของจริง" เพราะเป็นเพียง wrapper รอบ ๆ DirectX และใช้ C # แทน C ++

มีใครบ้างที่มีความรู้หรือประสบการณ์จากในอุตสาหกรรมเพื่อให้ทราบว่าการสาธิตเกมประเภทใดจะมีประโยชน์มากที่สุดในการแสดงให้ผู้ว่าจ้างเห็น C ++ ใน DirectX, OpenGL, XNA, Unreal Engine, Unity3d, Flash, etc etc ฯลฯ ? มีเพียงไม่กี่ชั่วโมงในแต่ละวันและฉันชอบที่จะรู้วิธีที่จะนำความพยายามของฉัน

ความรู้สึกของฉันคือ DirectX จะเป็นตัวเลือกที่ดีที่สุดเนื่องจากดูเหมือนว่าใกล้เคียงกับสิ่งที่ใช้ใน Xbox 360 แต่ถ้ามีตัวอย่างที่ดีในภาษา / เอ็นจิ้นอื่นก็ดีเหมือนกันมันจะใช้เวลาน้อยลง เส้นทางอื่น

ขอบคุณล่วงหน้าสำหรับความช่วยเหลือและคำแนะนำของคุณ!

คำตอบ:


17

ขึ้นอยู่กับเส้นทางที่คุณกำลังจะลงคนส่วนใหญ่ตรงไปตรงมาไม่คาดหวังทักษะแพลตฟอร์มเฉพาะในจูเนียร์

หากโปรแกรมเมอร์เกมของคุณทำเกมมากมาย

หากโปรแกรมเมอร์ด้านเทคนิคของคุณโหลดการสาธิตเทคโนโลยี อ่านเอกสารทางเทคนิคที่น่าสนใจและลองสิ่งใหม่ ๆ หากคุณทำสิ่งที่น่าสนใจที่ทำให้โปรแกรมเมอร์ไป OOOoo เราจะต้องการคุยกับคุณ เราต้องการพูดคุยเกี่ยวกับสิ่งที่น่าสนใจเล็ก ๆ น้อย ๆ ที่คุณทำ มันไม่จำเป็นต้องเป็นเกม

ความจริง: การสาธิตของคุณควรใช้กับเครื่องที่หลากหลายรวมถึงการบันทึกวิดีโอเป็นแบ็คอัพ แก้ไขแล้วไม่ได้ดิบ


8

สำหรับบทบาทรุ่นน้องฉันไม่ได้มองหาประสบการณ์มากมายใน API เฉพาะใด ๆ แต่แทนที่จะเข้าใจแนวคิดที่เกี่ยวข้องเป็นอย่างดี

หากเป็นตำแหน่งที่เกี่ยวข้องกับกราฟิกที่คุณกำลังมองหาแสดงให้เห็นว่าคุณรู้คณิตศาสตร์ 3 มิติและวิธีการใช้ API อย่างดี (OpenGL หรือ D3D ไม่ต้องสนใจว่าจริง ๆ แล้ว - ให้แน่ใจว่าคุณปรับให้เหมาะสมแล้ว) APIs ทั้งหมดตรงไปตรงมามากขึ้นหรือน้อยลงเพื่อสร้างรายการสิ่งที่ต้องวาดส่งพวกเขาและจัดการสถานะ - และมีวิธีที่ดีและวิธีที่ไม่ดีในการทำสิ่งเหล่านั้นดังนั้นเข้าใจว่า

สำหรับการเขียนโปรแกรมคอนโซลทั่วไปเพิ่มเติมตรวจสอบให้แน่ใจว่าคุณมีปัญหาเกี่ยวกับแพลตฟอร์มฝังตัว หน่วยความจำที่ จำกัด (ไม่มีการสลับการแยกส่วนไม่ดี ฯลฯ ) กฎที่เข้มงวดในการจัดการกับข้อขัดข้องแบนด์วิดท์ I / O ที่ จำกัด ไม่มีความสามารถ (หรือ จำกัด ) ในการแก้ไข / อัปเดต ฯลฯ

มันเกี่ยวกับรูปแบบของการเข้ารหัสไม่ใช่เฉพาะ

ฉันจะหลีกเลี่ยง XNA หากคุณกำลังมองหาตำแหน่งทางการค้าเพราะจริงๆแล้วมันไม่มีประโยชน์ในเวทีนั้น


7

FWIW ฉันจะพิจารณาการเขียนโปรแกรมบน Xbox 360 ใน C # / XNA เพื่อทดแทนที่ดีมากสำหรับ "ข้อตกลงที่แท้จริง"

พิจารณา:

  • ใน XNA บน 360 คุณต้องจัดการกับการรวบรวมขยะ โดยเฉพาะคุณต้องหลีกเลี่ยงการจัดสรรมากเกินไปถ้ามีต่อหนึ่งเฟรม ในขณะที่ใน C ++ บน 360, คุณไม่ได้มีการจัดการกับการเก็บขยะ (ยกเว้นกรณีที่คุณจัดการกับภาษาสคริปต์เช่น Lua) แต่คุณจะยังคงต้องการที่จะหลีกเลี่ยงการทำจำนวนมากถ้ามีการจัดสรรต่อเฟรม
  • เพื่อที่จะใช้ประโยชน์จากพลังการประมวลผลส่วนใหญ่ของ 360 คุณต้องสร้างโค้ดแบบมัลติเธรด นี่เป็นเรื่องจริงถ้าไม่เช่นนั้นใน XNA เหมือนกับใน C ++ เนื่องจากความปรารถนาที่จะสร้างรหัส Managed ให้มีประสิทธิภาพน้อยกว่า C ++ เล็กน้อย
  • นอกเหนือจากฟังก์ชั่นตัวช่วยมากมายและคลาส XNA ยังให้กราฟิก API ใน XNA เนื่องจากมันขึ้นอยู่กับ DirectX นั้นคล้ายกับ DirectX / C ++ ใน 360

สิ่งที่ยอดเยี่ยมเกี่ยวกับ XNA คือช่วยให้คุณจดจ่อกับปัญหาทางเทคนิคน้อยลงในการทำบางสิ่งบนหน้าจอและทำเกมของคุณให้มากขึ้น เพียงแค่สร้างเกม (เกมใดก็ได้!) ที่ปราศจากข้อผิดพลาดและทำงานในอัตราเฟรมที่เหมาะสมโดยเฉพาะในสภาพแวดล้อมที่ XNA นั้นให้การสนับสนุน - จะให้ประสบการณ์มากมายการสาธิตที่คุณสามารถสาธิตได้ และหวังว่าจะได้เท้าในประตู


5

หากคุณต้องการทักษะการเขียนโปรแกรม PS3 คุณอาจมองหา:

  • ความรู้เกี่ยวกับสถาปัตยกรรม PPC สิ่งนี้คุณสามารถทำได้โดยทำการพัฒนา C / C ++ บนเครื่อง PowerPC ไม่ว่าจะเป็น OS X บน G5 Mac หรือ Linux บนเครื่อง PowerPC ใด ๆ รวมถึง PS3
  • ความรู้เกี่ยวกับ AltiVec; อีกครั้งคุณสามารถรับสิ่งนี้ได้ด้วย Mac หรือ Linux บนเครื่อง PowerPC ล่าสุด แต่ความรู้เกี่ยวกับ SSE3 อาจเพียงพอ
  • ความรู้เกี่ยวกับ SPU: คุณสามารถฝึกฝนได้เฉพาะบน PS3 โดยใช้ Linux เท่านั้น

วิธีนี้จะไม่สอนวิธีตั้งโปรแกรมชิปวิดีโอ PS3 หรือวิธีใช้ SDK อย่างเป็นทางการ แม้ว่าสำหรับการเขียนโปรแกรมวิดีโอทักษะ OpenGL และ DirectX ทั่วไปอาจจะเพียงพอด้วย HLSL บางส่วนเช่นกัน นอกจากนี้ยังมีข้อมูลและวัสดุจำนวนมากทั่วอินเทอร์เน็ตไม่ใช่สิ่งผิดกฎหมายที่จะได้รับการดูแล (ตัวอย่างเช่น GCC รุ่นแก้ไขของ Sony สำหรับ PS3 ครอบคลุมโดย GPL)

หากคุณต้องการทักษะการเขียนโปรแกรม X360 คุณจะมองหา:

  • ความรู้เกี่ยวกับสถาปัตยกรรม PPC: ดูด้านบน

  • ความรู้เกี่ยวกับ AltiVec: ดูด้านบน

  • ความรู้เกี่ยวกับ DirectX: สิ่งนี้คุณสามารถฝึกฝนบน Windows

  • ความรู้เกี่ยวกับ Xbox 360 SDK: ความคล้ายคลึงกันเป็นสิ่งที่ฝึก XNA จะช่วยได้มาก

ทักษะที่สำคัญอื่น ๆ อาจรวมถึงการเขียนโปรแกรมแบบมัลติเธรด (ความรู้ทั่วไป แต่ยังรวมถึงการดำเนินงานปรมาณูอัลกอริทึมฟรีล็อค) พกพา (endianness ขนาดตัวชี้คุณสมบัติฮาร์ดแวร์วิดีโอ ฯลฯ )

ใช่อย่างที่คุณพูดไปฉันเชื่อว่า DirectX จะเป็นทักษะที่คุ้มค่าที่สุดที่คุณสามารถควบคุมได้ อย่างไรก็ตามโปรดทราบว่าการแข่งขันจะเป็นไปในลักษณะนี้เช่นกันและความพิเศษบางอย่างอาจสร้างความแตกต่าง

แหล่งที่มา : ฉันทำทุกอย่างที่กล่าวมาแล้วและได้งานที่ยอดเยี่ยมในอุตสาหกรรม


3

คำถามนี้ (หรือต้องการแรงบันดาลใจของคุณ) ต้องการขอบเขต ทุกวันนี้ในอุตสาหกรรมนี้แทบจะไม่มีอะไรเหมือนเป็น 'โปรแกรมเมอร์เกม' นอกจากว่าคุณจะตั้งเป้าไปที่สตูดิโอหรือนักเขียนโปรแกรมขนาดเล็ก DirectX หรือ OpenGl ก็ไม่สำคัญ สิ่งที่กำหนดคอนโซลนอกเหนือจากพีซีมีประสิทธิภาพ จำกัด หน่วยความจำ จำกัด และปัญหามัลติคอร์ ไม่ว่าสาขาการเขียนโปรแกรมใดในอุตสาหกรรมที่คุณปรารถนาสิ่งเหล่านั้นมีความสำคัญดังนั้นแสดงให้เห็นว่าคุณตระหนักถึงวิธีจัดการกับความต้องการเหล่านั้น IMO และความช่วยเหลือ รู้ว่า C ++ ของคุณ รู้ข้อผิดพลาดของ C ++ รู้วิธีที่จะไม่ใช้ STL ตรวจสอบให้แน่ใจว่ารหัสของคุณมีความเป็นอิสระจากกันแบบมัลติเธรดและใช้ตัวจัดสรรหน่วยความจำแบบกำหนดเอง ไฮไลต์ที่แน่นอน ฉันคิดว่าสิ่งที่สำคัญจริงๆคือการสาธิตของคุณเสร็จสิ้นแล้ว. โปรแกรมเมอร์จำนวนมากหยุดทำงานเมื่อกลไกหลักทำงานในขณะที่การลากในการเขียนโปรแกรมเกมเป็นสิ่งที่แสดงให้เห็นว่าคุณรู้วิธีที่จะทำ

สตูดิโอส่วนใหญ่ต้องการทราบว่าทักษะของคุณคืออะไร, AI, เกมเพลย์, เรนเดอร์, ระบบ, เสียง, ฟิสิกส์, อะไรก็ตาม ลองคิดดูสิ การเป็นคนทั่วๆไปที่ไม่มีประสบการณ์ในอุตสาหกรรมจะเป็นการขายที่ยาก

โชคดี!


จุดที่ดีเกี่ยวกับการเลือกพื้นที่ที่จะมุ่งเน้น
jcurrie33

1

DirectX เป็นตัวเลือกที่ยอดเยี่ยม เป็นการสาธิตที่ง่ายที่สุดสำหรับเราที่จะเรียกใช้เนื่องจากเรามีพีซีที่ใช้ Windows เป็นไปได้มากที่สุด หากคุณเลือกที่จะไปกับตัวเลือกคอนโซลวิดีโอเป็นตัวอย่างที่ดีแทน แต่ไม่มีอะไรเต้นดูรหัสสดของคุณทำงาน

ลองและเรียกใช้รหัสของคุณในหลาย ๆ เครื่องเพื่อให้แน่ใจว่าคุณอนุญาตให้ใช้การ์ดวิดีโอที่แตกต่างกัน ฯลฯ วันนี้เป็นไปโดยอัตโนมัติ แต่ความแตกต่างบางประการยังคงเกิดขึ้น


0

มีความรู้เกี่ยวกับ 3D API เป็นอย่างดี ไม่สำคัญว่าเป็น DirectX หรือ OpenGL แนวคิด 3 มิตินั้นเหมือนกันทุกที่เพียงแค่ API ต่างกัน การรู้จัก OpenGL จะไม่ทำให้คุณเสียเปรียบคนที่รู้จัก Direct3D เมื่อแข่งขันเพื่อใช้งาน XBOX ระดับต้น สิ่งที่คุณต้องแสดงคือความสามารถในการเขียนโค้ดบางอย่างและคุณเข้าใจ C ++ (หรือภาษาอื่น ๆ ), ไลบรารีมาตรฐาน, โครงสร้างข้อมูลและอัลกอริธึม ความรู้เกี่ยวกับเอ็นจิ้นเกมเช่น UDK หรือ Unity เป็นโบนัส สิ่งนี้แสดงให้เห็นถึงความสามารถของคุณในการทำงานกับมิดเดิลแวร์ซึ่งเป็นเรื่องปกติใน บริษัท เกม Flash ถูกใช้ในการพัฒนาส่วนหน้าและยังเป็นทักษะที่ไม่ควรมองข้าม

ที่สำคัญที่สุดคือคุณเพียงแค่สร้างตัวอย่าง (ในภาษาใด ๆ ) ทำให้มันดีและดูให้จบ โชคดี!

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.