<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[码客 卢益贵 ygluu]]></title><description><![CDATA[匠心隐于形 WX/QQ: 48092788]]></description><link>https://blog.youkuaiyun.com/guestcode</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; guestcode]]></copyright><item><title><![CDATA[游戏服务器架构：基于匿名函数的高性能异步定时器系统]]></title><link>https://blog.youkuaiyun.com/guestcode/article/details/141531834</link><guid>https://blog.youkuaiyun.com/guestcode/article/details/141531834</guid><author>guestcode</author><pubDate>Sun, 25 Aug 2024 17:37:27 +0800</pubDate><description><![CDATA[本文主要介绍适用于MMO/RPG游戏服务端的、基于匿名函数做定时器回调函数的、高性能异步触发的定时器系统的设计方案，以解决常规线程loop-run-check模式的弊端。本文使用伪代码简明阐述理论。]]></description><category></category></item><item><title><![CDATA[AIGC：基于ON-DO模型的AA游戏脚本规范（AA Game Script）]]></title><link>https://blog.youkuaiyun.com/guestcode/article/details/140897408</link><guid>https://blog.youkuaiyun.com/guestcode/article/details/140897408</guid><author>guestcode</author><pubDate>Sun, 04 Aug 2024 19:49:49 +0800</pubDate><description><![CDATA[AIGC在游戏应用需要模型抽象不要指望AI能有0-1输出一个完整无误的MMORPG游戏客户服务端代码及配置表。AI和游戏中间必需有一层抽象来简化AI的操作。本文是配置层的抽象。像lua这样的脚本是一门泛行业的脚本，她神通但又逻辑性太强，对于游戏策划来说能掌控好她也不容易。本文介绍一种以特定游戏需求为抽象的脚本规范，均可以用文本表达式或者lua脚本完成。她的目的是抽象和简化配置逻辑，让和AI。]]></description><category></category></item><item><title><![CDATA[浅谈数学模型在UGC/AIGC游戏数值配置调参中的应用(AI智能体)]]></title><link>https://blog.youkuaiyun.com/guestcode/article/details/140398630</link><guid>https://blog.youkuaiyun.com/guestcode/article/details/140398630</guid><author>guestcode</author><pubDate>Sun, 14 Jul 2024 15:56:54 +0800</pubDate><description><![CDATA[众所周知，无论UGC还是AIGC，都面临一个同样问题：复杂的参数调教和简单的人机交互（含AI）的矛盾。UGC毕竟他是U，没有B的强大实力，U肯定希望简单工作就能高效产出。同样，AI还不是完美的，AI也希望简单化以提升AI成品合格率，这和U的需求相吻合。借旧图抛砖引玉：本文将阐述以数学模型为基础提出简化数值调参的一些思路。]]></description><category></category></item><item><title><![CDATA[游戏工厂：AI（AIGC/ChatGPT）与流程式游戏开发]]></title><link>https://blog.youkuaiyun.com/guestcode/article/details/139898182</link><guid>https://blog.youkuaiyun.com/guestcode/article/details/139898182</guid><author>guestcode</author><pubDate>Sun, 23 Jun 2024 12:05:13 +0800</pubDate><description><![CDATA[开发周期长、人工成本高、成功率低等使得游戏公司融资比较困难。有的公司凭一个爆款游戏一骑绝尘之后再无亮点新作，有的公司经过漫长开发没等到游戏上线公司就挂了，有的公司游戏一上线公司就挂了（数据不好再无财力持续）。好莱坞电影剧本审核流程：第一步先讲一页纸的故事，第一步Pass了再到第二步讲10页纸的故事……剧本流程通过了再到下一个流程，所以多数好莱坞电影有着不错的票房。《流浪地球2》在拍摄的时候就有很多电影学院的学员跟随记录每天遇到的问题，就是为了不断的总结和完善科幻电影的制作流程。]]></description><category></category></item><item><title><![CDATA[游戏高度可配置化（二）用“模型抽象”化解游戏策划和程序员的江湖恩怨]]></title><link>https://blog.youkuaiyun.com/guestcode/article/details/139897783</link><guid>https://blog.youkuaiyun.com/guestcode/article/details/139897783</guid><author>guestcode</author><pubDate>Sun, 23 Jun 2024 11:56:11 +0800</pubDate><description><![CDATA[众所周知，由于游戏策划的丰富想象力导致游戏服务端引擎实现起来非常艰难。因为紧迫的工期和不断变化的需求，在策划和程序之间还上演了不少江湖恩怨。本文主要介绍模型抽象在游戏服务端引擎开发中的应用。确切的说本文是上篇的补充（游戏高度可配置化（一）[1]）。抽象是从众多的事物中抽取出共同的、本质性的特征，而舍弃其非本质的特征的过程。抽象的意义在于通过抽象能透过事物的表面现象抓住事物的本质。[2]]]></description><category></category></item><item><title><![CDATA[游戏高度可配置化（一）通用数据引擎(data-e)及其在模块化游戏开发中的应用构想图解]]></title><link>https://blog.youkuaiyun.com/guestcode/article/details/139897257</link><guid>https://blog.youkuaiyun.com/guestcode/article/details/139897257</guid><author>guestcode</author><pubDate>Sun, 23 Jun 2024 11:28:58 +0800</pubDate><description><![CDATA[在插件式模块化软件开发当中，既要模块高度独立（解耦）又要共享模块数据，最好的方法是有个中间平台（中间件）提供标准的接口来进行数据的交换，这在很多行业软件开发中已经广泛应用。但是，由于中间件的抽象和封装没有具备通用性的前提，使得在实际应用中受到了很大的制约。本文将以“数据引擎”的概念来阐述通用数据中间件的理论和构成，以及以“通用数据引擎在游戏开发中的应用构想”来作为其的应用范例。本文主要针对服务端开发，但客户端也可以参考。]]></description><category></category></item><item><title><![CDATA[一个单生产-多消费模式下无锁方案（ygluu/卢益贵）]]></title><link>https://blog.youkuaiyun.com/guestcode/article/details/136972970</link><guid>https://blog.youkuaiyun.com/guestcode/article/details/136972970</guid><author>guestcode</author><pubDate>Sat, 23 Mar 2024 19:07:33 +0800</pubDate><description><![CDATA[本文介绍一个“单生产(低频)-多消费”模式下的无锁哈希类方案，这个方案的性能优于golang的RWMutex，因为它永远不会因为“写”而导致与消费者发生碰撞而导致互斥同步。关键词：生产者-消费者模型、无锁队列、golang、RWMutex。一个单生产-多消费模式下无锁方案。]]></description><category></category></item><item><title><![CDATA[游戏服务端配置“热更”及“秒启动”终极方案（golang/ygluu/卢益贵）]]></title><link>https://blog.youkuaiyun.com/guestcode/article/details/136769600</link><guid>https://blog.youkuaiyun.com/guestcode/article/details/136769600</guid><author>guestcode</author><pubDate>Sun, 17 Mar 2024 02:10:58 +0800</pubDate><description><![CDATA[众所周知，游戏服务端配置信息热更有几大问题（非lua架构）：1、因配置对象的指针被场景对象引用而导致热更复杂度提高2、信息量大的配置表热更导致游戏卡顿、玩家闪断3、一般重载后的配置信息仅影响重载后新创建的对应场景对象，不能影响已存在的场景对象4、在高度解耦的模块化开发模式下导致热更复杂度提高本示例代码将使用通用方法来演示在“高度解耦、模块化、模板化”的开发模式下对上述问题的解决方案，并提出游戏服务器秒启动的辅助方案。同时给出了完整示例代码及下载连接（见后）。]]></description><category></category></item><item><title><![CDATA[软件开发团队的管理要素]]></title><link>https://blog.youkuaiyun.com/guestcode/article/details/129332932</link><guid>https://blog.youkuaiyun.com/guestcode/article/details/129332932</guid><author>guestcode</author><pubDate>Tue, 07 Mar 2023 19:25:52 +0800</pubDate><description><![CDATA[软件开发团队的管理要素]]></description><category></category></item><item><title><![CDATA[【数据中台战略】可配置化数学建模的应用案例图解]]></title><link>https://blog.youkuaiyun.com/guestcode/article/details/127469191</link><guid>https://blog.youkuaiyun.com/guestcode/article/details/127469191</guid><author>guestcode</author><pubDate>Sun, 06 Nov 2022 19:05:46 +0800</pubDate><description><![CDATA[无论再深奥的数学理论，数学建模最终产物是：数学公式和流程步骤。这是程序能理解和执行的数学模型。
我们在数学建模的生产活动中，数学模型经常需要修改和调参，甚至推到重新建模，面对修改代码繁琐代价，痛点是：如何将数学建模活动独立在代码之外。
本文将以前述的机车系统经验为基础并加以提炼，阐述可配置化数学建模。]]></description><category></category></item><item><title><![CDATA[插件式模块化软件框架的思想图解三（数据交换系统和条件系统）]]></title><link>https://blog.youkuaiyun.com/guestcode/article/details/124780626</link><guid>https://blog.youkuaiyun.com/guestcode/article/details/124780626</guid><author>guestcode</author><pubDate>Sun, 15 May 2022 22:54:00 +0800</pubDate><description><![CDATA[文本主要介绍独立模块之间用于数据交换的数据交换系统、条件系统和公式系统组成的数据平台的设计思想，以及介绍围绕数据平台的生产-消费模型。]]></description><category></category></item><item><title><![CDATA[插件式模块化软件框架的思想图解二（案例篇）]]></title><link>https://blog.youkuaiyun.com/guestcode/article/details/119981524</link><guid>https://blog.youkuaiyun.com/guestcode/article/details/119981524</guid><author>guestcode</author><pubDate>Sun, 29 Aug 2021 20:09:35 +0800</pubDate><description><![CDATA[一、前言

