คำถามติดแท็ก software-engineering

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

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

2
Toolchain ทั่วไปสำหรับการพัฒนาเกม DOS คืออะไร [ปิด]
ปิด คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้มุ่งเน้นที่ปัญหาเดียวโดยแก้ไขโพสต์นี้ ปิดให้บริการใน9 เดือนที่ผ่านมา ฉันสงสัยว่าผู้คนเคยเขียนเกม DOS (เช่น Doom) ฉันไม่สามารถหาอะไรได้มากมาย แต่ชอบที่จะเรียนรู้เพิ่มเติมเกี่ยวกับการพัฒนาเกมก่อนหน้านี้ ใช้ภาษาอะไรเป็นหลัก? ฉันคิดว่ามันเป็น C หรือ C ++ อยู่แล้ว? IDEs ใด (หรือบรรณาธิการ / คอมไพเลอร์) เป็นที่นิยม Microsoft Visual C / C ++ (หรือ Microsoft C / C ++ ตามที่ฉันเชื่อว่ามันเคยถูกเรียกว่า) ไม่ได้มีอยู่ในตอนนั้น AFAIK แล้วคนใช้อะไร แก้ไขและคอมไพเลอร์บรรทัดคำสั่งจาก Intel หรืออะไร? API ใดที่ใช้? อะไรเป็นเรื่องธรรมดาสำหรับเกม 2D? แล้วเกม …

3
เกมจะป้องกันไม่ให้ผู้คนเรียกใช้ตัวเองหลาย ๆ กรณีได้อย่างไร
Starcraft II จำกัด ฉันไม่ให้เรียกใช้หลายอินสแตนซ์ แต่ถ้าฉันเรียกใช้อินสแตนซ์ที่สองที่sandboxed ใน Sandboxieมันใช้งานได้ สิ่งนี้อาจเป็นสาเหตุของอะไร ฉันจะทำซ้ำพฤติกรรมนี้สำหรับเกมของตัวเองได้อย่างไร

