- 博客(45)
- 收藏
- 关注
原创 Visual Effect Graph魔改录
欢迎参与讨论,转载请注明出处。前言前文提到关于粒子想实现一些东西,本篇便来还愿了。Demo使用的粒子系统并非传统的Particle System,而是基于GPU的Visual Effect Graph,下文简称VEG。 VEG的问题与近年来Unity新出的模块一样:有些功能就做了个壳没下文了,我需要的光照探针功能便是如此。尽管VEG在编辑器做了支持,但实际上功能是没实现的:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SkALH4dT-1602157907416)(
2020-10-08 19:54:36
459
原创 在URP实现水面效果
欢迎参与讨论,转载请注明出处。前言Demo的场景也到了做水面的时候了,在涉及技术之前首先要确定的是美术表达:当然大体上也就是卡通水与写实水的抉择,最终决定是做出《伊苏:起源》那样的写实水(注重扭曲、透视、无形变),并在此之上现代化。上色首先我们先找个小池子作为试验场地——这样利于观测,那么很显然密室场景的熔岩就可以暂退了: 水面的本质很简单,它就是个面片而已(不论海浪)。最直接的第一步自然是上色: 上色之后自然是透视,把材质设置为Transparent,调整下透明度: 很好,其
2020-09-06 20:45:46
4204
3
原创 在Demo实装光照烘焙与探针
欢迎参与讨论,转载请注明出处。前言Demo目前的实时光影虽已完成,但考虑到不同的配置设备,还是得做出不同档次的光影方案。那么烘焙光照(Lightmapping)与光照探针(Light Probes)就免不了了。本文将结合项目实际需求,讲述遇到的问题及解决方案。项目引擎版本为2019.4,渲染管线为URP。初步的烘焙首先要做的自然是对Shader增加光照烘焙与探针的支持,照抄URP的SimpleLit Shader即可。大致要点如下:Shader添加multi_compile:LIGHTMAP_O
2020-08-02 21:26:14
722
原创 在URP实现局部后处理描边
欢迎参与讨论,转载请注明出处。前言最近在Demo开发的过程中,遇到了一个细节问题,场景模型之间的边界感很弱: 这样就会导致玩家难以分辨接下来面对的究竟是可以跳下去的台阶,亦或是要跳过去的台阶了。我们想到的解决方法便是给场景模型加个外描边,以此区分: 整挺好,于是本文就来介绍一下实现思路。首先按照惯性我们直接采用了与人物相同的法线外扩描边,但是效果却不尽人意: 这完全就牛头不对马嘴,既然老办法不好使那就看看后处理描边吧。不过由于Demo使用的渲染管线是URP,在后处理这块与原生完全不同。
2020-07-05 21:37:33
3463
2
原创 3D瓦片地图采坑录
欢迎参与讨论,转载请注明出处。前言由于Demo的场景风格主打像素风格(这里的像素风格指具备一定精度的风格,而非时下流行的马赛克),故决定使用瓦片(Tile)地图来实现。也就是这种东西: 游戏地图将由一个个规范化的单位图片拼接而成,是为瓦片。在早期的像素风格游戏可谓相当流行,因其构造成本低(无论从技术上还是美术上),而却能灵活拼接出各种各样的地图。于是我们也打算如此,但是在3D游戏下搞瓦片地图确是罕见得很。于是便开始了采坑之旅,遂成本文。Sprytile首先我们想到了在3D游戏下最接近瓦片地图思
2020-06-07 21:49:25
939
原创 Demo的卡通渲染方案
欢迎参与讨论,转载请注明出处。前言本篇文章按理来说在三月便该发布了,因为插队原因延宕至今,不过好饭不怕晚,干就完了奥利给!阅读本文最好拥有一定的图形学知识,当然看个热闹也是好的。 游戏画面的风格是一开始便要定下的大事,这在古法2D主要通过素材本身及后期调色决定,没有太多文章可作。而在现代游戏(尤其是3D)则会通过Shader在原本的元素上进行加料,如通过基于物理的渲染(PBR)将模型凸显出金属、石头、布料等材质倾向。而在早期为了凸显3D模型的立体感,一般会采用经验总结出来的冯氏光照模型(Blinn-
2020-05-10 22:58:23
668
原创 移植贪吃蛇——从C#到C++
欢迎参与讨论,转载请注明出处。前言因为某些机缘巧合,引起了我对C++的重视。一时兴起,决定将两年前用Unity写的Snake进行移植。经过两周的抽空,总算是完成了。项目采用现代C++标准编写,采用CMake构建,图形库为SDL。由于本次的重点不在于图形这块,所以没有使用原版的素材,采用矩形代替。 在工程实现上除了基本的业务外,还实现了C#的event以及的Unity的GameObject与...
2020-04-07 15:54:21
306
原创 Shader Graph踩坑实录
欢迎参与讨论,转载请注明出处。前言Demo也到了做渲染的时候了,经过一番鏖战后,算是大体完成了。但随着后续需求的到来,发现这套纯代码的Shader方案对于扩展、复用等方面有着诸多不便。于是便打起了Shader Graph的主意……经过一番纠缠,于是有了本篇踩坑实录。另附源码地址,但本篇并不会对其做讲解。基于Unity2020.1.0a20,渲染管线为URP7.18。优劣首先要明确的是:Sh...
2020-03-08 19:14:08
3538
2
原创 Unity骨骼动画的总结
欢迎参与讨论,转载请注明出处。前言恰逢疫情,在家继续推进Demo,骨骼动画相关的调研算是告一段落了,遂以本文记录相关要点。 首先要明确一点,本文所说的骨骼动画皆是3D模型的骨骼动画,与2D精灵的骨骼动画无关,虽然原理大致相通。网格、骨骼、绑定了解过3D相关知识的都知道,模型(Model)是由一个个三角形组成的,而这种三角形的学名则是网格(Mesh)。当然在DCC软件里为了方便创作,会用...
2020-02-01 18:25:20
1770
原创 Unity光照模式的总结
欢迎参与讨论,转载请注明出处。前言近日在琢磨Demo应该选择怎样的光照模式,遂做了个试验:对比在同一场合下,各种模式的情况。故以此文记录之(版本为2019.2、平台为Standalone、渲染管线为Builtin)。环境光环境光(Ambient)严格来说并不是一种光照,它只是单纯的为所有显示元素上色罢了。可以理解为2D游戏便是有个(255, 255, 255)环境光。可于**(Window...
2020-01-12 21:19:10
1102
原创 2019年度总结
与前两年不同,今年可没有“不知不觉中,一年又过去了”的感觉。也许是上班了之后,对日子有了概念吧(毕竟元旦放假,笑)。同时与前两年相同,特作总结,以为归纳。 今年的Blog内容只有寥寥6篇,且全是DFQ相关。盖因10月之前都在紧张的开发中,实是无暇整点别的,希望明年有所不同吧。 若论今年最大的成就,自然是DFQ的完成了。相关事宜也在后记有所总结。算是这些年来DNF同人的一张答卷吧。 除此...
2019-12-31 21:58:49
166
原创 《DFQ》开发随录——后记
欢迎参与讨论,转载请注明出处。前言DFQ终究是顺利的开发完成,并在发布之后的短短四日内达到接近十万的下载量。赢得广大玩家的好评,甚者认为比之官方的手游品质更佳。然而这一切恍若黄粱一梦,于昨日晚上收到了来自腾讯的律师函,要求删除相关下载渠道与宣传内容。 取得这等成绩自是喜人,能被腾讯警惕也证明品质确实出色。只可惜游戏尚有一些待完善之处,无法再为玩家提供更新了。在此期间也有不少请求换皮合作的邀...
2019-10-17 13:14:00
936
2
原创 《DFQ》开发随录——AI
欢迎参与讨论,转载请注明出处。前言·DFQ是PVE(Player VS Environment)游戏,那么自然要有AI了。DFQ的AI实现并不算复杂,并没有用到时下流行的行为树(Behavior Tree)。原因在于不需要做到太精细的操作,且AI部分的业务不需要执行策划参与(不需要编辑器化)。本文将一一叙述其中要点,相信对于同类型的游戏也有一定的参考价值。宗旨·AI设计的宗旨只有一个:根据...
2019-05-31 21:16:00
602
原创 《DFQ》开发随录——打击感
欢迎参与讨论,转载请注明出处。前言·对于动作游戏(本文所谓的动作游戏具体指由FTG衍生而来的「超人系ACT」,如鬼泣、猎天使魔女等)而言,打击感自然是重中之重,本篇就来讲讲DFQ的打击感实现思路吧。·首先要明确打击感的定义,本人将之定义为:攻击命中时产生的反馈。就这点而言,打击感并非是动作游戏的专属,凡是涉及到攻击交互的游戏都有。而动作游戏与之不同在于会对在攻击中附加控制效果(击退、击飞等)...
2019-04-30 18:03:13
1061
原创 《DFQ》开发随录——随机掉落
欢迎参与讨论,转载请注明出处。前言随机掉落可谓时下RPG的流行设定,DFQ自然也不例外。而掉落业务自然也有其值得细说之处,不然也就不会有本文了(笑)。接下来将一步步引申出随机掉落的实现演进。粗劣的实现在以往的开发生涯中,对于掉落业务,我采取了很粗劣的实现:local random = math.random() -- 0-1local pool -- drop poolif (ra...
2019-03-31 14:49:52
1342
原创 在macOS搭建LÖVE for iOS平台
欢迎参与讨论,转载请注明出处。前言继上回在macOS搭建LÖVE for Android平台后,这次买了新的iPhone,对iOS平台的发布自然也要开始了。如上回一般,也发现了不少实操中会遇到的问题,特此记录,以便后人。实机调试LÖVE for iOS的编译可谓相当容易,前提是你必须拥有一台macOS以及iOS设备,并且安装了Xcode。如官方教程所言般进行便是,大致上就是下载LÖVE源码...
2019-03-01 00:34:05
198
原创 《DFQ》开发随录——随机地图
欢迎参与讨论,转载请注明出处。前言虽然先前未曾严明,但《DFQ》的全称为《DungeonFighterQuest》,由字面上便可得出,这是一款《DNF》的同人游戏,那么《DFQ》的地图自然向《DNF》看齐了。而《DNF》的地图众所周知,具有一定的复杂度,在以往的作品开发过程中便是采取了手动制作的方式,可谓十分的费时费力。于是在《DFQ》便采用了生成随机地图的方式,与市面上许多独立游戏的做法不谋...
2019-01-30 19:24:53
887
原创 《DFQ》开发随录——ECS
欢迎参与讨论,转载请注明出处。前言在阅读本文之前,你需要了解一下何为ECS框架,今年年初本人也对此进行了相关研究。到了实际开发时发现确实有此需求,遂应用之。本文便记录其中心得。ECS的意义在讨论实现细节之前,首先要弄明白一个关键问题:为何要用ECS? 对于我而言,使用ECS的意义在于使用传统OOP方式构造一个高度复杂的对象集时异常困难。在我看来,高度复杂的对象集即「多衍生物、衍生物之间多...
2018-12-27 01:02:18
1060
转载 TPS游戏网络同步总结
欢迎参与讨论,转载请注明出处。 本文转载自https://musoucrow.github.io/2018/12/02/tps_sync/前言因友人的项目要做TPS联机对战游戏,本人遂对此进行了一番研究,经过四回的辗转反侧,Demo总算是做出来了。本次Demo是C/S一体化的设计,即服务端也是Unity做的(可选择1P兼任服务器或者将Unity以命令行模式运行于服务器)。网络模块采用了UD...
2018-12-03 01:57:03
1852
转载 《DFQ》开发随录——界面
欢迎参与讨论,转载请注明出处。 本文转载自https://musoucrow.github.io/2018/10/29/dfq_ui/前言在游戏开发的领域里,界面(User Interface)是不可或缺的,在一些强大的游戏引擎会为其配备一套解决方案。和之前的一系列问题一样,LÖVE自然是不会提供的,所以又得自己折腾一套了,本文便记录其中心得。层级许多年前,因我年少没经验,写UI都是...
2018-10-29 21:16:42
984
转载 在macOS搭建LÖVE for Android平台
欢迎参与讨论,转载请注明出处。 本文转载自https://musoucrow.github.io/2018/08/24/build_love_android/前言 近日在搭建macOS下的LÖVE for Android遇到了不少问题,虽然有官方Wiki的帮助,但却发现了不少实操中才会遇到的问题,特此记录,以便后人。JDK 由于安卓SDK只支持到了JDK8...
2018-08-24 21:25:30
274
转载 《DFQ》开发随录——资源管理
欢迎参与讨论,转载请注明出处。 本文转载自https://musoucrow.github.io/2018/07/27/dfq_res/ 前言 在游戏开发的领域里,游戏资源的管理可谓一个很重要的基础功能,在一些强大的游戏引擎会为其配备一套解决方案。而LÖVE很不幸的再次没有提供,好在即使没有也起码做好了内存管理的工作,那么即便自己动手做一套也不是什么困难的事了,本文便记...
2018-07-27 19:05:04
1349
转载 《DFQ》开发随录——图集
欢迎参与讨论,转载请注明出处。 本文转载自:https://musoucrow.github.io/2018/06/23/dfq_sheet/ 前言 在游戏开发的领域里,图集(SpriteSheet)是一个很重要的概念,其好处在链接处也已言明。但若是引擎没提供相关的支持,那么便需要自己搞个解决方案了。而LÖVE也恰好是没有提供相关支持的,那么只好自己动手丰衣足食了,...
2018-06-23 23:55:39
493
1
转载 Lua的local变量探究
欢迎参与讨论,转载请注明出处。 本文转载自:https://musoucrow.github.io/2018/04/17/lua_local/ 前言 先前看到用好Lua+Unity,让性能飞起来—LuaJIT性能坑详解一文中提到:3.2 寄存器分配失败->减少local变量、避免过深的调用层次很不幸的一点是,arm中可用的寄存器比x86少。LuaJIT为了速度...
2018-04-17 15:34:36
3001
转载 ECS框架的初步探究
欢迎参与讨论,转载请注明出处。 本文转载自:https://musoucrow.github.io/2018/03/19/ecs_first/ 前言 在阅读这篇文章之前,你需要了解一下何为ECS框架。关于ECS框架,其实近年来一直想去尝试,终于在近日有所体悟,遂有此文。详解 ECS框架的存在实际上很早就出现了(我记得最初在2003年),近年随着《守望先锋》架构设...
2018-03-19 17:12:10
5973
2
转载 《Brick & Ball》开发总结(三)——游戏性
欢迎参与讨论,转载请注明出处。 本文转载自:https://musoucrow.github.io/2018/03/12/bnb_3/前言 总算到了最后一篇了,这篇我想写一些关于本游戏在画面表现与游戏性方面的总结,毕竟游戏项目的重点不仅在于程序,还在于策划与美术。 《Brick & Ball》(下称BNB)从游戏元素来看其实就是乒乓球与打砖块的结合,但其实创作灵感...
2018-03-12 20:08:21
370
转载 《Brick & Ball》开发总结(二)——服务端
欢迎参与讨论,转载请注明出处。 本文转载自:https://musoucrow.github.io/2018/03/11/bnb_2/ 前言 书接上文,这次要讲的是服务端。《Brick & Ball》(下称BNB)所需要的网络功能仅为匹配与联机对战而已,所以在最初对此是轻视的,在尝试了UNet与Photon之后感觉各有硬伤(UNet不支持纯服务端架设、Pho...
2018-03-11 23:40:10
445
转载 一次移植代码时关于For循环的发现
欢迎参与讨论,转载请注明出处。 本文转载自:https://musoucrow.github.io/2018/03/12/for_loop/前言 今日使用Python移植一份C++实现的算法发生了效果不一致的问题,经过仔细分析后发现问题竟出自For循环,由此引申此文。详情 首先来看看C++的For循环:int i = 0;for (i = 0; i...
2018-03-11 01:21:21
165
转载 《Brick & Ball》开发总结(一)——帧锁定同步
欢迎参与讨论,转载请注明出处。 本文转载自:https://musoucrow.github.io/2018/03/09/bnb_1/ 前言 辗转反侧三个月,《Brick & Ball》(下称BNB)的开发工作总算告一段落了,游戏也顺利地在TapTap上架以及在Github开源了。接下来将会对帧锁定同步、服务端、游戏性三方面进行开发的总结,预计会用三篇完成,...
2018-03-09 21:30:41
1308
转载 C#之弱事件(Weak Event)的实现
欢迎参与讨论,转载请注明出处。 本文转载自https://musoucrow.github.io/2018/02/18/weak_event_csharp/ 前言 最近使用C#开发项目时,发现一个会导致内存泄漏的陷阱——event里的成员并非弱引用,这样便会导致与event相关联的对象都不会被回收,从而导致内存泄漏。如此便很有必要实现一款弱事件(Weak Event)...
2018-02-18 23:22:08
520
转载 《DNFMobile》图片资源提取笔记
欢迎参与讨论,转载请注明出处。 本文转载自https://musoucrow.github.io/2018/01/20/dnf_mobile_ex/ 前言 《DNFMobile》的新一波内测到来了,恰好得到了安装包。便欲对比其资源较之端游有何不同,遂试图提取之。在尝试的途中遇到了不少问题,特此记录之。源码地址读取资源包 与众多手游的习惯一样,初始的安装包
2018-01-20 05:07:41
1931
1
原创 2017年度总结
时境过迁,不知不觉一年又要过去了。不禁感慨,特此总结下今年的经历与收获,以作归纳。 要说今年最以往不同的那便是开通了个人的bolg,从2月26日开始共写了13篇,可谓差不多是月均一篇了。写博文最大的好处便是可以记录问题、归纳知识,乃至传播分享。感觉还是很不错的,目测接下来仍会继续。 学业方面由于上了本科,开始有机会去补充理论知识的空缺了。在《数据结构》和《操作系统》课程上得到了
2017-12-31 18:34:30
221
转载 游戏测试同步于Android设备的解决方案
欢迎参与讨论,转载请注明出处。 本文转载自https://musoucrow.github.io/2017/12/07/dfq_building/前言 最近开发中的游戏需要在Android手机上进行测试,但采用USB数据线连接主机进行文件替换的更新实在是太麻烦了。遂考虑整个远程更新的解决方案,在研究的过程中排除了开发APP(耗费时长)与内置热更新(LuaSocket遇到点问题),最终选择了现
2017-12-07 06:19:45
478
转载 关于C语言函数strtok引发的思考
欢迎参与讨论,转载请注明出处。前言 近期遇到个C语言的课题作业,要求完成parse功能(以空格、回车、TAB为分割符分割字符串,输出结果且返回数组。)该功能涉及到strtok函数的一些问题,特此开贴记录。详解 以下为程序源码:#include <stdio.h>#include <string.h>#include <stdlib.h>struct ListNode { char *
2017-10-13 17:18:06
411
转载 帧同步的初步探究
欢迎参与讨论,转载请注明出处。 本文转载自https://musoucrow.github.io/2017/08/26/frame_sync/前言 在阅读这篇文章之前,你需要了解一下何为帧同步。关于帧同步的实现尝试,其实近年来一直都有不间断的尝试,不过大多浅尝辄止,这次总算是一次较为完整的实现了。接下来便对这次实现介绍一二。详解 本次项目使用的开发引擎为LÖVE,项目地址在此。以下是运行演
2017-08-26 21:06:37
1011
转载 DNF的SPK文件解析笔记
欢迎参与讨论,转载请注明出处。 本文转载自https://musoucrow.github.io/2017/07/21/spk_analysis/前言 SPK文件是DNF的一种更新时所用的压缩包(国服除外),在更新时会从服务器下载这种SPK文件然后于本地解压。有时候为了获得更快的速度,以及突破墙的限制,我们通过获取到更新服务器的网址直接下载。但是此刻对于如何将SPK文件解压便是个问题了,本文
2017-07-25 16:22:47
4614
1
转载 关于Socket.listen方法的一点体悟
欢迎参与讨论,转载请注明出处。前言 最近在接触Socket的的时候,关于其中的listen方法感到不解,于是对其进行了一番研究,得出了一点体悟,特此记录。详解 让我们先来看看listen方法在Python3.6文档说明:socket.listen([backlog])Enable a server to accept connections. If backlog is specified, i
2017-07-25 16:19:40
6598
1
转载 关于MVC框架的一点体悟
欢迎参与讨论,转载请注明出处。 本文转载自https://musoucrow.github.io/2017/06/16/mvc_thinking/前言 MVC框架相信大家都有所耳闻,不过想必没有深入接触的话,大多是知其然而不知其所以然。而本人几乎没有GUI软件的开发经验,只是走马观花般的碰过几下.NET的Winform之类,所以之前自然也是如此。 而近日帮助友人使用C++/CLI完成一
2017-07-25 16:18:32
393
转载 关于像素PNG图片在游戏引擎缩放后出现毛边的解决方案
欢迎参与讨论,转载请注明出处。 本文转载自https://musoucrow.github.io/2017/05/01/png_stroke_problem/ 今日遇到了一个很值得记录的问题:对于像素PNG图片在游戏引擎里缩放后,便会在图片边缘出现很奇怪的毛边。类似这样: 经过研究发现,似乎与文件格式无关。我还尝试将不会出现毛边的像素图混搭一块,结果反而导致靠近毛边的地方会被感染:
2017-07-25 16:15:54
3381
转载 观察者模式的一种实现——Caller
欢迎参与讨论,转载请注明出处。 本文转载自https://musoucrow.github.io/2017/04/21/caller/前言 在程序设计的时候,观察者模式是一种应用广泛的设计模式,它是一种模块间的通信方式,对于程序的解耦性有所帮助。本文便提供了一种实现思路,也即是说,你需要先去了解观察者模式才方便阅读本文。 以下代码演示将使用Lua语言,接下来的内容对阅读者的Lua水平有
2017-07-25 16:12:29
299
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人