ThaiGameDevX - Thai Game Developers eXchange Forums
03 กันยายน 2010, 05:33:33 PM *
Welcome, Guest. Please login or register.
Did you miss your activation email?

Login with username, password and session length
 
   Home   Help Search Calendar Login Register  
Pages: [1]   Go Down
  Print  
Author Topic: Playground Software : Sandbox Framework (ชื่อรหัส) (ยังไม่ถึงขั้น alpha)  (Read 1255 times)
0 Members and 1 Guest are viewing this topic.
นายตาหวาน (Mr.Tawan)
Painful Programmer LV37
Global Moderator
Hero Member
*****

จำนวน ชม/ไม่พอใจ: +60/-36
Offline Offline

Gender: Male
Posts: 1,589


« on: 24 สิงหาคม 2007, 12:22:27 AM »

update:
แก้เรื่อง Coding Convention ครั้งมโหราฬ (ฮา) แล้วก็ฟอนท์มีขอบ (Bordered Font) ทีเหลือไม่มีอะไรมาก จะลุยเรื่องเสียงต่อแล้ว ส่วน Input ตั้งใจว่าจะรอเอาหนังสือคืนจากอ.ช้างก่อน ฮะ

โหลด Code + Bin ได้ตรงนี้
http://storage.playground-soft.com/files/project/cpp-workspace.zip

