คำถามติดแท็ก tilemap

ไทล์แมปเป็นเทคนิคการใช้ชิ้นส่วนกราฟิกขนาดเล็กไทล์ซ้ำแล้วซ้ำอีกเพื่อกำหนดฟิลด์เกม

3
การสร้างแผนที่แบบสุ่ม
ฉันเริ่ม / เริ่มเกม RPG tile tile 2D ใน Java และฉันต้องการใช้การสร้างแผนที่แบบสุ่ม ฉันมีรายการของกระเบื้องที่แตกต่างกัน (ดิน / ทราย / หิน / หญ้า / กรวด ฯลฯ ) พร้อมกับแผ่นน้ำและกระเบื้องทางเดินปัญหาที่ฉันมีคือฉันไม่รู้ว่าจะเริ่มสร้างแผนที่แบบสุ่มได้อย่างไร มันจะต้องมีส่วนของภูมิประเทศ (เช่นส่วนใดส่วนหนึ่งจะเป็นทรายส่วนของสิ่งสกปรก ฯลฯ ) คล้ายกับวิธีที่ Minecraft เป็นที่ซึ่งคุณมีไบโอมที่แตกต่างกันและพวกมันจะแปลงร่างเป็นกันและกันอย่างไร้รอยต่อ ในที่สุดฉันก็ต้องเพิ่มเส้นทางแบบสุ่มลงไปในนี้รวมถึงไปในทิศทางต่าง ๆ ทั่วแผนที่ ฉันไม่ได้ขอให้ทุกคนเขียนรหัสหรืออะไรทั้งหมดให้ฉัน piont ให้ฉันไปในทิศทางที่ถูกต้องได้โปรด tl; dr - สร้างแผนที่ย่อยด้วย biomes เส้นทางและตรวจสอบให้แน่ใจว่า biomes ต่อเนื่องเข้าด้วยกัน
63 tiles  maps  tilemap 

6
ฉันจะตรวจสอบได้อย่างรวดเร็วว่ากระเบื้องสไปรต์ของฉันดีหรือไม่
ฉันกำลังพยายามสร้าง tilemap sprite ที่เรียงอย่างดี แต่ตรวจสอบว่าการเรียงต่อกันของพวกเขายุ่งยากมากเพียงใด เป็นการดีที่ฉันต้องการมีโปรแกรมแก้ไขรูปภาพที่แสดงเลย์เอาต์เช่นนี้ดังนั้นฉันจึงสามารถดูว่ามันทำงานได้ดีหรือไม่หากไม่มีการตรวจสอบด้วยตนเอง: [img] [img][img][img] [img] โปรแกรมใดบ้างที่สามารถทำสิ่งนี้ได้หรือฉันจะทำให้ง่ายขึ้นได้อย่างไร

1
ความแตกต่างระหว่างภาพสามมิติแบบ "เซ" และ "ปกติ" แผนที่สามมิติแบบสามมิติคืออะไร?
V0.9 กระเบื้องแก้ไขแผนที่เมื่อเร็ว ๆ นี้เพิ่มการสนับสนุนสำหรับเซ tilemaps ในนอกเหนือจากการสนับสนุน tilemap ตามปกติของมันมีมิติเท่ากัน อะไรคือความแตกต่างทางเทคนิคที่แน่นอนระหว่างกระเบื้องสามมิติทั้งสามประเภทนี้? ข้อดี / ข้อเสียของพวกเขาคืออะไร?

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

