สร้างเกมด้วยภาษา Go สำหรับมือใหม่แบบสมบูรณ์
(threedots.tech)ค้นหาความสนุกอีกครั้งผ่านการเขียนโค้ด: เอาชนะภาวะหมดไฟด้วยการพัฒนาเกม
- ข้อบ่นที่เห็นบ่อยในคอมมูนิตี้นักพัฒนา: ความหลงใหลในการเขียนโค้ดหายไป
- เคล็ดลับในการคลายภาวะหมดไฟ: สร้างเกมของตัวเองเพื่อกลับมาสนุกกับการเขียนโค้ดอีกครั้ง
- แชร์ประสบการณ์ส่วนตัวว่าหลงใหลในการเขียนโปรแกรมผ่านการพัฒนาเกมได้อย่างไร
- แนะนำให้พัฒนาเกมด้วยภาษา Go และไลบรารี Ebitengine
หลักการพื้นฐานของการพัฒนาเกม
- เช่นเดียวกับภาพยนตร์ เกมคือชุดของภาพที่แสดงต่อเนื่องกันอย่างรวดเร็ว (เฟรม)
- เกมสร้างภาพแบบเรียลไทม์ และเปลี่ยนเฟรมถัดไปตามอินพุตของผู้ใช้
- โดยพื้นฐานแล้วเกมคือการวนลูปไม่สิ้นสุด ทำซ้ำการวาดภาพและอัปเดตลอจิก
การตั้งค่าโปรเจกต์
- สร้าง Go module และเพิ่มไลบรารี Ebitengine
- รันหน้าต่างว่างด้วยการติดตั้งอินเทอร์เฟซเกมขั้นต่ำ
การโหลดแอสเซ็ต
- แนะนำให้ใช้ programmer art หรือแอสเซ็ตฟรี
- ใช้แพ็กเกจ
embedเพื่อโหลดแอสเซ็ตเข้าไปในโค้ด
การวาดภาพ
- ทำงานวาดภาพทั้งหมดภายในเมธอด
Draw - ใช้เมธอด
DrawImageของebiten.Imageเพื่อวาดภาพทับบนอีกภาพหนึ่ง - ปรับตำแหน่ง การหมุน และขนาดของภาพผ่านโครงสร้าง
DrawImageOptions
ลอจิกของเกม
- โครงสร้าง
Gameใช้เก็บสถานะของเกมและเปลี่ยนสถานะผ่านเมธอดUpdate - ตัวอย่างเช่น เก็บตำแหน่งของผู้เล่นเป็นเวกเตอร์ (X, Y)
การเคลื่อนไหว
- อัปเดตตำแหน่งของผู้เล่นในเมธอด
Updateเพื่อให้เกิดการเคลื่อนไหว - เปลี่ยนตำแหน่งของผู้เล่นตามอินพุตจากคีย์บอร์ด
ตัวจับเวลา
- ติดตั้งตัวจับเวลาเพื่อเปลี่ยนลอจิกตามเวลาในเกม
- ใช้โครงสร้าง
Timerเพื่อให้เกิดอีเวนต์ตามช่วงเวลาที่กำหนด
อ็อบเจ็กต์ในเกม
- จัดการอ็อบเจ็กต์ในเกม เช่น ผู้เล่น ด้วยการห่อหุ้มให้เป็นระบบ
- อ็อบเจ็กต์แต่ละตัวมีเมธอด
UpdateและDrawของตัวเอง
การสร้างอ็อบเจ็กต์
- สร้างอ็อบเจ็กต์อุกกาบาตและให้เกิดที่ขอบหน้าจอ
- โครงสร้าง
Gameใช้ติดตามอ็อบเจ็กต์อุกกาบาต
การยิงกระสุน
- ติดตั้งลอจิกการยิงกระสุนและตัวจับเวลาคูลดาวน์
Playerสร้างกระสุน และGameเป็นผู้ติดตาม
การตรวจจับการชน
- ติดตั้งโครงสร้าง
RectและเมธอดCollider()สำหรับการตรวจจับการชน - ตรวจสอบการชนกันระหว่างอ็อบเจ็กต์ต่าง ๆ ใน
Updateของเกม
ความเห็นของ GN⁺
สิ่งสำคัญที่สุดของบทความนี้คือการเสนอวิธีให้เหล่านักพัฒนาก้าวข้ามภาวะหมดไฟและกลับมามีไฟกับการเขียนโค้ดอีกครั้ง การพัฒนาเกมเปิดโอกาสให้ได้ฝึกทักษะการเขียนโค้ดผ่านโปรเจกต์ที่ทั้งสร้างสรรค์และสนุก พร้อมทั้งเรียนรู้ภาษาและไลบรารีใหม่ไปด้วย บทความนี้มอบแรงบันดาลใจให้นักพัฒนากลับมาสนุกกับการเขียนโค้ดในฐานะงานอดิเรก และกระตุ้นความสนใจด้วยการอธิบายแนวทางพื้นฐานของการพัฒนาเกมด้วยภาษา Go และไลบรารี Ebitengine
1 ความคิดเห็น
ความคิดเห็นจาก Hacker News