การใช้ภาษาสคริปต์ของคุณทำงานได้จริงหรือไม่?


21

ฉันเขียนโค้ดเกม Beat 'em up ใน C ++ และถึงเวลาแล้วที่จะใช้สคริปต์สำหรับกิจกรรมทริกเกอร์ cutscenes ฯลฯ ฉันได้อ่านไปทั่วอินเทอร์เน็ตและได้รับข้อมูลที่เป็นธรรม วิธีการแก้ปัญหาเป็นตัวเลือกแรกของฉันจะเป็นที่จะใช้ภาษาสคริปต์ของตัวเองเหมือนหนึ่งในถ้ำเรื่อง ฉันได้เห็นสิ่งนี้แนะนำแล้ว แต่บทกวีส่วนใหญ่แนะนำ lua แต่ดูเหมือนจะไม่เหมาะกับประเภทของการเขียนโปรแกรมของฉัน

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


43
กฎง่ายๆของฉันคือถ้าคุณต้องการถามคนอื่นว่าควรจะหมุน _____ ของคุณเองหรือไม่นั่นไม่ใช่ความคิดที่ดี
sam hocevar

2
โปรดทราบว่าหากคุณใช้ภาษาของคุณเองผู้คนจะต้องเรียนรู้และหวังว่าจะไม่มีข้อบกพร่องในล่ามของคุณในขณะที่ภาษาอย่าง Lua นั้นเป็นที่นิยมและมีโอกาสที่จะมีข้อบกพร่องน้อยลง
Nick Caplinger

2
@NickCaplinger ยิงมันที่หัว การกลิ้งของคุณเองหมายถึงไม่มีเอกสาร, ไม่มีชุมชน, ไม่มีบทช่วยจากบุคคลที่สาม, ไม่มี StackExchange, ฯลฯ ไม่ว่าคุณจะได้รับความรู้ทางด้านไวยากรณ์หรือการรวมเข้าด้วยกันเพียงใดก็ตาม แฟน ๆ นับล้าน
ฌอน Middleditch

4
โปรดจำไว้ว่าการใช้เครื่องมือ นี่คือปัญหาของฉันกับ D, Rust, Dart และอื่น ๆ ไวยากรณ์ของคุณไม่มีจุดหมายด้วยตนเอง คุณต้องมีเครื่องมือแก้ไขที่เหมาะสมการเน้น "Intellisense" (การเติมโค้ดให้สมบูรณ์) การวินิจฉัยที่ดีการสนับสนุนการปรับโครงสร้างใหม่การสนับสนุนเอกสารแบบอินไลน์และอื่น ๆ ไม่ต้องพูดถึงคุณสมบัติภาษาจริงทั้งหมดรวมประสิทธิภาพและอื่น ๆ
Sean Middleditch

1
หากคุณเป็นโปรแกรมเมอร์ C ++ และคุณไม่ชอบ LUA ให้ลองใช้ JavaScript แทน
zeel

คำตอบ:


42

ไม่อย่างน้อยก็อาจจะไม่

นี่เป็นกรณีที่เกิดขึ้นบ่อยครั้งในการพัฒนาวงล้อคือการพัฒนาเกมความผิดพลาดที่ยังคงได้รับความนิยม

หากคุณถามคำถามนี้คุณมีโอกาสมากที่จะได้รับอิทธิพลจากสิ่งที่คนอื่นทำดังนั้นให้ดูว่า Epic Games เพิ่งทำกับ Unreal Engine:

  • UE3 มีรูปแบบ UnrealScript ที่แปลกใหม่และไม่ได้ปรับแต่งยากต่อการดีบัก
  • หากข่าวลือเป็นจริงการสนับสนุนจะถูกลบออกใน UE4เพื่อสนับสนุน C ++ DLL ที่สามารถรีโหลดได้

คุณคิดว่าคุณสามารถทำได้ดีกว่า Epic หรือไม่?