本人推崇模块化设计，不是基于技术深度，而是基于管理高度（如何在多变的项目需求中提高开发效率、缩短开发周期）。本文将通过一个《火车在途实时信息系统》的火车实时和历史轨迹显示部分的简要阐述来“插件式模块化软件框架思想”的理解和应用（实际项目设计要复杂得多）。

本文涉及项目截图均已向社会公众公开，本文仅阐述行业惯例或通用做法部分，不涉及商业秘密和专利核心技术。

阅读本文前最好先阅读本人上一篇博文《插件式模块化软件框架的思想图解一（框架篇）》：

https://blog.youkuaiyun.com/gues]]></description><category></category></item><item><title><![CDATA[C++高效低延时有锁队列测试程序]]></title><link>https://blog.youkuaiyun.com/guestcode/article/details/119719776</link><guid>https://blog.youkuaiyun.com/guestcode/article/details/119719776</guid><author>guestcode</author><pubDate>Sun, 15 Aug 2021 21:19:06 +0800</pubDate><description><![CDATA[C++高效低延时有锁队列测试程序， 经过多次优化之后性能达到了最大化：10年华硕老本测试，队列速率1000万+，低延时（Pending数量少）。

下载地址：https://download.youkuaiyun.com/download/GuestCode/21098156



图1