2
อัลกอริทึมสำหรับแผนที่ 2D ขั้นตอนที่มีเส้นทางเชื่อมต่อ
ปัญหาที่จะต้องแก้ไข:สร้างแผนที่ดันเจี้ยน 2D แบบสุ่มสำหรับเกมแบบเรียงต่อกันที่ห้องทั้งหมดเชื่อมต่อกัน ฉันกำลังมองหาวิธีแก้ปัญหาที่ดีกว่าสิ่งที่ฉันมีอยู่ในปัจจุบัน โซลูชันปัจจุบันของฉันคือฉันรันสองอัลกอริธึม ครั้งแรกที่สร้างดันเจี้ยนที่มีห้องพัก ที่สองตรวจสอบให้แน่ใจว่าห้องพักทุกห้องเชื่อมต่อกัน ฉันอยากรู้ว่าการแก้ปัญหาอื่นอาจมีอยู่ เร็วขึ้นและ / หรือง่ายขึ้นเป็นต้นความเร็วไม่ใช่เรื่องที่น่ากังวล แต่ถ้าความเร็วสามารถเพิ่มได้โดยไม่ต้องเสียค่าใช้จ่ายจริงนั่นเป็นเรื่องดี ที่สำคัญกว่านั้นคือฉันและคนอื่น ๆ ที่อ่านอาจเรียนรู้วิธีต่าง ๆ ในการเข้าถึงและแก้ไขปัญหา ด้านล่างคือการใช้งานปัจจุบันของฉัน ขณะนี้ห้องพักไม่มีทางออกหรือออกในทิศทาง 2, 3 หรือ 4 สร้างห้องดันเจี้ยน ตั้งค่า: ตั้งค่าห้องปัจจุบันเป็นห้องซ้ายบน รับประเภทห้องที่ถูกต้องสำหรับห้องพัก (ที่ประเภทห้องที่ถูกต้องเป็นประเภทที่ไม่มีทางออกจากคุกใต้ดินและห้องที่ออกตรงกับทางออกของห้องด้านบนและห้องทางด้านซ้ายเพียงตรวจสอบด้านบนและ เหลือเนื่องจากขั้นตอนที่ 2 ด้านล่าง) วางห้องลงแล้วเลื่อนพิกัด x หนึ่งก้าว หากพิกัด x เกินความกว้างของดันเจี้ยนให้ตั้งค่าพิกัด x เป็น 0 และเลื่อนไปข้างหน้าพิกัด y หนึ่งก้าว หากพิกัด y เกินความสูงของดันเจี้ยนเราก็เสร็จเรียบร้อย ทำซ้ำจาก # 1 ฉันจะตรวจสอบเพื่อดูว่าห้องทั้งหมดเชื่อมต่อกันหรือไม่หากพวกเขาไม่ได้เชื่อมต่อกันทั้งหมดฉันเรียกใช้อัลกอริทึมที่สองว่าในวิธีที่ไม่เซ็กซี่ …