การสร้างภาษา progamming เป็นของผู้สร้างภาษาการเขียนโปรแกรมไม่ใช่วิศวกรเกม

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

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

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

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

แก้ไข

ฉันเพิ่งดูรายการคำสั่ง Cave Story ที่คุณเชื่อมโยง อุ๊ยตาย:

<ECJx:y      [EC?] Jump           @ Jump to event Y if any npc with ID X is present

ฉันไม่ต้องการแสดงความไม่เคารพต่อผู้พัฒนาที่อยู่เบื้องหลัง Cave Story แต่นี่เป็นตัวอย่างที่สมบูรณ์แบบของรายการคำสั่งง่ายๆที่กลายพันธุ์ในภาษาสคริปต์ที่ไม่สามารถควบคุมได้ สิ่งนี้อาจยังใช้งานได้สำหรับนักพัฒนาเดี่ยวหรือทีมเล็ก ๆ แต่ในขั้นตอนนี้ฉันแนะนำให้เปลี่ยนเป็นภาษาทัวริงที่สมบูรณ์และได้รับการทดสอบอย่างถูกต้อง (เช่น Lua) ซึ่งคุณสามารถทำได้:

if (npc.id == x) then
    jump_to_event(y)
end

สิ่งนี้จะทำให้สิ่งต่าง ๆ ง่ายขึ้นมากเช่นเมื่อคุณจะต้องมีเงื่อนไขที่ซับซ้อนมากขึ้น:

if (npc.id == x) or (npc.type == "enemy") then
    jump_to_event(y)
end

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

+1, ฉันไม่รู้ lua หรือภาษาสคริปต์ที่กำหนดเอง แต่เห็นได้ชัดว่าเกิดอะไรขึ้นใน lua และนั่นคือสิ่งที่การใช้งานมีความสำคัญ
RhysW

1
ไม่มีอะไรน่าอัศจรรย์เกี่ยวกับสิ่งใดสิ่งหนึ่งทำให้เป็นไปไม่ได้ที่จะเรียนรู้ทั้งสองอย่าง ลวงตาอาจลบ UnrealScript แต่พวกเขากำลังปรับปรุงและกรอก Kismet ให้เป็นภาษาสคริปต์ที่มีความสามารถและสมบูรณ์แบบ พวกเขาไม่ได้ลบ UnrealScript เพราะมันเป็นความล้มเหลวพวกเขาก็ลบออกเพราะมันล้าสมัยด้วยคุณสมบัติที่ยากขึ้นอย่างมาก (โหลด C ++ ใหม่, Kismit ที่อัปเดตใหม่) อย่าใช้สิ่งนี้เพื่อหมายความว่าฉันไม่เห็นด้วยกับจุดของคุณ: การเขียนภาษาของคุณเองเป็นการเสียเวลามากแหล่งที่มาของข้อบกพร่องและสาเหตุของเส้นโค้งการเรียนรู้ขนาดใหญ่ ฯลฯ
Sean Middleditch

2
@ ott - ฉันไม่กลัวเช่นกันประเด็นของฉันคือการขยายสัญกรณ์นี้จะทำให้มันซับซ้อนมากขึ้นในขณะที่การใช้ภาษาที่เหมาะสมในตอนแรกจะช่วยในระยะยาว ค่าใช้จ่ายไม่เกี่ยวข้องเมื่อเทียบกับความสะดวกในการใช้งานในกรณีนั้น IMHO
Laurent Couvidou

1
โปรดทราบว่า UnrealScript จะถูกแทนที่ด้วยพิมพ์เขียว (แต่ฉันมีเดิมพันว่าเพื่อนร่วมงานของฉันจะกลับมา) Hotloading DLLs เป็นคุณสมบัติมุมฉาก
sam hocevar

9

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

ฉันมีแม้ว่าฉันยืมไวยากรณ์จากภาษาอื่น โดยรวมแล้วมันเป็นประสบการณ์การเรียนรู้ที่ยอดเยี่ยมและในกรณีของฉันไม่ยากเพราะภาษานั้นเรียบง่าย