4
การบันทึกไลบรารีสำหรับเกม (c ++) [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นไปตามหัวข้อสำหรับ Game Exchange Stack Exchange ปิดให้บริการใน12 เดือนที่ผ่านมา ฉันรู้ไลบรารีการบันทึกจำนวนมาก แต่ไม่ได้ทดสอบมากนัก (GoogleLog, Pantheios, บูสเตอร์ที่กำลังจะมาถึง :: log library ... ) ในเกมโดยเฉพาะในเกมมัลติเพลเยอร์ระยะไกลและเกมมัลติเธรดการบันทึกมีความสำคัญต่อการดีบั๊กแม้ว่าคุณจะลบบันทึกทั้งหมดในตอนท้าย สมมติว่าฉันกำลังสร้างเกมบนพีซี (ไม่ใช่คอนโซล) ที่ต้องการบันทึก (หลายคนและหลายเธรดและ / หรือมัลติโพรเซส) และฉันมีเหตุผลที่ดีในการค้นหาไลบรารีสำหรับการบันทึก (เช่นฉันไม่มีเวลาหรือ ไม่มั่นใจในความสามารถในการเขียนอย่างถูกต้องสำหรับกรณีของฉัน) สมมติว่าฉันต้องการ: ประสิทธิภาพ ใช้งานง่าย (อนุญาตให้สตรีมมิ่งหรือจัดรูปแบบหรืออะไรทำนองนั้น) ความน่าเชื่อถือ (ไม่รั่วไหลหรือผิดพลาด!) ข้ามแพลตฟอร์ม (อย่างน้อย Windows, MacOSX, Linux / Ubuntu) ห้องสมุดบันทึกข้อมูลใดที่คุณอยากจะแนะนำ? ขณะนี้ฉันคิดว่า boost :: log เป็นไฟล์ที่ยืดหยุ่นที่สุด …


3
สิทธิประโยชน์ที่จับต้องได้เพื่อเข้ารหัสโครงการเกมส่วนบุคคลของคุณอย่างรวดเร็ว
ฉันสังเกตเห็นโปรแกรมเมอร์สองสามคนที่ตั้งความท้าทายด้านเวลาสำหรับตัวเองโดยปกติจะอยู่ในพื้นที่ของ "เกมเขียนประเภท X ในระยะเวลา Y" หรือ "เขียนจำนวนเกม X ที่ให้เวลา Y แต่ละครั้งเท่านั้น" ประโยชน์ที่จับต้องได้สำหรับการตั้งค่าเวิร์กโฟลว์ของคุณในลักษณะนี้เป็นโค้ดความเร็วชั่วขณะหนึ่งคืออะไร? รู้สึกเหมือนคุณต้องแลกรหัสที่มีประสิทธิภาพเพื่อให้สิ่งที่ทำเสร็จอย่างรวดเร็ว และฉันคิดว่าการเพิ่มเลเยอร์สุดท้ายของการขัดไม่ได้เป็นสิ่งสำคัญในความท้าทายเหล่านี้ดังนั้นจึงไม่เป็นไรที่จะใช้โปรแกรมเมอร์ ฉันได้สร้างนักกีฬาเลื่อน 2D และเกมปริศนาง่ายๆเมื่อไม่กี่ปีที่ผ่านมาและจากความโง่เขลาฉันได้ลบรหัสส่วนใหญ่ของฉัน ดังนั้นตอนนี้ฉันอยากรู้เกี่ยวกับการใช้วิธีการเข้ารหัสความเร็วเพื่อทำสิ่งที่เรียบง่ายสองสามครั้งอีกครั้งและทำให้ตัวเองเข้าสู่ตรรกะของเกมมากขึ้น

5
ห้องสมุดคณิตศาสตร์ที่สมบูรณ์สำหรับใช้ในเกม OpenGL ES 2.0 หรือไม่ [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นไปตามหัวข้อสำหรับ Game Exchange Stack Exchange ปิดให้บริการใน5 ปีที่ผ่านมา คุณทราบหรือไม่ว่าไลบรารีคณิตศาสตร์ข้ามแพลตฟอร์มที่สมบูรณ์ (หรือเกือบจะสมบูรณ์) สำหรับใช้ในเกม OpenGL ES 2.0? ห้องสมุดควรมี: คลาส Matrix2x2, เมทริกซ์ 3x3, Matrix4x4 quaternions คลาส Vector2, Vector3, Vector4 คลาสมุมออยเลอร์ การดำเนินการในชั้นเรียนที่กล่าวถึงการแปลง ฯลฯ การดำเนินการทางคณิตศาสตร์ที่ใช้เป็นมาตรฐานในกราฟิก 3 มิติ (ผลิตภัณฑ์ Dot, Cross Product, SLERP, ฯลฯ ... ) มี API คณิตศาสตร์ดังกล่าวสามารถใช้ได้ทั้งแบบสแตนด์อโลนหรือเป็นส่วนหนึ่งของแพคเกจใด ๆ ? ภาษาการเขียนโปรแกรม: Visual C …

6
ภาษาสคริปต์ใดที่คุณจะแนะนำสำหรับโครงการเกม C ++ [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นไปตามหัวข้อสำหรับ Game Exchange Stack Exchange ปิดให้บริการใน5 ปีที่ผ่านมา โดยการเขียนสคริปต์ที่นี่ฉันหมายถึงไม่เพียง แต่ใส่ข้อมูลการกำหนดค่าในสคริปต์ แต่ส่วนสคริปต์ของโครงการเช่นวิธีการเรียนทดสอบวงเกมเฉพาะ ฯลฯ ไม่เพียง แต่จะเร่งพัฒนา แต่ยังอนุญาตให้ผู้เล่นเห็นบางส่วนของสิ่งเหล่านี้ สคริปต์เพื่อปรับแต่งบางด้านของเกม ภาษาบางอย่างเช่น Lua มีบางสิ่งห่อหุ้มเช่น luabind แต่เมื่อก่อนฉันเคยใช้มันมีปัญหาเพราะมันไม่รองรับการกำหนดวิธีการใหม่ในบริบทของการสืบทอด คุณมีคำแนะนำเกี่ยวกับภาษา / เครื่องห่อหุ้มที่จะใช้หรือไม่ใช้?

2
ฉันจะตรวจสอบได้อย่างไรว่าผู้เล่นได้สำเร็จหรือไม่?
ฉันสร้างเกม MMO และฉันเพิ่งมาถึงจุดที่ฉันต้องใช้ความสำเร็จ ... ฉันจะทำอย่างไร สิ่งที่ตรงไปตรงมาที่สุดที่ต้องทำคือเรียกใช้ทุก ๆ 100ms: for a in achievements for p in players if a.meetsRequirements(p) then p.completeAchievement(a) แต่นั่นก็ทำให้เกิดภาวะแทรกซ้อนมากขึ้น ตัวอย่างเช่นฉันจะตรวจสอบว่าความสำเร็จนั้นเสร็จสมบูรณ์ได้อย่างไร? ผู้เล่นมีคุณสมบัติที่กำหนดเองด้วยตัวเองเพื่อความสำเร็จที่เฉพาะเจาะจงหรือไม่? ฉันทำสิ่งนี้ด้วยเควสต์เพราะพวกเขาส่วนใหญ่จะ“ เก็บไม้ 100 อัน” ดังนั้นเควสต์ที่แอคทีฟของผู้เล่นจึงตรวจสอบว่า นอกจากนี้ต้องมีเวลาที่ดีกว่าในการตรวจสอบซึ่งจะทำให้เซิร์ฟเวอร์ของฉันช้าลงเป็นระยะฉันคิดว่า

3
เอาชนะการตรวจจับและ FFT
ฉันกำลังทำงานกับเกม platformer ซึ่งรวมถึงเพลงที่มีการตรวจจับจังหวะ ขณะนี้ฉันกำลังตรวจจับการเต้นด้วยการตรวจสอบว่าแอมพลิจูดปัจจุบันเกินกว่าตัวอย่างในอดีตหรือไม่ มันใช้งานไม่ได้กับแนวเพลงเช่นร็อคที่มีแอมพลิจูดค่อนข้างคงที่ ดังนั้นฉันจึงค้นหาเพิ่มเติมและพบอัลกอริทึมที่แยกเสียงออกเป็นหลาย ๆ วงโดยใช้ FFT ... จากนั้นฉันก็พบอัลกอริทึม Cooley-Tukey FFt ปัญหาเดียวที่ฉันมีคือฉันค่อนข้างใหม่กับเสียงและฉันไม่รู้ว่าจะใช้มันอย่างไรเพื่อแยกสัญญาณออกเป็นสัญญาณหลาย ๆ สัญญาณ ดังนั้นคำถามของฉันคือ: คุณจะใช้ FFT เพื่อแยกสัญญาณออกเป็นหลายแบนด์ได้อย่างไร? สำหรับคนที่สนใจนี่คืออัลกอริทึมของฉันใน c #: // C = threshold, N = size of history buffer / 1024 public void PlaceBeatMarkers(float C, int N) { List<float> instantEnergyList = new List<float>(); short[] samples = …

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

2
ฉันจะหลีกเลี่ยงการเขียนคลาส Manager ได้อย่างไร
ฉันดูเหมือนจะอ่านต่อไปมันเป็นความคิดที่ดีที่จะใช้XxxManagerสไตล์คลาสในการเขียนโปรแกรมเกมเอ็นจิ้น แต่ถึงแม้ว่าฉันพยายามที่จะหลีกเลี่ยงการใช้พวกเขาฉันมักจะจบลงด้วยสิ่งที่เก็บนักแสดง / เอนทิตี้ / จบลงด้วยการเป็นManagerถ้าด้วยชื่ออื่น นี่เป็นรูปแบบที่ไม่ดีที่จะติดตามหรือไม่ ถ้าเป็นเช่นนั้นทางเลือกคืออะไร?

4
อะไรคือความแตกต่างระหว่าง“ Gameplay Programmer” และ“ Gameplay Engineer?”
ฉันกำลังอ่านคำบรรยายลักษณะงานบางอย่างจากผู้พัฒนา AAA บางรายในอุตสาหกรรมเกมและฉันสังเกตเห็นว่ามีงานสำหรับ "Gameplay Programmers" เช่นเดียวกับ "Gameplay Engineers" นั่นคือสิ่งเดียวกันหรือไม่ พวกเขาทำสิ่งเดียวกันหรือไม่

1
พื้นที่การวิจัยใดที่มีอยู่ในการเขียนโปรแกรมเกม [ปิด]
ปิด คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้มุ่งเน้นที่ปัญหาเดียวโดยแก้ไขโพสต์นี้ ปิดให้บริการใน6 ปีที่ผ่านมา ขณะนี้ฉันอยู่ในกลุ่มที่ทำการวิจัยการเพิ่มประสิทธิภาพเครือข่ายและแอพพลิเคชั่นแบบกระจายฉันสนใจในเกมมากกว่า แต่จากด้านการวิจัยมีทรัพยากรที่มุ่งเน้นหัวข้อการวิจัยเฉพาะสำหรับการพัฒนาเกม ของการวิจัย? หมายเหตุ: ฉันเข้าใจว่าการพัฒนาเกมประกอบด้วยหัวข้อต่าง ๆ ที่ได้รับการวิจัยอย่างละเอียดคำถามของฉันมุ่งเน้นไปที่พื้นที่ที่เป็นเอกสิทธิ์ของแอปพลิเคชันเกมหรืออย่างน้อยก็สำคัญสำหรับการเล่นเกม ตัวอย่างหนึ่งอาจเป็น "วิธีอัลกอริทึมทางพันธุกรรมเพื่อความก้าวหน้าของทักษะตัวละคร" ซึ่งจะมุ่งเน้นไปที่การสร้างความก้าวหน้าของทักษะที่เหมาะสมที่สุดในการกลับมาของผู้เล่น ฯลฯ ฯลฯ ... ความคิดแบบสุ่ม แต่คุณได้รับจุดของฉัน ฉันหมายถึงด้านเทคนิคของการพัฒนาด้วยเช่นกัน แต่ฉันไม่ต้องการ จำกัด สิ่งนี้

1
แยกฟิสิกส์และตรรกะเกมออกจากรหัส UI
ฉันกำลังทำงานในเกมตัวต่อที่ง่าย การเล่นเกมประกอบไปด้วยบล็อกที่เคลื่อนไหวได้ค่อนข้างมากในบริเวณเกมดังนั้นมันเป็นการจำลองทางฟิสิกส์ที่ไม่สำคัญ อย่างไรก็ตามการใช้งานของฉันอยู่ในความคิดของฉันไกลจากอุดมคติและฉันสงสัยว่าถ้าคุณสามารถให้คำแนะนำกับฉันเกี่ยวกับวิธีที่จะทำให้ดีขึ้น ฉันแบ่งรหัสออกเป็นสองส่วน: ตรรกะของเกมและ UI อย่างที่ฉันทำกับเกมปริศนามากมาย: ตรรกะของเกมรับผิดชอบกฎทั่วไปของเกม (เช่นระบบกฎอย่างเป็นทางการในหมากรุก) UI แสดงพื้นที่เกมและชิ้นส่วน (เช่นกระดานหมากรุกและชิ้นส่วน) และรับผิดชอบภาพเคลื่อนไหว (เช่นการเคลื่อนไหวของชิ้นส่วนหมากรุก) ตรรกะของเกมแสดงถึงสถานะของเกมเป็นตารางตรรกะซึ่งแต่ละหน่วยเป็นความกว้าง / ความสูงของเซลล์หนึ่งในตาราง ดังนั้นสำหรับกริดที่มีความกว้าง 6 คุณสามารถย้ายบล็อกของความกว้าง 2 ได้สี่ครั้งจนกว่ามันจะชนกับขอบเขต UI ใช้กริดนี้และวาดโดยการแปลงขนาดโลจิคัลเป็นขนาดพิกเซล (นั่นคือคูณด้วยค่าคงที่) อย่างไรก็ตามเนื่องจากเกมแทบจะไม่ได้มีตรรกะของเกมเลยเลเยอร์ตรรกะในเกมของฉัน [1] จึงไม่ต้องทำอะไรมากมายนอกจากการตรวจจับการชน นี่คือวิธีการทำงาน: ผู้เล่นเริ่มลากชิ้นส่วน UI ถามตรรกะของเกมสำหรับพื้นที่การเคลื่อนไหวทางกฎหมายของชิ้นส่วนนั้นและให้ผู้เล่นลากมันภายในพื้นที่นั้น ผู้เล่นปล่อยชิ้นส่วนไป UI จัดเรียงส่วนเข้ากับกริด (เพื่อให้อยู่ในตำแหน่งตรรกะที่ถูกต้อง) UI บอกตรรกะของเกมถึงตำแหน่งโลจิคัลใหม่ (ผ่านวิธีการเปลี่ยนแปลงซึ่งฉันควรหลีกเลี่ยง) ฉันไม่ค่อยมีความสุขกับสิ่งนั้น: ฉันกำลังเขียนการทดสอบหน่วยสำหรับเลเยอร์เกมตรรกะของฉัน แต่ไม่ใช่ UI และมันกลับกลายเป็นว่ารหัสที่ยุ่งยากทั้งหมดนั้นอยู่ใน UI: การหยุดชิ้นส่วนจากการชนกับผู้อื่นหรือขอบเขตและสแนปอินตาราง ฉันไม่ชอบความจริงที่ว่า UI บอกตรรกะของเกมเกี่ยวกับสถานะใหม่ฉันอยากให้มันเรียกmovePieceLeft()วิธีการหรืออะไรทำนองนั้นเหมือนในเกมอื่น ๆ …

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