Programing

Python, Lua และ Ruby

posted on 12 Jul 2005 23:28 by 9tawan  in Programing
ช่วงนี้ผมได้เข้าไปมีส่วนร่วมกับการพัฒนาเกมใหม่อยู่น่ะครับ เป็นโปรเจคพี่ ๆ น้อง ๆ ทำกันเอง (ผมทำกับรุ่นพี่สองคน แล้วก็ดึงเพื่อนมาช่วยด้วย) เป็นเกม Turn Based Strategy น่ะครับ หุหุ ใครสนใจก็ลองมาคุยกันดู แต่บอกก่อนนะว่าไม่มีตังค์นาครับ หุหุหุ

งานของผม ก็ เป็นโปรแกรมเมอร์น่ะครับ ตอนนี้ก็รับงานด้านออกแบบส่วนของ Data File Definition (พูดซะหรู ก็คือ ออกแบบตัวไฟล์เก็บข้อมูลน่ะแหละ) โดยว่าจะใช้ XML น่ะครับ (ไม่รู้เหมือนกันว่ามีตัว Compile XML มั้ยเนี่ย มันอาจจะมีก็ได้นะ อิอิ) แต่ผมก็กำลังศึกษาเรื่อง Scripting Language ด้วยเผื่อว่าจะนำมาใช้ในโปรเจคน่ะครับ

ก็ สำหรับคนที่ขลุกอยู่กับการทำเกม คงน่าจะพอรู้ชื่อ Scripting Language ฟรี ที่ดัง ๆ กันในหมู่พวกนักทำเกมต่างประเทศ อย่าง Python, Lua และ Ruby นะครับ สำหรับคนที่ไม่รู้ก็ลองไปหาอ่านกันดูแล้วกัน

Python เป็นภาษาคอมพิวเตอร์ที่ใช้กัีนมาสักพักใหญ่ ๆ แล้ว โดยเป็นภาษาพวก Inteprete น่ะครับ มีให้ใช้กันใน Unix ซะส่วนใหญ่ แต่ว่าพวกนักทำเกมทั้งหลายก็เอามาใช้ในระบบสคริปท์ของเกมด้วย เห็นเค้าว่าเร็ว มี OO แต่ว่าเอามาใช้ค่อนข้างยาก (ต้องลิงค์กับไฟล์หลาย ๆ ไฟล์ ยุ่งยากทีเดียว)

Lua เป็น ภาษาที่ออกแบบมาสำหรับเป็น Scripting Language โดยเฉพาะ ถ้าจำไม่ผิดน่าจะมาจากบราซิล จุดเด่นคือว่าเร็วและเอาไปรวมกับตัวโปรแกรมได้ง่าย แต่ว่าไม่มี OO น่ะนะ มีใช้กันในเกมดัง ๆ หลาย ๆ เกม เช่น WOW, Neverwinter Night, Grim Faldago (สะกดไงฟะเนี่่ย) และอื่น ๆ

Ruby เป็นภาษาสคริปท์เหมือนกัน โดยมาจากญี่ปุ่น ดังนั้น Doc จึงเป็นภาษาญี่ปุ่นซะส่วนใหญ่ แถมไอ้ Doc ที่แปลก็ดันแปลผิด ๆ ถูก ๆ แต่ว่า มี OO ด้วยนะ อืม ... มีให้ลองเล่นกันใน RPG School XP (หรือเวอร์ชั่น Eng แบบเถื่อน ๆ ก็ RPG Maker XP) ไปหามาเล่นดูได้

วันนี้เพิ่งไปเดินร้านหนังสือ เห็นหนังสือ RPG Maker XP ก็เลยหยิบมาดู โอ๊ะ มันใช้ Ruby มาเป็นสคริปท์แฮะ เอาเป็นว่าเราลองเอามาเล่นหน่อยก็ดีเหมือนกันแฮะ (เผื่อจะได้เอามาใช้กับงานตัวเองด้วย อิอิ)

:D

edit @ 2005/08/11 23:50:52
ตอนนี้ก็ ในโปรเจคผมมี DLL เป็นตับเลยครับ เยอะจริง ๆ 555

วันนี้จะมาพูดเรื่องสิ่งที่ผมใช้อยู่ในโปรเจคนี้สักหน่อยแล้วกัน เริ่มจาก

