自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

雷蒙德的专栏

Unity/热更/Lua/C#/服务器/Shader/渲染/性能调优/游戏开发

  • 博客(60)
  • 资源 (2)
  • 收藏
  • 关注

原创 分享一个专业TA的《Shader参考大全》

这个网站可以在线查阅Shader相关文档的网站,越用越喜欢,特性如下: 比Unity官方文档更聚焦 文档打开速度快(相比官方文档的龟速) 目录清晰,支持搜索 西山居某在职大佬持续维护,支持开放式PR更新 传送门:Unity小白的TA之路-Shader开发|图形渲染管线|URP|性能优化|图形渲染|PostProcessing​使用场景1:我想把Shader升级到URP,该怎么做? 找到升级指南,选到“结构”,有详细指南 使用场景2:...

2021-05-03 14:33:27 598

原创 浅谈《帧同步网络游戏》之“框架”实现思路

为什么要采用帧同步帧同步是与状态同步并驾齐驱的两种网络游戏开发模式简言之,帧同步就是客户端发送操作,服务器转发给每个客户端;而状态模式是客户端发操作,收服务器计算结果帧同步最早流行是出现在局域网游戏中,如最早的红色警戒、帝国时代系列等,那时没有专用游戏服务器,游戏数据都是通过一台局域网主机转发给其他客户机进入2000,网游开始兴起,有了专门的支持大型多人在线的网络游戏服务器,为了避免作弊,这时的大部分网游都采用了状态模式进行开发,客户端只能发送操作,并得到服务器计算的结果,从而极大降低了客户端变态

2020-08-28 12:23:24 817

原创 如何设计和优化游戏服务器定时器的性能?

在使用定时器功能时,我们免不了要使用获取系统时间的函数,而在大多数操作系统上获取系统时间的函数属于系统调用,一次系统调用相对于《单进程单线程游戏服务器架构》结构中的其他逻辑来说可能耗时更多,因此为了提高效率,在一些对时间要求精度不是特别高的情况,我们可能会缓存一些时间,在较近的下次如果需要系统时间,可以使用上次缓存的时间,而不是再次调用获取系统时间的函数,目前不少网络库和商业服务在定时器逻辑这一块都使用这一策略。如图所示,图中小根堆的各个节点代表一个定时器对象,它们按过期时间从小到大排列。

2024-03-22 16:14:07 641

原创 【原神游戏开发日志5】同地图多客户端玩家同步

今天分享的是选角色、进游戏 打包演示

2024-01-31 16:32:57 339

原创 【原神游戏开发日志3】登录和注册有何区别?

登录和注册的区别

2024-01-26 12:31:52 730

原创 【原神游戏开发日志2】用户注册

本期我们讲述了《原神》游戏的第一次网络通信,解决其中的坑点,并基于我们的网络框架实现账号注册功能!

2023-12-15 07:30:00 90

原创 【原神游戏开发日志1】缘起

大家好,最近看到原神在TGA上频频获奖,作为一个14年经验的游戏开发行业的老兵,对原神游戏进行了详细的技术分解,分享给希望开发或者学习的小伙伴!

2023-12-04 19:30:00 415

原创 『完蛋!我被美女包围了』游戏开发指南

我从游戏开发者的角度对最近火爆网络的《完蛋!我被美女包围了!》做了详细的技术拆解,分享给希望开发或者学习此类游戏的小伙伴!

2023-11-30 07:30:00 451

原创 全球服的游戏服务器架构设计

本文从以下三个方面全面介绍全球服的游戏服务器端架构设计1. P2P架构2. 单线程架构3. 多线程架构

2023-11-24 19:30:00 149

原创 Unity冷知识:读取用户输入应该写在Update还是FixedUpdate里?

这是因为,Update是真正和我们机器相关,帧率受不同机器性能影响的函数,而FixedUpdate则是一个Unity自行封装定义的函数,它的默认值一般是0.02m,也就是50fps,我们可以通过Edit -> Project Setting -> Physics来改变调用间隔时间。官网上写到,物理运算要放到FixedUpdate里面进行处理,那么如果需要用Input控制物理运动,就把Input也放到FixedUpdate里面不就可以了吗?但要注意,这个值只是一个请求,你的机子可能不能达到这个速度。

2023-05-08 12:23:27 696

原创 MMORPG网络游戏开发之用户管理

