การค้นหาไฟล์เนื้อหาในเกม Linux


11

อะไรคือวิธีปกติในการจัดเก็บแบบจำลอง 3 มิติพื้นผิวเสียงและสคริปต์ (เช่นไฟล์ Lua) ในระหว่างการพัฒนาและในรีลีส? ฉันกำลังพัฒนาเกมกับเพื่อนของฉันในภาษา C ++ เป็นหลัก; ในขั้นตอนการสร้างต้นแบบเรามีเพียงพื้นผิวเดียวที่ได้รับการบันทึกเป็นส่วนหัว C กับ GIMP แต่แน่นอนวิธีการนี้ไม่ได้ปรับขนาดได้ดีและเพิ่มเวลาการรวบรวมอย่างมาก

ภายใต้ Windows การปฏิบัติตามปกติคือการทิ้งไว้ใน%PROGRAMFILES%ไดเรกทอรีย่อยที่มีเกมปฏิบัติการอยู่บางทีอาจจัดเรียงไว้ในโครงสร้างต้นไม้ที่เหมาะสม อย่างไรก็ตามบน Linux ภาพดูเหมือนซับซ้อนมากขึ้น ปฏิบัติการมักจะอาศัยอยู่ใน/usr/binขณะที่การใช้งานจัดเก็บไฟล์อื่น ๆ ของพวกเขาใน/usr/shareและฉันคิดว่ามันจะเป็นปฏิบัติไม่ดีอย่างยิ่งที่จะนำ executables /usr/binไม่ใช่ใน อย่างไรก็ตามโครงสร้างไดเรกทอรีระหว่างการพัฒนานั้นแตกต่างกันโดยสิ้นเชิง

ฉันสามารถหาวิธีแก้ปัญหาที่เป็นไปได้สองแบบ:

  • /optให้หาไฟล์ปฏิบัติการเทียบกับตัวเองสินทรัพย์และติดตั้งเกมที่จะ จากนั้นวาง symlink /usr/binไว้ที่ ในระหว่างการพัฒนาเส้นทางสัมพัทธ์ของสินทรัพย์ไปยังไบนารีนั้นเหมือนกับในระหว่างการปรับใช้
  • เข้าถึงไฟล์ด้วยพา ธ สัมบูรณ์ซึ่งกำหนดเป็นสัญลักษณ์ตัวประมวลผลล่วงหน้า ปล่อยให้กระบวนการสร้าง (ในกรณีของเราดิบMakefile) ดูแลการกำหนดตามความเหมาะสม

ทั้งสองวิธีดูเหมือนจะไม่ค่อยเหมาะสมกับฉันในด้านใดด้านหนึ่ง มีวิธีปฏิบัติทั่วไปในอุตสาหกรรมการพัฒนาเกมเกี่ยวกับเรื่องนี้หรือไม่?

คำถามที่เกี่ยวข้องเท่านั้นที่ฉันสามารถค้นหาได้คือการระบุตำแหน่งของสินทรัพย์เกมดิสก์ที่ติดตั้ง / บนและเส้นทางไดเรกทอรีสำหรับทรัพยากรและสินทรัพย์แต่คำถามเหล่านั้นไม่ได้แก้ไขปัญหาในการเรียกใช้ "จากแผนผังต้นไม้"

คำตอบ:


6

../lib/programnameหรือ../share/programname/สัมพันธ์กับdirname(3)ของargv[0]ขึ้นอยู่กับว่าสินทรัพย์นั้นขึ้นอยู่กับสถาปัตยกรรมหรือไม่

นี่เป็นมาตรฐานเดียวกันกับโปรแกรม Linux อื่น ๆ (และส่วนใหญ่ที่ไม่ใช่ Mac Unix)

หากคุณต้องการเรียกใช้จาก "ต้นไม้ต้นกำเนิด"

  1. คุณควรจะได้รับระบบการสร้างจริงและสร้างเพราะคุณไม่เคย "เรียกใช้จากต้นไม้แหล่งที่มา" คุณเรียกใช้ปฏิบัติการที่สร้างขึ้นซึ่งระบบสร้างของคุณคายออกไปที่ไหนสักแห่งและมันสามารถคัดลอกหรือเชื่อมโยงสินทรัพย์เข้าที่ได้อย่างง่ายดาย
  2. หากระบบการสร้างของคุณเร็วเกินไปให้ลองตรวจสอบ.หรือ./assetsอื่น ๆ แล้วดูระบบการสร้างใหม่ในภายหลังในการพัฒนา

ซึ่งแตกต่างจาก happy_emi พูดว่าคุณควรให้วิธีการแทนที่สิ่งนี้กับตัวแปรสภาพแวดล้อม มันเป็นสิ่งที่พวกเขาตั้งใจไว้


นอกจากนี้ยังพิจารณาตัวแปรสภาพแวดล้อมเหล่านี้ซึ่งเป็นมาตรฐานในลินุกซ์เดสก์ท็: standards.freedesktop.org/basedir-spec/basedir-spec-latest.html
bogglez
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.