- 博客(30)
- 收藏
- 关注
转载 帧锁定同步算法
针对高级别的抽象指令(非前后可以覆盖的键盘操作),比如即时战略游戏中,各种高级操作指令,在“乐观帧锁定”中,客户端任何操作都是可靠消息发送到服务端,服务端缓存在对应玩家的指令队列里面,然后定时向所有人广播所有队列里面的历史操作,广播完成后清空队列,等待新的指令上传。这样在即时战略游戏中,选择 250ms一个同步帧,每秒四次,已经足够了。随机数需要服务端提前将种子发给各个客户端,各个客户端算逻辑时用该种子生成随机数,另外该例子以键盘操作为例,实际可以以更高级的操作为例,比如“正走向A点”,“正在攻击”等。
2023-10-31 16:59:10
130
转载 FPS游戏同步相关
这是战术射击游戏的经典话题,玩家在转角处来回晃悠可以获得先手优势(会先看到对方),是一种网络延迟导致的不公平现象。如图所示,冲出角落的人会先看到对方,而蹲角落的人明显要晚一些看到对方。说明:这里是用了比较大的ping值来演示该效果,实际中不一定有这么明显。产生这个问题的本质原因就是网络延迟,正如上面已经讲过的:若是自己在移动,自己客户端上自己的位置是领先于其他所有世界的,而静止不动的人的位置在所有世界中都是一致的。
2023-10-31 16:14:19
191
原创 [转载]C++序列化框架介绍和对比
方式编码,不需要", {, }, :等分隔符来结构化信息,同时在编码层面使用varint压缩,所以描述同样的信息,Protobuf序列化后的体积要小很多,在网络中传输消耗的网络流量更少,进而对于网络资源紧张、性能要求非常高的场景,Protobuf协议是不错的选择。对于Cap'n proto和Flatbuffers,因为它们已经以“序列化”的形式存储数据,并且序列化基本上意味着获取指向内部存储的指针,因此我们测量完整的构建/序列化/反序列化周期。每个字段都有唯一的 tag 值,它是字段的唯一标识。
2023-10-31 16:12:42
308
原创 unity 2019 package manager 浏览备忘录
名称 备忘简述 2D系列 略 Adaptive Performance 适配表现 Adaptive performance samsung Android 三星安卓适配表现 ...
2021-03-02 11:08:36
378
转载 Unity手游实战:从0开始SLG——本地化篇(二)TMP的优势与缺点
1字体的基础知识本地化的常用手段是文本翻译,而文本翻译除了上一篇文章中提到的翻译质量之外,还需要从技术手段上支持多语言在游戏中的显示。在电子产品上展示语言或者文本,最常用的方式就是提供一个字体文件。一般来说,操作系统都会自带很多字体文件用于在该操作系统下进行常规的字体显示。(windows 7 系统目录下的字体)比如你现在看到的这篇文章的字体就来源于系统。但这样会有一个坏处,因为调用的是系统字体,那么在不同的平台,因为系统字体库的差异就会导致同一个产品在不同平台阅读的体验不一样。这对于正
2020-11-18 16:47:23
1436
转载 Unity手游实战:从0开始SLG——本地化篇(一)聊聊游戏本地化
国内政策的收紧,让游戏行业不得不转向海外市场以谋求生存。一方面,国外市场的游戏监管目前还较为宽松(得益于分级制度),另一方面,相对于内卷的国内市场而言,国外市场还是一大片的蓝海,短时间内有近乎无限的红利可以吃。游戏出海并不是近些年才兴起的,早在10几年前我就参与过了出海的游戏开发,只不过那时候还是端游。而端游的出海策略基本会和《魔兽世界》比较类似。即全球发行的内容都一样,只不过是语言和版本时间节点先后的问题。而手游出海则是很多方面的因素下促成的,其中影响最大的两个方面我认为是:法律政策和国内手游产业
2020-11-18 16:46:22
680
转载 Unity3d TextMeshPro教程
TextMesh Pro是Unity默认文本组件的替代品。TextMesh Pro和默认组件一样拥有高性能,它使用了完全不同的Signed Distance Field(SDF)渲染技术,该技术最初由Valve在《军团要塞2》中使用。TextMesh Pro能够很轻松就能让文本看起来更美观,还提供了更高级的控制功能,你可以通过检视窗口和脚本控制文本效果。当你在项目中使用TextMesh Pro,它拥有改进的视觉效果。由于使用SDF渲染技术,你可以轻松修改文本的效果,无需重新制作字体。每个TextMes..
2020-11-18 15:32:07
801
转载 Unity手游实战:从0开始SLG——客户端技术选型
项目背景所谓选型,我认为就是为了实现某(些)个需求或者解决某(些)个问题所使用的解决方案。它可能是一个技术方案,也可能是一个管理方案,也可以是一个软件、工具或者是流程规范。这篇的主题是技术选型,所以主要会分析项目客户端部分的技术解决方案。那么做选型分析之前就要先收集需求,分析需求,搞清楚我们的项目需要什么,达到什么效果,实现什么功能。除了项目本身章程和范围之外,还要看同项目的其他部门分工和合作方案(比如服务器的技术对接,美术资源的规范流程以及部分效果的实现对接),在这之外还需要考虑公司的大环境,比如
2020-11-18 15:29:47
436
原创 Dungeon Architect插件介绍
Dungeon Architect是一个unity引擎上用于流水线产出场景关卡的插件。它让你可以通过设置参数来自动或手动的快速创建关卡。这个文档就是来介绍Dungeon Architect插件的各种特性。 概述一个关卡的生成份为三个阶段元件生成 布局生成3,图形生成 元件生成Marker元件作为根节点,下面附属各类图形化Visual元件。而这些Visual元...
2018-12-01 10:32:19
5101
原创 在U3D中使用C#编程的内存管理要点
托管与非托管托管托管代码 托管代码一般是指被公共语言运行库CLR运行的代码,这些代码被编译成一种中间语言(IL),被封装在一个叫程序集(assembly)的文件中,包含了描述你所创建的类,方法和属性的所有元数据。不能直接被机器运行,因此这些代码可以在不同语言的平台之间兼容。当某些方法被调用的时候,CLR把具体的方法编译成适合本地机器运行的机器码,然后把编译好的机器码缓存到内存,以...
2018-12-01 10:23:54
370
转载 猴子都能看懂的PBR(才怪)
原文地址:https://zhuanlan.zhihu.com/p/33464301?utm_medium=social&utm_source=qq猴子都能看懂的PBR(才怪)也不知道怎么搞的,PBR(Physicallly-Based-Rendering 基于物理渲染)突然成了一个……你会了就好像什么都会,不会就好像什么都不会的标尺了……嘛,其实PBR
2018-02-03 15:36:08
24351
4
转载 vfshadow shader
Shader "ZX/BaseVertFragmentShadow" { Properties { _DiffuseTexture ("Diffuse Texture", 2D) = "white" {} _DiffuseTint ( "Diffuse Tint", Color) = (1, 1, 1, 1) } SubShad
2018-02-02 11:08:50
302
转载 3D物体在UGUI下的坐标映射
3D物体在UGUI下的坐标映射这个标题着实不好取。举例,譬如怪物的血条总是跟随者怪物移动而移动,因而我们需要实时的更新这个血条的坐标。类似的,还有很多应用场景。归结起来就如标题所示–“3D物体在UGUI下的坐标映射”。其实并不 难,只是实际工作中发现经常用到,故总结为一个工具函数,方便以后工作使用。 下面看我在 UGUI的Canvas下是如何实现的。关于坐标转换,肯定离不开相机
2018-01-30 15:32:34
532
原创 外部的加载的资源,凡是自定义shader的全部显示Hidden/InternalError..的,但在资源工程又没问题的解决方案。
这种情况一般是工程异常关闭导致的,比如断电。这种情况,只需关闭unity工程,把工程Library目录下的文件全部删除,重新启动工程即可。
2018-01-29 16:51:45
6824
转载 Unity加载模块深度解析之Shader篇
资源加载性能测试代码与上篇所提出的测试代码一样,我们对于Shader资源的加载性能分析同样使用该测试代码。同时,我们将Shader文件制作成一定大小的AssetBundle文件,并逐一通过以下代码在不同设备上进行加载,以期得到相应的资源加载性能比较。测试环境引擎版本:Unity 5.2版本测试设备:三台不同档次的移动设备(Android:红米2、红米Note2和三星S6
2018-01-09 19:32:06
601
原创 关于模型,UV有接缝黑线的问题
如果不论距离远近,都有该黑线的话,需要美术检查一下UV2. 如果是近距离看没有这个问题,而拉远到一定距离以后出现该问题的话,一般是由于该模型的贴图开启了mipmap。mipmap的机制是如果距离够远模型变得够小,就会临时生成一张小图来执行渲染。而这个时候就有可能产生UV问题。把mipmap关了即可。
2018-01-08 17:20:53
7881
转载 Unity3D shader——水的折射与反射
水的折射与反射原理其实差不多,只是一个用ComputeGrabScreenPos(o.pos)来取得贴图,一个用ComputeScreenPos(o.pos)来取得贴图。另外还需要两个脚本,一个是工具类的脚本,一个是得到反射贴图的脚本。 这里直接放上核心源码:Shader "GameCore/Mobile/Water/Diffuse" { Properties {
2017-11-27 11:58:21
5354
1
转载 Unity Shader:实现菲涅尔+色散效果以及相关原理解析
1,色散在光学中的原理 2,反射的原理以及环境映射的实现 3,折射的原理以及色散的实现 4,菲涅尔效果 5,将菲涅尔与色散效果增加到环境映射中1,色散在光学中的原理复色光 ——现实生活中的许多光都是复色光,例如阳光。 光谱 ——光学频谱,简称光谱,是复色光通过色散系统(如光栅、棱镜)进行分光后,依照光的波长(或频率)的大小顺次排列形成的图案。 htt
2017-11-27 11:55:42
1801
转载 Unity3D Shader——水的折射
这里依然用的是vertex 和fragment shader来解决水的反射的问题。首先,准备两个平面,一个平面作为底图,一个平面模拟水的波动。这里要用到抓取底图的通道 GrabPass{}。然后把抓取的通道图放到水面的那张图上。另外一个难点就是要模拟水的波动,水的波动的原理如下图: 其中顶点函数代码和片段函数代码如下:v2f vert(appdata v){ f
2017-11-27 11:36:00
1799
转载 unity海边波浪效果的实现
效果图如下(GIF因为为了把图压小所以删掉了一些帧导致后面速度突然很快,实际效果并不是这样~_~)之前在玩很多游戏的时候,注意到里面的海水和陆地相交接的地方会产生海浪,比如《海岛奇兵》,以及水面会出现一个透明渐隐的过度,而不会在水面和陆地的交界处产生硬切边。其中海浪的效果考虑到可以使用单独的面片来制作,不过最近在试着通过深度比较的方式直接计算出水面和陆地相交接的位置来制作海边的浪花,这种方
2017-11-27 11:29:05
2778
1
转载 Unity Shader:Waveform波形-复合波
1,2D复合波(上图:在xy平面有三个波,y=sinx,y=sin2x,y=sin3x。) 可以将这三个波组合成一个复合波形,根据叠加原理(superposition principle),这个复合波既是三个波形相加后的结果: y=sinx+sin2x+sin3x。 2,3D复合波利用方向向量改变3D空间中一个平面的波形的方向设任意一点点p,方向向量
2017-11-27 11:28:15
1216
原创 Unity3d 加载UnityEngine.UI.dll失败的解决方案(2017.2)
在 Unity 官方论坛找到的解决方法是重新加载 UnityEngine.UI.dll ,把下面的脚本扔到项目里,然后右键菜单中就会出现 编写一个这样的脚本using UnityEngine; using System.Collections.Generic; using UnityEditor; using System.Text.RegularExpressions
2017-11-23 16:19:22
4294
转载 Unreal4 入门(安装)
一. 在Win7下安装Unreal4在Win7下安装Unreal4需要以下几个步骤:1. 打开“控制面板”的“程序和功能” 检查是否已安装 Microsoft Visual C++ 2010 Redistributable ,请同学们先卸载掉,否则下面安装DXSDK_Jun10时会出现Error Code:S1023的错误。(卸载完成一定要重启电脑 不然还会出现Error Code
2017-09-25 15:23:50
2164
转载 【unity】【shader】屏幕高斯模糊(Gaussian Blur)后期特效的实现
本系列文章由@浅墨_毛星云 出品,转载请注明出处。 文章链接: http://blog.csdn.net/poem_qianmo/article/details/51871531作者:毛星云(浅墨) 微博:http://weibo.com/u/1723155442本文工程使用的Unity3D版本: 5.2.1 本篇文章将分析如何在Uni
2017-09-12 18:44:13
926
转载 【unity】【shader】基于MatCap实现适于移动平台的“次时代”车漆Shader
本系列文章由@浅墨_毛星云 出品,转载请注明出处。 文章链接: http://blog.csdn.net/poem_qianmo/article/details/55803629渲染本文配图使用的Unity3D版本: 5.5.0这篇文章将基于MatCap的思想,在Unity中实现了具有高度真实感的MatCap车漆Shad
2017-09-12 18:41:56
688
原创 关于武器挂点错位的问题的解决方案
客户端发现导致问题的原因在于角色在播放完动作A后,因为表现中武器需要旋转移动,所以挂点的位置在动作A最后一帧已经偏移。而玩家在此时可能技能被打断,回到了战立或者行走的动作,此时武器挂点没有归位。最初我怀疑是unity的动作在处理混入渐变的时候导致,我把所有执行混入渐变的地方全部修改为直接播放。测试发现,问题依然存在。(此结论一年半前已经得出,但是当时解决无果)。 今天再次检查和调试
2017-09-12 15:56:34
1561
原创 【unity】渲染模型在Game视窗中莫名丢失的原因之一
这两天遇到了一个这样的情况,有个项目的创建角色部分,战士职业,模型正确创建了出来,播放也正常,但是在Game视窗中就是看不到。(unity 5.3.5版本)但是有一个奇怪的现象,当Scene视窗中的摄像机处于某个位置和角度的时候,这个模型就出来了。通过调整Scene视窗中的摄像机的角度,我分析,可能是引擎做的某种优化,当模型的自身矩阵位置处于所有摄像机的视锥体之外时,这个模
2017-09-12 11:38:25
6412
转载 IL2CPP是什么?有了Mono为什么还需要IL2CPP?
作者:小玉链接:https://zhuanlan.zhihu.com/p/19972689来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。Unity3D想必大家都不陌生,独立游戏制作者们很多人都在用它,甚至一些大公司也用在很商业的游戏制作上。unity3d最大的一个特点是一次制作,多平台部署,而这一核心功能是靠Mono实现的
2017-08-29 17:16:12
1742
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人