MMO游戏又称大型多人在线角色扮演类游戏,在所有的角色扮演的游戏当中,玩家都要扮演一个虚拟角色,并控制角色活动MMO可以分为客户端和服务器两部分,玩家通过客户端连接到互联网登录服务器才能进行游戏,游戏玩家的数据资料保存在服务器上,游戏的开发商和运营商提供游戏的服务器以及管理虚拟世界,对游戏不断的做出更新以便留住老玩家以及吸引新玩家在之前的训练营课程里,我们已经完成了MMORPG所需的网络通信、协议序列化以及游戏的服务器和客户端部分,接下来就带大家来实现MMO游戏的用户管理。............

2022-08-31 17:56:21 443

原创 MMORPG网络游戏开发之Protobuf的基本使用

MMO游戏又称大型多人在线角色扮演类游戏,在所有的角色扮演的游戏当中,玩家都要扮演一个虚拟角色,并控制角色活动MMO可以分为客户端和服务器两部分,玩家通过客户端连接到互联网登录服务器才能进行游戏,游戏玩家的数据资料保存在服务器上,游戏的开发商和运营商提供游戏的服务器以及管理虚拟世界,对游戏不断的做出更新以便留住老玩家以及吸引新玩家今天就为大家介绍MMORPG游戏中的Protobuf的基本使用。...

2022-08-30 17:34:10 1229

原创 MMORPG网络游戏开发之网络通信

MMO游戏又称大型多人在线角色扮演类游戏,在所有的角色扮演的游戏当中,玩家都要扮演一个虚拟角色,并控制角色活动MMO可以分为客户端和服务器两部分,玩家通过客户端连接到互联网登录服务器才能进行游戏,游戏玩家的数据资料保存在服务器上,游戏的开发商和运营商提供游戏的服务器以及管理虚拟世界,对游戏不断的做出更新以便留住老玩家以及吸引新玩家........................

2022-08-29 16:23:44 1818

原创 深入浅出分布式服务器架构

本文是对分布式服务器架构的由来进行介绍,要开发一款网络游戏自然不能对开发网络游戏的历史一无所知,充分了解网络游戏开发的历史也能加深对当前网络游戏架构的理解下面就来看一看网络游戏的服务器是如何一步步的从一个简单的服务器逐渐过渡到当前热门的分布式架构服务器的

2022-08-24 17:30:16 2741

原创 帧同步:原理与实现

本文的主题是网络游戏帧同步技术详解,会用深入浅出的方式来为大家介绍帧同步的原理,以及如何实现

2022-08-23 18:19:41 6884

原创 Unity ECS实现RTS游戏中的游戏单位框选、集结和移动控制

今天想给大家分享的主题是如何实现RTS类型游戏中的游戏单位角色控制本文中会介绍如何运用最新的ECS架构来实现游戏单位控制

2022-08-22 19:06:58 2403

原创 一小时极速掌握HybridCLR热更新

HybridCLR热更新是一个新的热更新方案,根据HybirdCLR的官方自述,它的性能和开发的便利性相较于传统的热更方式都有了大幅度的提升本文会为大家讲解HybridCLR的详细情况以及如何基于HybridCLR进行游戏热更新

2022-08-19 19:27:12 4912

原创 为什么游戏需要热更新

简单来说就是为了绕过手机操作系统的安全验证因为如果手机操作系统允许我们随意从网络上下载并更新安装好的APP,那么一些不良的游戏开发者就有可能在更新的程序中植入后台或者木马程序来窃取用户的数据,甚至破坏手机系统,从而达到一些不可告人的目的...

2022-08-08 13:54:39 464

原创 ILRuntime:ILRuntime寄存器模式详解

ILRunTime虽然有很多优点,其中有一点在以前经常被拿来与Lua进行比较,就是ILRunTime的数值计算性能由于Lua采用了寄存器模式,而ILRunTime在过去是没有支持寄存器模式的,所以在比较时都会说ILRunTime的计算性能比起Lua要略微差一点但是现在ILRunTime已经增加了寄存器模式,接下来我们就来看一看什么是ILRunTime的寄存器模式以及这种模式解决了哪些问题?有哪些优点?.....................

2022-08-03 16:10:41 866

原创 Unity热更新那些事

本文想要给大家分享的是Unity热更那些事儿,会带大家了解:在打包时为什么选择使用Mono作为脚本引擎的后台?JIT与Mono有什么关系?IOS热更新的问题Lua如何进行热更新?ILRunTime热更新介绍

2022-08-03 14:22:44 942

原创 视差映射:更逼真的纹理细节表现(上):为什么要使用视差映射

