Library Python GUI and Game
อันนี้หน้ารวมของ wiki นะครับ ซึ่งเค้าแบ่งไว้แล้วว่าอันไหนไว้ใช้ทำ GUI สำหรับใช้ในระบบไหน แถมยังมีวันอัพเดตล่าสุดมาให้อีกด้วย ซึ่งก็ดีทีเดียวครับ ในส่วนข้างล่าง ผมจะเลือกมาเป็นบางตัวที่คน ใช้กันเยอะ (ก็รวมๆ ตามกูเกิ้ลนี้ละ) และคิดว่าน่าสนใจนะครับ ปล. แพลตฟอร์มบนคอมคือพวก window , OS X , Linux ส่วนมือถือก็แค่ Android กับ IOS นะครับ
- Kivy Base on OpenGL ES 2 รองรับการใช้งานมัลติทัชทุกแพลตฟอร์ม (คอม + มือถือ + Raspberry Pi) โดยใช้โค้ดเดียวกัน ใช้พัฒนาเกม 3D ได้อีกด้วย (แต่ไม่แนะนำ 555) จุดเด่นคือรองรับมัลติทัชสกรีน และการที่ครอสแพลตฟอร์มได้มากสุด สามารถใช้สร้างขายได้ นอกจากนี้ยังมี KivyMD ที่ทำให้สวยขึ้นอีกด้วย
- Pygame สร้างมาเพื่อ เขียนเกม 2D โดยเฉพาะ รองรับทุกแพลตฟอร์มบนคอมพิวเตอร์ หาข้อมูลได้ง่ายกว่าตัวอื่น (คนใช้เยอะสุด ดังนั้นหาข้อมูลง่าย) เบื้องหลังเป็น C รองรับการใช้จอย (รองรับการใช้ซีพียูมัลติคอร์ได้ง่าย)
- PyGObject ย้ายมาจาก PyGTK , PyGUI เป็น GTK (ภาษา C) + wrapper ซึ่งมีคนตามกระทู้บอกว่าง่ายกว่า Kivy , PyQt , PyGUI รองรับทุกแพลตฟอร์มบนคอมพิวเตอร์ และเป็น MVC ซึ่งผู้สร้างมีเป้าหมายเพื่อให้มันใช้งานได้ง่าย
-
PySide ใช้
QT เหมือนกับ PyQt แต่สามารถใช้สร้างขายได้ รองรับแพลตฟอร์มบนคอม มี Pyside2 แล้วด้วย แต่ Pyside2 ต้องจ่ายเพื่ือใช้ทางธุรกิจนะ
- PySimple ใช้ Tkinter รองรับทุกแพลตฟอร์มบนคอมพิวเตอร์ และ raspberry pi แต่หน้าตาดูเก่าไปหน่อย ไม่เหมาะกับการใช้เชิงธุรกิจ แต่ง่ายในการใช้งาน
- Flexx ทำจาก Python เองสำหรับใช้บนเว็บนะครับ ซึ่งจะต่างจาก wxWidgets หรือ libavg ที่เบื้องหลังเป็น C++ นะครับ
-
Toga เป็น python native ที่รองรับบนคอม และมือถือ
- CEF Python เป็น Base on Google Chromium นะครับ
- Arcade สร้างเกม 2D ใช้ Pyglet มาทำให้ง่ายขึ้น ตัวอย่างการใช้งาน 1. 2.
- Pyglet ใช้สร้างเกม 3D ได้ รองรับทุกแพลตฟอร์มบนคอมพิวเตอร์ ใช้ไพธอนเป็นหลักทำให้ติดตั้งเพื่อใช้โปรแกรมได้ง่าย
- Cocos2d ใช้ Pyglet สำหรับสร้างเกม 2D รองรับทุกแพลตฟอร์มบนคอมพิวเตอร์ รองรับการใช้จอย ตัวนี้มีเป็นตระกูล cocos (ตัวอื่นๆ แบบที่ใช้ C++ , js ซึ่งรองรับบนมือถือ และเว็บด้วย) คนจีนเป็นผู้พัฒนามาดังนั้นอาจจะค้นไปเจอภาษาจีนได้
-
Panda3D ใช้สร้างเกม 3D ได้ รองรับทุกแพลตฟอร์มบนคอมพิวเตอร์ และการใช้งานเชิงพาณิชย์ เบื้องหลังเป็น C++ (มีฟังก์ชั่นเสริมชื่อ Ursina)
- libavg เบื้องหลังเป็น C++ รองรับการแสดงองค์ประกอบในแบบตัวแปร ระบบจัดการเหตุการณ์ มีตัวจับเวลา รองรับการมัลติทัช และการบันทึกผล (หยั่งกะพวก RPA แนะ) รองรับทุกแพลตฟอร์มบนคอมพิวเตอร์
-
Pyforms สนับสนุนการใช้โค้ดซ้ำ ใช้ไลบรารี่หลายตัวรวมถึง PyQT โดยตัวมันเองมาทำหน้าที่จัดการการทำงานให้ทุกแพลตฟอร์มทำงานได้ ดูๆ ไปก็คล้ายๆ หลักการทำงานของ jvm (แต่จัดการแปลให้บน core python ที่เป็นตัวแปลภาษาของ python อีกที) สามารถใช้งานได้ง่าย
- Wax Python ใช้ WxPython ซึ่งใช้งานได้ง่าย
- Tkinter ไว (ใช้ C) เป็นไลบรารี่มาตรฐานที่จะถูกตัวอื่นๆ นำไปใช้ร่วมกันอีกที ซึ่งไม่จำเป็นต้องติดตั้ง
- PyKyra เน้นการพัฒนาที่ไว แต่หาข้อมูลยาก คาดว่ามีคนใช้น้อย
- Ren'Py ใช้ทำเกม 2D สไตล์รูปเล่าเรื่อง รองรับทั้งคอม มือถือ และเว็บ
- PyQt ใช้ QT เบื้องหลังเป็น C++ เห็นว่ามีตัวช่วยเยอะ รองรับข้ามแพลตฟอร์ม แต่ PyQt5 ต้องจ่าย 500 ดอลล่าร์ เพื่อใบอนุญาตถ้าจะใช้เชิงพาณิชย์ (ไม่รู้ว่าเวอร์ชั่นก่อนๆ จะมีเงื่อนไขเดียวกันไหม แต่ถ้าใช้ในงาน open source ก็ไม่ใช่ปัญหา)
-
WxPython เบื้องหลังใช้ C++ และ
wxWidget ซึ่งฟรี และใช้งานง่าย
- Python Arcade อันนี้มีมาสักพักแล้ว แต่ก็ยังถือว่าค่อนข้างใหม่เมื่อเทียบกับตัวอื่นๆ นะครับ ซึ่งอันนี้เค้าก็เอามาเทียบ performance กับ pygame ให้ดูนะครับ
- Beeware อันนี้ตัวน้องใหม่ที่เรียกได้ว่าคู่แข่งของ kivy ในอนาคตเรื่องครอสแพลตฟอร์มเลยก็ว่าได้ละมั้ง ซึ่งถึงแม้ว่าตอนนี้น่าจะยังมี widget น้อยกว่าก็ตาม แต่ได้เปรียบในเรื่องความเป็น native ที่คงจะเร็วกว่า
ปล. ส่วนตัวคิดว่า library ที่น่าสนใจในส่วน 3D ได้แก่ Kivy (เพราะข้ามแพลตฟอร์มเกือบหมด เหลือแค่เว็บ Beeware ก็น่าสนใจ แต่ข้อมูลยังน้อยมากๆ) ส่วน 2D ที่น่าสนใจคือ Pygame , Arcade (ทั้งคู่หาข้อมูลง่าย ใช้ง่าย) ถ้ายอมข้ามไปใช้ js จะมี Cocos2d ซึ่งข้ามแพลตฟอร์มได้ทั้งหมด และทำ 3D ได้ กับการใช้งานร่วมกันของ phaser(2D) + ionic + vue, react, angular ซึ่งรองรับทั้งเว็บ และมือถือได้อีกตัว นอกเหนือจากนี้ถ้ายอมหัดภาษาใหม่จะมีม้ามืดอีกสองตัวของ google คือ flutter 2 (Dart) กับ Golang ที่รองรับทั้งคอม และมือถือแต่ต้องไปหัดภาษากันใหม่เลยทีเดียว ข้อเสียคือ library ยังน้อย (ส่วนถ้าใครสนใจทำลงเครื่องคอนโซลอันนี้คงต้องใช้พวก game engine โดยตรง)
ความคิดเห็น
แสดงความคิดเห็น