feat(go): Port full Ananta private server to Go architecture
This commit is contained in:
1 parent
ca2e80f9b7
commit
c73d744649
28 files changed
+3585
-57
No files matched your search
@@ -1,60 +1,56 @@
|
||||
# Ananta (Project Mugen) CBT 4229938 Private Server & Proxy Engine
|
||||
|
||||
เซิร์ฟเวอร์ส่วนตัว (Private Server) และระบบ HTTPS/SNI Proxy สำหรับเกม **Ananta (Project Mugen / 代号:无限大)** ไคลเอนต์เวอร์ชัน **CBT 4229938** พัฒนาด้วยสถาปัตยกรรม Clean Architecture C# .NET 8 (UX-RPC Binary Protocol) ร่วมกับ Node.js Proxy เพื่อจำลองการเชื่อมต่อและเล่นเกมในโหมด Sandbox / Free-Roam ได้อย่างสมบูรณ์ รองรับทั้งการเข้าเล่นผ่าน PC และ Mobile APK
|
||||
เซิร์ฟเวอร์ส่วนตัว (Private Server) และระบบ HTTPS/SNI Proxy สำหรับเกม **Ananta (Project Mugen / 代号:无限大)** ไคลเอนต์เวอร์ชัน **CBT 4229938** พัฒนาขึ้นมาทั้งในรูปแบบ **High-Performance Native Go Engine (`ananta-server.exe`)** และ Clean Architecture C# .NET 8 ร่วมกับ Node.js Proxy เพื่อจำลองการเชื่อมต่อและเล่นเกมในโหมด Sandbox / Free-Roam ได้อย่างสมบูรณ์แบบ รองรับทั้งการเข้าเล่นผ่าน PC และ Mobile APK
|
||||
|
||||
> 📖 **รายการระบบและฟีเจอร์ทั้งหมดของเซิร์ฟเวอร์**: ดูรายละเอียดฟีเจอร์เต็มได้ที่ [docs/FEATURES.md](docs/FEATURES.md)
|
||||
> 📖 **รายการระบบและฟีเจอร์ทั้งหมดของเซิร์ฟเวอร์ (36+ ระบบ)**: ดูรายละเอียดเชิงลึกและสถานะฟีเจอร์ทั้งหมดได้ที่ [docs/FEATURES.md](docs/FEATURES.md)
|
||||
|
||||
---
|
||||
|
||||
## 🛠️ ความต้องการของระบบ (Prerequisites)
|
||||
|
||||
### สำหรับ Go Native Engine (แนะนำ - รันได้ทันทีโดยไม่ต้องลงรันไทม์เพิ่ม):
|
||||
1. **Windows 10 / 11 (64-bit)**
|
||||
2. **.NET 8.0 SDK**: [ดาวน์โหลดที่นี่](https://dotnet.microsoft.com/download/dotnet/8.0)
|
||||
3. **Node.js (LTS v18 หรือ v20 ขึ้นไป)**: [ดาวน์โหลดที่นี่](https://nodejs.org/)
|
||||
4. **Git & Git LFS**: [ดาวน์โหลดที่นี่](https://git-lfs.com/)
|
||||
5. ตัวเกม **Ananta / Project Mugen (CBT Client build 4229938 หรือ Mobile APK 4063976)**
|
||||
2. ตัวเกม **Ananta / Project Mugen (CBT Client build 4229938 หรือ Mobile APK 4063976)**
|
||||
3. (ตัวเลือกเสริมสำหรับการพัฒนา) **Go 1.22+**: [ดาวน์โหลดที่นี่](https://go.dev/dl/)
|
||||
|
||||
### สำหรับ C# / Node.js Engine ดั้งเดิม:
|
||||
1. **.NET 8.0 SDK** & **Node.js (v18+)**
|
||||
|
||||
---
|
||||
|
||||
## 🚀 วิธีติดตั้งและเปิดใช้งานเซิร์ฟเวอร์
|
||||
|
||||
### 1. Clone Repository (จำเป็นต้องใช้ Git LFS)
|
||||
```bash
|
||||
git clone https://gaytea.cod-algieba.ts.net/GaCy/Ananta-ps.git
|
||||
cd Ananta-ps
|
||||
git checkout dev
|
||||
git lfs pull
|
||||
```
|
||||
|
||||
### 2. ติดตั้ง Certificate & Hosts
|
||||
### 1. ติดตั้ง Certificate & Hosts
|
||||
รันคำสั่งด้วย PowerShell (Administrator) เพื่อชี้โดเมน NetEase เข้าหาเซิร์ฟเวอร์เครื่องคุณ (`127.0.0.1`):
|
||||
```powershell
|
||||
powershell -ExecutionPolicy Bypass -File .\Ananta.Proxy\SETUP_PROXY_AS_ADMIN.ps1
|
||||
```
|
||||
*(หากต้องการยกเลิกการตั้งค่า Hosts ในภายหลัง สามารถรัน `REMOVE_PROXY_HOSTS_AS_ADMIN.ps1`)*
|
||||
|
||||
### 3. เปิดเซิร์ฟเวอร์
|
||||
ดับเบิลคลิกเปิดใช้งานผ่านไฟล์:
|
||||
### 2. เปิดเซิร์ฟเวอร์ด้วย Go Engine (รวดเร็ว, น้ำหนักเบา, รวมทุกระบบในไบนารีเดียว)
|
||||
ดับเบิลคลิกเปิดใช้งานผ่าน:
|
||||
```cmd
|
||||
START.cmd
|
||||
START-GO.cmd
|
||||
```
|
||||
หรือรันผ่าน PowerShell:
|
||||
```powershell
|
||||
powershell -ExecutionPolicy Bypass -File .\Run-All.ps1
|
||||
หรือรันผ่านคอมมานด์ไลน์:
|
||||
```bash
|
||||
.\ananta-server.exe
|
||||
```
|
||||
เมื่อขึ้นข้อความ `[READY]` แสดงว่าระบบพร้อมทำงาน:
|
||||
* **HTTPS Gateway Proxy** (พอร์ต 443/80 และ Mobile Dispatch พอร์ต 5801)
|
||||
* **Game Server** (พอร์ต 5200-5202)
|
||||
* **GM Admin Web Panel** (พอร์ต 17888)
|
||||
* **Debug WebUI Panel** (พอร์ต 5809)
|
||||
|
||||
### 4. เข้าเล่นเกม
|
||||
*(หรือหากต้องการใช้งาน C# Engine ดั้งเดิม สามารถดับเบิลคลิก `START.cmd` ได้เช่นกัน)*
|
||||
|
||||
เมื่อขึ้นข้อความ `[READY]` แสดงว่าระบบพร้อมทำงาน:
|
||||
* **HTTPS Gateway Proxy**: พอร์ต 443 (TLS SNI) / 80 (HTTP) และ Mobile Dispatch พอร์ต 5801
|
||||
* **Game Server**: Login Ports 5200, 5201 และ World Port 5202
|
||||
* **GM Admin Web Panel**: พอร์ต 17888
|
||||
* **Debug WebUI Panel**: พอร์ต 5809
|
||||
|
||||
### 3. เข้าเล่นเกม
|
||||
* **PC:** เปิดไฟล์ `Ananta.exe` แล้วกดเริ่มเกม ตัวเกมจะทำการบายพาสล็อกอินและนำตัวละครเข้าสู่โลก Sandbox ทันที
|
||||
* **Mobile (APK):** ชี้เกตเวย์หรือรันผ่าน Wi-Fi Proxy มายัง IP เครื่องเซิร์ฟเวอร์ (พอร์ต 5801/443)
|
||||
|
||||
### 5. แผงควบคุมผ่านเว็บเบราว์เซอร์
|
||||
* **GM Admin Panel**: [http://127.0.0.1:17888/](http://127.0.0.1:17888/) — จัดการไอเทม, กระเป๋า, ผู้เล่น, และอีโคโนมี
|
||||
* **Debug WebUI Panel**: [http://127.0.0.1:5809/debug](http://127.0.0.1:5809/debug) — วาร์ปพิกัด, ปรับสภาพอากาศ/เวลา, เสกเอนทิตี, และควบคุมทราฟฟิก
|
||||
### 4. แผงควบคุมผ่านเว็บเบราว์เซอร์
|
||||
* **GM Admin Panel**: [http://127.0.0.1:17888/](http://127.0.0.1:17888/) — จัดการไอเทม, วาร์ปพิกัด, สลับตัวละคร, และระบบโลก
|
||||
* **Debug WebUI Panel**: [http://127.0.0.1:5809/](http://127.0.0.1:5809/) — มอนิเตอร์การเชื่อมต่อ, เซสชันแบบ Real-Time, และ RPC Inspector
|
||||
|
||||
---
|
||||
|
||||
@@ -62,36 +58,26 @@ powershell -ExecutionPolicy Bypass -File .\Run-All.ps1
|
||||
|
||||
```text
|
||||
Ananta-ps/
|
||||
├── Ananta.Proxy/ # Node.js HTTPS Multi-Domain Proxy & Fastpatch Generator
|
||||
│ ├── proxy/
|
||||
│ │ ├── certs/ # ใบรับรอง SSL สำหรับดักโดเมน NetEase
|
||||
│ │ ├── public/ # Static config, version JSON, serverlist, fastpatch.zip
|
||||
│ │ └── server.js # Proxy Server หลัก
|
||||
├── Ananta.SDK/ # Core Network Frame, Crypto (ChaCha8), และ UxRpc Serialization
|
||||
├── Ananta.Server/ # C# .NET 8 UX-RPC Game Server
|
||||
│ ├── Ananta.App/ # Console Entrypoint, Admin Web Server (17888) & Debug Panel (5809)
|
||||
│ ├── Ananta.Core/ # Client Data Repositories, Wire Codecs & World State
|
||||
│ ├── Ananta.Gameplay/ # ระบบ Traversal, City Traffic, Living Crowd & World Engine
|
||||
│ ├── Ananta.Handlers/ # RPC Handlers (World, Switching, Gm, Vehicles, Minigames, Police)
|
||||
│ ├── Ananta.Network/ # TCP Listener & Rpc Frame Dispatcher
|
||||
│ ├── Ananta.RpcTypes/ # DTOs และ Method Contracts ของไคลเอนต์ 4229938
|
||||
│ └── ClientData/4229938/ # ไฟล์ Database Configs ของเกม (Json, LFS)
|
||||
├── cmd/
|
||||
│ └── ananta-server/ # Go Server Entrypoint (รวม Gateway + Login + Game + Web ใน binary เดียว)
|
||||
├── internal/
|
||||
│ ├── config/ # ตัวโหลดคอนฟิก private-server.json
|
||||
│ ├── gateway/ # HTTPS/SNI Proxy (443), HTTP (80) และ Mobile Dispatch (5801)
|
||||
│ ├── logingate/ # Login & Gate TCP Server (พอร์ต 5200, 5201)
|
||||
│ ├── gameserver/ # World Entry (V7 handoff), Combat, Movement, Switching (5202)
|
||||
│ └── web/ # GM Admin Panel (17888) และ Debug WebUI (5809)
|
||||
├── pkg/
|
||||
│ ├── crypto/chacha8/ # NetEase UXChaCha8 Custom Sigma Stream Cipher
|
||||
│ └── protocol/ # Binary Serializer/Deserializer, Frame Codec, Key Exchange
|
||||
├── data/
|
||||
│ └── player_info_template.bin # เทมเพลตข้อมูลผู้เล่นและไอเทมเริ่มต้น
|
||||
├── config/ # private-server.json และตารางพิกัดมินิเกม/การจราจร
|
||||
├── docs/ # เอกสารเสริม (FEATURES.md, devlog)
|
||||
├── tools/ # เครื่องมือเสริม (Car Radio, Injector, Launcher, Python)
|
||||
├── Run-All.ps1 # สคริปต์อัตโนมัติ (Fastpatch -> Build -> Launch)
|
||||
└── START.cmd # ตัวเปิดเซิร์ฟเวอร์แบบ All-in-One
|
||||
├── docs/ # FEATURES.md (ฟีเจอร์แมทริกซ์ 36 ระบบ)
|
||||
├── START-GO.cmd # รัน Go Engine ทันทีในคลิกเดียว
|
||||
└── ananta-server.exe # Single Native Binary Executable
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## ⚠️ ข้อควรระวังและการแก้ปัญหา (Troubleshooting)
|
||||
|
||||
- **เกมค้างหน้า "Initializing Game" หรือ "Initialize Client"**: ตรวจสอบว่า Fastpatch ถูกสร้างและวางไว้ในโฟลเดอร์รันไทม์เรียบร้อยแล้ว
|
||||
- **พอร์ตชน (Ports already in use)**: หากมี Process ค้างอยู่ สามารถปิดผ่าน PowerShell: `Stop-Process -Name node, Ananta.App -Force`
|
||||
- **ดาวน์โหลดไม่ผ่าน / ติด LFS Bandwidth**: ตรวจสอบว่า `git lfs pull` ดึงไฟล์โมเดลและ Database ขนาดใหญ่มาครบถ้วน
|
||||
|
||||
---
|
||||
|
||||
## ⚖️ ข้อกำหนดและเงื่อนไข (Disclaimer)
|
||||
โปรเจกต์นี้จัดทำขึ้นเพื่อการศึกษาด้าน Reverse Engineering, Network Protocol Emulation และการอนุรักษ์ซอฟต์แวร์ (Software Preservation) เท่านั้น ไม่มีส่วนเกี่ยวข้องกับ NetEase Games หรือ Naked Rain แต่อย่างใด ห้ามนำไปใช้ในเชิงพาณิชย์
|
||||
Reference in new issue
Block a user