视差贴图技术是相对于传统的法线贴图技术所做的一项改进视察贴图技术可以给场景里要渲染的游戏物体增加物体表面的凹凸细节,在过去为了表现物体的表面细节,通常会使用法线贴图,那么为什么又要使用视差贴图呢?它跟法线贴图有什么区别呢?下面来为大家讲解......

2022-08-03 13:32:52 794

原创 初学者也能看懂的Ray March体积云

前言今天要给大家分享的主题是现在游戏开发中必备的一项游戏效果:游戏中的云渲染现在大部分的游戏,不管是主机、PC还是手机游戏都在往3A的方向发展,所以现在的游戏在云的渲染上很少会采用传统的渲染方式大家可以想一想:平时在玩游戏时是否看到过一些传统的渲染方式、你知不知道它是用了什么样的技术来实现的?知道的同学,可以把你的答案发在我们的评论区我今天要带给大家的是一种不太一样的渲染方式,是现在很多游戏大作中必备的体积云渲染方式,比如地平线系列、大表哥二,都采用了这样的渲染技术,可以说体积云是主机游戏标配的一

2022-04-22 19:04:45 3271

原创 游戏开发入行大师攻略

本文主要从游戏行业介绍、游戏开发高薪入行标准、如何高效学习商业游戏开发技术三个方面,给大家在从游戏爱好者转变成为游戏创作者方向上指明路径

2022-03-01 12:49:13 2496

原创 屏幕后期处理之:Sobel算子实现边缘检测

版权声明本文为“优梦创客”原创文章,您可以自由转载,但必须加入完整的版权声明更多学习资源请加QQ:1517069595获取(企业级性能优化/热更新/Shader特效/服务器/商业项目实战/每周直播/一对一指导)主题—、屏幕后期处理的效果实现这个屏幕后期处理可以实现哪些效果呢?可以说是非常多,包括有边缘检测高斯模糊,不能反光运动模糊和毛玻璃那么首先我们来看一看这些效果的一个大致的概览。二、后期处理用于优化图像质量:Anti-Aliasing这里我们可以看到这个是用这个屏幕后处理做的一个

2021-09-18 12:23:00 831

原创 二次元卡通渲染-着色

各位同学大家好!欢迎大家来到我们的直播课堂,今天这节课要给大家分享的是《泛二次元卡通渲染》的技术原理与实现。近几年以来二次元卡通渲染是游戏中越来越被广泛采用的渲染方式,像我们课程封面图上的《原神》、《崩坏》、《阴阳师》、《明日方舟》都是一些非常流行的二次元手游佳作。那么今天我要分享给大家的就是如何实现二次元的风格化渲染效果,以及对于已经在职的或者在开发独立游戏的小伙伴们,如何将这项渲染技术应用在自己的项目中。主题二次元卡渲的技术概览二次元卡渲的着色实现Part 1:亮部与暗部Part .

2021-08-13 14:28:54 4590

原创 二次元卡通渲染之描边

前言本文为“优梦创客”原创文章,您可以自由转载,但必须加入完整的版权声明更多学习资源请加QQ:1517069595获取(企业级性能优化/热更新/Shader特效/服务器/商业项目实战/每周直播/一对一指导)各位同学大家好!欢迎大家来到我们的优梦创客,今天这节课要给大家分享的是《泛二次元卡通渲染》的技术原理与实现大家知道,近几年加入二次元游戏的玩家越来越多,这跟游戏玩家的群体主力都是年轻人有很大关系,今天来到咱们课堂的相信有很多都是90后或者00后的同学,同学们都是看着二次元动漫长大的,自然对

2021-08-10 14:48:31 2215 1

原创 休闲游戏开发

前言本文为“优梦创客”原创文章,您可以自由转载,但必须加入完整的版权声明更多学习资源请加QQ:1517069595获取(企业级性能优化/热更新/Shader特效/服务器/商业项目实战/每周直播/一对一指导)休闲游戏制作全攻略——兼谈兴趣爱好如何变现大家好,今天要给大家分享的主题是休闲游戏制作全攻略开发一款自己想要制作的同时也是其他小伙伴爱玩的游戏,想必是很多同学心目中的一个梦想。其实啊在我们实现这个梦想的同时,我们还可以通过小游戏的制作赚到人生的第1桶金,或者至少是赚点零花钱吧。现在st

2021-08-05 12:29:41 1470

原创 C#热更新比Lua好在哪里?

C#热更新比Lua好在哪里?大家好!在上期分享当中,给大家科普了一下,为什么游戏需要热更新?简而言之就是:热更新可以只下载一部分更新内容,而无需重新下载整个游戏APP,提升了玩家的体验。但是由于手机操作系统的限制,特别是苹果IOS的限制。手机操作系统通常不能直接支持热更新,所以就需要我们想办法去绕过这个限制。那么作为一名游戏开发者,我们具体该如何做呢?在这里有两种方案可供选择:使用基于传统的Lua的热更新方案采用基于C sharp的热更方案我们先来说第1种,如果我们采用基于Lua的热

2021-07-13 10:03:48 743

原创 为什么游戏需要热更新?

版权申明:本文为“优梦创客”原创文章,您可以自由转载,但必须加入完整的版权声明更多学习资源请加QQ:1517069595获取(企业级性能优化/热更新/Shader特效/服务器/商业项目实战/每周直播/一对一指导)为什么游戏需要热更新?简单来说就是为了绕过手机操作系统的安全验证。因为如果手机操作系统允许我们随意从网络上下载并更新我们安装好的APP,那么一些不良的游戏开发者就有可能在更新的程序中植入后台或者木马程序来窃取用户的数据,甚至破坏手机系统,从而达到一些不可告人的目的。但是手机操作系统

2021-07-09 11:35:41 1634

原创 如何实现网格建造系统

版权声明本文为“优梦创客”原创文章,您可以自由转载,但必须加入完整的版权声明更多学习资料请加QQ:1517069595获取(企业级性能优化/Shader特效/热更新/shader特效/服务器/商业项目实战/每周直播/一对一指导)网格建造系统我们的建造系统要实现的目标:WASD在地图上移动按1~6键切换建造单位类型建筑单元可占据多个网格左键按下执行建造(有建造效果)定义基础网格数据结构定义建筑预制体,点击创建实例点击创建实例解决创建位置重叠只能创建在网格内(不能横跨)根

2021-07-06 16:04:25 713

原创 一小时极速掌握游戏资源远程热更新

版权声明本文为“优梦创客”原创文章,您可以自由转载,但必须加入完整的版权声明更多学习资源请加QQ:1517069595获取(企业级性能优化/热更新/Shader特效/服务器/商业项目实战/每周直播/一对一指导)一、前言今天这篇文章一共分为两个部分,第一部分为游戏的远程热更新,第二部分为实现一个商业项目的资源热更新。二、三十分钟实现资源/代码远程热更新首先我们作一个约定,第一点我们会使用unity最新的一套资源管理的解决方案,叫做AddressableAssets。Address

2021-05-16 15:54:36 197

原创 浅谈游戏中3种常用阴影渲染技术(3):阴影贴图

浅谈游戏中3种常用阴影渲染技术(3):阴影贴图版权声明本文为“优梦创客”原创文章,您可以自由转载,但必须加入完整的版权声明更多学习资源请加QQ:1517069595获取(企业级性能优化/热更新/Shader特效/服务器/商业项目实战/每周直播/一对一指导)三、阴影贴图3.1阴影贴图的特点阴影贴图是Unity官方所采纳的一种阴影渲染方式需要一个额外的ShadowCaster通道便于实现软阴影3.2阴影贴图的实现第一步:在灯光的位置生成一张深度图,将场景中的深度值渲染到深度图里面

2021-04-25 21:09:50 786

原创 浅谈游戏中3种常用阴影渲染技术(2):阴影锥

浅谈游戏中3种常用阴影渲染技术(2):阴影锥版权声明本文为“优梦创客”原创文章,您可以自由转载,但必须加入完整的版权声明更多学习资源请加QQ:1517069595获取(企业级性能优化/热更新/Shader特效/服务器/商业项目实战/每周直播/一对一指导)二、阴影锥原理:阴影锥采用了一种叫做模板缓冲区的方式,如下图,存在一个三角形,当光源照射三角形,它会产生阴影,我们对这个三角形进行一个拉伸,正面会拉长出来一个紫色区域和一个蓝色区域,这两个区域称之为正面区域,背面会产生一个褐色区域,当这

2021-04-25 21:09:39 267

原创 浅谈游戏中3种常用阴影渲染技术(1):平面阴影