ฉันทำมันเป็นหลักเพราะฉันต้องการใช้ไวยากรณ์ C สไตล์ปกติสำหรับสคริปต์ของฉันเพราะทุกคนในทีมคุ้นเคยกับมัน

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

คุณให้คำปรึกษาด้านทรัพยากรใดในระหว่างการพัฒนา

ทรัพยากรหลักของฉันคือหนังสือเล่มนี้:

ป้อนคำอธิบายรูปภาพที่นี่

ฉันได้เรียนรู้มากพอจากหนังสือเล่มนี้เพื่อนำไปใช้:

  • lexer: ซึ่งเกือบจะเป็นเรื่องเล็กน้อยโดยใช้นิพจน์ปกติเพียงแค่ใช้ Regex.Match เพื่อระบุและแยกโทเค็น
  • parser ที่สืบเชื้อสายแบบเรียกซ้ำ: โดยทั่วไปจะมีหนึ่งฟังก์ชันสำหรับแต่ละกฎในไวยากรณ์และวิธีการช่วยเหลือบางอย่างในการค้นหาและบริโภคโทเค็น ฉันดูข้อกำหนดของไวยากรณ์ C # เพื่อหาแรงบันดาลใจ ส่วนที่ยากที่สุดคือการจัดการกับลำดับความสำคัญทางคณิตศาสตร์และความสัมพันธ์ของผู้ประกอบการโดยไม่ต้องไปเรียกซ้ำไม่มีที่สิ้นสุด
  • AST interpreter: ใช้รูปแบบการออกแบบผู้เยี่ยมชมฉันสำรวจต้นไม้ที่สร้างจาก parser และดำเนินการโหนดคำสั่งซ้ำ

ฉันจะหยุดอยู่ที่นั่นเพราะเกือบทุกอย่างที่ฉันต้องการได้ทำงานแล้วยกเว้นสิ่งหนึ่ง - การเรียกและการยอมให้ coroutines Unity3D ลึกลงไปจากล่ามแบบเรียกซ้ำ เพื่อที่จะแก้ปัญหานั้นฉันต้องกำจัดการสอบถามซ้ำและหันไปหาหนังสืออีกครั้ง เวลานี้ฉันสิ้นสุดการเพิ่ม:

  • คอมไพเลอร์: ผู้เยี่ยมชมคนอื่น แต่แทนที่จะเรียกใช้งานโค้ดมันจะสร้างรายการคำสั่งอะตอมขนาดเล็กจากแต่ละโหนดของ AST (เช่นภาษาแอสเซมบลีแบบกำหนดเองที่ใช้สแต็กพื้นฐาน) การดำเนินการเช่นในขณะที่ลูปหรือเงื่อนไข if จะถูกแปลงเป็นป้ายกำกับและคำแนะนำประเภท goto ณ จุดนี้ฉันยังเขียนสคริปต์ที่คอมไพล์ลงดิสก์เป็นไฟล์ไบนารี่
  • ตัวแปล bytecode: ทำซ้ำตามรายการคำสั่งแบบแบน โดยไม่ต้องเรียกซ้ำตอนนี้มันง่ายที่จะรวมเข้ากับ Corityines Unity3D

กระบวนการทั้งหมดใช้เวลาประมาณ 2 สัปดาห์จากศูนย์ความรู้และสนุกมาก :)

PS: ในตอนท้ายฉันยังต้องการเพิ่มการเน้นไวยากรณ์และ Intellisense สำหรับภาษาที่กำหนดเองของฉันในเครื่องมือของเรา Scintilla เป็นผู้ช่วยชีวิตในเรื่องนี้ ฉันใช้เสื้อคลุมต่อไปนี้:

http://scintillanet.codeplex.com/


5

