เกม DIY การสร้างเอ็นจิ้นเกม 3 มิติตาม GLScene

ติดตาม
เข้าร่วมชุมชน koon.ru!
ติดต่อกับ:

นี่เป็นบทความที่ห้าในชุดแหล่งข้อมูลสำหรับนักพัฒนาเกมมือใหม่: เอ็นจิ้นเกม - เขียนเองหรือเตรียมให้พร้อม?

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

ทำไมคุณไม่ควรเขียน Game Engine ของคุณเอง

ก่อนอื่น คุณต้องตอบคำถามง่ายๆ กับตัวเองก่อนว่า คุณอยากทำอะไร เกมหรือ เครื่องยนต์? ถ้าเครื่องยนต์แล้วลืมเกี่ยวกับเกมและจัดการกับมันเท่านั้น หากเป็นเกม ให้นำเอ็นจิ้นหรือตัวสร้างสำเร็จรูปมาสร้างเกมโดยไม่วอกแวกโดยการพัฒนาส่วนซอฟต์แวร์ของมัน

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

นอกเหนือจาก ฟรีระบบพัฒนาเกม เอ็นจิ้นเกมเชิงพาณิชย์มากมาย พร้อมใช้งานทันทีในโครงการเกม เสนอหลายรายการ รูปแบบการออกใบอนุญาตที่น่าสนใจมาก: สมบูรณ์ฟรี ( Unity 3Dในฉบับอินดี้ฉบับก่อน) โครงการค่าลิขสิทธิ์แบบผสม ( ชุดพัฒนาที่ไม่จริง)-  $99 ค่าธรรมเนียมใบอนุญาตและการจ่ายเงิน 25% หลังจากที่ได้รับ $5,000 แรก หรือค่าใช้จ่ายที่ไม่แพงของใบอนุญาตเชิงพาณิชย์เต็มรูปแบบ (Unity Pro สำหรับ $1,500)

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

สำหรับ 95% ของโปรเจ็กต์เกมทุกประเภทและการวางแนว เป็นไปได้ที่จะพบโซลูชันสำเร็จรูปที่ตรงกับความต้องการของพวกเขา สมัยที่เอ็นจิ้นเกมเป็นที่สนใจของตลาดการพัฒนาเกมในประเทศและต้นทุน เงินก้อนใหญ่หายไป - และด้วยการยุติการโต้เถียงในการเขียนเอ็นจิ้นเกมของคุณเอง

นอกจากนี้ ความปรารถนาที่จะเขียนทุกอย่างด้วยตัวของคุณเอง ประกอบกับภาพลวงตาว่าวิธีแก้ปัญหาดังกล่าวจะเป็นผลิตภัณฑ์ที่ดีกว่าผลิตภัณฑ์อนาล็อกที่มีอยู่ สามารถเล่นมุกตลกที่โหดร้ายกับนักพัฒนามือใหม่ได้ เมื่อทรัพยากรที่จำกัดมากถูกลงทุนในงานที่ไม่จำเป็นโดยสิ้นเชิง (ส่วนตัว ประสบการณ์) ในที่สุดก็นำไปสู่การเสียชีวิตก่อนวัยอันควรของโครงการ

สรุป: การเขียนเอ็นจิ้นเกมของคุณเองสามารถทำได้โดยผู้ที่เข้าใจอย่างชัดเจนว่าต้องการอะไรและเพราะเหตุใด มองเห็นข้อดีที่เพียงพอของแนวทางดังกล่าว และสามารถนำแผนของตนไปปฏิบัติได้ในกรอบเวลาที่เหมาะสม ทุกคนควรมองหาโซลูชันสำเร็จรูป เนื่องจากช่วงนี้มีเพียงพอ - ใช้ Unity 3D และ UDK เดียวกันเป็นอย่างน้อย

คุณต้องการสร้างเกมโอเพ่นเวิร์ล 3 มิติของคุณเองด้วยเรื่องราวที่น่าสนใจหรือไม่? ต่อศตวรรษ เทคโนโลยีดิจิทัลทุกอย่างเป็นไปได้! เอ็นจิ้นเกมพิเศษจะช่วยให้คุณตระหนักถึงจินตนาการใด ๆ แม้จะไม่มีความรู้ด้านการเขียนโปรแกรม

ขอบคุณ เทคโนโลยีที่ทันสมัยทุกวันนี้เกือบทุกคนสามารถสร้างเกม 3 มิติของตัวเองได้ สิ่งที่คุณต้องใช้คือคอมพิวเตอร์ โปรแกรมพิเศษ และความอุตสาหะ ลองตัวเองเป็นผู้สร้างโลกเสมือนจริง ฝึกฝนทักษะของคุณในการสร้างเกม 3 มิติ และบางทีในอีกไม่กี่ปีข้างหน้า บริษัทของคุณจะสร้างความพึงพอใจให้กับเราด้วยความบันเทิงดิจิทัลที่ยอดเยี่ยม

ปลุกความกระหายในงานศิลปะของคุณ แล้วเราจะช่วยคุณเลือก เครื่องมือที่มีประโยชน์เพื่อการสร้างสรรค์

ใช้เครื่องมือใดในการสร้างเกม 3 มิติ

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

สำหรับแขกของเราเราได้รวบรวม โปรแกรมที่ดีที่สุดในที่เดียว. คุณสามารถศึกษารายละเอียดคุณสมบัติของเอ็นจิ้น ดูภาพหน้าจอและวิดีโอสอนได้ที่นี่ อ่านบทวิจารณ์ เปรียบเทียบการให้คะแนน และดาวน์โหลดเอ็นจิ้น 3D ที่เหมาะสมผ่านทอร์เรนต์หรือบริการแชร์ไฟล์ (MEGA หรือ Yandex.Disk)

ก่อนหน้านี้เราได้พูดถึงหัวข้อของเอ็นจิ้นเกมฟรี - . จริงอยู่ ชื่อบทความมีความเรียบง่ายขึ้นเพื่อดึงดูดผู้คนจำนวนมากขึ้นที่ต้องการสร้างเกม 2D / 3D ของตัวเอง

ในการตรวจสอบนี้ ฉันตัดสินใจพิจารณาเกมที่จริงจังกว่านี้ CryENGINE 3, Unreal Engine และดู Unity3D เวอร์ชันใหม่ด้วย

CryENGINE 3 ฟรี SDK

CryENGINE 3 เป็นเอ็นจิ้นเกมฟรีที่สร้างโดย Crytek ซึ่งเปิดตัวเอ็นจิ้นเวอร์ชันแรกในปี 2545 รุ่นที่สามเปิดตัวในปี 2552 ชื่อเสียงไปทั่วโลกของเอนจิ้นนี้ถูกพิสูจน์ด้วยประสิทธิภาพกราฟิกที่น่าทึ่งของผลิตภัณฑ์ที่ผลิตขึ้น ซึ่งบางอันก็ดูสมจริงอย่างเหลือเชื่อ


โอกาส:

  • ฉันคิดว่าเกมสำเร็จรูปเป็นการสาธิตความเป็นไปได้ที่ดีที่สุด และที่นี่ CryENGINE 3 มีบางสิ่งที่จะคุยโม้ นักพัฒนาเกมเช่น Far Cry, Crysis และ AION ใช้เอ็นจิ้นนี้ตลอดเวลา แน่นอน รายชื่อเกมที่สร้างขึ้นนั้นยาวกว่ามาก แต่ฉันได้ระบุเกมที่โด่งดังที่สุดแล้ว
  • CryEngine 3 เป็นเอ็นจิ้นข้ามแพลตฟอร์มและรองรับพีซี, PlayStation® 3 และ Xbox 360™
  • คุณสามารถนำเข้าพื้นผิวจาก 3ds max, maya และจากเอ็นจิ้นเวอร์ชันก่อนหน้าได้
  • ฉันจะอ้างคำพูดของผู้ก่อตั้งบริษัท Tsevat Yerli: “เครื่องยนต์พร้อมสำหรับรุ่นต่อไปเมื่อ 3 ปีที่แล้ว เรามีระบบอนุภาคขั้นสูงมาเป็นเวลานาน การเรนเดอร์ GPU, การแรเงาแบบหน่วงเวลา, เทสเซลเลชัน, การรองรับ DX11 และอื่นๆ ตัวอย่างจริงสร้างเกม, พูดปริมาณ.

ตัวอย่างเกม:เว็บไซต์อย่างเป็นทางการนำเสนอเกมยอดนิยมบน CryENGINE http://mycryengine.com/index.php?conid=68

จะเริ่มต้นที่ไหน?

ดาวน์โหลด SDK เป็นไฟล์เก็บถาวรโดยไม่ต้องติดตั้ง ไฟล์เก็บถาวรประกอบด้วยหลายโฟลเดอร์ ซึ่งแต่ละโฟลเดอร์มีจุดประสงค์ของตัวเอง ตัวอย่างเช่น ในการเรียกใช้ตัวแก้ไข ให้ใช้โฟลเดอร์ bin32 หรือ bin64 (ขึ้นอยู่กับจำนวนบิตของระบบของคุณ) ไฟล์ตัวแก้ไข editor.exeแต่เห็นผลไว- launcher.exอี

อันที่จริง นี่เป็นคำอธิบายเล็กๆ น้อยๆ สำหรับสิ่งที่คุณดาวน์โหลด ทุกสิ่งทุกอย่างจะบอกคุณผ่านวิดีโอสอนมากมาย โชคดีที่เครื่องมือนี้ได้รับความนิยมอย่างมากและมีชุมชนที่พูดภาษารัสเซียทั้งหมด (ลิงก์ด้านล่าง) คุณจะพบเอกสารการฝึกอบรมและคุณสามารถถามคำถามได้ที่นี่ แน่นอนว่าสิ่งนี้สนับสนุนเอ็นจิ้นสำหรับนักพัฒนาที่พูดภาษารัสเซียเพราะกระบวนการพัฒนาเกมนั้นไม่ง่ายนักและจะไม่สมบูรณ์หากไม่มีความคุ้นเคยกับเอกสารทางเทคนิค

ข้อจำกัด รุ่นฟรีคือคุณจะไม่สามารถขอรับใบอนุญาตและแจกจ่าย (ขาย) เกมที่คุณพัฒนาขึ้นได้

ภาษาอินเทอร์เฟซ:ภาษาอังกฤษ

ชุดพัฒนา Unreal (UDK)

Unreal - นี่คือคำที่ผู้พัฒนา Unreal Engine ตัดสินใจใช้ไม่เพียง แต่ในชื่อของเอ็นจิ้น แต่ยังอยู่ในชื่อของเกมบางเกม - "Unreal", Unreal Tournament, Unreal Championship ในบรรดาผลิตภัณฑ์ที่วางจำหน่ายยังมี มวลผล, XCOM, Borderlands 2 และอีกกว่าร้อยรายการ เกมส์ไม่ธรรมดาที่ได้รับการยอมรับทั่วโลก


โอกาส:

  • Unreal Engine เป็นเอ็นจิ้นข้ามแพลตฟอร์มและรองรับคอมพิวเตอร์ที่รองรับ IBM PC, Xbox 360, PlayStation 3, Wii, Android เพื่อให้แม่นยำยิ่งขึ้น คุณสามารถพัฒนาเกมบน Windows และเรียกใช้ผลิตภัณฑ์ผลลัพธ์บนคอนโซลเกมที่อธิบายไว้ข้างต้น และแน่นอน บน Windows เอง
  • ในขั้นต้น เอ็นจิ้นได้รับการดัดแปลงสำหรับการสร้างเกมยิงปืน แต่ยังเหมาะสำหรับเกมประเภทอื่นๆ เช่น เกม MMO
  • กราฟิกในระดับที่สูงมาก เงาและแสงที่มีรายละเอียดสูง มีระบบคำนวณแสง Unreal Lightmass
  • ตัวแก้ไขในตัวมีชุดเครื่องมือในตัวจำนวนมาก รวมถึง FaceFX Studio (แอนิเมชั่นใบหน้า), โปรแกรมแก้ไขแบบตาข่าย, Unreal Facade (การพัฒนาสถาปัตยกรรมและอาคาร), Unreal PhAT (ทำงานกับฟิสิกส์) รวมถึงบรรณาธิการสำหรับแอนิเมชั่น พื้นผิว เสียง ระดับ ภูมิทัศน์ และอื่นๆ
  • การเขียนสคริปต์ดำเนินการในภาษา Unreal Script ซึ่งมีคุณลักษณะมากมายที่ช่วยให้การพัฒนาเกม 3D ง่ายขึ้น แม้จะมีปัญหาบางอย่าง เช่น การสืบทอดคลาส แต่ลักษณะที่ปรากฏของโค้ด Unreal Script ก็คล้ายกับ C / C ++ เดียวกัน

ตัวอย่างเกม:นี่คือข้อดีของสิ่งที่ฉันเขียนไว้ด้านบน - http://www.unrealengine.com/en/showcase/

ภาษาอินเทอร์เฟซ:ภาษาอังกฤษ

Unity3D

เครื่องยนต์ที่กำลังได้รับความนิยมอย่างรวดเร็วในหมู่ผู้เริ่มต้น เหตุผลนั้นค่อนข้างเป็นธรรมชาติ - ความสะดวกและใช้งานง่ายของทั้งอินเทอร์เฟซและระบบการสร้างเกมโดยรวม วิดีโอบทช่วยสอนจำนวนมากและเอกสารประกอบคุณภาพสูงให้ประโยชน์เพิ่มเติมกับเอ็นจิ้นนี้ ในการใช้งาน Unity3D นั้นค่อนข้างมีประสิทธิภาพและเสถียร



