Library Python GUI and Game

 

              อันนี้หน้ารวมของ wiki นะครับ ซึ่งเค้าแบ่งไว้แล้วว่าอันไหนไว้ใช้ทำ GUI สำหรับใช้ในระบบไหน แถมยังมีวันอัพเดตล่าสุดมาให้อีกด้วย ซึ่งก็ดีทีเดียวครับ ในส่วนข้างล่าง ผมจะเลือกมาเป็นบางตัวที่คน ใช้กันเยอะ (ก็รวมๆ ตามกูเกิ้ลนี้ละ) และคิดว่าน่าสนใจนะครับ ปล. แพลตฟอร์มบนคอมคือพวก window , OS X , Linux ส่วนมือถือก็แค่ Android กับ IOS นะครับ               

  1. Kivy Base on OpenGL ES 2 รองรับการใช้งานมัลติทัชทุกแพลตฟอร์ม (คอม + มือถือ + Raspberry Pi) โดยใช้โค้ดเดียวกัน ใช้พัฒนาเกม 3D ได้อีกด้วย (แต่ไม่แนะนำ 555) จุดเด่นคือรองรับมัลติทัชสกรีน และการที่ครอสแพลตฟอร์มได้มากสุด สามารถใช้สร้างขายได้ นอกจากนี้ยังมี KivyMD ที่ทำให้สวยขึ้นอีกด้วย
  2. Pygame สร้างมาเพื่อ เขียนเกม 2D โดยเฉพาะ รองรับทุกแพลตฟอร์มบนคอมพิวเตอร์ หาข้อมูลได้ง่ายกว่าตัวอื่น (คนใช้เยอะสุด ดังนั้นหาข้อมูลง่าย) เบื้องหลังเป็น C รองรับการใช้จอย (รองรับการใช้ซีพียูมัลติคอร์ได้ง่าย) 
  3. PyGObject ย้ายมาจาก PyGTK , PyGUI  เป็น GTK (ภาษา C) + wrapper ซึ่งมีคนตามกระทู้บอกว่าง่ายกว่า Kivy , PyQt , PyGUI รองรับทุกแพลตฟอร์มบนคอมพิวเตอร์ และเป็น MVC ซึ่งผู้สร้างมีเป้าหมายเพื่อให้มันใช้งานได้ง่าย
  4. PySide ใช้ QT เหมือนกับ PyQt แต่สามารถใช้สร้างขายได้ รองรับแพลตฟอร์มบนคอม มี Pyside2 แล้วด้วย แต่ Pyside2 ต้องจ่ายเพื่ือใช้ทางธุรกิจนะ 
  5. PySimple ใช้ Tkinter รองรับทุกแพลตฟอร์มบนคอมพิวเตอร์ และ raspberry pi แต่หน้าตาดูเก่าไปหน่อย ไม่เหมาะกับการใช้เชิงธุรกิจ แต่ง่ายในการใช้งาน
  6. Flexx ทำจาก Python เองสำหรับใช้บนเว็บนะครับ ซึ่งจะต่างจาก wxWidgets หรือ libavg ที่เบื้องหลังเป็น C++ นะครับ
  7. Toga เป็น python native ที่รองรับบนคอม และมือถือ 
  8. CEF Python เป็น Base on Google Chromium นะครับ  
  9. Arcade สร้างเกม 2D ใช้ Pyglet มาทำให้ง่ายขึ้น ตัวอย่างการใช้งาน 1. 2.
  10. Pyglet ใช้สร้างเกม 3D ได้ รองรับทุกแพลตฟอร์มบนคอมพิวเตอร์ ใช้ไพธอนเป็นหลักทำให้ติดตั้งเพื่อใช้โปรแกรมได้ง่าย
  11. Cocos2d ใช้ Pyglet สำหรับสร้างเกม 2D รองรับทุกแพลตฟอร์มบนคอมพิวเตอร์ รองรับการใช้จอย ตัวนี้มีเป็นตระกูล cocos (ตัวอื่นๆ แบบที่ใช้ C++ , js ซึ่งรองรับบนมือถือ และเว็บด้วย) คนจีนเป็นผู้พัฒนามาดังนั้นอาจจะค้นไปเจอภาษาจีนได้
  12. Panda3D ใช้สร้างเกม 3D ได้ รองรับทุกแพลตฟอร์มบนคอมพิวเตอร์ และการใช้งานเชิงพาณิชย์ เบื้องหลังเป็น C++ (มีฟังก์ชั่นเสริมชื่อ Ursina)
  13. libavg เบื้องหลังเป็น C++ รองรับการแสดงองค์ประกอบในแบบตัวแปร ระบบจัดการเหตุการณ์ มีตัวจับเวลา รองรับการมัลติทัช และการบันทึกผล (หยั่งกะพวก RPA แนะ) รองรับทุกแพลตฟอร์มบนคอมพิวเตอร์
  14. Pyforms สนับสนุนการใช้โค้ดซ้ำ ใช้ไลบรารี่หลายตัวรวมถึง PyQT โดยตัวมันเองมาทำหน้าที่จัดการการทำงานให้ทุกแพลตฟอร์มทำงานได้ ดูๆ ไปก็คล้ายๆ หลักการทำงานของ jvm (แต่จัดการแปลให้บน core python ที่เป็นตัวแปลภาษาของ python อีกที) สามารถใช้งานได้ง่าย
  15. Wax Python ใช้ WxPython ซึ่งใช้งานได้ง่าย
  16. Tkinter  ไว (ใช้ C) เป็นไลบรารี่มาตรฐานที่จะถูกตัวอื่นๆ นำไปใช้ร่วมกันอีกที ซึ่งไม่จำเป็นต้องติดตั้ง
  17. PyKyra  เน้นการพัฒนาที่ไว แต่หาข้อมูลยาก คาดว่ามีคนใช้น้อย
  18. Ren'Py ใช้ทำเกม 2D สไตล์รูปเล่าเรื่อง รองรับทั้งคอม มือถือ และเว็บ
  19. PyQt ใช้ QT เบื้องหลังเป็น C++ เห็นว่ามีตัวช่วยเยอะ รองรับข้ามแพลตฟอร์ม แต่ PyQt5 ต้องจ่าย 500 ดอลล่าร์ เพื่อใบอนุญาตถ้าจะใช้เชิงพาณิชย์ (ไม่รู้ว่าเวอร์ชั่นก่อนๆ จะมีเงื่อนไขเดียวกันไหม แต่ถ้าใช้ในงาน open source ก็ไม่ใช่ปัญหา)
  20. WxPython เบื้องหลังใช้ C++ และ wxWidget ซึ่งฟรี และใช้งานง่าย
  21. Python Arcade อันนี้มีมาสักพักแล้ว แต่ก็ยังถือว่าค่อนข้างใหม่เมื่อเทียบกับตัวอื่นๆ นะครับ ซึ่งอันนี้เค้าก็เอามาเทียบ performance กับ pygame ให้ดูนะครับ
  22. 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 โดยตรง)

ความคิดเห็น

โพสต์ยอดนิยมจากบล็อกนี้

โปรโมชั่นเน็ต TOT

โน๊ตบุ๊ค acer switch sa5-271 แบตบวม T^T

Blog นี้สร้างเพื่อ?