ฉันได้เห็นสิ่งนี้แนะนำแล้ว แต่บทกวีส่วนใหญ่แนะนำ lua แต่ดูเหมือนจะไม่เหมาะกับประเภทของการเขียนโปรแกรมของฉัน

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

ตัวอย่างเช่นใช้การใช้คำหลักเช่นthen/do/endเพื่อแสดงถึงการบล็อกรหัสมากกว่า C / C ++ ที่ดี - วงเล็บปีกกาสไตล์ หากนั่นคือปัญหาของคุณ ... นั่นคือสิ่งที่คุณสามารถแก้ไขได้ สิ่งที่คุณต้องทำคือกำหนดภาษา Lua ของคุณเองเล็กน้อยและเขียนเครื่องมือการแปลงอย่างง่ายที่จะแปลงซินแทกซ์ - รั้งปีกกาของคุณให้เป็น Lua จริง

คุณต้องการ + = ในบางรูปแบบหรือไม่? นั่นเป็นสิ่งที่คุณสามารถทำได้อย่างง่ายดายในระบบประมวลผลล่วงหน้า เพียงแค่เปิดงบของแบบฟอร์มเข้าexpr1 += expr2expr1 = expr1 + expr2

จริงอยู่ที่คุณจะต้องหาวิธีในการตรวจสอบว่าวงเล็บปีกกาคู่หมายถึงตารางหรือdo/endคู่ และคุณจะต้องขอระบบก่อนการประมวลผลของคุณลงใน Lua โดยเอาชนะdofile, loadstringและมาตรฐาน Lua ฟังก์ชั่นอื่น ๆ ในห้องสมุด แต่ท้ายที่สุดมันก็เป็นไปได้

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

หากปัญหาของคุณมีขนาดใหญ่กว่านี้ (กลมเป็นค่าเริ่มต้นดังนั้นคุณต้องใช้localทุกที่) ปัญหาเหล่านี้สามารถจัดการได้ (เพียงแค่ทำให้เกิดข้อผิดพลาดใหม่ทั่วโลกผ่านการใช้สภาพแวดล้อมที่เปลี่ยนแปลงและ metatables) หากคุณเกลียดการทำหน้าที่เป็นวัตถุชั้นหนึ่ง coroutines การรวบรวมขยะหรือองค์ประกอบพื้นฐานอื่น ๆ ของ Lua ... ถ้าอย่างนั้นคุณก็ต้องตกอยู่ในอันตรายจากการสร้างของคุณเอง;)

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


สำหรับฉันดูเหมือนว่าฉันจะใช้รหัสฟังก์ชั่นถ้าฉันต้องใช้ Lua รู้สึกเหมือนฉันเพิ่งย้ายรหัส
skiperic

1
@skiperic: ฉันไม่รู้ว่าคุณหมายถึงอะไร คุณยกตัวอย่างได้ไหม
Nicol Bolas

ดูคำตอบของ Laurent ด้านบน
skiperic

2
@skiperic: นั่นไม่ได้อธิบายสิ่งที่คุณกังวลจริงๆ คุณสามารถเขียนรหัสใน Lua ได้ไหม ใช่. และปัญหาคือ ...
Nicol Bolas

1
@BartekBanachewicz: แม้จะยอมรับว่ามันเป็น C API แต่ก็ยังเหนือกว่า API ที่ใช้สคริปต์ C ++ หลายตัวที่ฉันเคยเห็น เป็นสคริปต์ API ตัวเดียวที่จริงแล้วฉันจะพิจารณาใช้rawโดยไม่ต้องใช้เครื่องผูกอัตโนมัติ
Nicol Bolas

3

