เมื่อหลายปีก่อนถ้าคุณเขียนใน C และเซตย่อยของ C ++ และใช้ abstract abstract platform ที่เพียงพอ (ผ่าน SDL หรืออะไรก็ตาม) คุณสามารถทำงานบนทุกแพลตฟอร์มที่อินดี้สามารถทำได้ - Linux, Windows, Mac OS เวอร์ชันต่าง ๆ ปิดบังสิ่งต่างๆเช่น BeOS และคอนโซลแบบเปิดเช่น GP2X และ Dreamcast หลังความตาย หากคุณได้รับสัญญาสำหรับแพลตฟอร์มปิดในบางกรณีคุณสามารถย้ายเกมของคุณไปยังแพลตฟอร์มนั้นได้ด้วยการเปลี่ยนแปลงรหัส "ขั้นต่ำ" เช่นกัน
วันนี้ผู้พัฒนาอินดี้ต้องใช้ XNA เพื่อรับบน Xbox 360 (และ Windows Phone ที่กำลังจะมาถึง); ต้องไม่ใช้ XNA เพื่อทำงานที่อื่นนอกจาก Windows; จนกระทั่งเมื่อเร็ว ๆ นี้ต้องใช้ Java บน Android; Flash ไม่ทำงานบนโทรศัพท์ HTML5 ไม่ทำงานบน IE ซึ่งแตกต่างจาก DirectX กับ OpenGL หรือ Windows กับ Unix การเปลี่ยนแปลงเหล่านี้เป็นภาษาหลักที่คุณเขียนโค้ดและไม่สามารถเขียนทับได้โดยไม่ต้องเขียนคอมไพเลอร์ คุณสามารถย้ายตรรกะของเกมลงในสคริปต์และรวมล่าม - ยกเว้นเมื่อคุณทำไม่ได้เพราะ iPhone SDK ไม่อนุญาตและประสิทธิภาพการทำงานลดลงเพราะไม่มีใครยอมให้ JIT
ดังนั้นคุณจะทำอย่างไรถ้าคุณต้องการเกมพกพาข้ามแพลตฟอร์มจริง ๆ หรือแม้แต่แค่เอนจิ้นสำคัญของรหัสเครื่องยนต์และลอจิก?
นี่ไม่ใช่ปัญหาเพราะแพลตฟอร์มมีความแตกต่างพื้นฐาน - เป็นเรื่องธรรมดาที่ไม่คุ้มค่าที่จะลองกำหนดเป้าหมายทั้ง iPhone และ Xbox 360 ด้วยรหัสที่ใช้ร่วมกันเพราะเกมดังกล่าวจะไม่ดี? (ฉันคิดว่ามันไม่น่าเป็นไปได้มากฉันสามารถเห็นได้อย่างง่ายดายว่าต้องการแบ่งปันเกมระหว่างโทรศัพท์ Windows Mobile และ Android หรือ Xbox 360 และ iPad) ส่วนต่อประสานมีระดับสูงในขณะนี้ (ฉันอาจเชื่อว่านี่สำหรับแอปพลิเคชันธุรกิจ แต่ไม่ใช่สำหรับเกมที่มีข้อกำหนดด้านประสิทธิภาพที่เข้มงวด)
สิ่งนี้จะชัดเจนขึ้นในอนาคตหรือไม่ การแบ่งจะเป็นค่อนข้างน่าอับอายยังคงลดลงของผู้ขายหรือไม่ เราทุกคนจะพึ่งพามิดเดิลแวร์ระดับสูงอย่าง Flash หรือ Unity เพื่อให้ทุกอย่างทำงานข้ามแพลตฟอร์มได้หรือไม่?
tl; dr - การย้ายปัญหาจะเป็นปัญหาใหญ่ในอนาคตหรือไม่และถ้าเป็นเช่นนั้นเราจะแก้ปัญหาได้อย่างไร