Browny Application
HOME PRODUCT GAME DEV ACTIVITY ABOUT
 
BA Search
key words
ทักทาย

ทักทายกันเล็กน้อย
ขอนอกเรื่องนิด พอดีเกมที่เป็นจุดเริ่มต้นการทำเกมของผมคือ metroid มันก็เป็นเกม action 2D เหมือนกันน่ะ

เรื่องการทำฉากในเกมถือเป็นจุดเริ่มต้นเลยครับ คือถ้าไม่เคยทำเกม ก็ทำยังไงก็ได้ให้เห็นฉากออกมาตามที่เรากำหนดไว้ก่อน ผมแนะนำให้ทำแบบหลังคือระบบ tilebase นึกถึงมาริโอมันจะมีรูปของฉากไม่กี่รูปใช่มั้ยครับ เช่นพื้นดิน รูปบล๊อกแบบต่างๆรูปท่อ อันนี้ให้เราวาดเก็บเป็นช่องๆเอาไว้เรียกว่า sprite ส่วนใหญ่ผมจะเว้นช่องแรกเอาไว้เพื่อเป็นช่องแบบว่าง ให้ตัวเราผ่านได้

การกำหนดขนาด ให้กำหนดจากหน้าจอครับ อย่างขนาด 240x160 ก็น่าจะประมาณช่องละ 16x16 จะได้หน้าจอหนึ่งประกอบด้วย 15x10 บล๊อก ตอนแรกควรจะลองทำหน้าจอจำลองใน photoshop ก่อนนะว่าออกมาดูดีมั้ย อย่าง gba ได้ 15x10 บล๊อก แต่ถ้าเป็น nes ก็จะมากกว่านี้ ผลที่ได้จะทำให้เกมดูแคบและดูอึดอัดกว่า

การกำหนดข้อมูลฉาก ข้อมูลของาพที่จะมาวาด และข้อมูลบอกประเทบล๊อก ส่วนใหญ่ผมแบ่งเป็นสองชุดเลยครับ ก่อนอื่นเราต้องกำหนดขนาดของฉากทั้งหมดก่อน ถ้าขนาดบล๊อกแบบข้างต้น และจะทำมาริโอ1 เราก็ทำฉากให้เคลื่อนที่ด้านข้างอย่างเดียว นั้นคือประมาณ 60x10 บล๊อกคือสามารถเดินได้ 4 เท่าของหน้าจอ เวลาเก็บเราเก็บเป็น array ครับ เก็บเป็น 2มิติก็ได้(เก็บเป็นมิติเดียวเดียวจะงง แต่มันเร็วกว่านะ รึเปล่า) ก็คือ array[10][60] เราทำเป็นสองชุดเลย ชุดแรกเก็บาพ ชุดสองเก็บประเทของบล๊อก เช่น 0 เป็นแบบที่เดินผ่านได้ 1 เป็นแบบที่เดินแล้วติด ส่วนสปริง หรือ หนาม ไปเพิ่มเอาเอง จะเก็บใส่ไฟล์แล้วค่อย load หรือ เก็บใน code ไปก่อนก็ได้เพื่อความสะดวก

วิธีการอ่านข้อมูลฉาก ผมจะใช้ for loop สองชั้นเพื่ออ่าน array และมีตัวแปรเก็บตำแหน่งฉากไว้ 2 ตัวคือแกน x กับ y ให้ชื่อว่า stax กับ stay แต่มีเทคนิกคือ ใน for loop ถ้าแกนไหนมันเคลื่อนได้(ในที่นี้มีแกน x แกนเดียว) ให้วาดรูป ตั้งแต่ตำแหน่งฉาก ถึง ตำแหน่งฉาก+จำนวนบล๊อก(15)+1 เพราะเราจะวาดบล๊อกที่ 0 กว่าๆ ถึงบล๊อกที่ 15 นิดๆได้

การเคลื่อนที่ฉาก ง่ายๆคือถ้าตัวเราเคลื่อนที่ก็ให้ตัวตำแหน่งฉากเคลื่อนที่ด้วย แต่ต้องไม่ต่ำกว่า 0 และมากกว่า (60-15)*16 (จำนวนบล๊อกหรือจำนวนarray-จำนวนบล๊อกใน1ฉาก)*ขนาดบล๊อก แต่มีเพิ่มเติมเทคนิกอีกนิดคือ การกำหนดขอบเขตการเคลื่อนที่ คือ ถ้าตัวละครเราอยู่ระหว่าง (stax+15/2-3) กับ (stax+15/2+3) คือตำแหน่งตรงกลาง +- 3 นั่นแหละ ไม่ต้องเปลี่ยนตำแหน่งของฉาก เพื่อเวลาเราเดินเก็บของ หรือหลบศัตรู ซ้ายทีขวาที ฉากมันจะได้ไม่ต้องเปลี่ยนตลอด เดี๋ยวตาลาย อีกเทคนิกนึงคือ การเคลื่อนที่ฉาก เราอาจจะกำหนดเขต(แบบเมื่อกี้) สำหรับ ให้ฉากเคลื่อนที่ทีละนิด เอาไว้ (แบบ sonic ที่เวลาเดินแต่ฉากจะตามไม่ทัน) และกำหนดเขตรอบนอกสุดให้ตำแหน่งฉากมีขนาดตามตำแหน่งตัวเรา พอถึงตรงนี้ หน้าจอเราเหมือนมีกรอบสี่เหลี่ยมสามชั้นใช่เปล่าครับ พอเข้าใจนะครับ ถ้าไม่เข้าใจก็ตัดเรื่องเทคนิกออกก่อนก็ได้ครับ