โอกาส:

  • เกมหลายแพลตฟอร์มและตัวเครื่องยนต์เอง รองรับ Android, iOS, Blackberry, Windows XP/Vista/7, OSX, Wii, Playstation 3, Xbox, Flash, Web Player ฉันต้องการเน้นย้ำเว็บปลั๊กอินเป็นพิเศษ เพราะตอนนี้คุณสามารถเล่นเกม 3D ที่สร้างขึ้นได้โดยตรงในเบราว์เซอร์ ด้านล่างนี้ฉันได้ให้ลิงก์พร้อมตัวอย่างเกม
  • ครอบคลุมเกือบทุกประเภท เกมสมัยใหม่มันน่าประทับใจจริงๆ (http://unity3d.com/gallery/made-with-unity/profiles/)!
  • การนำเข้าพื้นผิว เสียง แบบอักษรแบบง่าย ในการนำเข้า เพียงลากองค์ประกอบไปยังโฟลเดอร์พื้นผิวบนแผงกลไก รูปแบบที่รองรับ: JPEG, PNG, GIF, BMP, TGA, IFF, PICT, PSD, TIFF (ภาพ); FBX, COLLADA, 3DS, DXF (รุ่น 3D); MP3, OGG, AIFF, WAV, MOD, IT, S3M, XM (เสียง)
  • การเขียนสคริปต์ สคริปต์สามารถเขียนด้วย JavaScript, C# และภาษาถิ่นของ Python ที่เรียกว่า Boo ส่วนใหญ่แล้ว โค้ดจะถูกเขียนด้วย JavaScript นอกจากนี้ ความช่วยเหลือ Unity เกือบทั้งหมดมีตัวอย่างใน JavaScript คุณสามารถตรวจสอบการทำงานของสคริปต์ได้ในเกมโดยไม่ต้องออกจากหน้าต่าง Unity
  • ระบบกราฟิกได้รับการปรับให้เหมาะสมและทำงานบน DirectX (รวมถึงการรองรับ DirectX 11) และ OpenGL มีการรองรับการแรเงาแบบหน่วงเวลาและเงาตามเวลาจริง นอกจากนี้ยังมีเครื่องกำเนิดภูมิประเทศในตัวและตัวแก้ไข shader ในตัว
  • หากคุณต้องการพัฒนาเกมในทีม เอ็นจิ้นจะจัดเตรียมระบบการพัฒนาร่วมกันสำหรับคุณ - เซิร์ฟเวอร์แอสเซท

ตัวอย่างเกม: Bad Piggies, Wasteland 2 บางเกมสามารถเล่นได้โดยตรงบน เว็บไซต์สามัคคี(ต้องติดตั้งปลั๊กอิน UnityWebPlayer พิเศษ)

ภาษาอินเทอร์เฟซ:ภาษาอังกฤษ

จะเริ่มต้นที่ไหน?

ในฟอรัมของเรามีหัวข้อสำหรับเครื่องมือนี้โดยเฉพาะ (ลิงก์ด้านล่าง) ที่นี่ คุณจะได้พบกับวิดีโอสอนและสื่ออื่นๆ สำหรับการเรียนรู้ Unity3D

มาสรุปกัน เลือกอะไรดี?

แน่นอน ในการเลือกเอ็นจิ้น คุณต้องทราบอย่างชัดเจนว่าคุณกำลังจะพัฒนาเกมบนแพลตฟอร์มใด สำหรับแพลตฟอร์มมือถือ ให้เลือกระหว่าง Unity3D และ Unreal Development Kit (UDK) Unity3D มีตัวเลือกแพลตฟอร์มที่หลากหลายที่สุด: Android, iOS, Blackberry, Windows XP/Vista/7, OSX, Wii, Playstation 3, Xbox, Flash, Web Player (แพลตฟอร์มส่วนใหญ่ไม่รวมอยู่ในเวอร์ชันฟรี)

ประเภทเกม:

ด้วยเอ็นจิ้นทั้งสามนี้ คุณสามารถสร้างเกมประเภทใดก็ได้ แต่ CryENGINE 3 และ UDK จะเน้นที่ FPS (เกมยิงปืน) มากกว่า ซิมส์แข่งรถคือ UDK เพราะฟิสิกส์ดีกว่า แต่ Unity ก็ใช้ได้เหมือนกัน

การฝึกอบรม/ส่วนต่อประสาน:

การเขียนสคริปต์เป็นส่วนสำคัญของการพัฒนาเกมและความสามัคคีก็ดีที่สุดที่นี่ ผู้เริ่มต้นบางคนสามารถหาวิธีเขียนสคริปต์ง่ายๆ ได้โดยไม่ต้องมีเอกสารประกอบ สำหรับสื่อการฝึกอบรม RuNet มีเพียงพอสำหรับเอ็นจิ้นทั้งหมดที่อธิบายไว้ข้างต้น แต่ Unity3D ก็เป็นผู้นำที่นี่เช่นกัน

กราฟิก:

บทวิจารณ์แสดงตัวอย่างผลิตภัณฑ์สำเร็จรูปซึ่งเพียงพอที่จะสรุปได้ CryENGINE 3 เหนือกว่าคู่แข่ง แต่ก็ไม่ได้เหนือกว่าอย่างชัดเจน ความสามัคคีในเวอร์ชันฟรีได้สูญเสียเทคโนโลยีมากมาย รายการทั้งหมดดูที่นี่ - https://store.unity3d.com/ (ปุ่ม "อ่านเพิ่มเติม" > "เปรียบเทียบใบอนุญาต")

เลือกเครื่องยนต์ตามความต้องการและความรู้ของคุณ ยังคงคุ้มค่าที่จะลองและเลือกสิ่งที่ใกล้กว่าและง่ายกว่าสำหรับคุณ

คราวที่แล้วเราได้พูดถึงหัวข้อการสร้างเกมคอมพิวเตอร์และพูดคุยเกี่ยวกับเอ็นจิ้น 3D ฟรีที่ไม่เหมือนใครซึ่งเขียนด้วย เดลฟี - GLScene(ขึ้นเครื่อง จากซีดี/ดีวีดีของเรา ). หัวข้อของการสร้างเกมคอมพิวเตอร์ 3 มิติที่เต็มเปี่ยมนั้นน่าสนใจสำหรับคุณมาก ซึ่งสามารถตัดสินได้จากจำนวนตัวอักษรที่คุณได้รับ อย่างไรก็ตาม เราก็ตัดสินใจว่ามันยากเกินไปที่จะพูดถึงการเขียนโปรแกรมสำหรับเครื่องยนต์ ตั้งแต่นั้นมา ระดับของคุณก็เพิ่มขึ้นอย่างเห็นได้ชัด (ซึ่งสามารถตัดสินได้จากจดหมายและกิจกรรมในฟอรัมของนิตยสาร) คุณจะมีความเข้าใจมากขึ้นในเรื่องการเขียนโปรแกรม โดยเฉพาะหลังจากการตีพิมพ์ของวัฏจักร “ ตู้กับข้าวของโปรแกรมเมอร์”.
จากฉบับนี้ เราจะเริ่มการตีพิมพ์บทความชุดหนึ่งซึ่งเราจะพิจารณาอย่างละเอียดถี่ถ้วน ระยะต่างๆการสร้างเกมสามมิติ คุณจะพัฒนาทักษะการเขียนโปรแกรมของคุณและมองไปข้างหลังความลับที่แยกผู้พัฒนาเกมที่จริงจังออกจากมนุษย์ธรรมดา
เอ็นจิ้นของเกมต่างๆ ประกอบขึ้นจากบล็อคการสร้างที่เป็นอิสระมากมาย: การควบคุมการชน, โมเดลฟิสิกส์, อินเทอร์เฟซเกม, เมนูหลัก, การโหลดเลเวล และอื่นๆ อีกมากมาย มีอิฐเฉพาะ
ที่จำเป็นสำหรับประเภทเดียวเท่านั้น ตัวอย่างเช่น โมดูลสภาพอากาศมีความสำคัญและจำเป็นในการจำลองการบินหรือทางทะเล ในขณะที่กลยุทธ์แบบเรียลไทม์นั้นมีความสำคัญรองลงมาหรือไม่จำเป็นต้องใช้เลย และในโปรแกรมจำลองฟุตบอล โมดูลการยิงก็ไร้ประโยชน์ แต่มีอิฐหลายโหลอยู่ในทุกเกม ในบทความชุดหนึ่ง เราจะพูดถึงอิฐแต่ละก้อนเหล่านี้ แสดงให้เห็นว่ามีการใช้งานอย่างไรและจะเชื่อมต่อกับอิฐที่เหลือได้อย่างไร เมื่อสิ้นสุดรอบ คุณจะสามารถประกอบเกมคอมพิวเตอร์ของคุณเองในระดับค่อนข้างสูงจากตัวต่อเหล่านี้

คุณมาทำอะไรที่นี่?
สำหรับผู้ที่พลาดบทความก่อนหน้าของฉัน (หรือแม้แต่ทั้งหมด) ฉันจะตอบคำถามของคุณ กล่าวคือ การแนะนำทางเทคนิคเล็กน้อย
ทำไมต้องเดลฟี?สภาพแวดล้อมการพัฒนานี้และภาษาการเขียนโปรแกรม วัตถุปาสกาลยืดหยุ่นพอที่จะสร้างเกม 3D เต็มรูปแบบในเกือบทุกประเภทด้วยกราฟิกที่ทันสมัย หลายคนจะโต้แย้งว่ามาตรฐานโดยพฤตินัยสำหรับการพัฒนาเกมคือ MSVC++หรือสภาพแวดล้อมอื่น ๆ ขึ้นอยู่กับ C++. แต่มาตรฐานดังกล่าวมักเกิดขึ้นเองตามธรรมชาติ อย่าสับสนสองแนวคิด - ภาษาและสภาพแวดล้อมการพัฒนา
C++ มีประสิทธิภาพมากกว่า Object Pascal อย่างแน่นอน แต่ก็ยังมีระดับสูงน้อยกว่านั่นคือยากกว่าหลายเท่า C++ ไม่เหมาะสำหรับผู้เริ่มต้น ในทางกลับกัน Object Pascal ไม่เพียงแต่เรียบง่าย แต่ยังมีความยืดหยุ่นเพียงพอที่จะพัฒนาเกมคอมพิวเตอร์สมัยใหม่อย่างเต็มรูปแบบได้ ตอนนี้สำหรับสภาพแวดล้อม คุณไม่สามารถพูดอย่างเด็ดขาดได้ที่นี่ การพัฒนาสภาพแวดล้อม- เรื่องของรสนิยมและนิสัยของโปรแกรมเมอร์แต่ละคนโดยเฉพาะ ให้ฉันแบ่งปันความคิดเห็นของฉันเกี่ยวกับเรื่องนี้ MSVC++ สร้างโค้ดที่เร็วกว่า Delphi เล็กน้อย อันที่จริงนี่คือจุดสิ้นสุดของข้อดี (ฉันพูดซ้ำในมุมมองส่วนตัวและไม่ผูกมัด) Trumps of Delphi - ความเร็วในการรวบรวมสูง (เร็วกว่า MSVC ++ นับสิบและหลายร้อยเท่า) คุณภาพสูงเครื่องมือดีบั๊ก (โดยส่วนใหญ่ Delphi จะระบุบรรทัดของโค้ดที่มีข้อผิดพลาดอย่างแม่นยำ ในขณะที่ MSVC ++ สามารถระบุบรรทัดหลายหน้าจากหน้าที่คุณกำลังมองหา) และอินเทอร์เฟซที่สะดวก
ทำไมต้อง GLScene?ฉันเคยเห็นและลองใช้เอ็นจิ้น 3 มิติฟรีมากมาย แต่ฉันก็ตัดสินใจเลือกเอนจิ้นนี้ ข้อได้เปรียบที่สำคัญที่สุดคือ GLScene ได้รับการปรับปรุงอย่างต่อเนื่อง นักพัฒนาซอฟต์แวร์ไม่ได้ยุติมัน และเป็นไปได้มากว่าพวกเขาจะไม่มีวันทำ เครื่องยนต์มีการพัฒนาอย่างต่อเนื่องและดูดซับความก้าวหน้าทางเทคนิคล่าสุดทั้งหมด นี่เป็นเอ็นจิ้นฟรีเพียงเครื่องเดียวที่ฉันรู้จักที่จะไม่มีวันเรียกว่า "ล้าสมัย" ผู้ที่ชื่นชอบหลายร้อยคนที่ทำงานใน "เครื่องยนต์" อย่างต่อเนื่องจะไม่อนุญาตให้ทำเช่นนี้ เป็นตัวอย่าง: ในเครื่องยนต์ การสนับสนุนสำหรับ shaders แรกปรากฏขึ้นหลังจากไม่กี่เดือน NVIDIAออกที่เกี่ยวข้อง เครื่องมือ.
ข้อดีอีกประการหนึ่ง: GLScene มาพร้อมกับซอร์สโค้ดเต็มรูปแบบ สำหรับผู้เริ่มต้น ข้อเท็จจริงนี้ไม่น่าจะมีประโยชน์ แม้ว่าการทำความรู้จักกับซอร์สโค้ดที่เขียนขึ้นโดยมืออาชีพนั้นคุ้มค่ามาก แต่โปรแกรมเมอร์ที่มีประสบการณ์จะรู้สึกถึงความหมายหลักของคำเหล่านี้ ท้ายที่สุด พวกเขาจะสามารถเปลี่ยนรูปร่างของเครื่องยนต์ได้ตามต้องการ
ชอบมัน. เงื่อนไขเดียวตามใบอนุญาต MPL คือการเปลี่ยนแปลงแหล่งที่มาจะต้องพร้อมใช้งานสำหรับผู้ประสานงานโครงการ (ตอนนี้ผู้ประสานงานคือ Eric Grange). ทันใดนั้นรหัสของคุณก็ยังมีประโยชน์กับใครบางคน ?!
แม้ว่าตัวอย่างโค้ดทั้งหมดที่มีให้ในชุดบทความนี้จะเขียนด้วยภาษา Delphi โดยใช้ GLScene แต่ก็จะมีประโยชน์สำหรับผู้ที่เขียนโปรแกรมในภาษาอื่นและกับไลบรารีกราฟิกอื่นๆ ท้ายที่สุด หลักการทั่วไปของการสร้างเอ็นจิ้นกราฟิกไม่ได้ขึ้นอยู่กับอย่างใดอย่างหนึ่ง ดังนั้น... เราเริ่ม

ทำไมคุณถึงต้องการเครื่องยนต์ 3 มิติ?
มือใหม่ โฟกัส! บางทีสิ่งที่ฉันจะพูดตอนนี้อาจจะไม่ชัดเจนนักในครั้งแรก อย่าลืมอ่านซ้ำและทำความเข้าใจ: นี่เป็นหนึ่งในหลักการพื้นฐานของการเขียนโปรแกรมโดยทั่วไปและการพัฒนาระบบที่ซับซ้อน (และเกมคือ ระบบที่ซับซ้อน) โดยเฉพาะอย่างยิ่ง. ลองนึกภาพเกมง่ายๆ ปิงปอง เป็นต้น โปรแกรมเมอร์เขียนแบบ pure OpenGL, รหัสที่มาพอดีกับโฆษณา 200 บรรทัด จะมีเอ็นจิ้นอะไรอยู่ที่นั่นและรหัสหลักของเกมคืออะไร? คุณไม่สามารถพูดแบบนั้นได้ในทันที... และถ้าคุณลองคิดดู การแบ่งส่วนเครื่องยนต์และรหัสหลักนั้นไม่จำเป็นเลย
ลองนึกภาพว่าเราต้องการสร้างการกระทำ 3 มิติที่จริงจังมากขึ้นหรือน้อยลง (โค้ดหลายหมื่นบรรทัด) และเราจะตั้งโปรแกรมในลักษณะเดียวกับที่เราเล่นปิงปองเหมือนกัน และในไม่ช้าเราจะสับสน! ใช่ รหัสนี้จะเร็ว จะไม่มีอะไรฟุ่มเฟือย แต่... ไม่ใช่ว่าโปรแกรมเมอร์ทุกคนจะสามารถทำได้จนจบ และข้อผิดพลาดในรหัสที่หนาแน่นเช่นนี้การค้นหาคือนรกที่มีชีวิต จึงต้องจัดการอย่างใด วิธีที่ง่ายที่สุดในการทำเช่นนี้คือกับ เน้นระดับของนามธรรม.
ระดับนามธรรมเป็นหนึ่งในแนวคิดที่สำคัญที่สุดในการเขียนโปรแกรมโมดูลาร์ ลองนึกภาพว่าคุณเป็นผู้สร้างและคุณจำเป็นต้องสร้างบ้าน คุณทำงานกับอิฐ: คุณเอาอิฐ วางบนกำแพงที่กำลังก่อสร้าง ทาด้วยปูน นำก้อนอิฐต่อไป... อิฐเป็นระดับของนามธรรมของคุณ ลองนึกภาพว่าคุณเป็นนักพัฒนา และคุณต้องสร้างพื้นที่ใกล้เคียง คุณบอกผู้สร้างว่าจะสร้างบ้านที่ไหน บ้านไหนที่จะรื้อถอน บ้านคือระดับของความเป็นนามธรรมของคุณ คงจะแปลกถ้าคุณบอกช่างก่อสร้างว่าจะวางอิฐตัวไหน คุณพูดว่า: นี่คือบ้านที่จะเป็น ข้อกังวลอื่น ๆ ทั้งหมดได้รับการดูแลโดยผู้สร้าง ทีนี้ลองนึกภาพว่าคุณเป็นนายกเทศมนตรีของเมือง และคุณต้องมอบหมายงานให้กับกลุ่มนักพัฒนาภายในปีดังกล่าวและปีดังกล่าวเพื่อให้เมืองมีที่อยู่อาศัยใหม่มากมาย ไม่น่าเป็นไปได้ที่คุณจะวางแผนเป็นการส่วนตัวว่าบ้านไหนควรยืนอยู่ นี่คืองานของผู้สร้าง ระดับความเป็นนามธรรมของนายกเทศมนตรีคือปริมาณสต็อกบ้านที่สามารถเพิ่มหรือลดได้ แต่จะต้องทำอย่างไรจึงเป็นเรื่องที่สิบ โดยทั่วไปแล้ว ในระดับนามธรรมนี้ ไม่สำคัญว่าจะสร้างบ้านจากอะไร แม้แต่จากอิฐ แม้แต่จากงาแมมมอธ และนายกเทศมนตรีก็ไม่สามารถมี “ ใส่อิฐ” แม้ว่าคำสั่งใด ๆ ของเขาผ่านนามธรรมหลายระดับจะนำไปสู่สิ่งนี้
ซับซ้อนไม่มากก็น้อย โปรแกรมคอมพิวเตอร์หรือเกม - เหมือนกัน นามธรรมแต่ละระดับมีหน้าที่รับผิดชอบในส่วนของงาน โดยอาศัยความเป็นไปได้มากกว่านั้น ระดับต่ำ. แต่ละระดับของสิ่งที่เป็นนามธรรมให้ส่วนต่อประสานที่ใช้งานง่ายในระดับที่สูงขึ้นสำหรับการทำงานกับวัตถุ ในเกมคอมพิวเตอร์ ระดับนามธรรมที่ต่ำที่สุดคือ ภาษาโปรแกรม (แม้ว่าที่จริงแล้วคุณสามารถขุดลึกลงไปได้ - เพื่อรีด) ต่อไปมาคำสั่ง OpenGL API(ถ้าเราตั้งโปรแกรมด้วย) ในระดับนี้เราสามารถออกคำสั่งเช่น “ วาดรูปหลายเหลี่ยม" และ " สลับส่วนที่มองเห็นและเงาของบัฟเฟอร์วิดีโอ". แล้วคำสั่ง GLScene. ในระดับนี้เราสามารถออกคำสั่งเช่น “ สร้างลูกบาศก์”, “ดาวน์โหลดโมเดล 3ds" และ " ใช้พื้นผิวบางส่วนกับโมเดล". แล้วก็มีเอ็นจิ้นเกม และสุดท้ายคือรหัสเกมซึ่งสามารถให้คำสั่งแก่เอ็นจิ้นเกมเช่น “ ระดับโหลด”, “ยิงตัวละครดังกล่าวด้วยอาวุธดังกล่าว" และ " แสดงวิดีโอแนะนำ". ตามหลักการแล้ว นามธรรมแต่ละระดับจะใช้เฉพาะคำสั่งของระดับก่อนหน้าเท่านั้น มันเป็นไปไม่ได้เสมอไป แต่สิ่งนี้ควรพยายามเพราะในกรณีนี้รหัสจะเร็วสะดวกและอ่านง่าย

การสร้างวัตถุแบบไดนามิก
เราได้พิจารณาองค์กรแนวตั้งของเกมคอมพิวเตอร์ แต่แต่ละระดับของนามธรรมสามารถแบ่งออกเป็นบล็อกความหมาย - โมดูล การแบ่งส่วนนั้นเป็นทางเลือกและจะมีเงื่อนไขแบบมีเงื่อนไขเสมอ มันง่ายกว่าที่จะตั้งโปรแกรม วันนี้เราจะวิเคราะห์โมดูลอิฐขนาดเล็ก แต่สำคัญมาก - การสร้างวัตถุแบบไดนามิกซึ่งมีอยู่ในทุกเกมโดยไม่มีข้อยกเว้น
สมมติว่าคุณกำลังสร้างโมดูลอาวุธและต้องการตั้งโปรแกรมคิวของปืนกล. ทุกอย่างจะดี แต่คุณจะรู้ได้อย่างไรว่าผู้เล่นสามารถยิงกระสุนได้กี่นัดตลอดทั้งเกม? ด้วยตัวแก้ไขวัตถุใน GLScene IDE คุณสามารถสร้างวัตถุใดๆ ก็ได้ แต่ถ้าคุณทราบอย่างชัดเจนว่าคุณต้องการวัตถุจำนวนเท่าใดและประเภทใด ในกรณีส่วนใหญ่สิ่งนี้ไม่เป็นที่ยอมรับ ตัวอย่างเช่น คุณมี 20 ระดับในเกม แต่ละระดับมีชุดของวัตถุของตัวเอง และอะไรก่อนเริ่มเกม สร้างวัตถุทั้งหมดในทุกระดับ? นี้เป็นเวลานานและใช้หน่วยความจำมาก ทางออกเดียว- สร้างวัตถุโดยตรงระหว่างเกมแบบไดนามิก ใน GLScene การสร้างแบบไดนามิกของวัตถุใดๆ ประกอบด้วยสองขั้นตอน - การสร้างอินสแตนซ์ของคลาสของวัตถุนี้และกำหนดคุณสมบัติที่จำเป็นให้กับวัตถุนั้น มาดูตัวอย่างที่กล่าวไปแล้วด้วยการระเบิดของปืนกลและสร้างกระสุนแบบไดนามิก สมมติว่ากระสุนของเราจะเป็นทรงกลมอุตสาหกรรม ชั้นเรียนมีหน้าที่รับผิดชอบทรงกลมใน GLScene TGLSphere. ดูเหมือนว่าคุณสามารถเขียนแบบนี้:
Sphere:=TGLSphere.Create
อย่างไรก็ตาม คำสั่งจะไม่ทำงาน เนื่องจากทุกอ็อบเจ็กต์ใน GLScene จำเป็นต้องลงทะเบียนในคิวอ็อบเจ็กต์ นอกจากนี้ ไม่สามารถสร้างวัตถุใน "ความว่างเปล่า" ได้ แต่ต้องแนบวัตถุระดับสูงกว่าบางรายการ ออบเจ็กต์รูทระดับสูงสุดคือ glscene1.Objects (ถ้าคุณมีอ็อบเจ็กต์คอมโพเนนต์ TGLScene ชื่อ glscene1) ตัวเลือกที่ถูกต้อง:
Sphere:=TGLSphere(glscene1.Objects.AddNewChild(TGLSphere))
ลองแยกบรรทัดนี้ออกจากกัน ที่วัตถุราก glscene1.objectsเราเรียกวิธีการ AddNewChildซึ่งเพิ่มวัตถุของคลาสที่ระบุในพารามิเตอร์ไปยังรูท (ในกรณีนี้ มันคือทรงกลม -
TGLSphere). สิ่งนี้ยังเป็นไปได้: ไม่ใช่อ็อบเจ็กต์ แต่ทั้งคลาส สามารถส่งผ่านไปยังโพรซีเดอร์เป็นพารามิเตอร์ได้ เหตุใดคุณจึงต้องแปลงประเภทเป็นก่อนมอบหมาย TGLSphere? ประเด็นคือวิธีการ AddNewChildสิ่งที่คุณส่งผ่านเป็นพารามิเตอร์จะส่งคืนอ็อบเจ็กต์ของ class TGLBaseSceneObject. สิ่งนี้ไม่เหมาะกับเรา ดังนั้นเราจะแปลงประเภทเป็น TGLSphere วัตถุผลลัพธ์ถูกกำหนดให้กับตัวแปร Sphere ตอนนี้ เมื่อใช้ตัวแปรนี้ เราสามารถตั้งค่าพารามิเตอร์ต่างๆ สำหรับพูลของเราได้ เช่น ตำแหน่งในช่องว่าง:
Sphere.Position.X:=
Sphere.Position.Y:=
Sphere.Position.Z:=
หรือสี:
Sphere.Material.FrontProperties.Diffuse=
เราได้พูดถึงการสร้างแบบจำลองแบบไดนามิก และตอนนี้เรามาพูดถึงการทำลายแบบไดนามิกของพวกมันกัน อันที่จริง กระสุนนัดหนึ่งจะพุ่งชนกำแพง บุคคล หรือบินออกไปในระยะทางสีน้ำเงิน จากนี้ไปก็ไม่จำเป็นอีกต่อไป ถ้าเราปล่อยไว้อย่างนั้นก็จะเข้าครอบครองพื้นที่ความจำบางส่วน เมื่อพิจารณาถึงจำนวนนัดที่ผู้พักแรมโดยเฉลี่ยยิงได้ก่อนที่จะค้นพบที่ซ่อน เราจะมีหน่วยความจำคอมพิวเตอร์ไม่เพียงพอที่จะเก็บกระสุนจำนวนมากนั้น ดังนั้นวัตถุเกมใด ๆ ที่ไม่จำเป็นจะต้องถูกทำลายทันที เพียงผู้เดียว, เพียงคนเดียว ทางที่ถูกทำ - เรียกเมธอด ฟรี, ตัวอย่างเช่น:
ทรงกลมฟรี
บ่อยครั้งจำเป็นต้องตรวจสอบว่ามีวัตถุอยู่หรือถูกทำลายไปแล้วหรือไม่ ในการทำเช่นนี้ เราเปรียบเทียบวัตถุกับค่าคงที่สากลศูนย์ - ไม่มี, ตัวอย่างเช่น:
ถ้าทรงกลม<>ไม่มีเลย
เริ่ม
(ทรงกลมยังไม่ถูกทำลาย
ดังนั้นเราจึงทำสิ่งที่มีประโยชน์ที่นี่)
จบ
หรือเราเรียกฟังก์ชัน ที่ได้รับมอบหมายซึ่งทำเช่นเดียวกัน และนี่คือหลุมพรางขนาดยักษ์กำลังรอคุณอยู่ ซึ่งโปรแกรมเมอร์ทุกคนต้องเจอไม่ช้าก็เร็ว หากคุณทำให้วัตถุว่างด้วยเมธอด ฟรีไม่ได้รับประกันว่าตัวแปรอ็อบเจ็กต์จะเท่ากับ ไม่มี! นั่นคือ ภายใต้ชุดของสถานการณ์ในตัวอย่างข้างต้น แม้ว่าทรงกลมจะถูกทำลาย เงื่อนไขก็จะเป็นไปตามนั้น หากคุณจัดการกับพื้นที่นี้หลังจากการตรวจสอบ (และสิ่งนี้เกิดขึ้นเกือบทุกครั้ง) ข้อผิดพลาดร้ายแรงจะเกิดขึ้น ซึ่งเต็มไปด้วยเกมที่พังลงในหน้าต่างสีน้ำเงิน เพื่อให้แน่ใจว่าวัตถุที่เป็นอิสระจะกลายเป็นศูนย์ ให้ใช้ขั้นตอนพิเศษ ฟรีAndNil, ตัวอย่างเช่น:
ฟรีAndNil(Sphere)
ตอนนี้คุณสามารถมั่นใจได้ว่าคุณจะไม่อ้างถึงวัตถุที่ไม่มีอยู่อีกต่อไป ขั้นตอนที่อธิบายไว้สำหรับการสร้างและทำลายวัตถุสามารถนำไปใช้กับวัตถุ GLScene ใดก็ได้

ทำไมเกมถึงต้องการแบตเตอรี่?
พิจารณาตัวอย่างข้างต้นด้วยปืนกล โดยปกติในเกม กระสุนไม่ได้เป็นเพียงทรงกลม แต่เป็นวัตถุที่ซับซ้อนซึ่งมีพื้นผิวด้วย ทุกครั้งที่คุณสร้างสัญลักษณ์แสดงหัวข้อย่อย ส่วนหนึ่งของความทรงจำจะเป็นอิสระ คุณสมบัติของสัญลักษณ์แสดงหัวข้อย่อยนี้ รุ่นของสัญลักษณ์แสดงหัวข้อย่อยถูกโหลด พื้นผิวถูกโหลด (จากฮาร์ดไดรฟ์!) ทั้งหมดนี้ต้องใช้เวลา หากจำนวนกระสุนที่ปืนกลพ่นออกมาต่อวินาทีมีขนาดใหญ่มาก ระบบเบรกแบบอิสระสามารถเริ่มต้นได้ โดยเฉพาะในคอมพิวเตอร์ที่อ่อนแอ ด้วยการทำลายกระสุนปัญหาเดียวกัน:คุณต้องยกเลิกการโหลดวัตถุ เพิ่มหน่วยความจำ... เช่นเดียวกับกระสุน แต่ยังรวมถึงวัตถุใด ๆ ที่มักจะปรากฏขึ้นและหายไปเช่นเม็ดฝนประกายไฟจากสายไฟ ... ความสิ้นเปลืองดังกล่าว ทรัพยากรระบบวี เกมส์คอมพิวเตอร์ไม่สามารถยอมรับได้ คุณไม่ต้องการให้เกมของคุณทำงานบนสถานีกราฟิกสุดเจ๋งเท่านั้นใช่ไหม
ทางออกเป็นเรื่องง่าย เราประเมินว่าโดยเฉลี่ยแล้วสามารถมีวัตถุประเภทนี้ได้กี่ชิ้นพร้อมกัน สมมติว่าปืนกลสามารถขว้างกระสุนได้หลายร้อยนัดในสิบวินาที และในสิบวินาทีเดียวกันกระสุนก็จะไปถึงเป้าหมายอย่างแน่นอน ก่อนเริ่มเกม เราสร้างกระสุนทั้งหมด 100 นัด วิธีนี้ทำได้ดีที่สุดในขณะที่กำลังโหลดระดับ จะไม่มีใครสังเกตเห็นความล่าช้าเล็กน้อย ต่อไป หัวข้อย่อยจะอยู่ในรายการหรืออาร์เรย์ ซึ่งเราเรียกว่า ตัวสะสม. เราทำให้กระสุนมองไม่เห็นหรือนำออกไปที่ไหนสักแห่งนอกพื้นที่เล่น เมื่อปืนกลเริ่มยิง แทนที่จะสร้างกระสุน เราย้ายไปที่ ถูกที่แล้วได้สร้างกระสุนจากแบตเตอรี่และทำให้มองเห็นได้ ทันทีที่กระสุนไปถึงเป้าหมาย เราจะไม่ทำลายมัน แต่ทำให้มองไม่เห็นอีกครั้งและใส่ไว้ในแบตเตอรี่ ด้วยเหตุนี้ เราจึงประหยัดเวลาในการสร้างและทำลายเวลาสำหรับสัญลักษณ์แสดงหัวข้อย่อยแต่ละอัน และนี่คือมากมาก! แต่ถ้าเราทำผิดพลาดเล็กน้อยในการประมาณการ กระสุนในแบตเตอรี่หมด แต่ปืนกลยังคงยิงต่อไป คุณไม่สามารถทำอะไรกับมันได้ - คุณจะต้องสร้างสัญลักษณ์แสดงหัวข้อย่อยใหม่แบบไดนามิก จนกว่ากระสุนเก่าจะกลับคืนสู่แบตเตอรี่ และเราจะไม่ทำลายกระสุนใหม่เช่นกัน แต่เราจะเก็บไว้ในแบตเตอรี่ - ทันใดนั้นเราต้องการมากขึ้น ...

การโจมตีของโคลน
สมมุติว่าเรามีป่าใหญ่ซึ่งมีต้นไม้ที่เหมือนกันหลายต้นหรือหลายต้นหลายสายพันธุ์ ตัวอย่างคล้ายกับตัวอย่างก่อนหน้านี้ เพียงแต่เราไม่สร้างหรือทำลายสิ่งใด ๆ ที่นี่ - มีต้นไม้ในระดับนี้เสมอ ปัญหาจะเกิดขึ้นเมื่อโหลดระดับ การสร้างต้นไม้จำนวนมากจะต้องใช้เวลามาก แต่พวกเขาทั้งหมดเหมือนกัน! นั่นคือเราโหลดจากฮาร์ดไดรฟ์ซ้ำแล้วซ้ำอีกและสร้างสำเนาของสิ่งเดียวกันในหน่วยความจำ ดาวน์โหลดแล้ว เราเล่น. ก่อนสร้างต้นไม้แต่ละต้นจะมีขั้นตอนการเตรียมการ สำหรับต้นไม้แต่ละต้นพวกเขาจะเหมือนกัน แต่เราจะเรียกมันอีกครั้งเป็นจำนวนมากตามจำนวนต้นไม้! กลายเป็นว่าสิ้นเปลือง และต้องสงวนหน่วยความจำสำหรับต้นไม้แต่ละต้นไว้ และการประมวลผลของต้นไม้แต่ละต้นต้องใช้เวลา
เป็นการดีที่จะโหลดต้นไม้ต้นเดียว และเมื่อจำเป็นต้องแสดงต้นไม้ที่เหลือ เพียงแค่แสดงไลบรารีกราฟิกว่าจะรับข้อมูลที่จำเป็นจากที่ใด จะช่วยประหยัดทรัพยากรได้มากจริง ๆ FPS เติบโตอะไรอย่างนี้! ต้นไม้ "เท็จ" ดังกล่าว (และไม่ใช่แค่ต้นไม้ - อะไรก็ตาม) ซึ่งมีเพียงข้อมูลส่วนตัวเท่านั้นที่ถูกเก็บไว้ในหน่วยความจำ (ตำแหน่งในอวกาศ, มุมการหมุน) และข้อมูลเดียวกันจะถูกเก็บไว้เพียงครั้งเดียวเท่านั้น วัตถุพร็อกซี่.
มีคลาสพิเศษใน GLScene สำหรับสร้างวัตถุพร็อกซี - TGLProxyObject. มันใช้งานง่ายมาก ขั้นแรก เราสร้างวัตถุต้นทาง นั่นคือ ต้นไม้ต้นเดียว ดังนี้:
ทรี:=TGLFreeFrom(glscene1.objects.AddNewChild(TGLFreeFrom));
//โหลด
รุ่น:
Tree.LoadFromFile('Tree.3ds');
// โหลดพื้นผิว:
Tree.Material.Texture.Disabled:=false;
Tree.Material.Texture.Image,LoadFromFile('tree.jpg');
//ตอนนี้ มาสร้างต้นไม้โคลนสิบต้นในสถานที่สุ่มกัน:
สำหรับ i:=1 ถึง 10 เริ่ม
//สร้างวัตถุพร็อกซีอื่น
proxy:=TGLProxyObject(glscene1.objects.AddNewChild(TGLProxyObject));
ด้วยพร็อกซี่เริ่มต้น
//เราเขียนแผนผังตัวอย่างของเราไปยังคุณสมบัติ MasterObject
MasterObject:=ต้นไม้;
//เราแสดงว่าควรสืบทอดเฉพาะโครงสร้างของวัตถุเท่านั้น
ตัวเลือกพร็อกซี่:=;
//การวางแนวของต้นไม้ในอวกาศต้องไม่เปลี่ยนแปลง
ทิศทาง:= Tree.Direction;
ขึ้น:= Tree.Up;
//แต่ตำแหน่งถูกกำหนดแบบสุ่ม
Position.X:=สุ่ม(100);
Position.Y:=สุ่ม(100);
// และหมุนต้นไม้ให้เป็นมุมสุ่มเพื่อให้ดูดีขึ้น
มุมม้วน:=สุ่ม(360);
จบ;
จบ;
ตอนนี้เรามีต้นไม้หลายสิบต้นในราคาต้นเดียว โปรดทราบว่าหากเราเปลี่ยนวัตถุดั้งเดิม การเปลี่ยนแปลงนี้จะมีผลทันทีในวัตถุโคลนทั้งหมด

* * *
เราพูดถึงอิฐก้อนแรก ในบทความต่อไปนี้ เราจะมอบก้อนอิฐเหล่านี้ทั้งหมดให้คุณ ซึ่งคุณสามารถสร้างเอ็นจิ้นเกม 3 มิติในฝันของคุณได้ เพื่อให้ง่ายขึ้นสำหรับคุณ เราได้นำเวอร์ชันทดสอบล่าสุดมาไว้ในคอมแพค GLScene.

ด้วยการเปิดตัว Unreal Engine เวอร์ชันฟรีล่าสุดและการประกาศ Source 2 ฟรี คุณมีตัวเลือกมากขึ้นในการสร้างเกมของคุณเอง แต่การเลือกเอ็นจิ้นที่เหมาะสมกับความต้องการและทักษะของคุณนั้นไม่ใช่สิ่งที่ง่ายที่สุด วิ่งผ่านกันเถอะ ตัวอย่างที่ดีที่สุดซอฟต์แวร์ฟรี (เกือบมีอะไรอยู่ด้านล่าง) สำหรับผู้เริ่มต้นและมืออาชีพ

นอกจากเครื่องยนต์ในคอลเลกชั่นนี้แล้ว ยังมีเครื่องยนต์ที่ไม่ค่อยมีใครรู้จักอีกมาก แต่พูดง่ายๆ ก็คือ เครื่องยนต์ที่เจ๋งมากในระดับที่สอง ตามกฎแล้วในเว็บไซต์ของผู้พัฒนามีการกล่าวถึงความเป็นไปได้ในการออกใบอนุญาต แต่ในรูปแบบที่ดิบมากที่นี่คุณต้องติดต่อโดยตรง เครื่องยนต์ทั้งหมดมีข้อดีและข้อเสีย ตัวอย่างเช่น เอ็นจิ้น Dying Light ล่าสุดของ Techland นั้นเหมาะสำหรับเกมโอเพ่นเวิร์ล แต่มีปัญหาเรื่องระยะการเสมอกัน

ในการลงลึกในเครื่องมือซอฟต์แวร์เหล่านี้ คุณต้องมีทักษะการเขียนโปรแกรมขั้นพื้นฐานเป็นอย่างน้อย แต่ในบางกรณี คุณสามารถทำได้โดยปราศจากพวกเขาและลงมือทำธุรกิจทันที

ในระดับแนวหน้าของเทคโนโลยี - CryENGINE

CryENGINE เป็นเอ็นจิ้นเกมที่ทรงพลังอย่างยิ่งที่สร้างโดย Crytek และเปิดตัวครั้งแรกใน Far Cry มีไว้สำหรับการพัฒนาบนพีซีและคอนโซล รวมถึง PlayStation 4 และ Xbox One ความสามารถด้านกราฟิกนั้นเหนือกว่า Unity และ UDK และบางครั้งก็นำหน้า Unreal Engine 4: การจัดแสงที่ล้ำสมัย ฟิสิกส์ที่สมจริง ระบบแอนิเมชั่นขั้นสูง และอื่นๆ เกมสุดท้ายบน CryENGINE คือ Ryse: Son of Rome คล้ายกับ UDK และ UE4 CryENGINE มีคุณสมบัติที่ทรงพลังและใช้งานง่ายในตัวสำหรับการทำงานกับการออกแบบระดับ

การใช้ CryENGINE ให้เกิดประสิทธิผลจะใช้เวลาสักครู่ในการเรียนรู้ และคุณอาจพบว่ามันยากหากคุณไม่มีประสบการณ์กับเอ็นจิ้นอื่นๆ หากคุณไม่ต้องการกราฟิกอย่าง Crysis 3 หรือ Ryse: Son of Rome คุณควรมองหาสิ่งที่เป็นมิตรกับผู้ใช้มากกว่านี้

โมเดลราคา CryENGINE ค่อนข้างแตกต่างจากคู่แข่ง สำหรับการใช้เครื่องยนต์ มันไม่ฟรีอย่างสมบูรณ์เช่น UE4 หรือ Unity 5 แต่ไม่ต้องเสียค่าลิขสิทธิ์ ดังนั้น $9.90 จึงเป็นทั้งหมดที่คุณต้องจ่ายให้กับ Crytek ขึ้นอยู่กับขนาดของสตูดิโอและทีมงานของคุณ การไม่มีค่าลิขสิทธิ์อาจเป็นข้อได้เปรียบอย่างมาก

ผู้เริ่มต้น - Stencyl หรือ GameMaker

หากคุณเพิ่งเริ่มสร้างเกมและไม่มีประสบการณ์ในการเขียนโปรแกรม คุณควรเริ่มต้นด้วยเครื่องมือที่ง่ายที่สุด ในจำนวนนี้ Stencyl และ GameMaker ได้รับความนิยมและเป็นที่รู้จักมากที่สุด ทั้งสองเกมนั้นง่ายต่อการเรียนรู้สำหรับผู้เริ่มต้น และเกมคุณภาพหลายเกมได้ถูกสร้างขึ้นโดยอิงจากเกมเหล่านี้แล้ว

Stencyl ช่วยให้คุณสร้างเกมโดยไม่ต้องเขียนโปรแกรม อินเทอร์เฟซเป็นแบบลากและวางโดยสมบูรณ์ เกมสามารถเผยแพร่บน Windows, Mac, Linux, iOS, Android และ Flash หากคุณเคยจัดการกับบางอย่างเช่น Scratch คุณจะรู้ได้ทันทีถึงแนวทางการสร้างโค้ดแบบ LEGO ผ่านการจัดวางบล็อก Stencyl ออกแบบมาสำหรับ การสร้างที่เรียบง่ายเกมสไปรท์และมักจะทำหน้าที่เป็นพื้นฐานสำหรับปริศนาและตัวเลื่อนด้านข้าง อะไรก็ตามที่ยากจะทำก็สร้างปัญหาได้ ดังนั้นหากคุณตัดสินใจที่จะทำงานใน RPG หรือกลยุทธ์ ให้ดูที่ซอฟต์แวร์อื่น ด้วยความช่วยเหลือของ Stencyl เกมยอดนิยมหลายเกมจึงถือกำเนิดขึ้น รวมถึง Impossible Pixel และ Zuki's Quest นอกจากนี้ยังมีบทช่วยสอนในตัวที่จะบอกคุณทุกสิ่งที่คุณจำเป็นต้องรู้

GameMaker เป็นอีกหนึ่งยูทิลิตี้ฟรีสำหรับผู้เริ่มต้นในการสร้างเกมสำหรับ Windows, Mac, iOS และ Android เช่นเดียวกับ Stencyl แทบทุกอย่างเป็นแบบลากและวาง แต่ก็มีตะขอสำหรับเกมแบบผู้เล่นหลายคน ลิงก์ไปยัง SDK ภายนอก ความสามารถในการเจาะลึกโค้ด และอีกมากมาย รุ่นฟรีลายน้ำการส่งออก แต่ GameMaker นั้นยอดเยี่ยมสำหรับการจับเวลาครั้งแรกและมาพร้อมกับบทช่วยสอนพื้นฐานในตัว ไม่มีการจำกัดประเภทเช่นใน Stencyl และคุณสามารถหาคำแนะนำแยกต่างหากสำหรับเกมประเภทต่างๆ GameMaker สร้าง Spelunky และ Hotline Miami เวอร์ชันดั้งเดิม

แน่นอนว่าทุกอย่างไม่ได้จำกัดอยู่แค่สองตัวเลือกนี้ Buildbox เป็นยูทิลิตี้ที่ค่อนข้างใหม่ในช่วงทดลองใช้งานและเสนอโปรแกรมการฝึกอบรมเพื่อเรียนรู้วิธีการทำงาน ในขณะที่ GameSalad เป็นแพลตฟอร์มยอดนิยมที่เป็นที่รู้จักมาช้านาน แม้ว่าจะมีการบ่นเกี่ยวกับข้อบกพร่องและ งานไม่มั่นคง. โครงสร้างเป็นสิ่งที่ควรค่าแก่การพิจารณาหากคุณต้องการสร้างเกมใน HTML5 ในทุกกรณี ปัญหาหลักที่คุณต้องยับยั้ง .ของคุณ แนวคิดการออกแบบ. นี่คือซอฟต์แวร์สำหรับผู้เริ่มต้น และคุณจะทำลายมันเพื่อพยายามทำสิ่งที่ยาก นั่นคือเกมจะมีบั๊กและไม่ทำงานหากคุณพยายามทำเกินกว่าระบบที่ตั้งใจไว้ และยังนี้ สถานที่ยอดเยี่ยมเพื่อเริ่มต้นและ ตัวเลือกที่เหมาะสมไม่มีประสบการณ์การเขียนโปรแกรม

โปรแกรมเมอร์ระดับกลางที่มุ่งเป้าไปที่เกม 2 มิติ - Cocos2D

Cocos2D เป็นโปรแกรมโอเพ่นซอร์สสำหรับสร้างเกม 2D เกมสามารถเผยแพร่บน Windows, Mac, Android, iOS, Windows Phone หรือแพลตฟอร์มเว็บ

สิ่งที่คุณจะทำใน Cocos2D ส่วนใหญ่นั้นใช้งานได้กับ C++ (นอกจากนี้ยังรองรับ Lua และ JavaScript ด้วย) ดังนั้นคุณจะต้องทำความคุ้นเคยกับภาษาการเขียนโปรแกรมนี้ก่อนที่จะเริ่ม Cocos2D เลย อย่างไรก็ตาม ด้วยความรู้เกี่ยวกับภาษาดังกล่าว โปรแกรมจึงใช้งานได้ง่ายมาก มันมี IDE เต็มรูปแบบและฟรีโดยสมบูรณ์โดยไม่มีการผูกมัด ตามชื่อที่บอกไว้ ยูทิลิตี้นี้ออกแบบมาเพื่อสร้างเกมสองมิติ ดังนั้นจึงทำงานได้ดีขึ้นกับเกมสไปรท์ทั่วไป โดยที่ 3D จะไม่มีประโยชน์ เกม 2D สามารถสร้างใน Unity ได้ (ซึ่งเราจะดูในภายหลัง) แต่ Cocos2D จะง่ายกว่าถ้าคุณเพิ่งเริ่มต้น (และแน่นอน คุณรู้ C ++)

Cocos2D ได้ผลิตเกมที่ประสบความสำเร็จมากมายในหลากหลายประเภท รวมถึง Badland ที่ได้รับรางวัล

นักพัฒนาที่กำหนดเป้าหมายแพลตฟอร์มมือถือ - Unreal Engine หรือ Unity

หากคุณสนใจเกม 3 มิติที่ซับซ้อน เครื่องมือยอดนิยมสองอย่างในการสร้างคือ Unreal Engine และ Unity ทั้งสองมีจุดแข็งและ จุดอ่อนและประเด็นต่างๆ ในข้อตกลงใบอนุญาตที่คุณควรอ่านก่อนตัดสินใจขั้นสุดท้าย

Unity ช่วยให้คุณสร้างเกม 3D และ 2D สำหรับเกือบทุกแพลตฟอร์ม รวมถึง Windows, Mac, Xbox, Playstation, Android, iOS และอื่นๆ รองรับเนื้อหาเกมที่สร้างใน 3ds Max, Maya, Softimage, Cinema 4D, Blender และอีกมากมาย Unity ใช้ C# ร่วมกับภาษาการเขียนโปรแกรมของมันเอง ดังนั้น การเรียนรู้ให้ดีก่อนจึงไม่เสียหาย หากเราเปรียบเทียบ Unity กับ Unreal อันแรกอาจจะง่ายกว่าที่จะเรียนรู้ มันมีชุดพฤติกรรมที่สร้างไว้ล่วงหน้ามากมายและไลบรารีทรัพยากรเกมในตัวที่ทำให้ง่ายต่อการติดตาม ขณะทำงานเกี่ยวกับข้อความนี้ ฉันได้พูดคุยกับนักพัฒนาหลายคน และพวกเขาคิดว่า Unity - เครื่องยนต์ที่ดีที่สุดสำหรับโปรเจกต์แรกๆ เพราะเข้าใจง่ายและเรียนรู้ได้ง่ายกว่า Unreal หากคุณสร้างเกมแล้ว พูดใน GameMaker คุณจะเข้าใจทันทีว่ามีอะไรใน Unity Unity ยังสนับสนุนรูปแบบการชำระเงินทางเลือกในเอ็นจิ้น ซึ่งรวมถึงโมเดลการสร้างรายได้ที่เล่นฟรีหลายแบบ

ฟังก์ชันการทำงานของเวอร์ชันส่วนตัวฟรีนั้นสมบูรณ์เพียงพอสำหรับโครงการแรกของคุณแล้ว โดยการสร้างเกมในเวอร์ชันฟรี คุณไม่ต้องจ่ายค่าลิขสิทธิ์หรือค่าลิขสิทธิ์ แต่มีข้อแม้บางประการ กล่าวคือ คุณจะไม่สามารถรับสปอนเซอร์/กำไรได้มากกว่า $100,000 มีการเขียนบทความบทช่วยสอนมากมายเพื่อช่วยนักพัฒนา Unity มือใหม่ เกมยอดนิยมในเอ็นจิ้นนี้ ได้แก่ Alto's Adventure, Gone Home และ .

Unreal Engine 4 ใช้ C ++ ดังนั้นด้วยความรู้ที่ถูกต้องเกี่ยวกับภาษานี้ คุณสามารถเลือกมันได้ อย่างไรก็ตาม คุณสามารถสร้างเกมได้โดยไม่ต้องเจาะลึกถึงภาษานั้นเอง เกมที่สร้างด้วย Unreal Engine สามารถเผยแพร่ได้บน PC, Mac, iOS, Android, Xbox One และ Playstation 4 Unreal มีเกือบทุกอย่างที่คุณต้องการในเอ็นจิ้น รวมถึงการสร้างแบบจำลอง 3 มิติและภูมิประเทศ เนื่องจากเนื้อหามีมากมาย ทำให้ Unreal Engine 4 เป็นผู้เชี่ยวชาญได้ยากกว่าเครื่องมือในการพัฒนาอื่นๆ และถึงแม้จะมีความรู้เกี่ยวกับ C ++ เป็นอย่างดี คุณก็ควรเตรียมพร้อมที่จะเรียนรู้สิ่งใหม่ๆ มากมาย แต่คุณสามารถสร้างเกมที่น่าประทับใจได้อย่างแท้จริง คุณสามารถเรียนรู้เพิ่มเติมเกี่ยวกับความสลับซับซ้อนของอุปกรณ์ Unreal ได้ด้วยความช่วยเหลือของวิศวกรรมย้อนกลับ แต่ถึงกระนั้นหากไม่มีประสบการณ์มาก่อน มันจะไม่ง่ายเลยที่จะเข้าใจ Unreal Engine 4 เป็นเอ็นจิ้นที่ค่อนข้างใหม่ แต่เกมอย่าง Daylight และ Tekken 7 ได้เปิดตัวไปแล้ว

ในการใช้ Unreal Engine 4 คุณต้องตกลงที่จะจ่ายค่าลิขสิทธิ์หากเกมของคุณถูกขาย หลังจากที่เกมหรือแอพเริ่มขาย คุณจะต้องจ่ายเป็นรายไตรมาส อาจดูเหมือนเป็นเงินจำนวนมาก แต่ด้วยผลกำไรที่เกมจะนำมานั้นไม่มากนัก

นอกจากนี้ยังควรพิจารณาเครื่องยนต์ Source 2 ของ Valve อย่างใกล้ชิดซึ่งน่าจะเปิดให้ใช้งานฟรีในปีนี้

อัปเดต 01.10.15:ในเดือนสิงหาคมที่ GDC ปลากระเบนทำงานบนแกนเทคโนโลยี Bitsquid และใช้สถาปัตยกรรม 64 บิต ปลากระเบนได้รับการออกแบบให้มีความยืดหยุ่นสูงและทำงานร่วมกับทุกแพลตฟอร์มยอดนิยมตั้งแต่มือถือไปจนถึง ความเป็นจริงเสมือน. เทคโนโลยีข้อมูลแบบโมดูลาร์และการจัดการช่วยให้นักพัฒนาทำการเปลี่ยนแปลงและเห็นผลลัพธ์ในอุปกรณ์ที่เชื่อมต่อหลายเครื่องในคราวเดียวได้ง่ายขึ้นโดยไม่ต้องคอมไพล์ใหม่ นอกจากนี้ คุณยังสามารถถ่ายโอนวัตถุระหว่างผลิตภัณฑ์ Autodesk ได้อย่างรวดเร็ว ความก้าวหน้าในการพัฒนาระบบอัตโนมัติยังไม่เกิดขึ้น หากคุณใช้ Unity หรือ Unreal อยู่แล้ว คุณไม่ควรเปลี่ยน เกนยังไม่ค่อยเด่นชัดนัก เราจะบอกคุณเพิ่มเติมในภายหลัง

ราชาแห่งการพัฒนา - ที่มา 2

ที่งาน GDC 2015 Valve ได้ทำการประกาศครั้งใหญ่ และบางทีสิ่งที่สำคัญที่สุดสำหรับชุมชนเกมก็คือการประกาศ Source 2 ซึ่งเป็นตัวต่อจากเอ็นจิ้น Source ที่ใช้ใน Counter-Strike: Source, Half-Life 2 และอื่นๆ อีกมากมาย เกม. นักพัฒนาต่างรอคอยเครื่องยนต์รุ่นต่อไปในคลังแสงของ Valve อย่างใจจดใจจ่อมาหลายปีแล้ว ในงานแถลงข่าว Jay Stelly แห่ง Valve กล่าวว่า "สำหรับนักพัฒนาเนื้อหา นอกจากการประกาศของ Epic และ Unity แล้ว สิ่งนี้จะช่วยให้พีซียังคงเป็นแพลตฟอร์มการสร้างเนื้อหาที่โดดเด่น” เห็นได้ชัดว่า Valve ตัดสินใจเข้าร่วมการแข่งขันเครื่องยนต์ร่วมกับ Epic และ Unity ทำให้นักพัฒนามีตัวเลือกมากขึ้น อย่างไรก็ตาม ยังไม่ชัดเจนว่า "ฟรีสำหรับนักพัฒนาเนื้อหา" หมายถึงอะไร: เรากำลังพูดถึงนักพัฒนาที่เป็นที่ยอมรับหรือเป็นหมวดหมู่พิเศษบางประเภทหรือไม่

ไม่มีข้อมูลเฉพาะเกี่ยวกับวันที่เผยแพร่ เป็นที่ทราบกันเพียงว่า Source 2 จะเปิดตัวในอนาคตอันใกล้นี้ Jay Stelly ยังกล่าวอีกว่า “เรามุ่งเน้นที่การปรับปรุงประสิทธิภาพการทำงานของผู้สร้างเนื้อหา เมื่อพิจารณาถึงความสำคัญของเนื้อหาที่ผู้ใช้สร้างขึ้น Source 2 ไม่ได้มีไว้สำหรับมืออาชีพเท่านั้น แต่ยังช่วยให้นักเล่นเกมมีส่วนร่วมในการพัฒนาเกมที่พวกเขาชื่นชอบ คำเหล่านี้แนะนำว่า Source 2 จะใช้งานได้ไม่เฉพาะในสตูดิโอมืออาชีพเท่านั้น แต่ยังรวมถึงมือสมัครเล่นและม็อดเดอร์ด้วย ซึ่งทำให้เกมของ Valve หลายเกมได้รับความนิยมอย่างมาก

เราหันไปหา Valve เพื่อ ข้อมูลเพิ่มเติมและบทความนี้จะได้รับการอัปเดตเมื่อมีคนรู้จักเอ็นจิ้นใหม่มากขึ้น แต่ตอนนี้เราสามารถพูดได้อย่างแน่นอนว่า Source 2 จะกลายเป็นคู่แข่งสำคัญของรุ่นใหญ่ในการเผชิญหน้ากับ Unity และ Unreal Engine 4 เพราะตาม Gelli มันจะฟรีเช่นกัน

นักเขียน - Twine/RPG Maker/AXMA

ไม่ใช่ทุกคนที่เป็นผู้เชี่ยวชาญในการเขียนโปรแกรม และแม้แต่ Stencyl ก็อาจดูซับซ้อนสำหรับหลายๆ คน หากคุณมองว่าตัวเองเป็นนักเล่าเรื่องมากกว่า คุณมีสองตัวเลือกที่ยอดเยี่ยมให้เลือก: Twine และ RPG Maker

เพื่อสร้างเรื่องราวที่ไม่เป็นเชิงเส้นเชิงโต้ตอบ พูดง่ายๆ ก็คือ คุณสามารถสร้างเกมในประเภท "เลือกการผจญภัยของคุณเอง" ยูทิลิตี้นี้ใช้งานง่ายอย่างเหลือเชื่อ คุณเชื่อมโยงส่วนต่างๆ ของเรื่องราวกับช่วงเปลี่ยนผ่านต่างๆ เหมือนกับในแผนที่ความคิด แต่ละตัวเลือกที่มีให้สำหรับผู้เล่นนำไปสู่ข้อความใหม่ เมื่อเสร็จแล้ว คุณสามารถเผยแพร่ผลลัพธ์บนเว็บไซต์ได้ทันที ทุกอย่างค่อนข้างชัดเจน แต่ถ้าคุณติดขัดที่ไหนสักแห่งหรือต้องการเพิ่มอย่างอื่น คู่มือสำหรับผู้เริ่มต้นจะช่วยคุณได้ เกมยอดนิยมที่สร้างด้วย Twine ได้แก่ A Kiss และ Cry$tal Warrior Ke$ha

หาก Twine ดูเชยเกินไปสำหรับคุณ ให้ลองใช้ RPG Maker รุ่นฟรีมีคุณสมบัติน้อยกว่าทางเลือกแบบชำระเงิน แต่ก็ยังสามารถทำอะไรได้มากมาย ระบบนี้เรียนรู้ได้ง่าย: ลากกราฟิก เพิ่มบทสนทนาในคลิกเดียว ในการสร้างสิ่งที่น่าสนใจมากกว่าเกม RPG ปกติ คุณต้องคิดนอกกรอบ แต่ตัวอย่างในการเผชิญหน้า To the Moon อย่างอบอุ่นและ LISA ทำให้ชัดเจนว่าสิ่งนี้เป็นไปได้ คุณสามารถเพลิดเพลินกับเพลงและภาพฟรี ดังนั้นคุณไม่จำเป็นต้องรู้วิธีการวาด การเรียนรู้ในตัวอีกครั้งจะช่วยคุณในการสร้างเกมแรกของคุณ เกมยอดนิยมใน RPGMaker ได้แก่ Clock of Atonement และ One Night Twine มีอะนาล็อกในประเทศของ AXMA Story Maker ซึ่งควรค่าแก่การดูอย่างใกล้ชิด

ซอฟต์แวร์ฟรีสำหรับแหล่งข้อมูลเกม

แน่นอนว่าเกมนี้ไม่ได้เป็นเพียงเครื่องยนต์เท่านั้น คุณจะต้องใช้ทรัพยากรเกมทุกประเภท รวมทั้งภาพและเสียง นักพัฒนาอินดี้หลายคนที่ฉันสัมภาษณ์ได้แชร์ลิงก์ที่เป็นประโยชน์:

Tiled เป็นเครื่องมือแก้ไขแผนที่อย่างง่ายสำหรับ Cocos2D, Unity และเครื่องมืออื่นๆ

OpenGamesArt - ภาพฟรีและตัวยึดตำแหน่งกราฟิก

คลังเพลงฟรี - เพลงฟรีพร้อมใบอนุญาต Creative Commons

FreeSound คือชุดของเอฟเฟกต์เสียงฟรี

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

กลับ

×
เข้าร่วมชุมชน koon.ru!
ติดต่อกับ:
ฉันสมัครเป็นสมาชิกชุมชน koon.ru แล้ว