ET6.0学习笔记
前言
前阵子猫大狠狠的更新了一波ET6.0,然后说已经稳定可用了,只是机器人什么的都还没有加入,准备今天研究下新的ET6.0,感受下经过项目千锤百炼的优秀框架的思路。
由于之前已经写过很多ET相关教程,本篇文章主要提及ET6.0的新概念和新特性,其实6.0很多知识点和之前版本一样适用,想看ET之前版本教程的,可以前往:ET篇:个人笔记汇总
本文写作时对应的commit版本:https://github.com/egametang/ET/commit/041bea5a8dc0e2caa6ccbe567d3e93bf3536e65a
基础概念
此部分内容参考:ET6.0的设计思路 推荐大家有问题先去ET论坛逛逛,里面有很多管理员整理好的日常讨论答案,技术教程,以及其他朋友提出的问题,可以学到很多知识。
ET 6.0创新概览
之前每个功能是一个进程,比如realm gate location map,现在改成每个功能是一个Scene,一个Scene可以放到一个进程中。这样一台物理机先启动固定的进程,然后各个scene放到进程中运行。非常类似docker。
所有的Scene放在一个进 ...
《刺客伍六七》观后感
原以为是喜剧,却在结尾引出来一出悲剧。
阿七摆脱不了的宿命,梅花十三送出去那封也许不会被收到的信。
小鸡岛的海风吹起十三浅蓝的裙裾,她就坐在那里一直等阿七。
江主任与赤牙也不不知道能不能有好的结局,当年只是两眼而已,就动了情,也许生死不复相见,也许师姐藏在心里十年的情谊赤牙永远都不会知道,他这么痛苦,又这么恨,用尽了全部力气。
阿七要去玄武国了,现在的他能打赢首领吗,这是青风的陷阱还是青风要借刀杀人谋夺首领之位。
前路茫茫,是刀山火海,有九九八十一难,独他一人前行。
这就是宿命
原来我看了两年的喜剧不是喜剧,而是被粉饰过的,暗埋哀意的大戏
原来在一次次大笑后,一次次快乐后,再来体会注定的命运,劫数,和那份无可奈何,才会更觉残忍
阿七就算在斯坦国王子手下守住了小鸡岛,还是不能安稳的住下去的,他的宿命在等着他回去,回到玄武国,那个腥风血雨的地方。
我又一次想起了《大话西游》《喜剧之王》还有古龙的武侠小说
我只是好奇
何导,阿七的宿命到底是什么呢
她为你换上了普通女孩的裙子,你却穿回了刺客的制服。
玄武国中违天令,只为护得挚爱全。
未料心痛如刀刺,千刃碎桥却不悔。
恰巧漂至小鸡岛,隐姓埋 ...
《守望先锋》GDC2017技术分享精粹重制版总目录
《守望先锋》2017 GDC系列的分享前几年给了我很多帮助,尤其是kevinan大神的翻译更让我受益良多,如今我再想温习一下相关技术却发现很多网络上的文章图片都已经坏掉了,故在此收集网络资源发布重置版,当成备份。
重制版内容:新增多级标题,方便分块阅读,部分图片已由本人重置,上传了武器和技能系统PDF,一些必要的地方我录制了Gif图,方便观看。
《守望先锋》架构设计和网络同步
原视频链接
《守望先锋》回放技术-阵亡镜头、全场最佳和亮眼表现
原视频链接
《守望先锋》网络脚本化的武器和技能系统
原视频链接
《伤物语》观后感
这是一段人与吸血鬼之间相互救赎,相濡以血的故事
动画制作组非常用心,画面表现手法非常独特,从下面的截图也可以看出来,还有一些旁白插入的制作手法也非常有感觉
《伤物语》是一个集魔幻,友情,爱情,搞笑,悲伤,战斗,热血于一体的艺术品
主人公的内心变化也非常多,从彷徨,懦弱到坚定,勇敢
总之是一个很推荐大家去观看的动漫
我们从《伤物语》始,也从《伤物语》终
伤痕累累的我们,相互慰藉
你若明日死,那我的生命也将止于明日
你若活过今日,那我也将陪你活过今日
我们的伤物语,就此开始
这是一段血之物语,濡血而赤,血涸而黑
它讲述着我们宝贵的,永世不愈之伤
这段物语,我将不会向任何人提起
《守望先锋》架构设计和网络同步
前言
《守望先锋》2017 GDC系列的分享前几年给了我很多帮助,尤其是kevinan大神的翻译更让我受益良多,如今我再想温习一下相关技术却发现很多网络上的文章图片都已经坏掉了,故在此收集网络资源发布重置版,当成备份。
重制版内容:新增多级标题,方便分块阅读,部分图片已由本人重置,一些必要的地方我录制了Gif图,方便观看。
全系列链接:《守望先锋》GDC2017技术分享精粹重制版总目录
原视频链接:https://www.youtube.com/watch?v=W3aieHjyNvw&t=2886s&ab_channel=GDC
ECS
ECS概述
哈喽,大家好,这次的分享是关于《守望先锋》(译注:下文统一简称为Overwatch)游戏架构设计和网络部分。老规矩,手机调成静音;离开时记得填写调查问卷;换下半藏,赶紧推车!(众笑)
我是Tim Ford,是暴雪公司Overwatch开发团队老大。自从2013年夏季项目启动以来就在这个团队了。在那之前,我在《Titan》项目组,不过这次分享跟Titan没有半毛钱关系。(众笑)
这次分享的一些技术,是用来降低不停增长 ...
《守望先锋》网络脚本化的武器和技能系统
前言
《守望先锋》2017 GDC系列的分享前几年给了我很多帮助,尤其是kevinan大神的翻译更让我受益良多,如今我再想温习一下相关技术却发现很多网络上的文章图片都已经坏掉了,故在此收集网络资源发布重置版,当成备份。
重制版内容:新增多级标题,方便分块阅读,部分图片已由本人重置,一些必要的地方我录制了Gif图,方便观看。
全系列链接:《守望先锋》GDC2017技术分享精粹重制版总目录
原PDF链接:本文部分图片如果想查看高清大图,可前往 《守望先锋》中网络脚本化的武器和技能系统 PDF 下载PDF
原视频链接:https://www.youtube.com/watch?v=ScyZjcjTlA4&ab_channel=GDC
嗨,大家好,我叫 Dan Reed, 是暴雪娱乐的游戏工程师(gameplay engineer,译注:游戏机制工程师,或者游戏工程师,都可以),今天主要跟大家分享《守望先锋》(后面统一用Overwatch表示)中的网络脚本化的武器和技能系统。
那么这里先简单介绍下我在Overwatch中的主要工作。
Statescript脚本系统,这也是今天 ...
《守望先锋》回放技术-阵亡镜头、全场最佳和亮眼表现
前言
《守望先锋》2017 GDC系列的分享前几年给了我很多帮助,尤其是kevinan大神的翻译更让我受益良多,如今我再想温习一下相关技术却发现很多网络上的文章图片都已经坏掉了,故在此收集网络资源发布重置版,当成备份。
重制版内容:新增多级标题,方便分块阅读,部分图片已由本人重置,一些必要的地方我录制了Gif图,方便观看。
全系列链接:《守望先锋》GDC2017技术分享精粹重制版总目录
原视频链接:https://www.youtube.com/watch?v=W4oZq4tn57w&ab_channel=GDC
设计目标
那么回放系统的概要设计(high level design)目标是什么呢?
这次分享的标题就预示着必须给出答案,对吧?概要需求是创建一个单一的中央系统,能够支持阵亡镜头、全场最佳和亮眼表现,除此之外我们还特别需要能够生成录像文件,在开发期间可以用来做内部调试。
下面开始深入介绍每个议题。
每次玩家死亡时,游戏里就会显示临死前几秒钟的――大部分情况是以凶手(killer)视角来看的――死因及死亡过程。阵亡镜头可以帮助玩家理解他们是怎么死的,以及为什 ...
URP下基于后处理的热空气扭曲效果
前言
前几天在网上看到一位大神的 Unity Shader-热空气扭曲效果 文章,感觉应该是个常见的效果,所以准备在URP里实现一下,正好再次深入使用一下URP,期间也遇到了一些匪夷所思的坑,也会在文章中说明。
原文中的全屏扭曲和基于GrabPass的方式都省略不谈,这里来用URP实现一下基于后处理的热空气扭曲。
环境
URP版本:7.3.1
Unity版本:2019.4.8f1
正文
原文中的实现核心思路是在需要扭曲的地方摆放一个面片,然后将这个面片渲染到一张RenderTexture上作为Mask,后处理的时候以Mask为基准决定ColorTexture哪些地方需要扭曲,然后对一张Noise图进行采样,对目标像素做偏移,达到扭曲的效果。
仔细分析后发现其实就一个难点,就是如何在URP下将物体渲染到一个RenderTexture上。
恰巧前阵子 研究战争迷雾 的时候看到了这篇文章:流朔 -【Unity URP】以Render Feature实现卡通渲染中的刘海投影 ,其中就有将物体渲染到RenderTexture的相关操作,这样一来就没有问题了,开搞。
首先创建一个Rende ...
URP下基于屏幕空间采样的战争迷雾
前言
这阵子在研究战争迷雾相关的内容,在网上找了一些文章和开源库,主要有两种做法:
一是直接在场景上放一张大面片,用作迷雾,这种方式适用于相机角度不会发生改变的情况,否则会有穿帮的风险,但这种方案性能比较好。
二是基于屏幕空间对迷雾纹理进行采样,然后通过后处理的方式得到最终游戏画面,这种方案最为稳妥,但相应的性能会低一些。
但是网上找得到的战争迷雾方案全都是Built-In管线下进行的,那么对于基于屏幕后处理的战争迷雾,就会不可避免的涉及到OnRenderImage和Blit操作,这些操作在默认不指定相机RenderTexture的情况下会涉及对GPU中的FrameBuffer进行拷贝 + 和CPU与GPU之间的数据传递,都是比较消耗性能的操作,需要尽量减少,单一个战争迷雾可能还好,后处理特效多起来后,对于移动平台来说,本就不富裕的带宽再次雪上加霜。
而URP管线下我们可以自定义Pass并自定义渲染顺序来减少Blit操作(这方面的成熟应用可以参照 ILRuntime作者林若峰分享:次世代手游渲染怎么做 ),正好我也一直想实战一下URP,所以准备研究下URP管线下的战争迷雾。
...
(译)Introduction To Direct3D 12
本文翻译自:Introduction to Direct3D 12 的前半部分,前半部分讲了一些DX细节,对于理解基础知识很有帮助,后半部分偏实践练习,翻译意义不大。
介绍Direct3D 12
DirectX 12是微软最新一代的DirectX APIS,Direct3D 12是其图形API集合(其余API类型为DirectSound,DirectInput,DirectDraw等)。Direct3D 12比先前的任何一个Direct3D版本表现的都要好,Direct3D提供了对于图形硬件更加底层的控制来允许更加高效的利用多线程。我们可以利用多线程来填充command lists。有更多控制权同时也意味着我们需要承担更多的责任,例如CPU/GPU同步以及内存管理。
Direct3D通过使用预编译的pipeline state objects(PSO)和command lists(bundles)来最小化CPU开销。
在我们应用的初始化阶段,我们会创建很多由shaders(vertex,pixel等)和其他管线状态(blending,rasterizer,primitive top ...