自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(112)
  • 收藏
  • 关注

原创 一个FPS游戏服务器的移植估算

文章摘要:作者分享了一个FPS游戏服务端移植项目的评估经历,原计划将Windows环境下的网络通信模块移植到CentOS系统,预算4人团队3-4个月完成。经详细拆解后发现,核心的IOCP转epoll架构改造(5-6人月)存在重大技术风险,且AI工具对生产级非复刻项目效率提升有限。项目估算揭示了常见误区:节点间存在重叠消耗、人工review不可替代,最终因技术债(2003年VC7.1代码、零单元测试)和性能风险(Proactor到Reactor模型转换可能导致的性能退化)放弃承接。完整移植需18-22人月

2026-06-24 21:53:21 349

原创 SLG游戏项目 CentOS 8.4 切换阿里云 Vault 归档源完整操作文档

本文记录了在CentOS 8测试服务器上配置阿里云镜像源的详细过程。由于CentOS 8已停止官方维护,作者采用阿里云vault归档源和epel-archive源替代,包含基础源、EPEL主源和模块化源的配置方法。文章提供了完整的repo文件内容,关键操作包括备份原配置、创建新源文件、清理缓存等,并特别指出常见错误(如EPEL路径缺少Everything会报404)。最后给出了源校验方法、配套命令和长期使用建议,强调CentOS 8仅适合临时过渡,推荐迁移至RockyLinux等替代系统。

2026-06-24 08:48:53 286

原创 Nest.js 基础-8-Hello,NestJS

本文介绍了使用NestJS CLI初始化项目的完整流程。主要内容包括:1.通过CLI创建项目并解析标准目录结构,其中src为业务代码目录;2.详解核心配置文件如nest-cli.json、package.json和TypeScript配置;3.说明项目运行脚本,区分开发、生产和调试环境;4.解析src目录下的控制器、服务层和模块文件,体现NestJS模块化设计思想。文章还强调了NestJS通过模块化架构实现代码解耦,提升项目可维护性,适合中大型后端项目开发。整体帮助开发者快速建立对NestJS项目的认知。

2026-06-08 20:15:38 420

原创 NestJS基础-7: 官方 CLI 完整使用指南

NestJS CLI工具是提升开发效率的关键,支持快速初始化项目、生成标准化代码模板。本文介绍了CLI的安装与版本管理规范,强调遵循语义化版本规则。详细解析了项目初始化、generate命令等核心功能,并推荐使用degit工具快速获取成熟模板项目。建议开发者先掌握基础用法再使用模板,结合RESTful规范进行实践,循序渐进提升工程化能力。文章涵盖CLI全流程使用指南,是NestJS开发的必备参考资料。

2026-06-08 19:45:36 470

原创 Oops Framework-8-由空项目创建第一个登录界面

本文详细介绍了基于OopsFramework的游戏开发基础架构与实现流程。主要内容包括: 项目整体架构设计,采用ECS模式,包含Main入口、初始化模块、资源加载、登录系统等核心流程。 开发环境准备要求(CocosCreator3.8+和OopsFramework插件)。 核心模块实现步骤: 基础配置文件(config.json、多语言、常量枚举等) 单例模块注册与管理 游戏主入口(Main.ts) 初始化模块与资源异步加载 加载界面与原生热更功能 账号系统与登录模块 网络通信与SDK封装 提供了关键API

2026-06-07 22:17:56 257

原创 Oops Framework-7-由空项目创建Oops Framework项目

摘要:创建OopsFramework空项目首先通过CocosCreator创建2D/3D空项目,在根目录添加两个bat脚本(框架插件更新和热更新工具更新)。脚本通过git命令实现框架资源的克隆或更新(oops-plugin-framework和oops-plugin-hot-update)。执行脚本后,extension文件夹将生成标准结构。官方推荐使用工具直接创建带初始流程的项目(文档见gitee链接),但空项目有助于理解基础架构。下文将演示如何从空项目构建首个登录UI流程。

2026-06-07 21:45:07 615

原创 Oops Framework-6-项目中如何使用AI的思路

AI在编写代码时面临的主要问题是:对于小众、私有或自研框架,由于缺乏训练数据,AI无法准确生成可用代码。通用框架(如Vue、React)因有大量公开数据,AI能熟练编写规范代码;而私有框架因无公开样本,AI会完全偏离规范。解决方案是提供完整的可运行示例作为模板,让AI通过模仿而非创造来适配私有框架。这种模板相当于ClaudeCode的Skill,能封装特定项目的编码规范。具体实施步骤包括:筛选优质代码样本、提炼通用模板、将其封装为Skill并持续迭代优化。这种方法通过约束AI的创作自由度,确保输出符合私有框

2026-06-06 14:48:44 372

原创 Oops Framework-5-GUI资源的图集打包方式

CocosCreator图集使用指南:介绍了两种图集处理方法。方式一使用内置自动图集(Auto-Atlas),适合小项目,通过.pac配置文件自动合图,无需手动操作,但调试不便;方式二使用TexturePacker手动打包,适合中大型项目,可精准控制图集内容,支持实时预览。文章详细说明了两种方式的配置步骤、使用方法和注意事项,并提供了Bundle加载图集的本地/远程实现方案及Promise封装建议。特别强调微信小游戏等平台建议使用1024以下图集,分类打包更优。

2026-06-06 06:16:53 355

原创 Node.js游戏服务器项目移植 6-轻量化Token登录概述

本文介绍了基于Express框架的轻量级邮箱登录系统设计方案。系统采用Token无状态认证方案,使用MongoDB存储用户数据,通过UUID生成唯一Token和用户ID,实现自动注册登录功能。文章详细阐述了系统架构、设计思路和功能实现,包括基础服务配置、数据库连接封装、工具方法设计以及核心接口实现(邮箱自动登录、测试登录、独立注册等)。同时指出了当前方案的局限性(内存缓存、无过期机制等),并提出了生产环境优化建议(使用Redis、增加Token过期机制等),但作者表示当前方案已满足项目需求,暂不做进一步优化

2026-06-05 09:52:25 437

原创 Node.js游戏服务器项目移植 5-唯一 ID 生成方案

本文针对游戏后端业务中需要区间内不重复数字ID的场景,提出了三种ID生成方案:1)轻量级随机ID生成器RandomIds,适用于小量临时ID;2)预洗牌内存ID池ForcedRandomIds,适合中等量级内存随机ID;3)磁盘持久化ID池IdsPool,支持海量ID且服务重启不丢失。文章详细分析了各方案的实现原理、适用场景及优缺点,并提供了源码示例和选型建议。其中RandomIds简单但性能受限,ForcedRandomIds随机性好但内存占用高,IdsPool适合生产环境大规模应用。最后指出分布式场景可

2026-06-05 06:01:36 588

原创 Oops Framework-4-Oops Framework入口类Root.ts

OOPS框架的根控制器Root类负责游戏核心初始化与管理。作为游戏入口,它固定了场景结构(game和gui节点),要求Main类必须继承Root。主要功能包括:1.加载框架配置config.json;2.初始化音频、计时器、多语言等核心模块;3.管理游戏前后台切换;4.每帧驱动ECS系统;5.提供游戏层和UI层的分离结构;6.通过initGui()、initEcsSystem()和run()三个可重写方法将具体逻辑实现交给子类Main。Root类实现了框架的基础架构,开发者只需继承并重写关键方法即可快速启动

2026-06-04 10:50:25 342

原创 Oops Framework-3-Oops Framework项目创建

本文介绍了oops-framework框架的官方Demo下载与项目创建流程。主要内容包括:1)通过git克隆项目;2)Windows/Mac下执行更新脚本获取最新框架插件;3)使用CocosCreator导入项目;4)用VSCode安装Node.js依赖(建议使用腾讯镜像加速下载);5)处理Windows权限问题的方法。最后建议开发者直接基于示例项目进行二次开发,通过删除不需要的代码和prefab来快速创建新项目,而非从零开始构建。

2026-06-04 08:46:43 219

原创 Oops Framework-2-框架的原理(Cocos Creator + ECS)

本文对比了高性能DOD-ECS(如Unity DOTS)与oops-framework ECS架构的核心差异。原生DOD-ECS通过SoA内存布局实现高缓存命中率,而JS环境的oops-framework采用AoS+OOP模型,放弃缓存优化,转而通过位运算匹配、对象池和架构解耦提升性能。文章指出在Cocos+JS环境下,oops-framework通过减少GC和快速实体筛选的设计思路更为实用,适合常规商业游戏开发,而非需要极致性能的百万实体场景。这种技术选型在JS环境中具有现实意义,实现了架构解耦与适度性能

2026-06-03 17:19:57 467

原创 Node.js游戏服务器项目移植 4-MongoDB的移植

我的开发环境是老版本的win10,一开始安装的mongodb社区版的8.3版本,结果经常报1053错误无法启动mongod服务。查了半天结果要么改到版本6,要么升级win10,我实在不愿意改操作系统开发的时候降到版本6.反正API大体上是没变化的。核心层做了一个nodejs队mongodb通信的封装,而DBManager是在这个核心层进一步的二次封装,用来管理MongoDB 游戏数据库

2026-06-03 08:28:52 318

原创 Node.js游戏服务器项目移植 3-手撸简单的内存泄露监控

本文介绍了针对Node.js 24+版本的内存泄漏检测方案,替代了不再兼容的memwatch-next库。核心实现基于V8原生API:通过process.memoryUsage()获取内存数据,使用v8.writeHeapSnapshot()生成堆快照,并利用setInterval实现定时监控。方案特点包括: 支持手动/自动生成内存快照 可配置内存阈值和检测频率 使用时间戳命名避免文件覆盖 重点监控heapUsed指标而非RSS 提供完整单元测试验证功能 使用方法简单,只需引入类并调用autoWatchMe

2026-06-02 21:51:51 395

原创 Oops Framework-1-学习路线(Cocos Creator + ECS)

本文提出了一套基于Oops框架的CocosCreator游戏开发学习路径,分为六个阶段:1.框架基础(工程搭建与工具模块);2.UI系统开发(弹窗管理、MVVM数据绑定);3.动画特效(骨骼动画与对象池);4.ECS架构实战(实体组件系统设计);5.项目整合(休闲游戏和RPG案例);6.进阶优化(性能调优与热更新)。学习建议按工具→UI→ECS顺序推进,每日完成模块Demo实践并积累文档。该路线从框架入门到商业项目开发,强调通过渐进式项目实践掌握游戏前端全流程开发能力。

2026-06-02 16:43:51 671

原创 Node.js游戏服务器项目移植-2: 用TypeScript还是Javascript

nodejs服务器不仅仅可以使用javascript作为开发语言,也可以使用typescript。这里用ts实现一个简单的 城市人口查询服务器 作为例子

2026-06-01 19:57:29 88

原创 Node.js游戏服务器项目移植-1:项目移植版本环境的冲突问题以及技术选型测试

本文介绍了将Node.js项目从8迁移到24版本时的配置过程和技术选型。主要内容包括:1)手动下载Node.js 8.9.1并配置运行环境;2)Colyseus框架简介及最小示例实现;3)Express结合msgpack-lite实现消息编解码接口。文章提供了完整的配置步骤和代码示例,涵盖服务器搭建、接口实现和测试方法,为游戏服务器开发提供了实用参考方案。

2026-06-01 19:08:52 354

原创 Nest.js基础-6:关于Claude Code

摘要: ClaudeCode是Anthropic推出的终端原生AI编程智能体,基于Claude4模型,能自主执行开发任务(代码理解、编写、调试、重构、Git操作等)。其核心优势在于: 本地化运行:支持macOS/Linux/Windows,轻量安装(依赖Node.js),可对接国产模型; 智能体能力:自动读取代码库、规划任务、调用工具(Shell/Git/Docker等),支持多子代理协同; 全流程覆盖:从生成Docker配置到修复Bug,甚至通过MCP扩展连接外部工具(如Figma转代码); 适用场景:全

2026-05-31 19:56:24 397

原创 Nest.js基础-5:关于Docker的简单概述

本文介绍了Docker和Docker Compose在游戏服务器开发中的应用。作者通过Node.js游戏服务器+Redis+MySQL的项目示例,展示了Docker的核心概念:镜像(Image)作为安装包,容器(Container)作为运行实例。重点讲解了Docker Compose如何简化多容器管理,通过一个配置文件(docker-compose.yml)即可一键启动整个后端环境,实现服务间的自动连接。

2026-05-31 18:57:39 275

原创 Nest.js基础-4:Nest.js,游戏服务器,微服务架构

NestJS适合开发中小型、弱战斗、高IO的游戏服务器,如棋牌、休闲联机等场景。它原生支持WebSocket,具备强工程化能力(TypeScript+模块化),性能够满足数千并发连接。但NestJS不适合大型MMO或强实时战斗游戏的核心服务器开发,因其单线程架构无法满足CPU密集型任务和毫秒级延迟需求。建议将NestJS用于网关、逻辑服和外围服务(如账号、商城),而将核心战斗服务交给Go/C++实现。

2026-05-30 12:03:00 531

原创 Nest.js基础-3:常用框架比较

从主流 Node.js 框架的市场数据和迭代状态来看,NestJS 是目前成长性最强、社区认可度最高的企业级框架。从下载量数据来看,2022 年之后 NestJS 的使用量已经超越 Koa,而 EggJS 长期数据平稳,增长乏力。从社区热度和点赞口碑来看,NestJS 领先,其次是 Koa、Express。在版本迭代上,Koa 早已停止主动更新,技术状态老旧;而 NestJS 与 EggJS 始终保持持续维护与版本更新,项目安全性与兼容性更有保障。

2026-05-30 11:16:07 178

原创 Nest.js基础-2、Node.js的版本管理和包管理

本文介绍了Node.js开发环境搭建的核心要点:首先明确Node.js是基于Chrome V8引擎的JavaScript运行时环境,建议选择LTS版本;其次推荐使用nvm工具管理多版本Node,并详细说明了Windows和Mac系统的安装配置方法;最后对比了npm、yarn和pnpm三种包管理工具,推荐优先使用pnpm配合淘宝镜像。全文提供了从版本选择、工具安装到镜像配置的完整解决方案,帮助开发者快速搭建高效的Node.js开发环境。

2026-01-03 20:55:50 851

原创 Nest.js基础-1、简介

网站发文章活动正觉无内容可发,正好近期游戏开发后端用到了Nest.js,于是就决定水一个Nest.js的专题。因为AI的出现,开发速度加快,全栈化、工程化的趋势非常明显。Node.js这东西特别关键,天然就是为了打破了前后端壁垒而存在。而NestJS作为Node.js生态里的企业级框架,不光解决了前端做服务端开发时遇到的各种工程化麻烦,还帮开发者打通了切入AI开发的路子,此外在游戏开发领域也有广泛应用。

2026-01-03 19:03:46 633

原创 多模态大模型的新进展-空间超感知与预测性感知的尝试

多模态大模型的新进展-纽约大学和斯坦福大学提出的"空间超感知"范式通过四个递进阶段(语义感知、流式事件认知、隐式3D空间认知和预测性世界建模)突破现有框架限制。研究团队构建的VSI-SUPER基准测试显示,传统模型在长时空间回忆和持续空间计数任务中准确率极低。而基于预测性感知范式的新方法,通过预测下一帧特征、量化"意外度"和智能记忆管理,在120分钟视频任务中实现了40%的准确率,显著优于现有模型。

2026-01-02 09:00:07 954

原创 从明码 CSV 到 AES 加密 TXT:Cocos3.8 游戏数据加密实践

文章摘要: 本文探讨了Cocos3.8小游戏开发中的数据存储安全方案。作者初期使用明码CSV存储存在篡改风险,尝试二进制存储时遇到跨平台兼容问题,最终采用AES加密+TXT文件的折衷方案。思路代码Node.js,在游戏运行时解密使用,兼顾安全性与开发效率。最终代码使用c# winform

