การพัฒนาเกม

คำถาม & คำตอบสำหรับนักพัฒนาเกมมืออาชีพและเป็นอิสระ

5
เพิ่มความน่าจะเป็นสำหรับไพ่ที่คล้ายกันเพื่อสร้างถัดจากกันและกัน
ฉันกำลังทำงานกับระบบแผนที่ย่อยซึ่งตราบเท่าที่มีลักษณะเช่นนี้ (สีเขียวคือหญ้าอากาศเป็นสีขาวหินเป็นสีเทาและสีน้ำเงินคือน้ำ): มันใช้ตัวสร้างตัวเลขสุ่มอย่างง่ายเพื่อให้มีโอกาส 45% ของกระเบื้องที่เป็นหญ้าโอกาส 30% ของการเป็นน้ำและโอกาส 25% ที่จะเป็นหิน มีอยู่แล้วฉันสามารถเพิ่มแนวโน้มสำหรับบล็อกหญ้า / ก้อนหินให้รวมตัวกันเพื่อก่อให้เกิดมวลบกและทำให้บล็อกน้ำก่อตัวในมหาสมุทร
9 java  algorithm  tiles  maps  lwjgl 

3
รับคะแนนในบรรทัดระหว่างสองคะแนน
ฉันกำลังสร้างเกมอวกาศง่ายๆใน JavaScript แต่ตอนนี้ฉันตีกำแพงเกี่ยวกับเวกเตอร์ มุมมองเกมอยู่บนลงบนกริด 2d เมื่อผู้ใช้คลิกบนกริดยานอวกาศจะบินไปยังจุดนั้น ดังนั้นถ้าฉันมีคะแนนสองชุด: { x : 100.2, y : 100.6 }; // the ship { x : 20.5, y : 55.95 }; // the clicked coordinates หากเกมวนซ้ำที่ 60 รอบต่อวินาทีและความเร็วของเรือรบที่ต้องการคือ 0.05 คะแนนต่อเห็บ (3 คะแนนต่อวินาที) ฉันจะคำนวณพิกัดชุดใหม่สำหรับเรือแต่ละเห็บของวงวนของเกมได้อย่างไร ป.ล. ฉันไม่ต้องการบัญชีความเฉื่อยหรือเวกเตอร์หลายตัวที่มีผลต่อเรือฉันแค่ต้องการให้เรือหยุดสิ่งที่กำลังทำ (เช่นบินทางเดียว) และย้ายไปยังพิกัดที่คลิกด้วยความเร็วคงที่

