摘要: 五邑隐侠,本名关健昌,12年游戏生涯。 本教程以Go语言为例。 RPC指远程方法调用,游戏里引入RPC目的是降低跨进程交互的复杂度。 游戏业务设计为多go routine,一个玩家一个go routine。游戏里RPC客户端阻塞式调用远程(服务进程)方法,这样处理的好处是跨进程交互的业务也可以按照单 阅读全文
posted @ 2021-10-08 18:29 五邑隐侠 阅读(222) 评论(0) 推荐(1) 编辑
摘要: 五邑隐侠,本名关健昌,12年游戏生涯。 本教程以Go语言为例。 P2P网络为服务进程间、服务进程与客户端间通信提供了便利,在这个基础上可以搭建服务。 在服务层,通信包可以通过定义协议号来确定该包怎样处理。每个协议号对应一个Processor,Processor定义为一个interface type  阅读全文
posted @ 2021-09-18 21:17 五邑隐侠 阅读(234) 评论(0) 推荐(0) 编辑
摘要: 五邑隐侠,本名关健昌,12年游戏生涯。 本教程以Go语言为例。 一、网络层 网络游戏客户端除了全局登录使用http请求外,一般通过socket长连接与服务端保持连接。go语言的net包提供网络socket长连接相关操作。 对于服务端,一般经历 Listen、Accept两个步骤实现与客户端连接。 f 阅读全文
posted @ 2021-09-17 06:59 五邑隐侠 阅读(508) 评论(3) 推荐(2) 编辑
摘要: 五邑隐侠,本名关健昌,12年游戏生涯。 本教程以Go语言为例。 网络游戏程序分为客户端和服务端。客户端负责图形渲染、交互和一些简单校验处理,服务端负责业务逻辑处理、数据存储。 我们开发一个游戏demo,服务端程序可以是一个单线程的服务进程。它包含网络通信、业务逻辑处理、数据存储。服务端打开网络端口监 阅读全文
posted @ 2021-09-16 17:26 五邑隐侠 阅读(701) 评论(2) 推荐(2) 编辑
摘要: 五邑隐侠,本名关健昌,10年游戏生涯,现隐居五邑。本系列文章以C#为介绍语言,基于Unity2017.4.x。 一、环境搭建 我使用的是Unity+VSCode,用的是mac系统,windows的自己搜资料,步骤差不多。 1.安装Unity:下载Unity,我下载的是Unity2017.4.21f1 阅读全文
posted @ 2019-03-06 16:49 五邑隐侠 阅读(5045) 评论(1) 推荐(1) 编辑
摘要: 五邑隐侠,本名关健昌,10年游戏生涯,现隐居五邑。本系列文章以TypeScript为介绍语言。 本篇介绍有限状态机和行为树。有限状态机用于有限的状态下的AI,由于同时只能处于一个状态,多个状态需要多个有限状态机,一般用于简单的AI行为。行为树是基于固定行为,通过遍历树来决定采用哪种行为。行为的设计和 阅读全文
posted @ 2019-03-03 15:41 五邑隐侠 阅读(4998) 评论(1) 推荐(1) 编辑
摘要: 摘要: 五邑隐侠,本名关健昌,10年游戏生涯,现隐居五邑。本系列文章以TypeScript为介绍语言。 这一篇介绍A*寻路算法。在RPG、SLG、模拟经营类游戏,有需要给角色寻路的需求,一般寻路我们采用A*寻路算法,A*寻路算法是一种广度优先启发性算法。 先说说什么叫广度优先。搜索分为广度优先和深度 阅读全文
posted @ 2019-03-02 13:43 五邑隐侠 阅读(3493) 评论(0) 推荐(1) 编辑
摘要: 五邑隐侠,本名关健昌,10年游戏生涯,现隐居五邑。本系列文章以TypeScript为介绍语言。 这一篇介绍瓦片地图,在开发模拟经营类游戏、SLG类游戏、RPG游戏,都会使用到瓦片地图。瓦片地图地面是通过一个个地砖拼起来的,又分为45度角和90度角两种。45度角俗称2.5D,每个格子都是菱形,而90度 阅读全文
posted @ 2019-03-01 15:44 五邑隐侠 阅读(5580) 评论(0) 推荐(1) 编辑
摘要: 五邑隐侠,本名关健昌,10年游戏生涯,现隐居五邑。本系列文章以TypeScript为介绍语言。 这一篇简单介绍下代码结构,清晰的代码结构更有利于团队对项目的理解和维护。 1.前面我们介绍了一系列基础功能封装,这部分内容可以被不同的游戏重用。这一部分代码都可以放到framework目录下。 2.游戏业 阅读全文
posted @ 2019-02-25 10:25 五邑隐侠 阅读(3256) 评论(3) 推荐(1) 编辑
摘要: 五邑隐侠,本名关健昌,10年游戏生涯,现隐居五邑。本系列文章以TypeScript为介绍语言。 这一篇将介绍在游戏客户端常用的架构MVC架构。一个游戏的MVC如下划分: M:1)单例全局的数据中心World,所有游戏模块的数据在World中有入口,2)各个模块自己的数据结构。 V:1)通过creat 阅读全文
posted @ 2019-02-23 14:37 五邑隐侠 阅读(6244) 评论(1) 推荐(4) 编辑