เพื่อเติมเต็มคำตอบอื่น ๆ นี่ไม่ใช่ตัวเลือกไบนารีอย่างเคร่งครัด ภายในภาษาสคริปต์ที่มีอยู่คุณสามารถสร้างDomain-specific_languageของคุณเองได้ ข้อดีของวิธีนี้คือ:

  • คุณไม่จำเป็นต้องยุ่งกับไวยากรณ์อย่างเป็นทางการตัวแยกวิเคราะห์การใช้เครื่องมือแก้ไขที่กำหนดเองเป็นต้น
  • คุณได้รับประโยชน์มากที่สุดจากการใช้ภาษาสคริปต์พิเศษเช่นการเพิ่มสิ่งที่เป็นนามธรรมเฉพาะสำหรับเกมของคุณ
  • vs. homebrew: ผู้ใช้ที่คุ้นเคยกับภาษาสคริปต์ที่คุณเลือกจะสามารถใช้ DSL ของคุณได้ทันที
  • เมื่อเทียบกับภาษาที่มีอยู่เดิม: ผู้ใช้ที่ไม่คุ้นเคยกับภาษาสคริปต์จะต้องการเพียงความรู้เกี่ยวกับ DSL สำหรับการดัดแปลงเกมของคุณ

ข้อเสียเปรียบหลักคือคุณจะออกแบบ DSL ด้วยข้อ จำกัด ของภาษา "ฐาน" ของคุณ


2

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

หากเกมของคุณเกี่ยวข้องกับเครื่องมือฟิสิกส์ส่วนประกอบของเกมต่าง ๆ และความซับซ้อนของตัวละครและความสามารถที่แตกต่างกันคุณควรพิจารณาการใช้ภาษาสคริปต์อื่น ๆ ที่มีอยู่ดังนั้นคุณจึงไม่ต้องดิ้นรนเพื่อเพิ่มคุณสมบัติที่จำเป็นให้กับเกมที่คุณกำหนดเอง มัน. แม้ว่า Lua น่าจะเป็นวิธีที่เร็วที่สุด แต่ก็มีคนอื่น ๆ อีกมากมายที่คุณอาจชอบมากกว่าสำหรับไวยากรณ์ของพวกเขาและหลายคนก็คุยโวเกี่ยวกับความง่ายในการรวมเข้ากับ C. Python, Ruby และ Angelscript (อย่าลังเลที่จะพูดถึงคนอื่นในความคิดเห็น)

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


1
Lua เป็นภาษาสคริปต์ที่ได้รับความนิยมอย่างมากในการพัฒนาเกม
Philipp

ใช่ Lua ถูกใช้ทั่วสถานที่ แต่ OP ระบุว่าเขาไม่ชอบมันมาก การตั้งค่าของรูปแบบการเข้ารหัสอาจมีความสำคัญ
Katana314

1
" ตัวอย่างเช่นหนึ่งในเกม Interactive Novel เหล่านั้นสามารถใช้กลไกการเขียนสคริปต์ที่กำหนดเองได้อย่างง่ายดาย " คุณไม่ได้เห็นแจ้งอย่างชัดเจน จริงๆแล้วแม้แต่สำหรับการผจญภัยข้อความก็ไม่มีประโยชน์ในการสร้างภาษาของคุณเอง
Nicol Bolas

1
@ Katana314: "การตั้งค่าของสไตล์การเขียนรหัสอาจมีความสำคัญ " ตามจริงแล้วโลกจะดีกว่านี้หากโปรแกรมเมอร์ลงจากม้าสูงเกี่ยวกับ "สไตล์การเข้ารหัส" เราทุกคนคงจะเป็นโปรแกรมเมอร์ที่ดีขึ้นถ้าเราหยุดคิดว่า <ใส่ภาษาที่ต้องการ> ที่นี่ดีกว่าภาษาอื่นที่ <ใส่ภาษาที่ต้องการ> การใช้ภาษาที่คุณไม่ชอบไวยากรณ์ของการสร้างตัวละครและช่วยหลีกเลี่ยงการคิดแบบนี้
Nicol Bolas

1

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

สร้างความมั่นใจว่าคุณเริ่มจากง่ายทดสอบบ่อยๆและยึดมั่นในอุดมคติของคุณ แต่จำไว้เสมอลัวะอยู่ตรงนั้นเพื่อคุณ


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