Project

สำหรับท่านที่ดูไม่ออกก็อย่าสนใจเลยครับ ไม่มีอะไรในก.ไก่นักหรอก :P




จะเห็นชัด ๆ ว่า ผมแยกฝั่ง 2D กับ 3D ออกจากกัน คือ 2D จะเป็นวัตถุที่จะอ้างอิงจาก Screen-coordinate ในขณะที่ 3D นั้นจะเป็น World-Coordinate

Projectนี้เริ่มเขียนโค๊ดไปนิดหน่อย แล้ว ... แล้วก็กำลังปรับเปลี่ยนให้มันเข้ารูปเข้ารอยอยู่ คิดว่าภายในอาทิตย์นี้ก็คงเริ่มจะมีอะไรคืบหน้า

Project นี้ พัฒนาบนภาษา C++ โดยใช้ OpenGL API และ FreeImage,FreeType Library นอกจากนี้แล้วยังใช้ Boost และ Xerces-C ด้วย

เอาไว้คืบหน้ากว่านี้จะเอามาให้ดูอีกครับ

edit @ 2007/08/17 02:06:10

Test Animation #2 : Design

posted on 01 Nov 2005 03:39 by 9tawan in Project
งานนี้คงเป็นตัวทดสอบที่ค่อนข้างเข้าใกล้ "ตัวจริง" แล้ว คือ ผมพยายามจะสร้างชุดคำสั่งที่มันใช้ง่าย เขียนลักษณะ Script ได้ (คือ พยายามเขียนไม่ให้ต้องใช้ชุดคำสั่งใน Loop) รวมทั้งการออกแบบโดยยึดหลัก Object Oriented เป็นหลัก แต่จะไม่ใช่ยึดติดกับ OOP อะไรที่ไม่จำเป็นก็จะไม่ใช่ครับ

ตอนนี้กำลังพยายามคิดถึงส่วนที่เป็น Graphic อยู่ ก็มี Animation และ Event-Response Animation ที่ไว้ทำ GUI ต่าง ๆ

คลาส Animation ก็จะต้องมี method "void Draw(Image *buffer ,int frame)" เพื่อที่จะวาดภาพอนิเมชั่นลงไป โดย Buffer คือภาพที่จะวาดลงไป ส่วน frame หมายถึง จำนวนเฟรมที่ผ่านไปจากการเรียกครั้งสุดท้าย (เพื่อทำ frameskip น่ะครับ)

คลาส EvAnimation นั้น จะเป็นคลาสที่สืบทอดมาจาก Animation อีกทีนึง โดยที่คลาสนี้สามารถรับ Event จากเมาส์และคีย์บอร์ดได้ โดยจะมี method "bool DoAction(MouseAction m, KeyboardAction k)" ซึ่ง ตัวจัดการ Event จะเรียกฟังก์ชั่นนี้ โดยเรียกจากหน้าสุดลงไป ส่วนค่าที่คืนกลับมานั่นจะเป็นค่าที่บอกว่า จะให้เรียกฟังก์ชั้นนี้จาก object ที่อยู่ต่ำกว่าหรือไม่ (true ก็ใช่ false ก้ไม่ เป็นต้น) ส่วนการเช็คว่าชนไม่ชน ทำอะไรยังไง คนที่Implement Object นั้น ๆ ต้องเป็นคนจัดการเอง เหอ ๆ

คลาส EvAnimation จะมีคลาสลูกที่พิเศษแน่ ๆ อยู่หนึ่งก็คือ คลาส MessageBox ทำหน้าที่วาด MessageBox ที่ข้างใต้ของจอ (ตามมาตรฐาน RenAi Game) โดยคิดว่าจะให้คลาสนี้ทำงานแบบ Singleton (ทุกครั้งที่มีการสร้าง Instance ก็จะได้ Instance เดิมกลับไป) ยังไม่รู้ว่าจะทำอย่างนี้ดีมั้ย เหอ ๆ อ้อ Object ของคลาสนี้ปกติแล้วจะอยู่ใต้สุดของ Event Stack ครับ

อันอื่นไม่ค่อยหน้าหนักใจแฮะ อุอุอุ ไม่ค่อยมีอะไร เสียงก็สั่ง Playsound ไปเลยง่าย ๆ ไม่ได้เล่นผ่าน Network ด้วย หนักใจส่วน Graphic สุดนี่ล่ะ