图2



优化前通过满队列方式以提升队列通过率（图3），优化之后队列积压明显减少通过率还略有提升（图1）：



图3








...]]></description><category></category></item><item><title><![CDATA[插件式模块化软件框架的思想图解一（框架篇）]]></title><link>https://blog.youkuaiyun.com/guestcode/article/details/119701789</link><guid>https://blog.youkuaiyun.com/guestcode/article/details/119701789</guid><author>guestcode</author><pubDate>Sun, 15 Aug 2021 02:37:02 +0800</pubDate><description><![CDATA[插件化（模块化）软件框架思想的总结图解（码客/卢益贵）

关键字：插件化 模块化 软件框架 C++ Golang Rust Delphi

一、前述

关于模块化的好处在此省略1000字，网络资源很多不再赘述。从本人20多年多个行业众多项目经历来说，无论是一个人、两个人开发，还是多人协同开发，模块化在实际应用中有非常高的实效性。本文讨论的是源代码插件化框架思想，而非二进制Dll之类的插件化。如果没有特别说明，本文提及的插件和模块是同一个实体概念。

二、模块化原则

1、高度独立

要达到高度独立必须实行高]]></description><category></category></item><item><title><![CDATA[git（gitlab）子模块功能在团队协同开发和生产环境中的应用（git,gitlab,TortoiseGit,CI/CD,Jenkins,docker-compose,分支合并,开发环境,测试环境）]]></title><link>https://blog.youkuaiyun.com/guestcode/article/details/108008061</link><guid>https://blog.youkuaiyun.com/guestcode/article/details/108008061</guid><author>guestcode</author><pubDate>Fri, 14 Aug 2020 21:49:07 +0800</pubDate><description><![CDATA[git(gitlab)子模块功能在团队协同开发和生产环境中的应用



目录

git(gitlab)子模块功能在团队协同开发和生产环境中的应用



一、前言

二、先决条件

三、创建gitlab项目（项目管理员操作）

四、关联子模块（项目管理员操作）

五、开发环境提交代码（团队开发人员操作）

六、生产或测试环境合并代码（项目管理员操作）



一、前言

