游戏开发系列教程1-搭架子

120 阅读1分钟

打算开发一款网页文字游戏,类似以前qq家园的精武堂。文章不停修复,想到哪里写哪里,欢迎指正。也不知道以我的水平能不能更新完,加油吧。
游戏玩法:每个角色有多个武将,每个武将可以学习多种兵种,武将和士兵都可以穿戴装备,有队伍、帮派、副本、国战、聊天、战斗、交易。。。

技术栈方面:

  • 后端框架:nestjs
  • 数据库:mysql-5.7.x 使用typeorm
  • 缓存:redis 3.0.x
  • 通讯:websocket
  • 日志:winston

image.png

新建nestjs项目

这里使用10版本,11版本的太新了 很多第三方包还没兼容

npm i -g @nestjs/cli@10.4.11
nest new new_game

安装数据库包

pnpm install @nestjs/typeorm typeorm mysql2

安装websocket

pnpm i @nestjs/websockets @nestjs/platform-socket.io socket.io

安装redis

pnpm install @nestjs-modules/ioredis ioredis pnpm install --save-dev @types/node

连接数据库和redis

import { Module } from '@nestjs/common';
import { AppController } from './app.controller';
import { AppService } from './app.service';
import { TypeOrmModule } from '@nestjs/typeorm';
import { RedisModule } from '@nestjs-modules/ioredis';

@Module({
  imports: [
    TypeOrmModule.forRoot({
      type: 'mysql',
      host: 'localhost',
      port: 3306,
      username: 'newgame',
      password: 'newgame',
      database: 'newgame',
      synchronize: true,//自动创建表
      autoLoadEntities: true,//自动加载实体
      logging: true,//打印sql
    }),
    RedisModule.forRoot({
      type: 'single',
      url: 'redis://127.0.0.1:6379',
    }),
  ],
  controllers: [AppController],
  providers: [AppService],
})
export class AppModule {}

启动项目

pnpm run start:dev

mysql和redis请自行安装,这里不再赘述,使用一键工具就行 暂停更新吧