พอทำเรื่องฉากได้แล้ว ลองให้ตัวละครเราเดินด็นะครับ แล้วดูว่าฉากมันตามเรารึเปล่า เท่ใช้ได้เปล่า ค่อยทำเรื่องการตรวจสอบการเดิน การยืนนะครับ

การตรวจสอบการเดิน พื้นฐานอยู่ที่ กำหนดตำแหน่งทั้ง4 ด้านของตัวละครก่อน จริงๆวิธีนี้มันอาจจะเก่าแล้ว อย่างมาริโอใหม่ๆอาจะไม่ใช้แล้วก็ได้ แต่ผมยังใช้อยู่และคิดว่ามันยังใช้ได้อ่ะนะ นั้นคือ เราจะให้ตัวละครเรามีขนาดกว้างเกือบ 1 บล๊อก และสูงประมาณเกือบสองบล๊อก (อันนี้ปรับแต่งตามความชอบ) แนะนำให้ตำแหน่งเราอยู่ตรงกลาง คือสูงจากพื้น 1บล๊อก(16) ส่วนความกว้างของตัวละครและความสูงของตัวละครให้เก็บเป็นข้อมูลไว้ ความกว้างเก็บแบบ/2นะครับ เพราะจำตำแหน่งจะได้ลบเป็นด้านซ้าย บวกเป็นด้านขวา ส่วนสูงก็ซัก 14 ถ้าก้มก็จะเหลือ 0 สามารถลอดรูได้อิอิอิ เมื่อได้ข้อมูลแล้ว เราก็สามารถหาตำแหน่งทั้ง4 ด้านตัวละครได้

การคำนวณ แบบพื้นฐานก็ให้คำนวณทั้ง 4 ด้านว่าอยู่ในบล๊อกประเทที่เดินผ่านได้หรือไม่ ปกติเวลาเคลื่อนที่เราจะเคลื่อนทั้ง x และ y ให้คำนวณแกน x ก่อนจะดีกว่า(ประมาณว่าเวลากระโดดข้ามบ่อมันจะผ่านง่ายกว่า)เพื่อให้เข้าใจ ลองนึก process อย่างนี้นะครับ
1 เก็บรวบรวมการเคลื่อนที่ทั้ง x และ y เหตุที่รวบรวมเพราะเราไม่ได้เคลื่อนที่เพราะการกดปุ่มของเราอย่างเดียว อาจจะจากการชนศัตรู หรือการตก หรือการยืนบนของที่เคลื่อนที่ ดังนั้นเราต้องเก็บรวบรวมไว้ให้หมดก่อน
2 ให้ตรวจสอบแกน x โดยถ้าตำแหน่งเรา บวกการเคลื่อนที่แกน x แล้วมันชนหรือไม่ อย่างง่ายๆคือใช้ while loop ถ้าชนก็ลบมันออกไปเรื่อยๆ(ในกรณีที่เคลื่อนที่เป็ย บวก) อย่างยากก็คำนวณเลยครับว่าถ้าแค่ไหนพอ ถ้าไม่มีพื้นเอียงก็พวกตัวเลขที่หาร 16 ลงตัวไง
3 คำนวณแกน y แบบแกน X เลย
4 เอาค่าการเคลื่อนที่แกน x และ y ที่ยังเหลืออยู่มาบวกซะ
ในขั้นตอนที่ 2 และ 3 ถ้าเกมเรามีบันได มีหนาม เราก็มาเขียนโปรแกรมส่วนนี้ได้ครับ

การตรวจสอบการชนศัตรู ถึงตอนนี้คงไม่ยากนะครับ เมื่อตัวละครทุกตัวเดินแล้ว เราก็มาคำนวณ หาว่ามีการชนกันหรือไม่ การคำนวณก็กำหนดจุด4ด้านแบบการเดินนั่นแหละ ถ้าเราชนศัตรูเราก็เจ็บ ถ้าศัตรูชนกระสุนเราศัตรูก็เจ็บ โปรแกรมส่วนนี้ทำดีๆ เอาไปใช้เกือบทุกแนวนะ