gitlab不仅能够提供便捷的CI/CD流程控制的方式，也能为开发团队提供便捷的版本库控制方式。

在多人协同开发时，如果一个大型的开发...]]></description><category></category></item><item><title><![CDATA[小团队大开发：iogo微服务集群框架（golang/grpc/http/protobuf/etcd/freetoo/5G物联网/服务发现/负载均衡/一致性哈希/码客/卢益贵）]]></title><link>https://blog.youkuaiyun.com/guestcode/article/details/107953644</link><guid>https://blog.youkuaiyun.com/guestcode/article/details/107953644</guid><author>guestcode</author><pubDate>Wed, 12 Aug 2020 17:18:43 +0800</pubDate><description><![CDATA[小团队大开发：iogo微服务集群框架



KeyWord: iogo,golang,grpc,protobuf,etcd,zookeeper,microservice,distributed lock,service discovery,cluster,load balancing,k8s,docker,redis,mamcache,5G物联网,微服务框架,分布式集群,分布式锁,分布式文件系统,分布式数据库,高速缓存集群,服务发现,负载均衡,容器编排,一致性哈希



目录

小团队大开发：iogo微..]]></description><category></category></item><item><title><![CDATA[一个人写一个集群：基于GRPC的golang微服务框架iogo（grpc/protobuf/etcd/freetoo/码客 卢益贵）]]></title><link>https://blog.youkuaiyun.com/guestcode/article/details/86655540</link><guid>https://blog.youkuaiyun.com/guestcode/article/details/86655540</guid><author>guestcode</author><pubDate>Sat, 26 Jan 2019 22:33:59 +0800</pubDate><description><![CDATA[一个人写一个集群：基于GRPC的golang微服务框架iogo

keyword:iogo,golang,grpc,protobuf,etcd,zookeeper,microservice,distributed lock,service discovery,cluster,load balancing,微服务,分布式锁,服务发现,负载均衡

1 iogo的初衷

iogo微服务框架是对高效的远程...]]></description><category></category></item><item><title><![CDATA[一键部署高可用etcd集群（TLS，ubuntu）（freetoo、码客、卢益贵）]]></title><link>https://blog.youkuaiyun.com/guestcode/article/details/84320945</link><guid>https://blog.youkuaiyun.com/guestcode/article/details/84320945</guid><author>guestcode</author><pubDate>Wed, 21 Nov 2018 15:09:35 +0800</pubDate><description><![CDATA[一键部署高可用etcd集群（TLS，ubuntu）（freetoo、码客、卢益贵）

 

这是一个便捷高效的部署高可用etcd集群（TLS）的脚本工具。

下载链接：

https://download.youkuaiyun.com/download/guestcode/10798474

一、【功能说明】

 1、自动安装cfssl
 2、一键生成ssl秘钥
 3、一键安装到目标主机

 

二、【使用方...]]></description><category></category></item><item><title><![CDATA[项目管理级别的自动万能通用makefile模板：t-makefile （freetoo）]]></title><link>https://blog.youkuaiyun.com/guestcode/article/details/81229127</link><guid>https://blog.youkuaiyun.com/guestcode/article/details/81229127</guid><author>guestcode</author><pubDate>Fri, 27 Jul 2018 00:25:36 +0800</pubDate><description><![CDATA[ 

项目管理级别的自动万能通用makefile模板：t-makefile （freetoo）

 

t-makefile源码及示例项目下载链接（会不定期更新）：

https://github.com/freetoo/t-makefile

 

一、t-makefile解决的痛点和难点

往往在一个项目工程中，目录名改变了、子目录变更位置了都需要去修改makefile，目录繁多的时候修改ma...]]></description><category></category></item><item><title><![CDATA[t-makefile：自动万能通用makefile模板（freetoo 码客 卢益贵）]]></title><link>https://blog.youkuaiyun.com/guestcode/article/details/81151921</link><guid>https://blog.youkuaiyun.com/guestcode/article/details/81151921</guid><author>guestcode</author><pubDate>Sun, 22 Jul 2018 11:02:24 +0800</pubDate><description><![CDATA[t-makefile：自动万能通用makefile模板（freetoo 码客 卢益贵）

 

关键字: make makefile shell find grep wildcard notdir patsubst findstring wordlist suffix foreach gcc g++ c++11 嵌入脚本 静态链接库 动态链接库 静态动态混合编译链接 语法 内嵌函数 函数嵌套执行 ...]]></description><category></category></item></channel></rss>