โค๊ดเขียนด้วยภาษา C++ คอมไพล์ด้วย GCC 3.2.4 (MinGW) เขียนบน Eclipse + CDT ใช้ boost, openGL, freeImage และ freeType ครับ (ถ้า #include freeimage แล้วคอมไพล์ไม่ผ่านไม่ต้องตกใจครับ เป็นบั๊กในตัว header file ของ freeimage เอาไว้จะเขียนถึงทีหลังนะ)


ข้อความประกอบ (c) บล๊อกของนินคุง Smiley

ยังไม่เป็นเกมหรอกครับ แฮะ ๆ เอาตัว Framework ที่ทำอยู่มาโพสต์ไว้  ผมตั้งใจว่าจะ OpenSource ด้วย (และก็เอาซอร์สมาแปะไว้ให้ด้วยเนี่ย Smiley )

ตัวนี้เป็น Framework ตัวล่าสุดที่ผมทำมาประมาณสองสามเดือนละ คือ ก็ไม่ค่อยมีเวลาหรอกครับ อาศัยช่วยหลังเลิกงานนั่งเขียนที่บริษัทจนโดนพี่ ๆ เขาติง ๆ มานิดหน่อย

ในขั้นนี้ยังทำอะไรไม่ได้มากมาย นอกจาก โหลดภาพ หรือสร้างภาพตัวหนังสือ แล้วแปะบนจอ ให้มันแสดงขึ้นมาอ่ะครับ

Dependency : ตัว Framework ตัวนี้ใช้ Library อยู่สามตัว (ในปัจจุบัน) โดยตัวที่ถือเป็นหัวใจหลักก็คือ Boost ครับ  เพราะมันมีอยู่ทุกที่เลย (ถ้าให้เจาะจงก็คือ shared_ptr ครับ เป็นตัว smart pointer) นอกจากนี้แล้วก็ยังมี FreeType และ FreeImage  ส่วนการวาดกราฟิคตอนนี้เป็น OpenGL ครับ ยังไม่ได้ทำส่วน 3D เลย

คิดว่าคงต้องเพิ่ม ตัวอ่าน XML แฮะ ๆ แล้วก็พวกเสียงต่าง ๆ ก็มอง ๆ อยู่ว่าจะใช้ตัวไหน
Design เอาเฉพาะส่วนที่ทำไปแล้วก่อน คือ ผมจะมีคลาสนึงชื่อว่า Application ซึ่ง user ที่จะใช้ Framework ตัวนี้จะต้องสร้างคลาสที่ Derive มาจากตัวนี้ และ override 3 Method พื่อให้มันทำงานได้ครับ

ส่วนกราฟิค จะมีคลาสที่ชื่อว่า Scene ซึ่งจะทำหน้าที่วาด Object ครับ ถ้าต้องการให้วาด Object อะไรก็ให้ใช้ Method Insert ลงไปครับ (ลองอ่าน Doc ดู) แล้วตัวคลาสนี้จะจัดการวาดให้เอง  คอนเซพท์ตรงนี้ผมขโมยมาจากคุณ Suede แห่ง Sanuk Software (ซึ่งไม่รู้ว่าพี่เขาขโมยมาจากไหน อิอิ) ครับ

อ้อ Coordinate ทั้งหมด (รวมทั้ง Texture ด้วย) จะไม่เหมือนกับ App ทั่ว ๆ ไป ก็คือ จุด (0.0) จะอยู่มุมซ้ายล่าง อาจจะไม่ชิน แต่คนเขียน 3D ก็คงรู้ว่าเพราะอะไรน่ะครับ

ToDo: เยอะมาก ๆ ... ในขั้นนี้ผมแทบไม่ได้เน้นเรื่องความเร็วเลย (ขนาด parameter ยังรับเป็น value เลย) คืออยากให้โครงสร้างมันเริ่มอยู่ตัวก่อนแล้วค่อย optimize  ในขั้นต่อไปผมอยากทำเรื่อง Input ซึ่งก็คิดอยู่ว่าจะทำไงดี แล้วพอเริ่ม Input ได้ก็จะมาลองทำเกมโง่ ๆ ขึ้นมาสักเกมนึง อิอิ

อ้อ พวก Tool ก็คงตามมาทีหลังครับ คิดว่าคงใช้ Java เขียน แฮะๆ
« Last Edit: 04 กันยายน 2007, 08:26:08 PM by นายตาหวาน » Report to moderator   Logged

Are you feeling fine?
眠れない夜には君の幻が...
She said, "Loving you made me happy everyday"
yod
Global Moderator
Hero Member
*****

จำนวน ชม/ไม่พอใจ: +129/-15
Offline Offline

Posts: 2,998


WWW
« Reply #1 on: 24 สิงหาคม 2007, 12:54:53 AM »

ถ้ายังไงช่วยทำเป็น exe ให้ด้วยได้ไหมครับ
คือว่าไม่มีคอมไพเลอร์นะครับ - -"
Report to moderator   Logged

The last eternity ..
นายตาหวาน (Mr.Tawan)
Painful Programmer LV37
Global Moderator
Hero Member
*****

จำนวน ชม/ไม่พอใจ: +60/-36
Offline Offline

Gender: Male
Posts: 1,589


« Reply #2 on: 24 สิงหาคม 2007, 09:53:11 AM »

ผมว่า จะเอา exe ก็ได้นะครับ แต่ว่า ... ตอนที่มันรัน ก็จะมีแค่รูปสามรูป กับ Text ไม่สื่อความหมาย วางอยู่บนจอเท่านั้นเอง ... พี่ยอดจะเอาจริง ๆ เหรอ ^^'

ที่ว่าจะทำต่อในอาทิตย์หน้าคงเป็น Code Review หาพวก Memory Leak และแก้อะไรแปลกๆ ก่อน แล้วจะเริ่มทำส่วน Input หลังจากนั้น Tongue

จะว่าไปผมหา SVN Server ใช้่ดีกว่ามั้ยหว่า ฮิๆ
Report to moderator   Logged

Are you feeling fine?
眠れない夜には君の幻が...
She said, "Loving you made me happy everyday"
yod
Global Moderator
Hero Member
*****

จำนวน ชม/ไม่พอใจ: +129/-15
Offline Offline

Posts: 2,998


WWW
« Reply #3 on: 24 สิงหาคม 2007, 03:51:41 PM »

อ่ะ เอ้อ พอดีไม่ได้ไล่ดูรายละเอียดข้างใน source หน่ะครับ ...
เห็นแล้วนึกว่ามีลูกเล่นอะไรนิดหน่อย เช่น fading moving อะไรประมาณนี้อ่ะครับ หุหุ

ถ้าอย่างนั้น รอเวอร์ชั่นหน้าละกันนะครับ ^^"
Report to moderator   Logged

The last eternity ..
Pisal
Global Moderator
Hero Member
*****

จำนวน ชม/ไม่พอใจ: +37/-1
Offline Offline

Gender: Male
Posts: 555


ช้างๆๆๆ น้องเคยเห็นช้างหรือเปล่า?


WWW
« Reply #4 on: 24 สิงหาคม 2007, 11:32:16 PM »

I have a SVN server.  Contact me if you need an new account to be setup. 
Report to moderator   Logged
นายตาหวาน (Mr.Tawan)
Painful Programmer LV37
Global Moderator
Hero Member
*****

จำนวน ชม/ไม่พอใจ: +60/-36
Offline Offline

Gender: Male
Posts: 1,589


« Reply #5 on: 25 สิงหาคม 2007, 01:15:41 AM »

ขยายความนิด

สำหรับ Boost ผมใช้ shared_ptr ซึ่งเป็น Smart Pointer ทำให้ลดภาระคนใช้ ไม่ต้องมานั่งกังวลเรื่อง Memory Leak ที่เกิดจากคนใช้ Framework (แต่ถ้ามาจากตัว Framework ก็ต้องมาหากันอยู่ดี ฮะๆ)
นอกจากนั้นแล้วก็มี operators ต่าง ๆ ซึ่งใช้ implement operator ในคลาสหลาย ๆ คลาส เช่น พวก Point, Scale, Rect อะไรทำนองนี้ครับ

สำหรับ FreeType ผมใช้วาด Text ใส่ Texture (พูดยังกะมันจะทำอย่างอื่นได้)  ซึ่งเราจะกำหนดจุดเริ่มต้นในการวาดตัวหนังสือตัวแรก ไม่ใช่จุดมุมซ้ายบนของภาพตัวหนังสือทั้งหมด ผมว่าน่าจะทำให้ควบคุม Layout ได้ง่ายกว่า และ มันเขียนง่ายกว่าด้วยนะ

ส่วน FreeImage ใช้โหลดไฟล์ภาพใส่ Texture ซึ่งจะดูขนาดภาพว่าเป็น 2^n หรือเปล่า ถ้าไม่จะทำการ Resize (ยืด) ให้เต็ม 2^n (ซึ่งทำได้หลายอัลกอ แต่ผมใช้ BiCubic เพราะว่าดูเหมือนว่าจะเร็วกว่าแบบอื่น)

อ้อ Coordinate ทั้งหมด มุมซ้ายล่างจะเป็น (0,0,0) ทั้ง 3D Space (ซึ่งก็เป็นปกติอยู่แล้ว) และ 2D Space รวมถึงบรรดา Texture ทั้งหลายด้วย (จะเห็นได้ว่าภาพส่วนใหญ่ถูกโหลดมากลับหัวทั้งนั้น)

เอาไว้ใส่ตัว Input แล้วจะเอามาให้เล่นกันต่อครับ อิอิ ส่วน SVN ตอนนี้ผมใส่ Harddisk  ไม่รู้ว่าเอาขึ้น Server แล้วจะช้ามั้ยอ่ะครับ  เดี๋ยวคงต้องขออ.ช้างลองซะหน่อยแล้ว


ตัว FreeType นี่ วาดตัวหนังสือตัวใหญ่ ๆ สวยกว่าตัวเล็ก ๆ แฮะ Tongue (หรือเป็นที่ฟอนท์ด้วยมั้ง) ตัวสร้างขอบก็ของ FreeType ครับ ฟอนท์ Consolas ส่วนภาพนั้นเอามาจากเกม Komorebi ...อะไรสักอย่าง ค่าย F&C ครับ

ภาษาไทยก็วาดได้นะ (กำลังดูอยู่ว่าฟอนท์ไหนได้เพราะอะไร) ฟอนท์นี้คือ DilleniaUPC ของวินโดวส์เองครับ
ปล. ที่เห็นขอบเบี้ยว ๆ เป็นบางที่นี่ คือ ... โค๊ดผมยังไม่เสร็จน่ะครับตรงนี้ เอามาให้ดูก่อน
« Last Edit: 25 สิงหาคม 2007, 01:35:40 AM by นายตาหวาน » Report to moderator   Logged

Are you feeling fine?
眠れない夜には君の幻が...
She said, "Loving you made me happy everyday"
comthai_org
Newbie
*

จำนวน ชม/ไม่พอใจ: +1/-4
Offline Offline

Posts: 42


WWW
« Reply #6 on: 25 สิงหาคม 2007, 02:13:13 AM »

ขอบเบี้ยว ๆ เป็นบางที่

มันตรงไหนครับ ผมอยู่แถวนี้มองไม่เห็นนะ
Report to moderator   Logged
koller202
Jr. Member
**

จำนวน ชม/ไม่พอใจ: +6/-1
Offline Offline

Posts: 85


« Reply #7 on: 25 สิงหาคม 2007, 11:48:25 AM »

SVN server คืออะไรครับ ไม่เข้าใจ เห็นคนพูดหลายครั้งแล้ว 
Report to moderator   Logged
Pisal
Global Moderator
Hero Member
*****

จำนวน ชม/ไม่พอใจ: +37/-1
Offline Offline

Gender: Male
Posts: 555


ช้างๆๆๆ น้องเคยเห็นช้างหรือเปล่า?


WWW
« Reply #8 on: 25 สิงหาคม 2007, 12:06:21 PM »

SVN = Subversion (http://subversion.tigris.org/)

It is is version control system like Source Safe or CVS.
Report to moderator   Logged
นายตาหวาน (Mr.Tawan)
Painful Programmer LV37
Global Moderator
Hero Member
*****

จำนวน ชม/ไม่พอใจ: +60/-36
Offline Offline

Gender: Male
Posts: 1,589


« Reply #9 on: 25 สิงหาคม 2007, 10:36:09 PM »

ขอบเบี้ยว ๆ เป็นบางที่

มันตรงไหนครับ ผมอยู่แถวนี้มองไม่เห็นนะ


ขอบตัวหนังสือครับ Tongue ไอ้ตรงที่เป็นสีชมพูนั่นล่ะครับ ยังซ้อนกันไม่ค่อยตรงตำแหน่งในบางตัวอักษร
Report to moderator   Logged

Are you feeling fine?
眠れない夜には君の幻が...
She said, "Loving you made me happy everyday"
นายตาหวาน (Mr.Tawan)
Painful Programmer LV37
Global Moderator
Hero Member
*****

จำนวน ชม/ไม่พอใจ: +60/-36
Offline Offline

Gender: Male
Posts: 1,589


« Reply #10 on: 04 กันยายน 2007, 08:20:20 PM »

อัพเดตแล้วนิดนึง อ่านข้างบนโลด
Report to moderator   Logged

Are you feeling fine?
眠れない夜には君の幻が...
She said, "Loving you made me happy everyday"
BA
Sr. Member
****

จำนวน ชม/ไม่พอใจ: +23/-3
Offline Offline

Gender: Male
Posts: 345


เหยียบพื้น มองฟ้า ก้มลงมา ใช่ผืนฟ้า จะสวยกว่าดิน


WWW
« Reply #11 on: 04 กันยายน 2007, 11:51:10 PM »

ทำไมบางรูปผมมองไม่เห็นครับ

ตกลงนี่คุยกันเรื่องเกมอยู่รึเปล่า หรือกำลังทดสอบอะไรอยู่อ่ะ
Report to moderator   Logged

Browny Application

เหยียบพื้น มองฟ้า ก้มลงมา ใช่ผืนฟ้า จะสวยกว่าดิน
นายตาหวาน (Mr.Tawan)
Painful Programmer LV37
Global Moderator
Hero Member
*****

จำนวน ชม/ไม่พอใจ: +60/-36
Offline Offline

Gender: Male
Posts: 1,589


« Reply #12 on: 05 กันยายน 2007, 09:29:16 AM »

มีรูปถูกลบไปครับ ก็เลยไม่ขึ้น

มันยังไม่เป็นเกมน่ะครับ เป็นแค่ Framework ที่ใช้สร้างเกม แฮะ ๆ แต่ว่าถ้ามันไม่มี content สำหรับเทสต์เลยก็ไม่รู้ว่ามันทำงานถูกต้องมั้ย ก็เลยต้องเขียนตัวเทสต์เอาไว้ด้วยน่ะครับ
Report to moderator   Logged

Are you feeling fine?
眠れない夜には君の幻が...
She said, "Loving you made me happy everyday"
Pages: [1]   Go Up
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.5 | SMF © 2006-2008, Simple Machines LLC Valid XHTML 1.0! Valid CSS!