-
coreCore คืออะไร
- coreCore คือวิธีเชิงทดลองในการสร้างวิดีโอเกมในรูปแบบเครื่องมือและเอนจินสำหรับสร้างเกม Action-RPG รวมถึงตัวแก้ไขคุณสมบัติ
- ใช้ระบบคอมโพเนนต์แบบเรียบง่าย โดยคอมโพเนนต์อยู่ในรูปเวกเตอร์ clojure แบบ
[keyword value]
- เอนทิตีหลากหลายชนิดประกอบขึ้นจากแมปของ clojure
- ผลข้างเคียงภายในเกมถูกจัดการด้วยคอมโพเนนต์อย่าง
[:tx/foo param] ซึ่งมีโครงสร้างคล้าย datomic
- สถานะทั้งหมดของเกมถูกเก็บไว้ใน atom เดียวชื่อ
app/state และเอนทิตีก็อยู่ในรูป atom ภายใน atom หลักเช่นกัน
- เนื้อหาทั้งหมดของแอปพลิเคชันถูกเก็บไว้ใน
resources/properties.edn ผ่านการตรวจสอบด้วย malli-schemas และสามารถแก้ไขผ่าน GUI ได้
-
ภาพหน้าจอ
-
วิธีเริ่มพัฒนา
- ป้อนคำสั่งต่อไปนี้:
- แอปพลิเคชันจะเริ่มทำงานและดำเนินการต่อไปนี้ด้วย:
- เริ่มต้นเซิร์ฟเวอร์ NREPL
- เมื่อปิดแอปพลิเคชัน (กด ESC จากเมนูหลัก)
clojure.tools.namespace จะรีเฟรชไฟล์ที่เปลี่ยนแปลงและเริ่มแอปใหม่
- หากเกิดข้อผิดพลาด ไม่จำเป็นต้องรีสตาร์ต JVM เพียงแก้ข้อผิดพลาดแล้วเรียก
dev-loop/restart!
- สามารถผูกคำสั่งต่อไปนี้กับปุ่ม F5 ใน VIM เพื่อใช้งานได้:
nmap <F5> :Eval (do (in-ns 'dev-loop)(restart!))
-
ใบอนุญาตโค้ด
- ให้ใช้งานภายใต้ใบอนุญาต MIT
-
ใบอนุญาตของแอสเซ็ต
- แอสเซ็ตที่ใช้เป็นแบบกรรมสิทธิ์และไม่ใช่โอเพนซอร์ส
สรุปโดย GN⁺
- coreCore เป็นเครื่องมือที่ช่วยให้สร้างเกม Action-RPG ได้ง่าย โดยใช้ระบบคอมโพเนนต์แบบเรียบง่ายเพื่อจัดการสถานะของเกม
- การเก็บสถานะทั้งหมดของเกมไว้ใน atom เดียว และการแก้ไขคุณสมบัติผ่าน GUI ทำให้มีประโยชน์ต่อผู้พัฒนา
- แม้จะให้ใช้งานภายใต้ใบอนุญาต MIT แต่แอสเซ็ตที่ใช้เป็นแบบกรรมสิทธิ์
- เครื่องมือที่มีความสามารถคล้ายกันได้แก่ RPG Maker และ Unity
1 ความคิดเห็น
ความคิดเห็นใน Hacker News
น่าสนใจที่ได้เห็นแนวทางการพัฒนาเกมที่หลากหลาย
โปรเจ็กต์ GitHub นี้ดูน่าขำสำหรับนักพัฒนาเกม
อ้างว่าสามารถทำให้การพัฒนาเกมง่ายขึ้น แต่กลับใช้คำศัพท์จำนวนมาก
โปรเจ็กต์นี้ดูเหมือนจะล้มเหลว
รีโพซิทอรีที่แทบไม่มีเอกสารนี้กลับสร้างบทสนทนาได้มาก
เห็นบ่อยมากที่คำว่า "อยากทำเกม" กลายเป็นการไปสร้าง game engine แทน
ชอบ Clojure มาก แต่ก็สงสัยว่าภาษาเชิง functional ที่มีโครงสร้างข้อมูลแบบ immutable เหมาะกับการพัฒนาเกมหรือไม่
สถานะของเกมถูกเก็บไว้ใน atom เดียว และ entity ต่าง ๆ ภายในนั้นก็ถูกเก็บเป็น atom อีกที
คิดว่าน่าจะน่าสนใจถ้าได้วิเคราะห์ข้อมูล "เวลา/ความซับซ้อนที่ใช้ไปกับ game engine" เทียบกับ "ความซับซ้อน/ความน่าสนใจของเกมที่ผลิตออกมา"
มี Core ซึ่งเป็นแพลตฟอร์มสำหรับสร้างเกมเชิงพาณิชย์ที่ขับเคลื่อนด้วย Unreal Engine 4 อยู่แล้ว