คิดว่าอย่างน้อย ๆ น่าจะเสร็จก่อนวันศุกร์นี้ .. วันเสาร์-อาทิตย์จะได้ไปงาน Fat Festival ได้อย่างสบายใจ ..

อ้อ Test Animation #3 จะใส่ระบบ Script เพิ่มลงไปใน Test Animation #2 ตอนนี้ยังไม่แน่ว่าจะเป็น Script อะไร แต่คิดว่าน่าจะเป็น Ruby เพราะว่า 1. มันเป็น OO 2. คนใช้ RPG MakerXP จะคุ้นมืออยู่แล้ว

แต่ตอนนี้เอา #2 ให้เสร็จก่อนเถอะ !!

edit @ 2005/11/01 03:39:18
แผนการในตอนนี้ สำหรับเกมที่จะทำ ผมจะเริ่มวางแผนก่อนล่ะนะ เริ่มจาก
  1. ทำส่วนของ Graphic + Message Box ให้ได้ก่อน ตอนเทสต์ก็ใช้ Hard Code เอา สบาย ๆ + ใส่ส่วน XML Script ตรงอนิเมชั่น กำหนดเสร็จ หนึ่งเดือน (เสร็จก่อนเดือนกันยา) (ตรงนี้ดูเหมือนง่ายแต่นานเพราะว่าติดเรื่องโปรเจค)
  2. ใส่สคริปท์ (น่าจะเป็น Python หรือ Ruby เพราะอยากได้การ Inheritance น่ะ Extend ได้ง่ายดี) ระบบเซฟก็ให้ใส่ชื่อสคริปท์ไป ตอนโหลดจะไปเริ่มที่ตำแหน่งเริ่มต้นเสมอเพื่อลดความซับซ้อนลง (แต่ความคล่องตัวก็ลดลงไป)กำหนดเสร็จหนึ่งเดือน (เสร็จก่อนตุลา)
  3. เริ่มทำ GUI Framework เพื่อให้ตัวเกมทำงานได้คล่องขึ้น กำหนดเสร็จก็ สองเดือนหลังจากนั้น นานเพราะว่าค่อนข้างลำบากและซับซ้อน (ยังไม่ได้วางแผนด้วยซ้ำ) แต่ว่า ช่วงนี้น่าจะว่างเพราะว่าเตะฝุ่น (ฮา) ก็เรียนจบแล้วนี่ครับ
  4. เริ่มเก็บงานรายละเอียด ส่วนของระบบ (เช่น กำหนดขนาดของจอ)
ส่วนเอนจินก็ดังนี้แล อืม คิดว่าถ้าทำจริง ๆ จัง ๆ น่าจะเสร็จ ผมว่าจริง ๆ น่าจะจับไปทำโปรเจคจบเสียจริง (แต่่ผ่านไปแล้วน่ะนะ) ไม่แน่ใจเหมือนกันว่าจะเพิ่มอะไรอีกดี อ้อ ต้องทำเกมตัวอย่างไปด้วยเพื่อจะไปหา่ฝ่ายศิลป์มาลง (555) อาจจะให้ท่านอ้าวช่วยแต่ตอนนี้ต้องช่วยเหลือตัวเองให้รอดก่อน (กรุณาอย่าคิดลึก)

เนื้อเรื่องอาจจะใช้ที่ตัวเองคิด หรือ อาจจะไม่ก้ได้ (ยังไม่แน่) เพราะว่าสุดท้ายถ้าไปได้ฝ่ายศิลป์มาผมก็ต้องถามหาความเห็นเค้าอีก หรือ ถ้าได้พวกแต่งเนื้อเรื่องด้วยก็ต้องให้เค้าทำหน้าที่เค้าไปน่ะนะครับ

แต่นี่ยังไม่ใช่เวลาที่จะมาซีเรียสเรื่องนี้น่ะนะ 555 เวลาผ่านไปจะครึ่งเดือนแล้วเว้ย
ปล. ยังไม่มีสเกดูลแ่น่นอนอยู่ดี ทำไว้แต่ Timeline เพราะช่วงนี้ก็ต้องทำโปรเจคแล้วล่ะ

:D

edit @ 2005/08/11 23:31:56