IDE - ตอนแรกใช้ Eclipse แต่ว่าตอนนี้ CDT ผมว่ายังใช้ไม่ค่อยสะดวก ก็เลยเปลี่ยนมาเป็น Dev-C++ ครับ มีปัญหาเรื่องย่อหน้า + ไม่ซัพพอร์ท UTF-8 ก็เลยต้องเอา Source Code มาแก้ใน Edit Plus อยู่บ่อย (ตัวนี้เป็น commercial ครับ)
Compiler - ใช้ MINGW ครับผม เวอร์ชั่น4.1.0 ครับ คิดว่ามากับ GCC 3.23 มั้ง
Library - ก็มี
SDL - Simple DirectMedia Layer ใช้ 1.2.9 ครับ
SDL-TTF - เป็นตัวเสริมของ SDL ในการวาด Text เรียกใช้ FreeType อีกชั้นนึง
SDL-Image - ตัวเสริมเช่นกัน ใช้ในการอ่านไฟล์ภาพในฟอร์แมทต่าง ๆ
SDL-Mixer - ตัวเสริมอีก ใช้ในการอ่านไฟล์เพลง+เล่นเพลง
ICU - Internation Component for Unicode - งงมั้ยครับทำไมผมต้องใช้ ICU ด้วย คือ ผมอยากให้โปรแกรมนี้อ่าน UTF-8 เป็นหลัก (มันง่ายในการทำงานครับ) แต่ว่า string ใน C++ เนี่ยดันเป็น ASCII (อีกเหตุผลนึงคือ SDL-TTF ตีความ char* string ว่าเป็น Latin1 หมด) ตอนแรกใช้ libutf8 แต่ว่าจนปัญญา คือ Doc มันแทบไม่มี แล้วรันเท่าไหร่ก็ไม่ได้ดังใจก็เลยเปลี่ยน ผมเปลี่ยนมาหลายสิบตัว (เืพื่อเลี่ยงการใช้ ICU นี่ล่ะ) แต่สุดท้ายก็มาจบที่ตัวนี้ แต่เอาน่ะอย่างน้อยก็ใช้ทำอย่างอื่นได้ด้วยแหละ

รวม Dependencies ทั้งหมด ทั้งจากตัวโปรแกรมและ Library ที่ใช้ ผมใช้ DLL ไปแล้ว 14 ไฟล์ !!!

ไม่รู้จะมีอะไรเพิ่มอีกมั้ย = ='



:D

edit @ 2005/10/26 03:51:21

Proprietary vs Opensource

posted on 20 Jun 2006 19:14 by 9tawan  in Programing
นาน ๆ ทีจะมาเรื่องมีสาระ แต่ก็นั่นแหละเดี๋ยวมันจะกลายเป็นเรื่องไร้สาระไป หุหุหุ

ว่ากันเลย :-
  • ผมมีอ. ที่เป็น Microsoft MVP ถึงสองคน (ถึงตอนนี้หนึ่งคนจะลาออกไปทำธุรกิจส่วนตัวแล้วก็เหอะนะ)
  • ผมเคยเป็นคนที่เคยลง Linux ใส่ Notebook แล้วเอาไปใช้ที่มหาลัย ทำให้คนงงกันถ้วนหน้าว่ามันคืออะไร
  • ผมใช้ C# เป็นคนแรก ๆ ของมหาลัย ว่ากันง่าย ๆ ก็ตั้งแต่อีตอน VS 2002 นั่นแหละ ซึ่งตอนที่นำโปรเจคไปนำเสนอก็ทำให้คอมเจ๊งไปหนึ่งเครื่องจากการขนส่ง (เครื่องที่ม.ในตอนนั้นไม่มี .Net Framework) แต่ปัจจุบันทุกเครื่องที่ม. มี Visual Studio .NET 2003 ลงไว้
  • มีโปรเจคนึงที่ถูกบังคับให้ใช้ UNIX เนื่องจาก Library ที่ใช้ไม่สามารถทำงานบน Windows ได้ (และ Lib นั่นคือ pThread)
  • ผมเขียน ASP.NET ได้ เพราะว่าเคยเรียนมา
  • ผมกำลังจะต้องใช้ PHP เพราะมันถูกกว่ามาก - -
  • โปรเจคปัจจุบัน ทำงานบน Windows และต้องใช้ DirectX สารพันปัญหาเริ่มเข้ามารุมเร้า ... ใครจะรู้ DirectX สามารถทำให้ Pentium-M 1.3GHz ทำงานชนะ Pentium 4 3.04GHz ได้หน้าตาเฉย (เครื่อง P-M ใช้ Intel 855GM ในขณะที่ Pentium 4 ใช้ ATi 9500 กับ nVidia 6600)
  • โปรเจคนอกรอบตอนนี้ ใช้ SDL ใช้งานง่ายจนงงว่าทำไมง่ายจัง - -'
  • คนที่เข้ามาอ่านในบล๊อกนี้ มีทั้งฝ่าย OS และ ฝ่าย MS - -'
  • ... เขียนไปเขียนมา กลายเป็น Opensource VS Microsoft ไปซะงั้น ...
เมื่อวานลองไปดู XGL โห สวยว่ะ น่าเล่นมาก ... แต่ตอนนี้ไม่มีเครื่องจะลง Linux แล้วน่ะสิ ... เอาไว้หมดโปรเจคนี้แล้วจะเอามาลงไว้ที่ทำงานดีกว่าแฮะ อิอิ