3
ทีมป้องกันการเขียนทับทำงานในไฟล์ต้นฉบับได้อย่างไร [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นหัวข้อสำหรับ Game Exchange Stack Exchange ปิดให้บริการใน4 ปีที่แล้ว มันเป็นไปได้สำหรับฉันที่มีหลายคนที่กำลังทำงานอยู่ในขณะเดียวกันเช่นเอ็นจิ้นเกม สมมติว่านักพัฒนาคนหนึ่งกำลังทำงานAudio.cppและนักพัฒนาที่สองก็กำลังทำงานอยู่Audio.cppสิ่งนี้จัดการโดยทั่วไปในทีมขนาดใหญ่เพื่อต่อสู้กับการเขียนทับได้อย่างไร (ในคำอื่น ๆ ที่จะหยุดสองนักพัฒนาจากการเปิดไฟล์จนกว่านักพัฒนาคนหนึ่งจะเสร็จสิ้น)
26 project-management  version-control  teamwork  java  2d  collision-detection  vector  collision-resolution  unity  directx  directx11  directx10  xna  ios  monogame  windows-phone-8  xamarin  design-patterns  oop  xna  collision-detection  collision-resolution  bounding-boxes  rotation  collision-detection  mathematics  javascript  algorithm  separating-axis-theorem  xna  2d  monogame  image  xna  directx  graphics  performance  opengl  2d  3d  c++  directx11  unity  c#  scale  c#  xna  collision-detection  collision-resolution  leaderboards  scoring  glsl  srgb  tilemap  three.js  tiled  unity  physics  xml  dialog-tree  xna  c#  .net  opengl  lwjgl  vbo  physics  graphics  procedural-generation  simulations  water  opengl  java  textures  lwjgl  frame-buffer  unity  unity  2d  collision-detection  collision-resolution  trigonometry  java  android  libgdx  xna  c#  frame-rate  c++  unreal-4  procedural-generation  java  graphics  lwjgl  slick  c++  software-engineering 

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

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

3
แนวทางปฏิบัติที่ดีที่สุดสำหรับระบบพิกัดแผนที่
มีอนุสัญญาและ / หรือวิธีการที่รู้จักกันดีที่สุดเกี่ยวกับระบบพิกัดในแผนที่เกมหรือไม่? จุดเริ่มต้นมักจะอยู่ในตำแหน่งกึ่งกลางของแผนที่หรือไม่ หรือมันอาศัยอยู่ในมุมหนึ่งและแผนที่ถูกสร้างขึ้นใน octant เดียวของพื้นที่ 3D หรือไม่?

6
การเรนเดอร์ tilemap ที่ไร้รอยต่อ (ภาพที่อยู่ติดกันแบบไร้ขอบ)
ฉันมีเอ็นจิ้นเกม 2D ที่ดึงแผ่นกระเบื้องโดยการวาดแผ่นจากภาพชุดไพ่ เนื่องจากตามค่าเริ่มต้นแล้ว OpenGL สามารถห่อทั้งพื้นผิว ( GL_REPEAT) และไม่ได้เป็นส่วนหนึ่งของมันเท่านั้นไทล์แต่ละอันจึงแยกออกเป็นพื้นผิวแยกต่างหาก จากนั้นพื้นที่ของไทล์เดียวกันจะแสดงผลติดกัน นี่คือสิ่งที่ดูเหมือนว่าเมื่อทำงานตามที่ตั้งใจไว้: อย่างไรก็ตามทันทีที่คุณแนะนำการปรับสัดส่วนแบบตะเข็บปรากฏ: ทำไมสิ่งนี้ถึงเกิดขึ้น ฉันคิดว่าเป็นเพราะการกรองเชิงเส้นเป็นการผสมผสานเส้นขอบของคณะสี่คน แต่มันก็ยังคงเกิดขึ้นกับการกรองแบบจุด วิธีแก้ปัญหาเดียวที่ฉันพบคือการรับประกันว่าการวางตำแหน่งและการปรับขนาดทั้งหมดจะเกิดขึ้นที่ค่าจำนวนเต็มและใช้การกรองแบบจุดเท่านั้น สิ่งนี้สามารถลดคุณภาพการมองเห็นของเกม (โดยเฉพาะการวางตำแหน่งพิกเซลย่อยไม่ทำงานอีกต่อไปดังนั้นการเคลื่อนไหวจะไม่ราบรื่น) สิ่งที่ฉันได้ลอง / พิจารณา: การลดรอยหยักจะลด แต่ไม่ได้กำจัดรอยตะเข็บทั้งหมด การปิดการทำแผนที่ไม่มีผล เรนเดอร์แต่ละแผ่นแยกกันและขับขอบ 1px - แต่นี่เป็นการลดประสิทธิภาพเนื่องจากมันไม่สามารถแสดงพื้นที่ของกระเบื้องได้ในคราวเดียวและสร้างสิ่งประดิษฐ์อื่น ๆ ตามขอบของพื้นที่โปร่งใส เพิ่มเส้นขอบ 1px รอบ ๆ รูปภาพต้นทางและทำซ้ำพิกเซลสุดท้าย - แต่จากนั้นจะไม่มีกำลังไฟสองอีกต่อไปทำให้เกิดปัญหาความเข้ากันได้กับระบบที่ไม่มีการสนับสนุน NPOT การเขียน shader ที่กำหนดเองเพื่อจัดการกับภาพที่มีการเรียงต่อกัน - แต่แล้วคุณจะทำอะไรที่แตกต่างออกไป? GL_REPEATควรจับพิกเซลจากด้านตรงข้ามของภาพที่ขอบและไม่เลือกความโปร่งใส เรขาคณิตอยู่ติดกันอย่างแน่นอนไม่มีข้อผิดพลาดในการปัดเศษจุดลอยตัว ถ้า Shader ส่วนจะเขียนยากที่จะกลับมามีสีเดียวกันตะเข็บหายไป ถ้าพื้นผิวมีการกำหนดให้GL_CLAMPแทนGL_REPEAT, ตะเข็บหายไป …

1
ขนาด จำกัด ของ Unity 2017.2 Tilemap คือเท่าใด
ฉันกำลังขุดอ่านเอกสารเกี่ยวกับคุณสมบัติ Tilemap ของ Unity 2017.2 Unity จำกัด จำนวนสูงสุดของการเรียงแบบต่อเนื่องที่จะรองรับการเรียงต่อกันแบบเรียงต่อกันหรือไม่? ฉันรู้ว่าแต่ละไทล์จะถูกสร้างอินสแตนซ์หนึ่งครั้งและเคยใช้ประกอบฉากล่ามใน Tilemap mesh ที่รันไทม์ดังนั้นฉันเดาว่าขีด จำกัด จำนวน quad quad นั้นขึ้นอยู่กับฮาร์ดแวร์ในที่สุดและสูงหรือน้อยก็ได้ นั่นเป็นข้อสันนิษฐานที่ถูกต้องหรือมีฝาปิดที่แข็งอยู่ในเครื่องยนต์หรือไม่?
17 unity  2d  tilemap 

3
ใน XNA ฉันจะโหลดบางส่วนของแผนที่โลกขนาดใหญ่แบบไดนามิกได้อย่างไร
ฉันต้องการพัฒนาแผนที่โลกขนาดใหญ่ ขนาดอย่างน้อย 8000 × 6000 พิกเซล ฉันแบ่งมันเป็นรูปแบบ PNG ขนาด 800 × 600 พิกเซลที่ 10 × 10 เพื่อหลีกเลี่ยงการโหลดทุกอย่างลงในหน่วยความจำภาพควรจะโหลดและไม่โหลดขึ้นอยู่กับตำแหน่งของผู้เล่นในตาราง ตัวอย่างเช่นนี่คือผู้เล่นที่ตำแหน่ง(3,3): เมื่อเขาเลื่อนไปทางขวา(4,3)ภาพสามภาพทางด้านซ้ายสุดจะถูกจัดสรรคืนขณะที่ภาพทั้งสามทางด้านขวาถูกจัดสรร: อาจมีขีด จำกัด ในแต่ละเซลล์ของกริดที่เรียกการโหลดและการขนถ่าย การโหลดอาจเกิดขึ้นในเธรดแยกต่างหาก ฉันจะออกแบบระบบดังกล่าวได้อย่างไร

1
วิธีที่มีประสิทธิภาพในการคำนวณ "กรวยการมองเห็น" บนแผนที่ย่อยแบบ 2D หรือไม่
ฉันกำลังพยายามคำนวณว่าหน่วยใดหน่วยหนึ่งสามารถ "เห็น" ถ้าหันหน้าไปทางทิศทางหนึ่งบนแผนที่ย่อย (ภายในช่วงและมุมที่หันหน้าไป) วิธีที่ง่ายที่สุดคือการดึงกระเบื้องจำนวนหนึ่งออกไปด้านนอกและ raycast ไปยังแต่ละแผ่น อย่างไรก็ตามฉันหวังว่าจะมีประสิทธิภาพมากกว่านี้เล็กน้อย รูปภาพบอกหนึ่งพันคำ: จุดสีแดงคือหน่วย (ผู้ที่หันขึ้นด้านบน) เป้าหมายของฉันคือการคำนวณกระเบื้องสีเหลือง บล็อกสีเขียวเป็นผนัง (ผนังอยู่ระหว่างแผ่นกระเบื้องและง่ายต่อการตรวจสอบว่าคุณสามารถผ่านระหว่างสองแผ่นได้หรือไม่) เส้นสีน้ำเงินแสดงถึงวิธีการ "raycasting" ที่ฉันพูดถึง แต่ฉันไม่ต้องการทำเช่นนี้ แก้ไข: หน่วยสามารถหันหน้าไปทางเหนือ / ใต้ / ตะวันออก / ตะวันตก (0, 90, 180 หรือ 270 องศา) และ FoV อยู่ที่ 90 องศาเสมอ ควรทำให้การคำนวณง่ายขึ้น ฉันคิดว่ามีอัลกอริทึมแบบเรียกซ้ำ - ish / stack-based / queue-based แต่ฉันไม่สามารถเข้าใจได้ ขอบคุณ!
13 2d  algorithm  tilemap 

1
วิธีการจำลองความสูงในเกมจากบนลงล่างของกระเบื้อง
ฉันจะจำลองความสูงในเกม 2D แบบบนลงล่างได้อย่างไร วิธีหนึ่งที่ฉันคิดคือการสร้างกระเบื้องที่ควรจะมีความสว่างสูงกว่า แต่ฉันสงสัยว่ามีการใช้มาตรฐานหรือดีกว่า

2
รวม Colliders ขนาดเล็กจำนวนมากเข้ากับคนที่ใหญ่
ฉันกำลังสร้างเกมโดยใช้แผนที่ย่อยที่ทำจากสี่เหลี่ยมหลายพันตาราง ในขณะนี้แต่ละสแควร์จะมี collider สแควร์สำหรับตรวจสอบการชนกัน อย่างไรก็ตามด้วยบล็อกขนาดเล็กหลายพันบล็อกการตรวจสอบพวกเขาทั้งหมดสำหรับการชนนั้นไม่มีประสิทธิภาพ หากฉันรู้ว่า tilemap จะมีลักษณะเช่นนี้ล่วงหน้าฉันสามารถใช้ colliders ขนาดใหญ่ 3 หรือ 4 ตัวแทนตัวเล็ก ๆ หลายพันตัว: มีอัลกอริธึมมาตรฐานบางประเภทสำหรับการรวมไทล์เล็ก ๆ ที่อยู่ติดกันให้ใหญ่ที่สุด? ถ้ามีใครช่วยอธิบายได้ที่นี่หรือชี้ไปที่วรรณกรรมเกี่ยวกับอัลกอริธึมดังกล่าว อีกทางหนึ่งบางทีการประมวลผลล่วงหน้าตัวสร้างไทล์ด้วยวิธีนี้อาจเป็นวิธีที่ผิด ถ้าเป็นเช่นนั้นสิ่งที่ถูกต้องที่จะจัดการกับประสิทธิภาพของ colliders จำนวนมากคืออะไร?

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