อะไรคือทักษะพื้นฐานที่ Professional Game Programmer จำเป็นต้องมี? [ปิด]


11

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

บางคนจะบอกว่า C ++ นั้นดีในขณะที่บางคนบอกว่า JAVA อาจจะดีกว่าในขณะที่คนอื่น ๆ จะพูดว่าบางภาษาอื่น ๆ คือ ur-language เช่น Python, Lua, UnrealScript ฯลฯ นอกจากนี้ยังแนะนำว่าควรมีความรู้ เอ็นจิ้นของเกมเช่น Unreal, Torque, Blender, Panda และอื่น ๆ และต้องมีความรู้เกี่ยวกับ OpenGL, AI, Collision Detection ฉันได้สร้างเกมโดยใช้ Android SDK

สิ่งที่ฉันต้องการถามคือ:

  • อะไรคือทักษะพื้นฐานที่ Professional Game Programmer จำเป็นต้องมี? เป็นภาษาเขียนโปรแกรม 1 ภาษา + 1 ภาษาสคริปต์ + ความรู้เกี่ยวกับเอ็นจิ้นเกม 1 เกม + OpenGL หรือไม่ (วุ้ย!!)
  • ถ้าฉันต้องการที่จะเข้าสู่อุตสาหกรรมเกมในฐานะ Gameplay Programmer หรือ AI programmer ฉันจะสามารถเข้ามามีทักษะและผลงานในปัจจุบันของฉัน (ตามที่ระบุไว้ข้างต้น) ได้หรือไม่?
  • การเรียนรู้ภาษาการเขียนโปรแกรมหนึ่งเดียวเพียงพอสำหรับการพัฒนาเกมหรือไม่

แนวทางใด ๆ จะเป็นประโยชน์

คำตอบ:


6
  1. คุณควรมีความเชี่ยวชาญและมีความสามารถในการเขียนโปรแกรมภาษาอย่างน้อยหนึ่งภาษา การทำเช่นนั้นจะช่วยให้คุณสามารถเลือกภาษาอื่น ๆ ได้ง่ายขึ้น ประเภทของงานที่คุณสมัครนั้นขึ้นอยู่กับภาษาที่คุณควรทราบก่อน เกมสามเรื่องส่วนใหญ่ที่วางจำหน่ายบนพีซีและคอนโซลส่วนใหญ่จะได้รับการพัฒนาใน C ++ แอปพลิเคชันและเกมบนมือถือในทางกลับกันมักจะใช้ Java (Google Android และโทรศัพท์อื่น ๆ ) หรือ Objective-C (iPhone) หากคุณดูรายการงานสำหรับวิศวกรซอฟต์แวร์ในเว็บไซต์นักพัฒนาซอฟต์แวร์โดยทั่วไปจะกล่าวถึงประสบการณ์ด้านภาษาที่คุณต้องการ ตัวอย่างเช่น "ความเชี่ยวชาญและมีความรู้ใน C ++" หรือ "ประสบการณ์กับ C ++ เป็นเวลาอย่างน้อยสองปี" การเรียนรู้ภาษาสคริปต์จะไม่ทำร้ายคุณ มันจะเป็นประโยชน์กับคุณเท่านั้น การเรียนรู้ประโยชน์เสมอ และไม่ต้องเจ็บคุณไม่จำเป็นต้องมีความรู้ในการทำงานของเอ็นจิ้นเกมใด ๆ แต่ถ้าคุณสมัครกับ บริษัท ที่ใช้เอ็นจิ้นนั้นมันอาจจะช่วยให้คุณกลับมาทำงานได้ หากคุณเป็นผู้เชี่ยวชาญเกี่ยวกับเอ็นจิ้นแหล่งที่มา แต่คุณใช้กับซอฟต์แวร์ id และไม่รู้อะไรเกี่ยวกับเอ็นจิ้นเทคโนโลยี id นั่นไม่ใช่สิ่งที่มีประโยชน์มากจริงๆ

  2. หากคุณทำโครงการตั้งแต่ต้นจนจบและคุณแสดงว่าคุณมีแล้วฉันคิดว่ามันจะช่วยเพิ่มคุณกลับมา ฉันไม่แน่ใจเกี่ยวกับการสาธิตเทคโนโลยีมากมาย ดูเหมือนว่าผู้คนจำนวนมากกำลังสาธิตเทคโนโลยีและพวกเขาไม่ได้ทำโครงการเกมไม่กี่โครงการ โปรแกรมเมอร์ Gameplay มีแนวโน้มที่จะเป็น jr ตำแหน่งระดับดังนั้นใช่ขึ้นอยู่กับประวัติการทำงานของคุณคุณควรจะหางานที่ไหนสักแห่ง

  3. ฉันคิดว่าการรู้ภาษาเดียวและสามารถใช้มันอย่างเชี่ยวชาญและมีประสิทธิภาพนั้นดีกว่าการรู้ 5 ภาษาและไม่รู้วิธีการใช้

ข้อความปฏิเสธความรับผิดชอบ: ไม่เคยทำงานในอุตสาหกรรมนี้เป็นเพียงความคิดเห็นของฉันที่ได้รับหลังจากที่ได้อ่านหัวข้อและบทความเกี่ยวกับงานเขียนโปรแกรมเกมตามสิ่งที่ฉันคิดว่าเป็นบทความ / ความคิดเห็นที่เหมาะสมที่สุดที่ฉันได้อ่าน


7
ฉันจะเพิ่มหัวข้อย่อย 1 ด้วย "ความรู้ของภาษาโปรแกรมหนึ่งที่ใช้ตัวชี้ " พอยน์เตอร์เป็นสิ่งจำเป็นขั้นพื้นฐานในการทำความเข้าใจกับสิ่งที่เกิดขึ้นกับภาษาที่ไม่เคยมีประสบการณ์กับพวกเขามาก่อนอาจเป็นข้อเสียอย่างใหญ่หลวงเมื่อไปที่ภาษาที่ต้องการ C ++ เป็นที่แพร่หลายอย่างมากสำหรับเกมที่ไม่ใช่เว็บดังนั้นคุณอาจเริ่มเล่นเกมนี้ได้เช่นกัน
Tetrad

@ShrimpCrackers คุณรู้หรือไม่ว่าคุณสามารถสร้าง"Bullet Bullet" จริงโดยใช้เครื่องมือแก้ไขใช่ไหม ;)
Ben

คุณควรแสดงให้เห็นว่าอย่างน้อยภาษาการเขียนโปรแกรมที่ไม่ได้ใช้กันอย่างแพร่หลายในอุตสาหกรรม แต่มีลักษณะเฉพาะที่น่าสนใจ: สิ่งนี้สื่อสารว่าคุณเรียนรู้เพราะมีความสนใจในเรื่องความตรงข้ามมาก ๆ ) ผสานสิ่งที่ดีที่สุดของทั้งสองโลกเข้าด้วยกัน
FxIII

2

ยิ่งฉันค้นคว้าหัวข้อนี้และพูดคุยกับผู้พัฒนาเกมมืออาชีพมากเท่าไหร่ฉันก็ยิ่งคิดว่ามันน้อยลง ในลำดับใดไม่มี:

  • ความสามารถในการทำงานร่วมกันได้ดีในบรรยากาศทีม การสร้างเกมต้องใช้คนจำนวนมากเพียงแค่อ่านเครดิตในเกม AAA บางเกมในปัจจุบันใช้เวลา 10+ นาทีถ้าคุณไม่สามารถทำงานได้ดีกับผู้คนและเป้าหมายของคุณคือการทำงานร่วมกับคนอื่นเพื่อสร้างเกมที่ยอดเยี่ยม กลัวว่านี่ไม่ใช่อุตสาหกรรมที่เหมาะสม นี่เป็นหนึ่งในทักษะอ่อนนุ่มที่มักจะพัฒนาเมื่อเวลาผ่านไปจากการทำงานในโครงการกับคนอื่น ๆ
  • ค้นหาสิ่งที่คุณชอบทำ นี่เป็นเกมประเภทเปิดกว้าง แต่ค้นหาว่าคุณชอบอะไรเกี่ยวกับการพัฒนาเกมและทักษะใดที่คุณต้องการเพื่อให้บรรลุ ฉันรู้ว่านี่เป็นคำตอบที่คุณกำลังมองหา แต่ฉันสามารถตอบสนองทักษะทั้งหมดที่คุณอาจจำเป็นต้องเป็นนักพัฒนาเครื่องยนต์นักพัฒนากราฟิกหรือนักพัฒนาเกม แต่คุณสามารถค้นหาข้อมูลจำนวนมากได้อย่างง่ายดายบนโลกออนไลน์ ทักษะของคุณจะต้องเชื่อมโยงอย่างใกล้ชิดกับสิ่งที่คุณสนใจตัวอย่าง: ไม่ต้องกังวลเกี่ยวกับการรู้เข้าและออกของ OpenGL และ DirectX ถ้าคุณสนใจในการพัฒนาด้านเซิร์ฟเวอร์และในทางกลับกัน
  • มีความเชี่ยวชาญในภาษาระดับต่ำจากที่กล่าวมาข้างต้นฉันเห็นด้วยกับโปสเตอร์อื่น ๆ ว่าภาษาระดับต่ำเป็นความคิดที่ดีในการเรียนรู้ ฉันรู้ว่าเมื่อฉันเปลี่ยนจาก C # เป็น C ++ ฉันได้เรียนรู้มากมายเกี่ยวกับความมหัศจรรย์ของงาน C # นี่คือความรู้ที่ให้ความเข้าใจที่ดีเกี่ยวกับวิธีการสื่อสารกับคอมพิวเตอร์อย่างมีประสิทธิภาพโดยไม่คำนึงถึงภาษา
  • ทำความเข้าใจกับสถาปัตยกรรมคอมพิวเตอร์ - โดยสิ่งนี้ฉันไม่ได้หมายความว่าคุณต้องมีปริญญาใน CE หรือ EE เพื่อให้เข้าใจทุกส่วนของสถาปัตยกรรมคอมพิวเตอร์ แต่รู้พื้นฐานของการทำงานของหน่วยความจำซีพียูและ GPU ไม่ว่าคุณจะเข้าไปพัฒนาเกมในสาขาใดจะเป็นประโยชน์อย่างน้อยก็ต้องเข้าใจว่างานเหล่านี้เป็นอย่างไร หากคุณต้องการข้ามไปที่การเขียนโปรแกรมกราฟิกหรือการเขียนโปรแกรมเครื่องยนต์แล้วคุณจะต้องเข้าใจมากขึ้นในพื้นที่นี้

5
คุณรู้สึกแก่ตัวจริงๆเมื่อมีคนโทรหาภาษา C ++ ในระดับต่ำ
dreta

@dreta ฉันไม่ได้แก่ขนาดนั้นและฉันก็ไม่เห็นว่ามันเป็นภาษาระดับต่ำเช่นกัน อาจจะเกี่ยวกับ C ++ เป็นภาษาแรกที่ฉันใช้
พอล Manta

2

มากขึ้นอยู่กับเป้าหมายการงานของคุณ หากสิ่งที่คุณต้องการคือ "เกมหางานทำ" ก่อนที่จะทำสิ่งที่จำเป็น 5.5 ปีและทำให้เหนื่อยล้าและจากไปฉันคิดว่าคุณแค่มองหาตำแหน่งงานระดับเริ่มต้นและมองหาสิ่งที่พวกเขาต้องการเรียนรู้และนำไปใช้ ง่าย (แต่ถ้าคำถามของคุณลงมาที่ "ความพยายามขั้นต่ำที่ฉันต้องใช้ในการหางานคืออะไร") คำตอบคือ "ถ้าคุณใส่ความพยายามขั้นต่ำคุณจะได้งานขั้นต่ำ! ")

แต่ในระยะยาวฉันไม่คิดว่ามันจะเกี่ยวกับการรู้ภาษาจำนวนมากหรือเรียนรู้ภาษาใดภาษาหนึ่ง ภาษาเปลี่ยนไปเมื่อสิบปีก่อนไม่มีใครใช้ Objective-C หรือ XNA หรือ C # หรือ AS3 และจากนี้ไปอีกสิบปีก็มั่นใจได้ว่าภาษาใด ๆ ที่คุณเรียนรู้ในวันนี้จะล้าสมัยไปแล้ว

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

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

หากคุณต้องการทำให้ตลาดของคุณเป็นที่ต้องการมากขึ้นจากนั้นเรียนรู้การเขียนโปรแกรมพิเศษที่เกี่ยวข้องกับเกมไม่ว่าคุณจะสนใจอะไร ... AI, ฐานข้อมูล, เครือข่าย, เครื่องมือหรืออะไรก็ตาม


1

มีทักษะที่สำคัญอีกอย่างที่จำเป็นซึ่งดูเหมือนว่าจะถูกมองข้ามไปเล็กน้อย คุณต้องรู้วิธีที่จะฟิตและทำงานร่วมกับทีมงานตั้งแต่คนพัฒนาเกมอื่น ๆ ไปจนถึงนักออกแบบผู้จัดการโครงการและสิ่งต่างๆ มันไม่ใช่ทักษะด้านเทคนิค แต่มันก็ยังสำคัญมากเพราะคุณสามารถเป็นนักพัฒนาที่ดีที่สุดในบ้านและถ้าคุณไม่สามารถอยู่กับคนอื่นได้การสร้างเกมขนาดใหญ่จะเป็นปัญหา!

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

สุดท้าย แต่ไม่ท้ายสุดรู้เพียงเล็กน้อยเกี่ยวกับฮาร์ดแวร์โดยเฉพาะ GPU จะไม่เจ็บ!


0

สำหรับการเขียนโปรแกรมเกมโซเชียลนั้นมีทักษะหลักที่จำเป็นเท่านั้น

  1. สคริปต์การทำงานของโปรแกรม (คุณสามารถใช้สภาพแวดล้อมแบบวงรีและ svn) ซึ่งใช้สำหรับส่วนหน้าของเกม (หน้าเว็บ)

  2. โปรแกรม java (ซึ่งสามารถทำได้บน eclipse a use svn) ซึ่งใช้สำหรับการดำเนินการด้านเซิร์ฟเวอร์เพื่อรับจากคำร้องขอของเว็บเพจ

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