Skip to content

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CarPoPo 多人連線賽車遊戲

CarPoPo 是以 JavaFX 與 TCP Socket 開發的多人連線賽車遊戲 MVP。系統採用 Client–Server(用戶端/伺服器)架構,由伺服器統一管理房間、玩家狀態、物理碰撞、計圈與比賽結果,再將遊戲狀態同步給各個用戶端。

專案性質與我的參與

這是團隊共同開發專案。我以團隊成員身分跨模組參與需求討論、功能開發、測試除錯與版本整合,並非由單一成員獨立完成,也沒有將特定模組標示為個人獨立負責。

主要功能

  • 建立或加入遊戲房間,單一房間最多 8 位玩家
  • 玩家名稱、準備狀態、車輛與賽道選擇
  • Sample、Beach、City 三張賽道
  • 遊戲開始倒數與多人比賽流程
  • 伺服器端物理、碰撞與 60 Tick 狀態更新
  • 基本計圈、比賽結果與返回大廳流程

技術與架構

  • Java 17
  • JavaFX 21/Canvas
  • TCP Socket
  • Gson/JSON
  • Maven
  • Multithreading(多執行緒)與 Concurrent Collections(並行集合)
JavaFX Client A ─┐
JavaFX Client B ─┼─ TCP / JSON ─ Game Server ─ Room / Race / Physics
JavaFX Client C ─┘

伺服器使用 ConcurrentHashMap 管理連線、房間與玩家狀態,並以固定更新頻率執行遊戲迴圈。用戶端負責輸入、畫面呈現與接收伺服器狀態。

執行環境

  • JDK 17
  • Maven 3.9 以上

建置與執行

先確認專案可以編譯:

mvn clean package

接著在 IDE 中啟動伺服器:

com.racing.server.GameServer

再開啟一個或多個終端機啟動用戶端:

mvn javafx:run

同一台電腦測試時使用 localhost;跨電腦測試時輸入伺服器所在電腦的區域網路 IP。預設連接埠為 5566。

專案結構

src/main/java/com/racing/client   JavaFX 用戶端、輸入與畫面呈現
src/main/java/com/racing/server   連線、房間、遊戲流程與物理處理
src/main/java/com/racing/common   封包、狀態與共用資料結構
src/main/resources               車輛、賽道與其他遊戲資源
docs                             架構圖

已知限制

  • 尚未實作 Client Prediction(用戶端預測)與延遲補償,高延遲環境可能出現操作延遲或畫面跳動。
  • Checkpoint 邏輯已有基礎結構,但尚未完成所有賽道設定與完整驗證。
  • 目前沒有自動化測試與正式壓力測試結果。
  • 跨網路連線可能需要 Port Forwarding(連接埠轉送)或虛擬區域網路工具。

專案文件

第三方素材

  • 車輛圖、道路 Tile 與 Sample 賽道素材來自 Kenney Racing Pack,依 Creative Commons CC0 授權釋出。
  • Beach 與 City 賽道背景由團隊在開發過程中使用 Google Gemini 生成後再進行組合與調整;圖片保留 Gemini 生成標記,並依 Google 服務條款 使用。它們不屬於 Kenney Racing Pack,本 Repository 也未另行提供再利用授權。

授權說明

本 Repository 用於個人作品集與學習成果展示。團隊自行撰寫的程式碼與專案特定內容目前未附開源 License;第三方素材則依各自的原始授權使用。公開可見不代表未授權內容可被任意複製、修改或再散布。

About

JavaFX 與 TCP Socket 開發的多人連線賽車遊戲 MVP

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages