คำถามติดแท็ก procedural-generation

การสร้างขั้นตอนคือการสร้างเนื้อหาตามขั้นตอนวิธีและการคำนวณมากกว่าด้วยมือ

1
ภูมิประเทศเรียบ Voxel
ในโครงการส่วนบุคคลฉันพยายามสร้างตัวสร้างภูมิประเทศที่จะสร้างภูมิประเทศที่ดูคล้ายกับภูมิประเทศที่ราบเรียบของ Castle Story หากคุณไม่เคยเห็นมาก่อนนี่: อย่างที่คุณเห็นมันคือการรวมกันของบล็อกและบล็อก "ราบรื่น" สิ่งที่ฉันพยายามทำเพื่อเลียนแบบรูปลักษณ์นี้คือให้แผนผังความสูงขนาดเล็กแต่ละบล็อก โดยทั่วไปแล้วใช้งานได้ แต่มีบางประเด็นที่ให้ภูมิประเทศเช่นนี้: ปัญหาคือว่าแต่ละบล็อกมี 1x1x1 แต่บางครั้งความสูงของตำแหน่งใดตำแหน่งหนึ่งเป็นค่าลบหรือ> 1 ในกรณีนี้ฉันคลิปมันและตั้งค่าความสูงเป็น 0 หรือ 1 เพื่อแสดงให้เห็นถึงสิ่งที่ฉันหมายถึงนี่คือแผนภาพ: เพื่อสร้างความสูงฉันโดยทั่วไปทำ: genColumn(int x, int z) { int highestBlockY = (int)noise2d(x, z); bool is_surface = true; for(int y = max_height - 1; y >= 0; y--) { Block b; if(is_surface) { b = …

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

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

3
ฉันจะสร้างภูมิประเทศแบบนั้นได้จาก Scorched Earth ได้อย่างไร
ฉันเป็นนักพัฒนาเว็บและฉันกระตือรือร้นที่จะเริ่มเขียนเกมของตัวเอง เพื่อความคุ้นเคยฉันได้เลือก JavaScript และcanvasองค์ประกอบสำหรับตอนนี้ ฉันต้องการสร้างภูมิประเทศแบบนั้นใน Scorched Earth ความพยายามครั้งแรกของฉันทำให้ฉันรู้ว่าฉันไม่สามารถสุ่มyค่าได้ จะต้องมีสติในยอดเขาและราง ฉันใช้ Googled สักหน่อย แต่ไม่สามารถหาอะไรที่ง่ายพอสำหรับฉันหรือฉันใช้คำหลักผิด คุณช่วยแสดงให้ฉันดูว่าอัลกอริทึมแบบไหนที่ฉันจะใช้สร้างบางอย่างในตัวอย่างโดยจำไว้ว่าฉันยังใหม่กับการเขียนโปรแกรมเกม (ตั้งแต่สร้าง Breakout ในปี 2003 ด้วย Visual Basic ต่อไป)

2
ฝ่ายอักษะในแนวแกน: แบ่งพื้นที่ออกเป็นสี่เหลี่ยมผืนผ้าสุ่ม?
ฉันต้องการวิธีการแบ่งพื้นที่ 3 มิติเป็นรูปร่างกล่องที่จัดแนวแกนแบบสุ่ม ตอนนี้ฉันกำลังแบ่งพื้นที่ 2d สำหรับการทดสอบ วิธีที่ฉับพลันที่สุดที่ฉันคิดขึ้นมาคือการกำหนดขนาดสี่เหลี่ยมผืนผ้า (1, 1) แล้วแบ่งสี่เหลี่ยมที่มีอยู่ทั้งหมดกลับเป็นรูปสี่เหลี่ยมผืนผ้าไม่สม่ำเสมอสองอันสลับกันระหว่างแกน X และ Y ปัญหาที่นี่ชัดเจน วิธีการนี้ส่งผลให้เส้นยืดยาว (ทำเครื่องหมายด้วยสีแดง) สิ่งที่ฉันต้องการคือสิ่งที่ดูเป็นธรรมชาติมากขึ้น (ฉันรวมตัวอย่าง) ดูไม่มีเส้นตรงยาวจากบนลงล่างหรือจากซ้ายไปขวา ข้อ จำกัด เพียงอย่างเดียวคือฉันอาจต้องการ จำกัด ขนาดที่เล็กที่สุดของสี่เหลี่ยมผืนผ้าโดยไม่กระทบกับความละเอียดของขนาด นั่นคือถ้าส่วนที่เล็กที่สุดคือ 1 ตารางเซนติเมตรกว่าห้องที่เล็กที่สุดของวินาทีไม่ควรเป็น 2 ตารางหน่วย ดังนั้นขั้นตอนวิธีควรเป็นไปตามข้อ จำกัด ทั้งสามดังต่อไปนี้: รูปสี่เหลี่ยมผืนผ้ามีขนาดเล็กไม่เล็ก ขนาดของรูปสี่เหลี่ยมไม่ได้เป็นการคูณแบบแยกขนาดที่เล็กที่สุด เช่นถ้า rect ที่เล็กที่สุดคือ 3 square unit มากกว่า rects ที่ใหญ่กว่าจะไม่ถูก จำกัด ให้เป็น 6, 9, 12 และอื่น ๆ …

2
ฉันจะสุ่มสร้างภูมิประเทศที่ใช้แผ่นพื้นด้านข้างแบบสุ่มได้อย่างไร
ฉันต้องการสร้างแผนที่แบบสุ่มสำหรับเกม 2D sidescroller โดยใช้ชุดไพ่ต่อไปนี้: ฉันได้พบบทความที่ดีเกี่ยวกับกระบวนการ Bitmasking เช่น: http://www.angryfishstudios.com/2011/04/adventures-in-bitmasking/ http://www.saltgames.com/2010/a-bitwise -method สำหรับใช้-tilemaps / ฉันชอบความคิดในการใช้ bitmask / tilemask แทนที่จะทำประโยคคำสั่งหรือ switch ขนาดใหญ่ อย่างไรก็ตามฉันมีปัญหาในการแสดงภาพกระบวนการทั้งหมดและไม่มีบทความใดที่พูดถึงการสุ่ม ไทล์ของฉันเข้าด้วยกันในหลาย ๆ แบบไม่ใช่แค่ทางเดียวเพราะไทล์ในตัวอย่างที่ฉันเชื่อมโยงดูเหมือนจะ ตัวอย่างเช่นนี่เป็นเพียงตัวอย่างไม่กี่: เนื่องจากกระเบื้องของฉันเข้ากันได้หลายวิธีฉันไม่คิดว่าหน้ากาก 8 บิตจะทำงานได้ ดังนั้นฉันคิดว่าจะใช้ bitmask ที่ใหญ่กว่านี้ บางอย่างเช่นถ่าน [8] หรือถ่าน4 หากใครบางคนสามารถแสดง pseudocode / ตัวอย่างของอัลกอริธึมทั่วไปที่ดูเหมือนฉันจะขอบคุณมันมาก

2
ปัญหาการสร้างภูมิประเทศแบบสี่เหลี่ยมจัตุรัส
ฉันใช้อัลกอริทึม Diamond-Square ตามบทความนี้: http://www.lighthouse3d.com/opengl/terrain/index.php?mpd2 ปัญหาคือฉันได้หน้าผาที่สูงชันเหล่านี้ไปทั่วแผนที่ มันเกิดขึ้นที่ขอบเมื่อภูมิประเทศถูกแบ่งย่อยซ้ำแล้วซ้ำอีก: นี่คือแหล่งที่มา: void DiamondSquare(unsigned x1,unsigned y1,unsigned x2,unsigned y2,float range) { int c1 = (int)x2 - (int)x1; int c2 = (int)y2 - (int)y1; unsigned hx = (x2 - x1)/2; unsigned hy = (y2 - y1)/2; if((c1 <= 1) || (c2 <= 1)) return; // Diamond stage …

2
ฉันจะใช้ไทล์ที่สร้างตามขั้นตอนใน libgdx ได้อย่างไร
ฉันกำลังสร้างเกม Zelda-esque บนลงล่างแบบง่าย ๆ ใน libgdx และฉันต้องการใช้ดันเจี้ยนแบบเรียงต่อกันที่สร้างตามขั้นตอนคล้ายกับสิ่งนี้ Libgdx มีคลาสที่เรียกว่า TiledMap ซึ่งดูเหมือนว่าจะเหมาะกับความต้องการของฉันอย่างไรก็ตามเอกสารนอกเอกสารอย่างเป็นทางการแสดงให้เห็นว่า TiledMaps สามารถใช้ร่วมกับไฟล์. tmx หรือในคำอื่น ๆ ที่ออกแบบไว้ล่วงหน้าแผนที่ ฉันทำ Googling ในปริมาณที่พอใช้แล้วฉันก็เลยขอให้ที่นี่เป็นทางเลือกสุดท้ายหวังว่าจะมีใครบางคนมีประสบการณ์การใช้ libgdx เพื่อสร้างแผนที่ย่อยแบบไดนามิก แก้ไข: ฉันสามารถใช้StaticTiledMapTiles ได้หรือไม่ร่วมกับบทช่วยสอนที่ฉันเชื่อมโยงกับข้างต้นเพื่อบรรลุเป้าหมายได้หรือไม่ ขอบคุณ!

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

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

4
การสร้างขั้นตอนการอัปเดตเกมและเอฟเฟกต์ผีเสื้อ
หมายเหตุ: ฉันถามสิ่งนี้ใน Stack Overflow เมื่อสองสามวันก่อน แต่มีมุมมองน้อยมากและไม่มีการตอบสนอง คิดว่าฉันควรถาม gamdev.stackexchange แทน นี่เป็นคำถาม / คำขอทั่วไปสำหรับคำแนะนำเกี่ยวกับการบำรุงรักษาระบบการผลิตตามขั้นตอนผ่านการอัพเดทหลังการเผยแพร่หลายครั้งโดยไม่ทำลายเนื้อหาที่สร้างขึ้นก่อนหน้านี้ ฉันพยายามค้นหาข้อมูลและเทคนิคในการหลีกเลี่ยงปัญหา "Butterfly Effect" เมื่อสร้างเนื้อหาขั้นตอนสำหรับเกม เมื่อใช้เครื่องกำเนิดตัวเลขสุ่มแบบ seeded ลำดับการทำซ้ำของตัวเลขสุ่มสามารถใช้เพื่อสร้างโลกที่ทำซ้ำได้ ในขณะที่เกมบางเกมบันทึกโลกที่สร้างไว้บนดิสก์ที่สร้างขึ้นครั้งเดียวหนึ่งในคุณสมบัติที่ทรงพลังของขั้นตอนการสร้างคือความจริงที่ว่าคุณสามารถพึ่งพาความสามารถในการทำซ้ำของลำดับหมายเลขเพื่อสร้างภูมิภาคหลายครั้งในลักษณะเดียวกัน วิริยะ. เนื่องจากข้อ จำกัด ของสถานการณ์เฉพาะของฉันฉันจึงต้องลดการคงอยู่ให้เหลือน้อยที่สุดและจำเป็นต้องพึ่งพาจุดเริ่มต้นที่บริสุทธิ์อย่างเต็มที่เท่าที่จะทำได้ อันตรายหลักในแนวทางนี้คือแม้แต่การเปลี่ยนแปลงเพียงเล็กน้อยในระบบการสร้างขั้นตอนสามารถทำให้เกิดผลกระทบของผีเสื้อที่เปลี่ยนแปลงโลกทั้งใบ ทำให้การอัปเดตเกมเป็นเรื่องยากมากโดยไม่ทำลายโลกที่ผู้เล่นสำรวจ เทคนิคหลักที่ฉันใช้เพื่อหลีกเลี่ยงปัญหานี้คือการออกแบบการสร้างโพรซีเดอร์ในหลายเฟสซึ่งแต่ละอันมีตัวสร้างตัวเลขสุ่มแบบสุ่ม ซึ่งหมายความว่าแต่ละระบบย่อยนั้นมีอยู่ในตัวเองและหากมีสิ่งใดเสียหายก็จะไม่ส่งผลกระทบต่อทุกสิ่งในโลก อย่างไรก็ตามเรื่องนี้ดูเหมือนว่ามันยังมีศักยภาพมากมายสำหรับ "การแตก" แม้ว่าจะอยู่ในส่วนที่แยกจากเกม วิธีที่เป็นไปได้อีกวิธีหนึ่งในการจัดการกับปัญหานี้คือการรักษาเครื่องกำเนิดไฟฟ้าของคุณให้สมบูรณ์ในรหัสและใช้เครื่องกำเนิดที่เหมาะสมสำหรับอินสแตนซ์ของโลกที่กำหนด ดูเหมือนว่าจะเป็นฝันร้ายสำหรับฉันและฉันอยากรู้ว่าใครทำสิ่งนี้จริง ๆ ดังนั้นคำถามของฉันคือคำขอคำแนะนำเทคนิคและรูปแบบการออกแบบทั่วไปเพื่อจัดการกับปัญหานี้ของเอฟเฟกต์ผีเสื้อโดยเฉพาะอย่างยิ่งในบริบทของการอัปเดตเกมหลังวางจำหน่าย (หวังว่านั่นจะไม่ใช่คำถามที่กว้างเกินไป) ฉันกำลังทำงานใน Unity3D / C # ถึงแม้ว่านี่จะเป็นคำถามที่ไม่เชื่อเรื่องภาษา UPDATE: ขอบคุณสำหรับคำตอบ ดูเหมือนว่าข้อมูลแบบคงที่จะเป็นวิธีที่ดีที่สุดและปลอดภัยที่สุดและเมื่อการจัดเก็บข้อมูลจำนวนมากไม่ใช่ตัวเลือกการมีแคมเปญที่ยาวนานในโลกที่สร้างขึ้นจะต้องใช้เวอร์ชันที่เข้มงวดของเครื่องกำเนิดไฟฟ้า เหตุผลของข้อ จำกัด ในกรณีของฉันคือความต้องการบันทึก / ซิงค์บนคลาวด์บนอุปกรณ์เคลื่อนที่ …

3
การสร้างชื่อ
ฉันกำลังสร้างเกม (หรือวางแผนอย่างน้อย) และเพื่อทำสิ่งนั้นฉันต้องการวิธีสร้างชื่อโดยอัตโนมัติสำหรับ "ผู้บังคับบัญชา" ของ NPC (คำอธิบายที่ยาวและไม่เกี่ยวข้องที่นี่) สิ่งนี้เป็นตัวอย่างที่ดีของสิ่งที่ฉันหมายถึง ฉันมีความคิดว่าฉันสามารถสร้างฐานข้อมูลชื่อตามสัญชาติอาจเป็นคู่แรก / คู่สุดท้ายและกำหนดชื่อแบบสุ่มโดยใช้รายชื่อที่ไม่สนใจดังนั้นฉันจึงไม่ได้รับเหมือน Homer Simpson และถูกฟ้องร้องหรืออะไรบางอย่าง ปัญหาที่เกิดขึ้นคือฉันต้องสร้างฐานข้อมูลขนาดใหญ่ของชื่อเพื่อให้สามารถใช้งานได้ อาจใช้เวลาตลอดไปหรือเสียค่าใช้จ่ายเว้นแต่มีบางคนมีรายการชื่อให้ใช้ฟรีแล้ว ฉันมีความคิดอื่นที่ฉันสร้างสระและพยัญชนะคู่สุ่มและเพิ่มเข้าด้วยกัน แต่เป็นโปรแกรมด่วนที่สร้างชื่อเช่นนี้: Seermeecpa Cime Ofmiahwumafi Gozidi Effawided (สำหรับผู้ที่สนใจโค้ดคุณสามารถดูได้ที่นี่ ) นี่มัน ... คำหนึ่ง ดียกเว้น "Gozidi" - อันนั้นใช้ได้ ถึงกระนั้นอัตราความสำเร็จก็ยังไม่ชัดเจนนัก มีสิ่งใดบ้างที่ฉันสามารถทำได้เพื่อสร้างชื่อให้เสียงดีกว่า (ดูด้านล่าง) หรือฉันควรเริ่มทำรายการนั้นหรือไม่? ฉันจะเลียนแบบวิธีที่มนุษย์ตัดสินใจได้หรือไม่ว่าชื่อดีหรือไม่อย่างน้อยก็มีความแม่นยำ ฉันต้องการอะไรแบบนี้เพื่อค้นหาในรายการใหญ่ สิ่งที่ฉันหมายถึงโดย "ดีกว่า" คือแทนที่จะรวมตัวอักษรแบบสุ่ม (ซึ่งมันคือเพื่อความเป็นธรรม) สิ่งที่ดูเหมือนชื่อจริง พวกเขาสามารถมาจากวัฒนธรรมใด ๆ (หรือเสียงเหมือนพวกเขา) จริงหรือจินตนาการอะไรก็ได้ตราบใดที่คุณเป็นใบ้โปรเฟสเซอร์อเมริกันคนเดียวที่ฉันพูดได้ว่าไม่มีปัญหามากเกินไป หากคุณต้องการคำชี้แจงเพิ่มเติมให้ไปข้างหน้าและถาม ฉันไม่แน่ใจจริงๆว่าจะใส่อะไรที่นี่ ภาคผนวก: …

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

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

2
จะลบภูมิประเทศลอยเมื่อสร้างด้วย 3D Perlin Noise ได้อย่างไร
ขณะนี้ฉันกำลังใช้ 3D Perlin Noise เพื่อสร้างภูมิประเทศแบบสุ่มร่วมกับ Marching Cubes ปัญหาของฉันดูเหมือนจะอยู่ในการปรับฟังก์ชั่นเสียงรบกวนเพื่อให้ได้ความสูงที่เหมาะสมในภูมิประเทศของฉัน หากมีการใช้อ็อกเทฟเพียงหนึ่งจุดทุกจุดที่สัมพันธ์กับเสียงรบกวนจะถูกสอดแทรกอย่างชัดเจนซึ่งทำให้ได้ข้อมูลที่ค่อนข้างราบ อย่างไรก็ตามเพื่อให้ได้ระยะยื่น / ถ้ำ / ภูมิประเทศขรุขระฉันต้องใช้อ็อกเทฟหลาย ๆ ตัวที่มีแอมพลิจูดที่แตกต่างกันและ / หรือปรับขนาดค่าผลลัพธ์ให้เป็นความสูง 'สูงสุด' ที่ฉันต้องการของแผนที่ ฉันอาจจะพลาดอะไรบางอย่าง แต่ด้วยการใช้ลูกบาศก์เดินกับเสียงเพอร์ลิน 3 มิติฉันจึงได้รับภูมิประเทศที่ลอยอยู่เป็นประจำ ความคิดเห็นใด ๆ เกี่ยวกับวิธีที่ฉันสามารถแก้ไขหรือถ้ามีฟังก์ชั่นเสียงรบกวนอื่น ๆ ที่ฉันอาจใช้เพื่อให้ได้ผลลัพธ์เหมือนที่ฉันอธิบาย ฉันต้องการเนินเขา / หุบเขา / ภูเขา / ทะเลสาบ / ฯลฯ ไม่จำเป็นต้องแยกบิตที่ลอยอยู่ออกจากส่วนที่เหลือของแผนที่ ฉันเชื่อว่านี่เป็นปัญหาที่คล้ายคลึงกับสิ่งที่ Minecraft มีเมื่อมันมีภูมิประเทศที่ลอยอยู่บนท้องฟ้าเป็นครั้งคราวในรุ่นต่อไป ขอบคุณสำหรับความช่วยเหลือ Mythics

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