นอกจากนี้ยังมีอีกเยอะนะครับ เช่นการกระโดด ไม่ใช่แค่กดกระโดด แล้วลบแกนyทันที แต่จะมีการกระโดดเตี้ยๆ กระโดดบนสปริง การเดินเข้าประตู การยิงกระสุน แต่คิดว่าถ้าทำได้ขนาดนี้แล้ว ที่เหลือก็ไม่ยากแล้ว ไฟติดแล้วนี่ แต่เกม action 2d มันไม่จบแค่นี้นะครับ ยังมีเทคนิกอีกมากที่อาจจะไม่จำเป็นแต่มันทำให้เกมสนุกมาก การมีพื้นเอียง การยืนบนศัตรู หรือเทคนิกที่ศัตรูเป็นส่วนๆแบบเกม castle vania แต่มาริโอ 1 ก็สนุกได้โดยไม่มีเทคนิกนี้นะครับ


News

สถานการณ์ปัจจุบัน

ตอนนี้ผมก็ได้ update ในเวปบางส่วนแล้ว เพื่อให้สามารถกลับมาใช้งานได้ตามปกติ ซึ่งมีสองส่วนด้วยกันคือ webboard และ game ซึ่งอันนี้ก็ได้ทำการ link ใหม่ ไปไว้ที่หน้า home แล้วด้วย

นอกจากนี้ส่วนที่เพิ่มเติมเค้ามาคือส่วนของ diary ซึ่งเราได้เพิ่มเติมจากเดิมที่เขียนได้เฉพาะ admin เท่านั้น ตอนนี้สามารถทำได้ทุก user แล้วซึ่งวิธีการอ่าน การเขียน จะอยู่ที่หน้า home ทั้งหมดแล้ว จริงๆ diary นี้สามารถที่จะ lock คนที่จะเข้ามาอ่านได้ แต่เนื่องจากตอนนี้อยากให้ทุกคน เขียน และอ่านกันเยอะ จึงไม่มีในส่วนการ lock ก่อน



ตอนนี้ได้ทำเกม java เพียบเลย แต่ที่รู้กันอยู่แน่ๆ คือต้องทำฟรี

แม้ว่าจะมีหลายเวปที่ใช้หลักการโฆษณา มาใช้เพื่อสร้างรายได้ให้กับเกม แต่ก็ไม่ใช่เรื่องง่ายๆเลยนะครับ อันดับแรกเราต้องโฆษณาตัวเองให้ได้ซะก่อน วิธีการก็คือปรับเวปให้เป็นาษาอังกฤษซะ เท่านี้ search engin อย่าง Google ก็จะเห็นเรามากขึ้น แล้วคนต่างชาติที่เค้าใช้ าษาอังกฤษ เป็นาษากลางในการติดต่อสื่อสารก็จะเห็นเรามากขึ้นไปด้วย

พูดถึง engine ที่ใช้ทำเกม ก็ได้ดีเลศ และเป็นที่หน้าศึกษาของคนทั่วไปเท่าไหร่ แต่มันก็ดีพอที่จะสร้างเกมแบบที่เราคิดไว้ได้ แถมเทคนิกบางอย่าง ยังดีกว่า engine DirectX ที่เราเขียนเองอีกตะหาก แต่อย่างน้อยทั้ง C และ java ก็มี structure ที่คล้ายๆกัน งานนี้คงไม่เสียเปล่าแน่ ก็ขนาดเอา source ที่ทำบน GBA ที่ compile ด้วย gcc มาใช้บน java ได้เลย นี่ตะหากที่เรียกว่า technology

ช่วงนี้มีเกมจะออกอีก 2 เกม กะลังทำอยู่ คือ Bluema bell ที่เป็นเกม action มาแบบมาริโอเลย ทางไม่วนเท่าไหร่ แต่ฉากมีอะไรให้เล่นเยอะ อีกอันคือ Phobos Frame เกม shooting สไตร์สงครามอวกาศ ไม่เคยมีคนทำแนวนี้ไม่รู้จะมีคนชอบรึเปล่า แต่ทั้งสองเกม มีฉากนี่อ่ะที่ต้องเสียเวลาทำนานมาก ถ้าเสร็จตัว demo เมื่อไหร่จะลองเอามาให้เล่นกันนะครับ ส่วน Dead in Dance คงต้องรอไปก่อนเพราะ กราฟฟิกหนักเหลือเกิน







ข้อความส่วนที่ 4

RSS 2.0 RSS
Message

ข้อความส่วนที่ 5

more...
ҡ ҡ繢ͧͧ ҷšͧ Browny Application

email : ba_kazama@hotmail.com ͷѡ蹷ش㹻¨ ͧҴ اԧا ^^
Flashfly.Net شʹǧͶ͵ͧ
SecondSoft Ͷͤ
copyright 2006 BASTATION.com all right reserved