魂武大陆修仙系统 (Xiuxian)项目简介魂武大陆是一款基于 Vue3 和 Django 开发的修仙主题网页游戏。游戏以中国修仙文化为背景,玩家将扮演一位踏上修仙之路的修士,通过各种修炼、探索、历练提升自身境界,结交道友,加入宗门,体验修真世界的奇妙旅程。 项目架构该项目采用前后端分离架构,分为两个主要部分: 前端(Vue3 + Vite + Element Plus)- 采用现代化的 Vue3 框架和组合式 API
- 使用 Pinia 进行状态管理,支持持久化存储
- 实现响应式设计,适配不同设备屏幕
- 采用 Element Plus 组件库和自定义 UI 组件
- 实时通信采用 WebSocket 技术
后端(Django + Channels + MySQL)- 基于 Django 5.1.7 框架开发 RESTful API
- 使用 Channels 实现 WebSocket 实时通信
- 采用 MySQL 数据库存储游戏数据
- Redis 用于缓存和消息队列
- Celery 处理异步任务和定时任务
核心功能玩家系统- 角色创建与属性系统:创建自己的修真角色,设置五行属性
- 境界系统:从凡人到仙人的完整修炼境界体系
- 物品背包系统:收集、使用、交易各类法宝、丹药、材料等
- 修炼系统:在线和离线修炼提升角色修为
社交系统- 传音聊天:多频道聊天系统,包含天下、宗门、交易、密语等频道
- 宗门系统:加入或创建宗门,与同门切磋交流
- 宗门建设:建造和升级宗门设施,提升整体实力
世界探索- 地图探索:探索不同的修真世界区域
- NPC 对话:与游戏中的 NPC 互动,接受任务,获取信息
- 任务系统:完成各类任务获取奖励
- 秘境系统:探索宗门秘境,获取稀有资源
战斗系统- 怪物系统:各类妖兽和敌对修士
- 战斗机制:回合制战斗系统
- 技能系统:学习和使用各种法术和神通
- 战利品系统:击败敌人获取修炼资源
技术栈前端技术- 框架:Vue 3 + TypeScript + Vite
- 状态管理:Pinia + 持久化插件
- UI 组件:Element Plus
- 路由:Vue Router
- HTTP 请求:Axios
- 实时通信:WebSocket
- 样式:Tailwind CSS
- 图标:Remix Icon + Iconify
后端技术- 框架:Django 5.1.7 + Channels 4.2.2
- 数据库:MySQL (通过 PyMySQL 驱动)
- 缓存与消息队列:Redis
- 异步任务:Celery + django-celery-beat
- WebSocket 支持:Django Channels
- API 认证:JWT (PyJWT)
- 跨域支持:django-cors-headers
- 异步服务器:Uvicorn
环境要求前端- Node.js 16.0.0+
- npm 8.0.0+ 或 pnpm 6.0.0+
后端- Python 3.10+
- MySQL 8.0+
- Redis 6.0+
安装与运行
前端
- # 进入前端目录
- cd frontend
- # 安装依赖
- pnpm install
- # 开发环境运行
- pnpm dev
- # 生产环境构建
- pnpm build
复制代码
后端
- # 进入后端目录
- cd backend
- # 创建虚拟环境
- python -m venv .venv
- # 激活虚拟环境 (Windows)
- .venv\Scripts\activate
- # 激活虚拟环境 (Linux/Mac)
- source .venv/bin/activate
- # 安装依赖
- pip install -r requirements.txt
- # 配置环境变量
- # 创建 .env 文件,参考后端 README.md 中的配置
- # 数据库迁移
- python manage.py makemigrations
- python manage.py migrate
- # 创建超级用户
- python manage.py createsuperuser
- # 运行开发服务器
- python manage.py runserver
- # 启动Celery Worker
- celery -A xiuxian worker --loglevel=info
- # 启动Celery Beat (定时任务)
- celery -A xiuxian beat --loglevel=info
复制代码
项目结构
前端结构
- frontend/
- ├── src/
- │ ├── api/ # API接口调用
- │ ├── assets/ # 静态资源
- │ ├── components/ # 共用组件
- │ ├── router/ # 路由配置
- │ ├── store/ # 状态管理
- │ ├── types/ # TypeScript类型定义
- │ ├── utils/ # 工具函数
- │ ├── views/ # 页面视图
- │ │ ├── app/ # 游戏主视图
- │ │ │ ├── home/ # 主页视图
- │ │ │ └── components/ # 游戏组件
- │ │ └── console/ # 管理控制台视图
- │ └── App.vue # 根组件
- ├── public/ # 静态公共资源
- ├── index.html # HTML模板
- └── package.json # 项目配置
复制代码
后端结构
- backend/
- ├── api/ # API接口定义
- │ └── v1/ # API版本1
- ├── db/ # 数据库模型定义
- │ ├── models.py # 数据模型
- │ ├── migrations/ # 数据库迁移
- │ └── tasks.py # Celery任务
- ├── utils/ # 工具函数
- ├── ws/ # WebSocket相关
- │ └── consumers/ # WebSocket消费者
- ├── xiuxian/ # 项目核心配置
- │ ├── settings.py # 项目设置
- │ ├── urls.py # URL路由配置
- │ ├── asgi.py # ASGI配置
- │ └── celery.py # Celery配置
- ├── uploads/ # 上传文件存储
- └── manage.py # Django管理脚本
复制代码
API 文档API 端点按功能模块组织,主要包括以下几类: - /api/v1/user/: 用户账户和角色管理
- /api/v1/sect/: 宗门系统
- /api/v1/inventory/: 物品和背包管理
- /api/v1/cultivation/: 修炼系统
- /api/v1/npc/: NPC 交互
- /api/v1/quest/: 任务系统
- /api/v1/monster/: 怪物系统
- /api/v1/battle/: 战斗系统
- /api/v1/map/: 地图系统
- /api/v1/console/: 管理控制台
- /api/v1/chat/: 聊天系统
WebSocket 端点- /ws/xiuxian/status/: 用户状态更新
- /ws/xiuxian/global/: 全局消息通道
部署指南使用 Uvicorn 和 Gunicorn 部署后端
- gunicorn xiuxian.asgi:application -k uvicorn.workers.UvicornWorker -w 4 -b 0.0.0.0:8000
复制代码
使用 Nginx 部署前端配置 Nginx 将前端静态文件和后端 API 请求分别代理到对应服务。
项目演示
最好在手机上游玩,有条件的可以网址打包成app游玩
游戏前台(游戏数据后台可以自定义,开放你的想象吧!)
本项目最大的特点就是数据可以自定义,腐竹可以自定义任务,NPC,物品等等。 系统设置和控制台首页暂未完善。
|