ผู้เชี่ยวชาญด้านอุตสาหกรรมสร้างเกมโดยใช้ UE4 ใช้พิมพ์เขียวหรือไม่พวกเขาใช้ C ++ โดยเฉพาะหรือไม่?


15

ในฐานะที่เป็นอาจารย์ในโมดูลการพัฒนาเกมฉันมักจะยืนยันว่าผู้ใช้ใช้ C ++ เพราะเป็นทักษะที่เป็นที่ต้องการมากกว่าในอุตสาหกรรม แต่การสนับสนุนออนไลน์และข้อมูลเกี่ยวกับ C ++ ใน Unreal Engine 4 ดูเหมือนจะค่อนข้างอ่อนแอ ตอนนี้มืออาชีพใช้พิมพ์เขียวด้วยหรือไม่?


11
เอกสารไม่ได้เป็นตัววัดที่ดีว่ามีการใช้งานอะไรมาก
MichaelHouse

เอกสารเกี่ยวกับ Unreal Engine 4 C ++ ขาดไปเพราะคุณไปอ่านโค้ดด้วยตัวเอง คุณไม่จำเป็นต้องใช้เอกสารอย่างเคร่งครัดหากคุณสามารถเข้าถึงซอร์สโค้ดได้ มันจะดีถ้ามี
Oxy

1
@Oxy ซอร์สโค้ดไม่ได้ใช้แทนเอกสาร ระยะเวลา แหล่งที่มามากยากที่จะอ่านเอกสารกว่าโดยความหมายเพราะจุดของเอกสารคือการกลั่นสิ่งที่ฟังก์ชั่นไม่เข้ามาในรูปแบบที่อ่าน นี่เป็นความจริงเป็นสองเท่าของโค้ดประสิทธิภาพสูงและมีความสามารถสูงเช่น Unreal
คดีฟ้องร้องกองทุนโมนิก้า

1
ฉันกำลังอธิบายว่าเกิดอะไรขึ้นไม่ใช่การให้เหตุผล “ มันคงจะดีถ้ามีมัน” และคุณควรอ่านโค้ดของฟังก์ชั่นที่คุณใช้แม้แต่เอกสารที่มีการบันทึกไว้เพราะบางสิ่งที่สำคัญมีนักเก็ตสีทองเป็น "foo (x) {/ * foo ไม่ได้ใช้งานทำแทน bar (x) เพราะปกติจะทำหน้าที่เหมือน foo (x ) เสร็จสิ้น * / bar (x);} ฉันยังต้องเห็นระบบเอกสารในการดำเนินการเพื่อให้ทันกับวิวัฒนาการของโค้ดนอกจากเอกสารอัตโนมัติที่ไม่ทำอะไรเลยนอกจากการแยกประเภทพารามิเตอร์และประเภทการส่งคืนเช่นเดียวกับ อ่านส่วนหัวทำ
Oxy

คำตอบ:


25

ใช่เกมมืออาชีพใช้พิมพ์เขียว

บางคนใช้การผสมผสานของ C ++ และพิมพ์เขียว เราใช้ทั้งสองอย่างใน Dead by Daylight

หนึ่งในสิ่งที่ยอดเยี่ยมเกี่ยวกับพิมพ์เขียวคือผู้ที่ไม่ใช่โปรแกรมเมอร์สามารถเข้าถึงความสามารถในการทำงานของสคริปต์ ไม่ใช่ทุกโครงการที่จะใช้พวกเขาด้วยวิธีนี้ แต่เป็นหนึ่งในเหตุผลที่พวกเขาได้รับการออกแบบ พวกเขาแทนที่ UnrealScript เป็นวิธีการเปลี่ยนพฤติกรรมโดยไม่ต้องกดปุ่ม C ++ และพวกเขายังแทนที่ Kismet ซึ่งเป็นระบบสคริปต์ภาพของ Unreal 3


คุณสามารถขยายหรือไม่ โปรแกรมเมอร์เท่านั้นที่ใช้พิมพ์เขียวหรือเฉพาะพนักงานที่ไม่ใช่ด้านเทคนิคหรือทั้งสองอย่าง? มันใช้สำหรับวัตถุประสงค์เฉพาะหรือเพื่ออะไรก็ได้?
KABoissonneault

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

9

เรื่องเล็ก ๆ น้อย ๆ จากนอกอุตสาหกรรมเกม: เราใช้ UE4 สำหรับการสร้างภาพสถาปัตยกรรมใน VR

ในขณะที่ฉันต้องการสร้างสิ่งต่าง ๆ ส่วนใหญ่ใน C ++ เรายังใช้พิมพ์เขียวอย่างหนักสำหรับ "ตรรกะเพิ่มเติม" ทุกชนิดเช่นสวิตช์ไฟประตู ฯลฯ

มันเป็นแบบนี้มานานกว่าสองปีแล้วและฉันก็เป็นโปรแกรมเมอร์คนแรกที่เริ่มต้นความพยายามนี้ ดังนั้นนี่คือข้อสังเกตของฉัน:

  • มันช่างน่าประหลาดใจที่ผู้เขียนโปรแกรมที่ไม่สามารถทำได้กับพิมพ์เขียว!
  • ฉันน่ากลัวที่โปรแกรมเมอร์มือใหม่ทำอะไรกับพิมพ์เขียว;)
  • แม้ว่าฉันจะแปลงเป็น C ++ ในตอนท้าย แต่พิมพ์เขียวก็ดีสำหรับเฟส RnD อย่างรวดเร็ว

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

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

พวกเขาเรียนหลักสูตรตั้งแต่ C ++, Python และ C # คุณภาพโดยรวมของพิมพ์เขียวของเราก็ดีขึ้น แต่ส่วนใหญ่: ตอนนี้ฉันมีความช่วยเหลือบางอย่างเมื่อพัฒนา libs หลักของเรา :)

TLDR;

ใช่เราใช้พิมพ์เขียวและพวกเขายังทำให้ผู้ใช้ที่ไม่ใช้เทคโนโลยีขั้นต้นของฉันดีขึ้น


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

@NicHartley ลองทำmyVector.x += otherVector.xใน Blueprints : o
Almo

1
@Almo ฉันแน่ใจว่า 90% เป็นไปได้เว้นแต่คุณจะต้องการให้มันเป็น "หนึ่งบรรทัด" จริงๆ เพียง(get myVector x) (get otherVector x) -> (+) -> (assign myVector x)(ว้าวมันยากที่จะเขียนพิมพ์เขียวในข้อความ ... ) แต่ฉันไม่มีสำเนาของ Unreal ที่จะทำการทดสอบด้วย หรือถ้าเวกเตอร์ไม่เปลี่ยนรูปก็ให้สร้างขึ้นใหม่(myVector.x + otherVector.x, myVector.y, myVector.z)
คดีของกองทุนโมนิกา

1
เป็นไปได้แน่นอน แต่มันยุ่ง เส้นเวกเตอร์ลงในกล่องเบรกซึ่งมีเอาต์พุต x, y, z ทำอย่างนั้นสองครั้งเพื่อรับ myVector.x และอีกอันเพื่อรับ otherVector.x เพิ่มสิ่งเหล่านั้นและกำหนดเส้นทางไปยังกล่องกำหนด
Almo

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