หลายคนอาจจะบอกว่ามี SDK ที่เป็น Java แล้วจะมาเขียน C++ อีกทำไมกัน ส่วนตัวผมชอบ C++ เพราะความสามารถส่วนนึงของมันที่สามารถพอร์ท ไปรันที่อื่นได้ และเรืองความเร็วที่ให้ความเร็ว ได้ดีอย่างเช่นเกมส์ต่างๆ ที่รันบนเครื่องเรา ส่วนมากแล้วก็เขียนด้วย C++ และก็พอร์ทมาจากเครื่องอื่นเยอะพอสมควร แต่วันนี้ผมคง Guide ไปไม่ถึงหรอกนะครับ เรื่อง เขียนเกมส์เพราะผมไม่ใช้คนเขียนเกมส์ เข้าเรื่องๆ……
ตอนนี้ Android NDK ก็ไปซะ R4 ล่ะหลายคนก็งงอีกว่า NDK คืออะไรจริงๆแล้วมันคือตัว Compile C++ โดยสามารถใช้ JNI call โปรแกรมนี้ ให้สามารถนำไปทำงานบนเจ้าหุ่นเขียวได้นั่นเองครับ
ผมใช้ Windows 7 เป็นตัวลงมือในการทำครั้งนี้นะครับ
สิ่งที่ต้องเตรียม ก่อนลงมือนนะครับ
ทำให้เครื่องตัวเองมี Emulator และสามารถ Run android SDK ได้ตามคุณ jumbo_cs
ที่เคยได้ Post ไว้ตาม Link นี้ https://droidsans.com/node/4568
Android NDK http://developer.android.com/sdk/ndk/index.html For Windows นะคับ
Cygwin 1.77 มั้งครับตอนนี้ http://www.cygwin.com
เริ่มกันเลยครับ
1. หลังจาก Download android-ndk-r4b-windows.zip มาจาก Android Deverper นะครับ
จับมันแตกไฟล์ลงบนเครื่องเราซะ ผมเอาไว้ที่
C:AndroidEngineandroid-ndk-r4b
2. Install Cygwin ครับ ลงปกติตามรูปครับ
หา Server ของ Jp น่าจะเร็วสุดแล้วมั้งครับถ้าเชื่อมจากบ้านเรา
เพิ่ม Package make โดยการค้นหา แล้วเลือก make ให้ติดตั้งเข้ามาด้วยใน cygwin
เป็นอันเสร็จครับสำหรับการติดตั้ง
การ Build .c ผ่าน Cygwin
1. เอา Project HelloJNI มาทดสอบ ถ้าตั้ง path ตามผมน่าจะอยู่ที่ C:AndroidEngineandroid-ndk-r4bsampleshello-jni ให้ copy ทั้ง folder hello-jni เอาทั้ง Folder ไปด้วยนะครับ ให้ไปไว้ที่ C:AndroidEngineandroid-ndk-r4bproject
2. เปิด Cygwin ขึ้นมาจะได้หน้าตาแบบนี้ครับ
3. ใช้คำสั่ง CD ไปยัง path ของโปรแกรม
ซึ่งน่าจะอยู่ที่
/cygdrive/c/AndroidEngine/android-ndk-r4b/project/hello-jni
4. build ด้วย ndk-build
โดยพิมพ์
../../ndk-build
5. Source Code ของภาษา C จะอยู่ที่
C:AndroidEngineandroid-ndk-r4bprojecthello-jnijnihello-jni.c
ส่วน Binary จะอยู่ที่
C:AndroidEngineandroid-ndk-r4bprojecthello-jniobjlocalarmeabi
ถ้าไม่ Error ต่อไปเราต้องใช้ Eclipse เพื่อทำให้ โปรแกรมที่เขียนด้วย C ตัวนี้เป็น APK เพื่อติดตั้งลงบน Android ได้
อย่างที่บอกขั้นตอนนี้คุณต้องทำตามคุณ jumbo_cs ให้ได้ก่อนนะครับ
1. เปิด Eclipse ครับ
2 New Project แล้วเลือก Andoid Project ครับ
3. เลือก Create Project form Exist Source
แล้วเลือก Path ไปที่ C:AndroidEngineandroid-ndk-r4bprojecthello-jni ที่เราสร้างไว้
แล้วเลือก Build Target ที่ต้องการครับ 1.5.16 2.1 อันนี้แล้วแต่สะดวกครับ แล้วกดถัดไปจนจบ Finish.
4.ทำการรัน ผ่าน Emulator ที่สร้างไว้ คือเราต้อง New Emulator ให้ตรงกับ Build Target นะครับ
เป็นอันเสร็จพิธีครับ ลอง Run As -> Android Application ตามรูปนะครับ
5. ผลของการรันผ่าน Emulator ก็จะมีคำว่า Hello โผล่มาครับ
…… อ่านเพิ่มเติมได้ที่
http://developer.android.com/sdk/ndk/index.html
ส่วนใครสนใจเรื่องเขียนเกมส์ตอนนี้ผมลองเอา irrlicht ที่มีฟรั่่งเขาพอร์ท มาเพื่อใช้กับ Android กำลังทดสอบอยู่ ว่างๆ จะมาเขียนวิธีใช้ให้ฟังกันนะครับ หรือถ้าสนใจ ลองเข้าเว็บนี้ดูครับ
http://irrlicht.sourceforge.net/
http://gitorious.org/irrlichtandroid/
http://irrlicht.sourceforge.net/phpBB2/viewtopic.php?t=37235&postdays=0&postorder=asc&start=0&sid=6a7a639bd02d45a1297006b139e6d57f
รูปใหญ่ไปหน่อย โทษทีคับ…..
แหล่ม!
ละเอียดจัง แหล่มมาก
รู็สึกว่าเกมส์ มันจะมีคนทำ framework ไว้สร้างเกมส์บนแอนดรอย ผมอ่านผ่านๆอะครับใช้ openGL ตอนแรกจะเขียนโปรแกรมบนแอนดรอย แต่มันติดตรงที่ ถ้าจะทำเกมส์ก็ใหญ่เกินจะทำคนเดียว และเวลาก็ไม่ค่อยเยอะ เลยกำลังหาความคิดว่าจะทำอะไรดีที่มันน่าสนใจ ยากจริงๆเลยขั้นตอนเนี้ย
ครับ Game Engine มีคนทำไว้หลายตัวครับ แต่ส่วนมากจะใช้ Java หมดครับ ส่วน C++ นี่ยังไม่เจอครับหรือถ้าใครเจอแนะนำด้วยนะครับ
จะมีใครทำ myDroidsans เหมือน Engadget หรือ 1000ทิพย์ บ้างใหมหนอ …
เข้าหน้าเว็ปดีกว่านา อิอิ ได้อารมกว่า นิดๆ
มี………
อุ้ย พูดอะไรออกไป XD
เย้ รออยู่เลย
วันก่อนขอฟอนต์จากคุณ nuuneoi ยังไม่ได้เอาไปใส่เลย
ผมต้องทำ keyboardview ใหม่ แอบอู้นิดนุง งุงิงุงิ …
ขอบคุณนะครับสำหรับบทความ
ขอบคุณครับ
JAVAก็ cross platform อยู่แล้วนะครับ เพียงแต่ชุดคำสั่งของ android sdk หรือ ndk เมื่อถูก build ออกมาเป็น app จะต้อง execute อยู่บน android platform ดังนั้น เรื่องภาษาไม่น่าจะเป็นข้อได้เปรียบว่าเขียนด้วยภาษาอะไร อยู่ที่เราถนัดมากกว่า
สำหรับ framework แบบ wysiwyg ที่ใช้สำหรับพัฒนาเกมตามที่มีคนแนะนำไว้ใน rep ก่อนหน้าที่ดีๆก็มี
-unity engine ฟรีตราบใดที่ app ไม่ commercial
ลองดูกันนะครับ
ขอบคุณบทความนี้เขียนได้ละเอียดดีครับ
unity ก็น่าสนใจดีนะครับเครื่องไม้เครื่องมือครบด้วยดีมากๆเลย
เสียเรื่องเดียวถ้าจะทำขาย ต้องเสียตังด้วย เสียไม่พอดันเยอะด้วยนี่ซิครับเหอะๆ
จริงๆ java cross ได้ก็จริงครับ แต่ถ้าเราเขียน java สำหรับ android ซึ่งปกติเราก็มักใช้ class android.* จะถูกใช้เยอะ เวลาเอาไปรันเครื่องอื่นก็ต้องมาไล่แก้ส่วนนี้ครับ ส่วน c ก็แก้เหมือนกันแต่เหนื่อยน้อยกว่าเพราะมักจะต้องแก้ที่ path ที่ใช้อ้างถึงไฟล์ แล้วก็พวกอุปกรณ์ต่อพ่วงต่างๆ ไม่ก็คำสั่ง c ซึ่งบางเครื่องปรับแต่งมาไม่เหมือนกัน แต่นี่ผมหมายถึงกรณีของเกมส์นะครับ ถ้า App ยังไงเขียนด้วย java ก็ดีกว่าครับ
มีโปร APP เขียน JAVA มั้ยคร้าบบบบบ อยากได้มากๆเลยอะคับ ^^
ขอบคุณครับ
เย้ ! จบ
ขอบคุณครับ เป็นแนวทางในการเิริ่มต้นที่ดีมากๆเลย : )