ในฐานะนักพัฒนาเกม Android ฉันควรคำนึงถึงอะไรในขณะที่พัฒนาเกมของฉันหากฉันต้องการข้ามแพลตฟอร์มเกมไปยัง iPhone กลยุทธ์เคล็ดลับและอื่น ๆ ในการย้ายไปยังแพลตฟอร์มมือถือทั้งสองนี้หรือไม่
ในฐานะนักพัฒนาเกม Android ฉันควรคำนึงถึงอะไรในขณะที่พัฒนาเกมของฉันหากฉันต้องการข้ามแพลตฟอร์มเกมไปยัง iPhone กลยุทธ์เคล็ดลับและอื่น ๆ ในการย้ายไปยังแพลตฟอร์มมือถือทั้งสองนี้หรือไม่
คำตอบ:
เขียนใน C / C ++ - นี่คือสิ่งที่ยิ่งใหญ่ที่สุดที่คุณสามารถทำได้ ทั้งสองแพลตฟอร์มรองรับ C และ C ++ แม้ว่าจะแตกต่างกัน บน Android คุณจะใช้ NDK บน iPhone สามารถคอมไพล์พร้อมกับรหัส Objective-C
คุณจะต้องลงทุนเพื่อสร้างนั่งร้านสำหรับรหัส C / C ++ ของคุณสำหรับแต่ละแพลตฟอร์ม คุณควรจะเป็นคนธรรมดาพอสมควรในเรื่องนี้เนื่องจากมันเป็นเพียงการเชื่อมต่อการทำงานของระบบปฏิบัติการเฉพาะเข้ากับโค้ดเกมของคุณ อย่าปล่อยทิ้งไว้ในบริเวณนี้เว้นแต่ว่าคุณกำลังวางแผนที่จะทำโครงการข้ามแพลตฟอร์มเดียวหรือคุณไม่คิดที่จะคิดค้นวงล้อใหม่สำหรับทุกโครงการที่คุณทำ
ใช้ OpenGL ES - ทั้งสองแพลตฟอร์มมีการสนับสนุน OpenGL ES ใช้ประโยชน์จากมัน วิธีนี้จะลดจำนวนรหัสที่คุณต้องเขียนใหม่อีกครั้ง คุณจะยังคงมีความแตกต่างบางอย่างในแต่ละแพลตฟอร์ม แต่โดยรวมแล้วโค้ดส่วนใหญ่ของคุณจะทำงานได้ทั้งคู่
หลีกเลี่ยง API / แพลตฟอร์มเฉพาะภาษา - สิ่งนี้ควรดำเนินการโดยไม่บอก แต่ง่ายต่อการถูกดูดเข้าสู่การใช้คลาสคอลเลกชัน Java ในขณะที่คุณกำลังทำงานใน Java แน่นอนถ้าคุณทำตามกฎข้อแรกข้างต้นคุณจะไม่ทำอะไรมากในจาวา กันไปในทางตรงกันข้าม - ดีเหมือนคลาสพื้นฐานใน iOS หากคุณต้องการพอร์ตไปยังแพลตฟอร์มอื่นให้หลีกเลี่ยง
อย่างที่คุณเห็นมีสิ่งต่าง ๆ มากมายที่ต้องกังวลเกี่ยวกับการไปข้ามแพลตฟอร์ม หากคุณเป็นผู้พัฒนาอินดี้เล็ก ๆ มันอาจไม่คุ้มค่ากับเวลาของคุณ คุณจะต้องประเมินว่าคุณต้องการทำให้เส้นทางของคุณเป็นจริงเพื่อให้คุณสามารถกำหนดเป้าหมายหลายแพลตฟอร์มได้หรือไม่ มันอาจคุ้มค่าที่จะใช้ประโยชน์จากสิ่งที่แต่ละแพลตฟอร์มมีเพื่อให้มีรอบการพัฒนาที่เร็วขึ้น
โชคดี!
นั่นจะเป็นกระบวนการที่เจ็บปวดส่วนใหญ่เกิดขึ้นจาก Java> Objective-C
Data Driven
สร้างเกมที่ขับเคลื่อนด้วยข้อมูลเป็นส่วนใหญ่ ฉันคิดว่าสิ่งนี้พูดเพื่อตัวเอง แต่ทิศทางนี้นำไปสู่การทำงานน้อยลงคุณต้องดำเนินการใหม่ทั้งหมด
สูงและแน่น
เก็บสิ่งที่เล็กมากและทำให้เป็นโมดูล ฉันพูดแบบนี้เพราะมันจะง่ายกว่ามากในการพอร์ตถ้าคุณสามารถใช้ส่วนประกอบและนำไปใช้เพียงแค่ทดสอบและทำซ้ำ
งานสัญญา
เล่นการ์ดของคุณให้ถูกต้องและคุณอาจรู้จักใครบางคนที่สามารถดูแลเรื่องนี้ให้คุณได้ หากคุณเป็นเพื่อนที่ดีที่สุดกับนักพัฒนา iPhone คุณอาจซื้อเขา / เธอดร. พริกไทยเพื่อช่วยในการโยกย้ายรหัสของคุณ
ใช้ Multi-Platform Engine
หากคุณมีโครงการที่ดำเนินการอยู่แล้วมันไม่สมเหตุสมผลนัก แต่ถ้าคุณกำลังจะทำโครงการที่คุณรู้จริง ๆ แล้วว่าจะถูกย้ายไปยังแพลตฟอร์มอื่น ๆ ก็อาจคุ้มค่าที่จะใช้ประโยชน์จากเทคโนโลยีที่มีอยู่เพื่อช่วยให้โลกของคุณเข้าด้วยกัน Unity3Dจะได้รับการสนับสนุน Android ด้วย Unity 3.0
Conversion / shudder / Tool
และคำแนะนำที่โปรดปรานที่สุดของฉันคือคุณสามารถใช้เครื่องมือแปลงบางอย่างเพื่อให้รุ่นของคุณแปลงจาก Java> C ... แต่ ... ฉันไม่รับรองว่า
หากคุณกำลังคิดที่จะย้ายไปยัง iPhone และเกมของคุณยังคงพัฒนาอยู่ให้เปลี่ยนไปใช้ C ++ หากคุณยังไม่ได้ทำ มันจะทำให้โค้ดของคุณพกพาได้มากขึ้นเมื่อเวลามาถึง
จะเพิ่มสองเซ็นต์ของฉันไปที่เธรดนี้ - ลองเขียนเกมของคุณเป็นภาษาครอสแพลตฟอร์มเหมือนที่คนอื่น ๆ พูดในที่นี้ ... แต่ลองพิจารณา C #! มันเป็นภาษาที่ทรงพลังที่ได้รับการจัดการและมีคุณสมบัติที่ยอดเยี่ยมมากมายที่ C ++ ไม่สามารถช่วยในการพัฒนาเกม - และมีห้องสมุดที่ยอดเยี่ยมที่รู้จักกันในชื่อMonoGameซึ่งคล้ายกับ XNA ซึ่งทำงานบนแพลตฟอร์มทุกประเภท ในฐานะเวอร์ชัน 3.0 ในขณะที่เขียนนี้เป็นไปได้ที่จะเขียนเกมและพอร์ตเต็มเปี่ยมไปยังแพลตฟอร์มมือถือทั้งหมดได้อย่างง่ายดาย