2026-01-01 02:48:30 1714

原创 Java游戏服务器开发流水账(7)网络通信简介

Java游戏服务器开发中,网络通讯是核心,涉及客户端与服务器间的数据交换。主要采用C/S架构,使用TCP或UDP协议,TCP适合需要可靠传输的场景,UDP则适合实时性要求高的游戏。数据格式包括文本协议(如JSON)和二进制协议(如Protobuf)。Java提供了多种网络编程API,如BIO、NIO、AIO,其中AIO基于回调机制,适合高并发场景。Netty和Mina是常用的高性能网络框架。网络优化策略包括减少延迟、提高吞吐量、降低带宽消耗和增强可靠性。安全与性能监控也是重要环节,包括防止DDOS攻击、数据

2025-05-13 13:03:12 1239

原创 Java游戏服务器开发流水账(6)网关服务器简介

Java游戏服务器架构中的网关服务器是连接客户端与后端服务的关键组件,主要职责包括网络通信管理、协议解析与序列化、请求路由、负载均衡和安全防护。典型架构采用分层设计,客户端通过网关服务器集群与逻辑服务器集群通信,利用注册中心进行服务发现。核心功能实现基于Netty的高性能网络层,支持多协议解析和会话管理,使用Protobuf处理游戏协议,并通过服务注册与发现动态管理后端服务。安全防护措施包括IP限流、协议校验和数据加密,性能优化则涉及连接池、异步处理和数据压缩。部署架构包括客户端、CDN/WAF、负载均衡器

2025-05-12 13:07:32 1474

原创 Java游戏服务器开发流水账(5)Spring 在游戏开发中的使用简介

Spring框架及其衍生产品SpringBoot在游戏开发中扮演着关键角色,主要用于构建游戏的后端服务,支持Unity、UnrealEngine和HTML5等客户端。Spring在游戏后端架构中主要负责游戏逻辑核心处理、服务编排、数据持久化、实时通信以及安全与认证。通过SpringMVC、SpringWebFlux、SpringWebSocket和Netty等技术,Spring能够高效处理同步和非同步请求,实现实时状态同步和低延迟交互。此外,Spring还支持多种数据存储方案,包括关系型数据库、NoSQL和

2025-05-11 03:24:41 1732 1

原创 Java游戏服务器开发流水账(4)游戏的数据持久化

