นี่คือ repo เก่าที่มีไฟล์ไบนารีขนาดใหญ่และขยะอื่น ๆ ในประวัติศาสตร์ Git ที่เหลืออยู่เนื่องจากความโง่เขลาหรือข้อผิดพลาดของมนุษย์ในช่วงต้น repo ใหม่มีขนาดเล็กลงอย่างน้อย 5 เท่าและทำความสะอาดจากข้อผิดพลาดเหล่านั้น
CT.JS เป็นเอ็นจิ้นเกม 2D และ IDE ที่มีจุดมุ่งหมายที่จะทรงพลังและยืดหยุ่นในขณะที่ยังคงใช้งานง่ายและเรียนรู้ มันทำอย่างนั้นโดยการจัดทำเอกสารที่กว้างขวางตัวอย่างประเภทสินทรัพย์เกมที่หลากหลายและตัวแก้ไขภาพของพวกเขา - ทั้งหมดในขณะที่ยังคงเปิดให้ Modding และหากการดัดแปลงไม่ได้ช่วยคุณสามารถใส่รหัส JS ธรรมดาในโครงการของคุณได้เสมอ
| คุณสมบัติ CT.JS | ||||
|---|---|---|---|---|
| Editor Level & UI | - กลไกเสียงแบบไดนามิก | ระบบอนุภาคพร้อมตัวแก้ไขภาพ | ? ภาษาสคริปต์หลายภาษาให้เลือก | - สคริปต์ตามเหตุการณ์ |
| คลิกเดียวสำหรับแพลตฟอร์มเดสก์ท็อป | การส่งออกแบบคลิกเดียวสำหรับเว็บ | พร้อมสำหรับพีซีและเกมมือถือ | เร็วทำงานใน webgl | - ฟรีโดยไม่มีการสมัครสมาชิกหรือค่าธรรมเนียม |
| ภาพเคลื่อนไหวเฟรมต่อเฟรม | ️การบรรจุ Atlas อัตโนมัติ | ? ️การสนับสนุนจอยเวย์ | ⌨เหตุการณ์อินพุต layout-agnostic | - การสนับสนุน tilemap |
| ⚽โมดูลฟิสิกส์ | - โมดูลการชนของอาร์เคด | ฐานข้อมูลท้องถิ่นสำหรับประเภทข้อมูลที่ซับซ้อน | - พฤติกรรมสำหรับองค์ประกอบตรรกะการเล่นเกม | ✅คลาสพื้นฐานสำหรับองค์ประกอบ UI |
| - การสร้างแบรนด์แอปพลิเคชัน | ? ❄ การติดฉลากสีขาว | ➕เพิ่ม JS, CSS หรือ HTML ที่กำหนดเอง | ห้องสมุดโมดูลาร์ที่ยืดหยุ่น | ขยายได้ด้วยโมดูลพิเศษ (catmods) |
รหัสคนใน CT.JS ที่มี typeScript, JavaScript, CoffeeScript หรือ CT.JS 'Catnip ภาษาสคริปต์ภาพ การเข้ารหัสถูกสร้างขึ้นรอบระบบเหตุการณ์และรหัสที่ใช้ร่วมกันถูกนำมาใช้เป็นพฤติกรรมที่สามารถรวมและใช้งานโดยเทมเพลตวัตถุหรือระดับหลายระดับ (ตรงข้ามกับการสืบทอด)
ในระดับเทคนิคเกม CT.JS เป็นแอปพลิเคชัน JavaScript ที่ใช้ WebGL สำหรับการแสดงผล ในขณะที่ไม่ใช่รันไทม์ที่เร็วที่สุดในโลกการตั้งค่านี้เหมาะอย่างยิ่งสำหรับเกม 2D ที่ทันสมัยและอนุญาตให้ทำซ้ำได้อย่างรวดเร็วการส่งออกเว็บแบบคลิกเดียว-และเดสก์ท็อปสองคลิกสร้างเช่นกัน!
ภายใต้ฮูดเกม CT.JS จะขึ้นอยู่กับเฟรมเวิร์กเกมที่กำหนดเองรวมถึง pixi.js เป็นเครื่องมือในการแสดงผลและเสียง
CT.JS ในฐานะตัวแก้ไขเกมเป็นเว็บแอปพลิเคชันเช่นกันตามเฟรมเวิร์ก NW.JS UI นั้นใช้ส่วนประกอบและทำงานบน Riot.js V3 โดยส่วนใหญ่ของส่วนที่ละเอียดอ่อนของแอปพลิเคชันที่เขียนเป็นโมดูล TypeScript ESM
CT.JS ถูกสร้างขึ้นมาเพื่อเป็นเครื่องมือแบบบูรณาการแบบข้ามแพลตฟอร์มและสามารถเข้าถึงได้เสมอ ซึ่งไม่ได้ติดอยู่ในเวลาเหมือนเอ็นจิ้นเกม 2D อื่น ๆ ส่วนใหญ่ที่ใช้เรนเดอร์ลงวันที่ชุดคุณสมบัติที่ จำกัด และขัดขวาง UIS CT.JS ช่วยให้คุณมุ่งเน้นเนื้อหาของเกมโดยไม่ต้องกังวลเกี่ยวกับรายละเอียดทางเทคนิคเช่นการบรรจุสินทรัพย์และการโหลดการจัดการความละเอียดหน้าจอที่แตกต่างกันการบรรจุสำหรับเดสก์ท็อปและอื่น ๆ
CT.JS มีความคิดเห็นและ gamedev-centric ในการสร้างเกมคุณไม่จำเป็นต้องรู้การพัฒนาเว็บหรือวิธีเรียกปีศาจ - เครื่องมือและความรู้ทั้งหมดอยู่ใน CT.JS แล้ว
และทั้งหมดนี้คือการเป็นอิสระ - เช่นเดียวกับในเบียร์เช่นเดียวกับอิสระและเป็นการตำหนิต่อ บริษัท ที่ลึกมากเกินไปในความโลภขององค์กร
ดูหน้ารีลีสหรือข้ามไปที่หน้า itch.io พร้อมใช้งานสำหรับ Windows, Mac และ Linux
เราโฮสต์ dev builds ที่ itch.io หน้านี้จะมีเวอร์ชันทุกคืนที่สร้างขึ้นจากสาขา develop ของที่เก็บของเรา หมายความว่าคุณจะได้รับคุณสมบัติล่าสุดการปรับปรุงการแก้ไขข้อบกพร่อง และข้อบกพร่องใหม่ ทุกวันจากเตาอบ ใช้ด้วยความระมัดระวังและสนุก ขอแนะนำให้ใช้แอพ itch.io อย่างยิ่ง
สำหรับข้อบกพร่องคำขอคุณสมบัติคำถามการพัฒนาโปรดใช้ปัญหา GitHub เพื่อให้เราสามารถติดตามได้ดีขึ้น สำหรับการสนับสนุนทั่วไปเกี่ยวกับการสร้างเกมให้ถามคำถามที่ Discord Server ของเรา
app - แอป NW.JS พร้อมการกำหนดค่าและไฟล์คงที่datact.libs - catmods (โมดูล) ที่จัดส่งด้วย ct.js อย่าลังเลที่จะสร้างคำขอดึงด้วยโมดูลของคุณ!i18n - แผนการภาษา UI เปิดสำหรับคำขอดึง! -src - โฟลเดอร์ต้นทางที่รวบรวมลงในโฟลเดอร์ /app ในเวลาสร้างct.release - ห้องสมุดเกม CT.JS หรือที่รู้จักกันในชื่อ "แกน" ของมันjs สคริปต์ระดับบนสุดที่แตกต่างกันรวมถึงห้องสมุดที่ 3node_requires - โมดูล JavaScript และ typescript ที่ใช้ร่วมกันซึ่งครอบคลุมการทำงานของผู้ส่งออกการจัดการสินทรัพย์ยูทิลิตี้และอื่น ๆriotTags - ส่วนประกอบที่ขับเคลื่อนตรรกะ UI ใน CT.JS. เขียนในปั๊กและ riot.js v3styl - แผ่นสไตล์เขียนด้วยสไตลัสbranding - โลโก้และไอคอนอยู่ที่นี่docs - เอกสารอย่างเป็นทางการของ CT.JS. แก้ไขที่นี่SSCD.js - ส้อมของห้องสมุดการปะทะกันสำหรับ Ct.Placeปัญหาที่ค่อนข้างใหญ่ได้รับการโพสต์ในคณะกรรมการหลักพร้อมกับปัญหาที่ต้องการความช่วยเหลือจากชุมชน จัดลำดับความสำคัญคอลัมน์ "Current Release" จากนั้น "ทำ" จากนั้น "backlog" แม้ว่าถ้าคุณต้องการคุณสมบัติจาก backlog ที่จะเป็นจริงที่นี่ตอนนี้ไม่มีใครหยุดคุณ :)
โปรดแสดงความคิดเห็นเกี่ยวกับปัญหาที่คุณต้องการทำงานเพื่อให้เราสามารถมอบหมายให้คุณและหลีกเลี่ยงการทำงานสองครั้งเป็นครั้งคราวจากผู้มีส่วนร่วมหลายคน
คุณสามารถแชทและหารือเกี่ยวกับการพัฒนา CT.JS ในเซิร์ฟเวอร์ Discord ของ CT.JS ใน #engine-development Channel
การสร้าง CT.JS ต้องใช้โหนดและ NPM ติดตั้งบนเครื่องของคุณ
git clone https://github.com/ct-js/ct-js.git ctjs
cd ./ctjs
npm install gulp-cli -g
npm install
gulp -f devSetup.gulpfile.jsgulp ใช้ gulp dev แทนเพียงแค่ gulp เพื่อเรียกใช้บริการ dev ด้วยการโหลดสดโดยไม่ต้องเปิด CT.JS ในลักษณะเริ่มต้น ไม่ว่าในกรณีใดคุณสามารถหยุดบริการนี้ในลักษณะปกติสำหรับเทอร์มินัลของคุณเช่น Ctrl+C หากคุณกำลังเผชิญกับปัญหาที่ไม่สามารถอธิบายได้โดยเฉพาะอย่างยิ่งเมื่อเปลี่ยนไปใช้สาขาใหม่ให้เรียกใช้ gulp -f devSetup.gulpfile.js อีกครั้ง
VSCODE สามารถใช้ส่วนขยายนี้เพื่อเรียกใช้ CT.JS ด้วยดีบักเกอร์ที่แนบมา ก่อนที่จะเรียกใช้ดีบักเกอร์เพื่ออนุญาตให้โหลดสดใหม่ให้เรียกใช้ gulp dev
การตรวจสอบผ้าสำลีสำหรับปัญหาการจัดรูปแบบรหัสเรียกใช้ ESLINT และตรวจสอบไฟล์ I18N สำหรับคีย์พิเศษ
gulp lintนอกจากนี้ยังมีคำสั่งแยกต่างหากสำหรับการเรียกใช้การทดสอบเฉพาะเท่านั้น:
gulp lintJS
gulp lintTags
gulp lintStylus
gulp lintI18nมันง่ายและแข็งแกร่งจริง ๆ เรามี CT.JS ปกติสำหรับการเผยแพร่หลักและ CT.JS ทุกคืนเป็น Canary/Preview Build
developdevelop ทริกเกอร์ CI Build และ CT.JS เวอร์ชันใหม่ได้รับการเผยแพร่ต่อสาธารณะdevelop``, it means it will reach the สาขาของอาจารย์ได้เช่นกันสิ่งนี้ถูกทิ้งไว้สำหรับเหตุฉุกเฉินเท่านั้นเนื่องจาก Gitlab CI ควรเตรียมไบนารีสำหรับ GitHub และส่งพวกเขาไปที่ Itch.io เช่นกัน
# Builds docs and adds them to ct.js app
gulp docs
# Recompiles source files, bundles docs, and bakes binaries
gulp packages
# Publishes prebuilt binaries to itch.io
# This assumes that you have an access to ct.js at itch.io :)
gulp deployItchOnly
gulp deployItchOnly --channel next # deploy to a specific itch.io channel
# Creates a draft release on GitHub
# Needs a GITHUB_TOKEN in your environment variables.
# Does nothing on nightly releases
gulp sendGithubDraft
# Combines `gulp packages`, `gulp sendGithubDraft`, and `gulp deployItchOnly`
gulp deployการวิ่งครั้งแรกจะช้าเพราะจะดาวน์โหลดไบนารี NW.JS การรันถัดไปจะใช้ไฟล์แคช
ใช้ comigoji ปรุงรส gitmoji สำหรับการตั้งชื่อการกระทำของคุณ
ใช้คู่มือการตั้งชื่อ CSS ของ Comigo สำหรับการจัดแต่งทรงผม
เรามีการอ้างอิงบางอย่างสำหรับ Internals ของ CT.JS ในวิกิของเรา
แอพ CT.JS มีสไตล์ CSS ในตัวในส่วนเมตาของเมนูหลัก
CT.JS ได้รับการสนับสนุนจากคนที่ยอดเยี่ยมเหล่านี้: