ฉันจะสร้างระบบรหัสผ่านสำหรับเกมที่มีผู้เล่นคนเดียวเหมือนกับที่ใช้ในเกมคอนโซลรุ่นเก่าได้อย่างไร
ตัวอย่างเช่นMega Man Xบันทึกงานโดยให้หมายเลขที่คุณสามารถป้อนในภายหลังเพื่อโหลดบันทึกของคุณ
ฉันจะสร้างระบบรหัสผ่านสำหรับเกมที่มีผู้เล่นคนเดียวเหมือนกับที่ใช้ในเกมคอนโซลรุ่นเก่าได้อย่างไร
ตัวอย่างเช่นMega Man Xบันทึกงานโดยให้หมายเลขที่คุณสามารถป้อนในภายหลังเพื่อโหลดบันทึกของคุณ
คำตอบ:
ก่อนอื่นให้ทำลายสถานะเกมของคุณ (หรือค่อนข้างแง่มุมของสถานะที่คุณต้องการบันทึก) ในกรณีของเกมสไตล์ร็อคแมนคุณอาจติดตามว่าบอสระดับใดที่คุณฆ่าจำนวนของการเพิ่มพลังเหมือนถังพลังงานที่คุณมีและอื่น ๆ
แพ็คข้อมูลนั้นทั้งหมดลงในฟิลด์บิตนั่นคือกำหนดจำนวนบิตที่เหมาะสมให้กับแต่ละค่า:
ตัวอย่างของเรามีทั้งหมด 8 บิตซึ่งหมายความว่าอักขระตัวเดียวสามารถแสดงรหัสผ่านได้ ในทางปฏิบัติเกมของคุณน่าจะมีสถานะมากขึ้นและต้องใช้บิตรวมมากขึ้น ตามที่ระบุไว้ในความคิดเห็นที่นี่และที่อื่น ๆ ในคำถามนี้วิธีนี้ใช้ได้กับเกม "ย้อนยุค" หรือเกมอื่น ๆ ที่ขนาดของสถานะเกมที่บันทึกไว้มีความสมเหตุสมผล คุณอาจพบว่าความซับซ้อนของรหัสผ่านที่จำเป็นในการเข้ารหัสสถานะของคุณนั้นใหญ่เกินไป
เพื่อลดความเป็นไปได้ของการสังเกตรหัสผ่านแบบไม่เป็นทางการคุณสามารถแปลงเค้าโครงบิตเพื่อให้คุณแนะนำบิตจำลอง (ซึ่งไม่มีผลกับสถานะเกม แต่ซึ่งทำให้รหัสผ่านนั้นดูแตกต่างเมื่อคุณตีความบิตทั้งหมดเป็นอักขระ) หรือเรียกใช้ ผ่านการทำงานแบบแฮชที่พลิกกลับได้เพื่อแย่งบิตรอบ ๆ เพื่อให้บิต "kill box X " ไม่ถูกต้องติดกับ eachother ทำให้รหัสผ่านที่สอดคล้องกันของรัฐดูแตกต่างกันมากหรือแนะนำค่าการตรวจสอบ
หากคุณขุดไปรอบ ๆ มันมีข้อมูลที่เป็นธรรมเกี่ยวกับระบบที่ใช้สำหรับเกมรหัสผ่านที่ได้รับความนิยมมากขึ้น:
คุณสามารถอ่านข้อมูลเหล่านั้นเพื่อหาแรงบันดาลใจเพิ่มเติม
เกมเหล่านั้นไม่เพียงช่วยรัฐที่ฉันเชื่อ รหัสผ่านเพียงอ้างอิงระดับที่จะโหลด เพียงใช้พจนานุกรมสำหรับสิ่งนี้
หากมันซับซ้อนกว่าเล็กน้อยเช่นมีอาวุธหรือเครื่องเร่งความเร็วบางอย่างคุณสามารถเข้ารหัสสถานะให้เป็นรหัสแฮชสั้น ๆ (แต่นานพอ)
แต่ฉันขอแนะนำให้คุณอย่าใช้สิ่งนี้ รหัสผ่านจะแพร่กระจายอย่างรวดเร็วบนอินเทอร์เน็ตและในไม่ช้าทุกคนชนะเกมของคุณ
ทีนี้คุณก็ทำได้เช่นนี้:
บอสถูกฆ่า = 7
จำนวนเหรียญ = 36
Owns Sword = 0 (ไม่)
Owns Heart = 1 (ใช่)
ระดับปัจจุบัน = 6
โลกปัจจุบัน = 9
สุขภาพ = 100
รหัส = 7V36R0A1T6O9A100
โดยทั่วไปจดหมายทุกฉบับแยกประเภท
ในขณะที่โซลูชันเช่นระบบตัวละครต่อรัฐของJosh Petrie นั้นมีประโยชน์ (ขนาดเล็กประหยัดทำงานได้กับทุกสำเนาของเกม) แต่ทั้งคู่ออกแบบเกมและระบบของรัฐให้เป็นระบบรหัสผ่านที่แท้จริง การเปลี่ยนแปลงรหัสผ่านหรือสถานะหรือการออกแบบใด ๆ และทั้งระบบจะแยกออกจากกัน
ทางออกที่ง่ายกว่าคือการสร้างระบบบันทึกของคุณตามปกติและเพิ่มระบบรหัสผ่านที่ด้านบน วิธีนี้สามารถทำได้ง่ายเพียงบันทึกรหัสผ่านในการบันทึก (อาจเพิ่มเป็นสองเท่าเป็นชื่อไฟล์) และตรวจสอบความถูกต้องขณะโหลดหรือซับซ้อนเท่าการใช้หนึ่งในหลาย ๆ ไลบรารีการเข้ารหัสรอบ ๆ (ซึ่งค่อนข้างเล็กน้อย)
ดูเหมือนจะมีความสับสนรอบคำตอบนี้
1) op ได้เพียงขอรหัสผ่านที่ให้พวกเขาโหลดบันทึก ... ไม่มีข้อกำหนดว่ารหัสผ่านจะถูกบันทึก
2) เกมจำนวนมากในวันนี้มีความต้องการด้านการจัดเก็บอย่างมีนัยสำคัญเราเพิ่งสร้างระบบบันทึก / โหลดอย่างรวดเร็วภายในที่ผลิตไฟล์ 10MB ... สำหรับเกมตอบคำถาม! ระบบการบันทึกของ Josh Petrieในขณะที่ถูกต้อง จำกัด มาก - ทันทีที่ระบบการจัดเก็บกลายเป็นเรื่องไม่สำคัญรหัสผ่านจะต้องมีความยาวมหาศาลเพื่อยืนยันข้อมูลที่เกี่ยวข้องทั้งหมด
ตัวอย่างเช่นจะเกิดอะไรขึ้นหากมีเจ้านาย 30 คน 20 ความสำเร็จ? เราครึ่งทางผ่านความสำเร็จหรือไม่? เขาอยู่ที่ระดับใด เรามีกันกี่ชิ้นเพื่อสุขภาพชีวิตเหรียญ xp? จะเกิดอะไรขึ้นถ้าสแน๊ปช็อตไม่ได้อยู่ในสถานะระหว่างระดับ ... แต่ครึ่งทางผ่านระดับ - ตำแหน่งของผู้เล่น, ศัตรู, ขีปนาวุธ, ภูมิประเทศที่ถูกทำลาย / เปลี่ยนแปลงนั้นจะรวมกันเป็นรัฐจำนวนมากที่ต้องเก็บไว้
สำหรับมุมมองสมมติว่าตัวอักษร 30 ตัวและรหัสผ่านสิบตัวอักษรเรามีข้อมูลประมาณ 50 บิตเพื่อจัดเก็บ ไม่ใช่เรื่องแปลกที่จะเห็นเกม / เครื่องมือใช้มากถึง 320 บิตเพื่อเก็บตำแหน่งการหมุนและการปรับขนาดของวัตถุเดียว แน่นอนว่าคุณสามารถใช้เทคนิคการเพิ่มประสิทธิภาพทุกชนิดทำได้มากขึ้นโดยใช้เวลาน้อยลง ... แต่ในที่สุดคุณก็ใช้เวลาในการทำให้เกมสนุก - หนึ่งในสิ่งที่ดีที่สุดที่คุณสามารถทำได้