1
เหตุใด V8 จึงไม่ทำงานกับเธรด SDL
ฉันสามารถคอมไพล์และเชื่อมโยง V8 กับเกมของฉันและการตีความโค้ดทำงานได้ดี อย่างไรก็ตามฉันต้องการแบ่งรหัสของฉันและลูปเกมควรมีอยู่ในเธรดเดียวและเอ็นจิ้นการเขียนสคริปต์ควรรันในเธรดที่สองข้างลูปเกมของฉัน ฉันใช้ SDL และลองใช้รหัสนี้เพื่อวางไข่เธรดใหม่ SDL_CreateThread(ScriptingEngine::SpawnMain, NULL); ที่รหัสต่อไปนี้เป็นเครื่องมือทดสอบสคริปต์ของฉัน: namespace ScriptingEngine { v8::HandleScope handleScope; v8::Handle<v8::ObjectTemplate> global = v8::ObjectTemplate::New(); v8::Persistent<v8::Context> context; void Setup() { // TODO: bind functions to global // ... context = v8::Context::New(NULL, global); } int SpawnMain(void *arguments) { v8::Context::Scope scope(context); v8::Handle<v8::Script> script = v8::Script::Compile( v8::String::New("'Hello World'") ); …

3
เหตุใดฉันจึงไม่ได้รับบูลบรรจุและปรับให้เป็นบัฟเฟอร์คงที่ D3D
เอาล่ะฉันมีเวลายากที่จะได้รับการบรรจุและจัดแนวเป็นบัฟเฟอร์คงที่ hlsl และฉันไม่แน่ใจว่าทำไม นี่คือบัฟเฟอร์ใน hlsl cbuffer MaterialBuffer : register(b1) { float3 materialDiffuseAlbedo; float materialSpecularExponent; float3 materialSpecularAlbedo; bool isTextured; }; และนี่คือ c ++ struct GeometryBufferPass_MaterialBuffer { XMFLOAT3 diffuse; float specularExponent; XMFLOAT3 specular; bool isTextured; }; ฉันพยายามย้ายบูลและขยายโครงสร้างในทุก ๆ ด้านโดยไม่มีโชค วิธีที่ถูกต้องในการทำเช่นนี้คืออะไร?

1
ฉันจะสร้างและรัน Doom 3 จากซอร์สใน Windows ได้อย่างไร
ฉันกำลังพยายามสร้างและเรียกใช้ Doom 3 จากการเปิดตัวโอเพนซอร์สเพื่อให้เข้าใจถึงวิธีการทำงานของเครื่องยนต์ น่าเสียดายที่ฉันไม่สามารถเรียกใช้เกมจากไบนารีที่ฉันสร้างขึ้นได้ ฉันเพิ่งได้รับคอนโซล แต่ไม่สามารถเรียกใช้เกมจริงได้ นี่คือสิ่งที่ฉันทำ: ดาวน์โหลดซอร์สโค้ดจาก repo ของเกม ดาวน์โหลดและติดตั้ง DirectX SDK ซื้อดาวน์โหลดและติดตั้ง Doom 3 จาก Steam เปิดโซลูชันในโฟลเดอร์ใหม่โดยใช้ VS2010 SP1 สร้างโครงการ วิ่งเลย โซลูชันการลงโทษตามค่าเริ่มต้นในการตั้งค่าการดีบักตั้งค่าบรรทัดคำสั่งเพื่ออ้างอิงเส้นทางเริ่มต้นการติดตั้ง Steam doom3 นี่คืออาร์กิวเมนต์บรรทัดคำสั่งเริ่มต้นที่ใช้เพื่อเรียกใช้โครงการจาก vstudio + set fs_basepath "C: \ Program Files (x86) \ Steam \ steamapps \ common \ doom 3" + set com_allowConsole 1 …
9 c++  windows 

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

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

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

3
อะไรคือความทันสมัยในการส่งมอบกราฟิกเกมเช่นไฟล์ BMP ขนาดเล็กจำนวนมาก? [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นหัวข้อสำหรับ Game Exchange Stack Exchange ปิดเมื่อปีที่แล้ว เรามีไฟล์ BMP ขนาดเล็กจำนวนมากซึ่งฉันคิดว่าจะคัดลอกได้ง่ายกว่าถ้าเรารวมมันไว้ใน TAR / ZIP / ใหญ่ ๆ อะไรคือสถานะของศิลปะในการจัดส่งกราฟิกเกม? เราใช้ C # และตระหนักถึง zlib เพียงระดมสมองเพื่อดูว่ามีโซลูชั่นอื่นใดที่ดีกว่า zlib หรือไม่

3
การสร้างพูลหรือทะเลสาบสุ่ม
ฉันใช้งานฟังก์ชั่นที่สามารถวาดรูปหลายเหลี่ยม แต่ฉันไม่สามารถสร้างรูปทรงที่เรียบซึ่งเลียนแบบขอบโค้งมนของทะเลสาบ ฉันพยายามสร้างวงกลมสองวงและเชื่อมขอบ แต่มันมีความผันแปรหรือความเรียบไม่พอ ไม่มีใครมีตัวชี้หรือความคิดใด ๆ ที่สามารถสร้างรูปร่างเช่นนี้ได้หรือไม่?

2
ดึงดูดความสนใจของผู้ใช้ด้วยเกมสไตล์กุน
ฉันกำลังพัฒนาเกมกุนและด้วยเกมส่วนใหญ่ใน "แนวเพลง" บางเกมก็ต้องใช้เวลา ทำเงินรอสิ่งต่าง ๆ ที่จะเกิดขึ้น ฯลฯ สำหรับเกมมือถือ (ios, android) ฉันจะทำให้ความบันเทิงนี้เป็นอย่างไร ไม่มีการพูดถึงเกมของฉันโดยเฉพาะมีรอบวัน / สิ่งต่าง ๆ ที่เกิดขึ้นในบางจุด (ฉันจะเป็นคนทั่วไปมากกว่านี้ไหม ... ) มีความเป็นไปได้ที่แตกต่างกันและบางอย่างที่ฉันเห็นมีทั้งปุ่มกรอไปข้างหน้าหรือบางอย่างเพื่อที่จะไม่ทำให้มันน่าเบื่อ (ฉันกำลังพูดถึงเกมกุนที่มีสิ่งเล็ก ๆ น้อย ๆ ที่จะทำคุณไม่ยุ่งตลอดเวลาเช่นเมืองซิมหรืออะไรบางอย่าง) ฉันเพิ่งมีการแจ้งเตือนที่สร้างขึ้นในบางช่วงเวลาเพื่อบอกผู้ใช้ว่า "วันหมดสิ้นไปแล้ว" หรือ "มีการเปิดเครื่อง" หรือว่าจะน่ารำคาญเกินไป? ฉันเปิดรับความคิดเห็นเกี่ยวกับวิธีการดึงดูดความสนใจของผู้ใช้ แต่จริงๆแล้วมันไม่ใช่เกมที่คุณสามารถเล่นได้ตลอดเวลาหลายชั่วโมง มีสิ่งไม่เพียงพอที่จะทำไม่จำเป็นต้องมีการจัดการขนาดเล็ก

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

2
ฟังก์ชั่นสำหรับการเคลื่อนไหวของดวงอาทิตย์?
ดังนั้นเมื่อสไปรต์ดวงอาทิตย์ถูกวางที่ขอบฟ้า (x = 0, y = worldheight / 2) ฉันพยายามคิดฟังก์ชั่นเพื่อทำให้ดวงอาทิตย์ขึ้นแล้วตก วิธีที่ดีที่สุดในการทำเช่นนี้คือฟังก์ชั่นบาป แต่ฉันไม่รู้ว่าจะใช้มันอย่างไร หากใช้ y = sin (x) ดังนั้น x จะต้องอยู่ในช่วงระหว่าง 0 ถึง pi สำหรับเส้นโค้งเต็มขณะที่มีความเร็วคงที่สำหรับ X ความคิดหรือข้อเสนอแนะ? แก้ไข: ขอบคุณครับ!

3
การตรวจจับการชนกันของกระเบื้องที่มีประสิทธิภาพสำหรับสี่เหลี่ยมจำนวนมากหรือไม่
ขณะนี้ฉันกำลังทำเกมตามแบบตัวเอง (คิดว่า Terraria แต่แปลกน้อยกว่านี้ (ฉันคิดว่านั่นเป็นคำหรือไม่ขออภัยถ้าไม่ใช่) อย่างไรก็ตามตอนนี้ฉันมีระบบตรวจจับการชนกันของข้อมูลทำงานได้ดี มีบางสิ่งที่น่ายินดีเป็นอย่างยิ่งที่ได้เห็นผีสางไม่วิ่งผ่านบล็อก แต่แล้วฉันก็มีความคิดที่จะสร้างมาตรฐาน ความคิดที่ไม่ดี 1,000 สี่เหลี่ยมไม่มีปัญหา 10,000 สแควร์สำหรับ 3 ตัวอักษรเป็นความล่าช้า 100,000 squares (แผนที่ใหญ่มาก) สำหรับ 3 ตัวละครนั้นเล่นไม่ได้ ฉันมีปัญหาที่ฉันไม่ต้องการพิจารณาบล็อกที่อยู่ไกลจากผู้เล่นตัวละครไอเท็ม ฯลฯ แต่ฉันไม่ต้องการโหลดหน่วยความจำที่เหลืออยู่เหล่านั้นอย่างต่อเนื่อง นี่คืออัลกอริทึมของฉันจนถึงตอนนี้อย่าลังเลที่จะวิจารณ์ foreach (Block in level) { if (distance from block to player > a specified amount) ignore this block; else { get the intersection depth between …

2
ข้อดีและข้อเสียของ Lua vs. Python เป็นภาษาสคริปต์สำหรับแพลตฟอร์ม XNA / C # คืออะไร [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน4 ปีที่แล้ว ฉันกำลังคิดจะไปให้เป็นหนึ่งในความคิดโบราณของฉันสำหรับเกม จุดสำคัญของเกมนี้จะเป็นระดับที่เป็นไปได้ของการปรับแต่งการทำงานของสภาพแวดล้อมของเกมและวัตถุ (เช่นการปรับเปลี่ยนพฤติกรรมของอาวุธยานอวกาศ) สำหรับเกมนี้จะต้องมีสคริปต์ นอกจากนี้ฉันไม่ได้มุ่งหวังที่จะขายมันเป็นเพียงความท้าทายการเขียนโปรแกรมที่น่าสนใจสำหรับฉัน ในขณะที่ฉันส่วนใหญ่เป็น. NET ผู้ชายฉันจะใช้ XNA / C # สำหรับเกมเอง สำหรับการเขียนสคริปต์ฉันคิดว่าจะไปกับ Python หรือ Lua ฉันเคยมีประสบการณ์กับงูหลามมาก่อนและไม่มีอะไรขัดกับภาษาเลย Lua ในทางกลับกันเกือบจะใหม่ทั้งหมดสำหรับฉันนอกเหนือจาก World of Warcraft เล็กน้อยบางส่วนยังมีการดัดแปลงเพิ่มเติมที่ฉันทำที่นี่และที่นั่นและมันก็ดูมีแนวโน้ม ดังนั้นนี่คือคำถามของฉัน: ข้อดีและข้อเสียของ Lua vs. Python เป็นภาษาสคริปต์สำหรับแพลตฟอร์ม XNA / C # คืออะไร เป็นหนึ่งในนั้นใช้งานง่ายขึ้นด้วย XNA / C #? มีหนึ่งในนั้นมีข้อดีหรือข้อเสียบางประการเมื่อใช้กับ XNA / …
9 xna  c#  scripting 

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