Pixel Game Server

一个基于 NestJS 的 2D 像素风游戏后端服务

技术栈

  • NestJS ^10.0.0 - 渐进式 Node.js 框架
  • TypeScript ^5.3.0 - 类型安全
  • Socket.IO - WebSocket 实时通信支持
  • RxJS ^7.8.1 - 响应式编程库

核心依赖

生产环境:

  • @nestjs/common ^10.0.0 - NestJS 核心功能
  • @nestjs/core ^10.0.0 - NestJS 核心模块
  • @nestjs/platform-express ^10.0.0 - Express 平台适配器
  • @nestjs/websockets ^10.0.0 - WebSocket 支持
  • @nestjs/platform-socket.io ^10.0.0 - Socket.IO 适配器
  • reflect-metadata ^0.1.13 - 装饰器元数据支持
  • rxjs ^7.8.1 - 响应式编程

开发环境:

  • @nestjs/cli ^10.0.0 - NestJS 命令行工具
  • @nestjs/schematics ^10.0.0 - NestJS 代码生成器
  • @types/node ^20.0.0 - Node.js 类型定义
  • ts-node ^10.9.0 - TypeScript 运行时
  • typescript ^5.3.0 - TypeScript 编译器

开发规范

命名规范

项目采用统一的命名规范,确保代码风格一致:

  • 文件/文件夹:下划线分隔(如 order_controller.ts
  • 变量/函数:小驼峰命名(如 userNameasync queryUserInfo()
  • 类/构造函数:大驼峰命名(如 UserModelOrderService
  • 常量:全大写 + 下划线(如 PORTDB_HOST
  • 接口路由:全小写 + 短横线(如 /user/get-info/order/create-order

详细规范请查看:命名规范文档

Git 提交规范

项目采用约定式提交规范,提交信息格式:<类型><简短描述>

常用提交类型:

  • feat - 新增功能
  • fix - 修复 Bug
  • docs - 文档更新
  • style - 代码格式调整
  • refactor - 代码重构
  • perf - 性能优化
  • test - 测试相关
  • chore - 构建/工具变动

后端特定类型:

  • api - API 接口
  • db - 数据库
  • websocket - WebSocket
  • auth - 认证授权
  • dto - 数据传输对象
  • service - 服务层

核心原则:

  • 一次提交只做一件事
  • 使用中文冒号
  • 简短明确(不超过 50 字符)
  • 能拆分就拆分,保持提交历史清晰

示例:

git commit -m "feat实现玩家注册和登录功能"
git commit -m "fix修复房间加入时的并发问题"
git commit -m "api添加玩家信息查询接口"

详细规范请查看:Git 提交规范文档

文档

前置要求

  • Node.js >= 18.0.0
  • pnpm >= 8.0.0(推荐)

如果还没有安装 pnpm请先安装

npm install -g pnpm

检查版本:

node --version
pnpm --version

安装依赖

pnpm install

注意首次安装时pnpm 可能会提示需要批准构建脚本。这是 pnpm 的安全特性,用于防止恶意脚本执行。

如果看到以下警告:

Warning: Ignored build scripts: @nestjs/core.
Run "pnpm approve-builds" to pick which dependencies should be allowed to run scripts.

请运行以下命令批准 NestJS 的构建脚本:

pnpm approve-builds

然后选择批准 @nestjs/core 和其他 NestJS 相关包的构建脚本。

开发

启动开发服务器(支持热重载):

pnpm dev

服务器将运行在 http://localhost:3000

构建

pnpm build

生产环境运行

pnpm start:prod

项目结构

src/
├── api/              # API 接口层(控制器、网关)
├── config/           # 配置文件
├── data/             # 数据访问层(数据库、缓存)
├── model/            # 数据模型、实体、DTO
├── service/          # 业务逻辑层
├── utils/            # 工具函数
├── main.ts           # 应用入口
├── app.module.ts     # 根模块
├── app.controller.ts # 根控制器
└── app.service.ts    # 根服务
test/
├── api/              # API 测试
└── service/          # 服务测试

下一步

  • src/api/ 目录下创建游戏相关的控制器和网关
  • src/model/ 目录下定义游戏数据模型
  • src/service/ 目录下实现游戏业务逻辑
  • 使用 NestJS CLI 快速生成模块:nest g module game
  • 添加 WebSocket 网关实现实时游戏逻辑
Description
No description provided
Readme MIT 2.8 MiB
Languages
TypeScript 99.9%