浅谈游戏中3种常用阴影渲染技术关于我们前言一、平面阴影1.1 平面阴影的特点:优势劣势1.2实现步骤1.3平面阴影中所存在的问题和解决方案(1)阴影重叠造成阴影重叠的原因:解决方法:其他问题:二、阴影锥2.1原理:三、阴影贴图3.1特点:3.2实现方式四、小结关于我们首先,简单的介绍一下我们机构,我们是优梦创客,目标是帮助各位同学创作一款大家爱玩的游戏。我是这节课的主讲老师雷蒙德。在这一行业有14年的从业经验,做过程序员、技术经理、教学经理,目前是优梦创客的创始人。我参与过的成功的项目作品有:《传奇

2021-04-24 20:59:40 768 3

转载 【备份】《Unity Shader入门精要》配图

说明:本页面是书籍《Unity Shader入门精要》的随书彩图集锦,包含了书中所有的插图,使用时可通过图片编号进行搜索。作者:冯乐乐邮箱:[email protected]前言第2章 渲染流水线图2.1 真实生活中的流水线图2.2 渲染流水线中的三个概念阶段图2.3 渲染所需的数据(两张纹理以及3个网格)从硬盘最终加载到显存中。在渲染时,GPU可以快速访问这些数据图2.4 在同一状态下渲染三个网格。由于没有更改渲染状态...

2021-04-13 12:21:11 566

原创 8个问题轻松掌握Unity前向渲染

版权申明:本文为“优梦创客”原创文章,您可以自由转载,但必须加入完整的版权声明更多学习资源请加QQ:1517069595获取(企业级性能优化/热更新/Shader特效/服务器/商业项目实战/每周直播/一对一指导)引言​ 今天想给大家分享的主题是8个问题轻松掌握Unity前向渲染。网上的很多资料或多或少讲到了前向渲染的用法,却没有讲到根本的问题:前向渲染路径是用来干什么的?它是用来解决什么样的图形问题?Unity为什么要在引擎中集成前向渲染路径这种光照渲染的解决方案?​ 这里做下自问自答,前向渲

2021-03-11 11:23:40 365

原创 Unity协程那些事(五)

商业项目的解决方案避免依赖:自定义调度器首先是如何避免对MonoBehavior的依赖。我们可以自定义一个叫调度器或者是叫定时器的东西。通过定时器的对象,我们可以实现延时规划一些工作。这样可以完全避开对MonoBehavior的依赖。避免回调地狱左边是我们有回调地狱的代码。在我们的皇室战争的项目里,我们就会使用右边这种异步调用的语法,左边一层套一层的代码就变成了三句话。底层原理的分析后面会单独开课详细分析。...

2021-03-01 16:36:45 163

原创 Unity协程那些事(四)

为什么yield能暂停协程执行经过我们的查询可以发现,我们用的Coroutine是继承自YiedInstruction,WaitForSeconds WaitForEndOfFrame也继承自YieldInstruction的,所以我们可以推断出,Unity实际上是可以对所有的继承自YieldInstruction的类去使用协程的,或者说Yied关键字,它对所有的YieldInstruction继承的类都是生效的。那么为什么是这样呢?我们不能仅仅靠推断就止步,要进一步看看为什么继承自YieldI

2021-03-01 16:34:39 255

原创 Unity协程那些事(三)

协程的特殊用法下面我们再来了解下协程的特殊用法,既然我们前面讲过协程运行到yield后会转让协程的控制权,这就是所谓协程的协的意思,协作时将控制权转让到Unity主循环。那么有没有办法让两个协作的程序同时运行呢?像上图代码所示,现在我们有两条协程,一条Start协程可以输出计数,一条辅助协程也能输出计数,那么我们能否通过这个方法实现两条协程呢?我们切到Unity里来测试一下:​- 这就说明我们的两条协程确实在一同运行。这就是协程的第一个特殊用法,只要将你的返回值类型改为IEnumerato

2021-03-01 16:34:04 170

原创 Unity协程那些事(二)

协程执行原理上图是Unity官方帮助文档的一张图。我们知道游戏是一帧一帧执行的,那么在我们游戏启动的时候,Unity会做一些初始化的工作,然后在程序退出的时候,会做一些退出工作。这些初始化和退出的工作,只会执行一次,而黑色箭头所指的部分,是Unity每一帧都会执行的。Unity默认一秒钟运行60帧,也就是一秒钟做60次循环。在每一次循环的过程中,我们重点关注 game logic部分。我们的程序会去执行四种协程。一种是yield return null的协程,返回一个空的协程,

2021-03-01 16:33:31 433

Unity官方案例精讲 彩色 带书签

Unity官方案例精讲 彩色 带书签 有需要视频案例学习的同学可以去我的淘宝小店看看:unitymaker.taobao.com

2018-12-30

空空如也

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

TA关注的人

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