Java游戏服务器的数据持久化涉及将动态游戏数据保存到持久存储介质中,以防止数据丢失并确保系统可靠性。核心目标包括数据完整性、性能优化和可扩展性。常用存储方案有:关系型数据库(如MySQL/PostgreSQL,适用于结构化数据,支持复杂查询和事务)、NoSQL数据库(如Redis/MongoDB,适合非结构化数据,读写性能高但事务支持有限)和文件存储(如JSON/XML,适合配置和日志)。关键技术实现包括ORM框架(如Hibernate/MyBatis)、缓存策略(本地和分布式缓存)、异步持久化(通过消息

2025-05-10 16:50:39 1036

原创 Java游戏服务器开发流水账(3)游戏数据的缓存简介

游戏服务器数据缓存是一种关键技术,用于临时存储频繁访问的数据,以提升游戏性能、减轻数据库负担并优化玩家体验。常用的缓存技术包括Java内存、MemCache和Redis,其中MemCache仅支持字符串类型的键值对。缓存的主要优点包括提高游戏响应速度、减轻数据库负载和减少网络带宽压力。然而,缓存也面临数据一致性、内存空间限制和系统复杂性增加的挑战。缓存管理策略包括更新策略(即时或延迟更新)和淘汰策略(如LRU、LFU、FIFO)。实际应用中,缓存涉及玩家角色数据、游戏世界数据和配置数据等,具体实现需根据游戏

2025-05-09 19:38:45 1609

原创 Java游戏服务器开发流水账(2)开发中Maven的管理

Maven 是一款流行的 Java 项目管理工具,它基于项目对象模型(Project Object Model,POM)的概念来管理项目的构建、依赖和文档等。游戏服务器开发中也会使用.

2025-05-08 20:01:57 2373

原创 Java游戏服务器开发流水账(1)游戏服务器的架构浅析

新项目立项停滞,近期读老项目代码看到Java,读代码的要点笔记记录一下。

2025-05-07 13:29:44 1737

原创 游戏的TypeScript(6)TypeScript的元编程

元编程是 TypeScript 强大的特性之一,它允许开发者在编译时进行类型操作,提高代码的安全性和可维护性。通过合理使用泛型、条件类型、映射类型和装饰器等工具,可以创建出既灵活又类型安全的代码。TypeScript 的元编程是指在编译时对类型系统进行操作和扩展的编程技术。它允许开发者创建动态类型、自动生成类型定义,以及基于现有类型构建新类型。两者并非互斥,而是互补。TypeScript(TS)和 JavaScript(JS)的元编程虽然都涉及运行时代码操作,但实现方式和应用场景有显著差异。

2025-05-06 14:02:24 1047

原创 游戏开发的TypeScript(5)TypeScript的类型转换

类型断言有<类型>值和值 as 类型这两种语法形式。非空断言操作符!可以断言某个值不为null或undefined。类型守卫能够在运行时缩小类型范围。要谨慎使用类型断言,避免引发运行时错误。在开发时,有必要才使用类型转换,优先考虑使用类型守卫和泛型等更安全的类型操作方式。

2025-05-05 21:28:31 1274

原创 游戏开发的TypeScript(4)TypeScript 的一些内置函数

cocos creator,laya,egret,phase,threejs,对ts都有良好的支持,如果感兴趣可以去官方获取相关资料进一步学习。在H5游戏开发中,TypeScript 的内置函数和类型系统特性可大幅提升开发效率和代码质量。TypeScript 的内置函数涵盖了 JavaScript 的所有原生功能,并通过类型系统增强了安全性。:利用接口、类和泛型构建健壮的游戏架构。:如类型断言、泛型、工具类型等。:使用数组方法处理游戏对象集合。:如类装饰器、方法装饰器。:异步加载和处理游戏资源。

2025-05-04 16:16:39 825

原创 游戏开发的TypeScript(3)匿名函数的常见和不常见用法

在 TypeScript 中,匿名函数是一种强大的工具,它继承了 JavaScript 的灵活性,并且通过类型系统增强了安全性和表达力。游戏开发,尤其是结构性框架的开发中经常使用这些特性。有些特性如果不了解规则看起来容易云里雾里,所以一般在游戏开发中逻辑代码中不会使用,但是在框架封装中使用,可以使执行更加高效。TypeScript 允许定义多个函数签名,增强类型安全。:条件类型、映射类型等与函数结合。:参数和返回值类型检查。:处理多种类型的灵活性。

2025-05-03 13:52:01 503

原创 游戏开发的Typescript(2)禁忌函数 - 类 eval()函数

在 TypeScript 里,eval()是个内置函数,其作用是对字符串形式的 JavaScript 代码进行解析并执行。

2025-05-02 04:08:11 1289

原创 游戏开发的TypeScript(1)TypeScript 的作用域|TypeScript编译原理

TypeScript 中的作用域规则和 JavaScript 基本一致,不过 TypeScript 增加了一些特性,像类型检查、访问修饰符(privateprotected)以及模块系统等,让作用域的管理变得更加严谨和安全。

2025-05-01 11:07:10 1591

原创 吴恩达强化学习复盘(13)小批量化和软更新(复盘完结)

小批量化是指在强化学习算法中,将经验样本(例如状态、动作、奖励等)分成小的批次,然后使用这些小批次来更新模型参数,而不是每次只使用一个样本进行更新。是一种用于提高学习效率和稳定性的技术。在强化学习中,软更新(Soft Update)是一种用于更新模型参数的技术,它与传统的硬更新(Hard Update)相对。软更新是指在每次学习步骤中,以较小的幅度将目标网络的参数向当前网络的参数进行更新。具体来说,不是直接将目标网络的参数替换为当前网络的参数(硬更新方式),而是通过一个加权平均的方式来更新目标网络参数。

2025-04-30 02:41:59 1536

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除