自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(29)
  • 收藏
  • 关注

原创 《晶核》服务器架构——第二篇

所有,这一切,优化完了 服务器CPU与内存节省了约50%。所有的优化,都需要满足业务需求!

2024-08-25 00:42:45 643

原创 聊聊《晶核》的网络服务器架构——看看人家是怎么用UE的

最近一直再找关于UE5 DS服务器架构方面的文章,找来找去发现真没有!!如果,按官方文章那点案例来做,那真是不知道有多少坑要踩。首先, DS服务器,是一个损耗很大的服务器。里面各种内存上的消耗,CPU占用,都是一个很大的问题。按官方文档来说,只有个开头案例,就说了怎么用,编译一下,却没告诉你怎么优化,文章也是少的可怜。不过,有源码,有能力的可以去看看。里面实现了各种各样的细节,你甚至可以用ta做任何事情。 但是,损耗的事,就看你自己了。是否能财大气粗的承受住这么大的损耗。

2024-08-21 06:13:08 595

原创 总结一下使用UE5中Nanite与Lumen 的一点注意事项

这个算法功能的实现,有很多讨巧地方,只会渲染我们视线所能看到的模型,并且会自动加减优化模型的面数。正常情况下, 在场景使用了大量的,高质量的模型,重复资源,场景会变的越来越卡,一动不动,只能重启。打光一直在布景的过程中,也是门技术活,lumen做到了全局的动态实时光照,打起来更加的方便,切目前效率上来看也是最快的。不管是FFSR还是DLSS,都是有一定损耗的,当然,肉眼可能无法观察出来,两家算法也是各有特色,都说自己是无损耗的。值得高兴的,最新的Lumen 在UE5.4中已经开始实验性的在移动端应用了。

2024-08-08 18:46:46 731

原创 C++高级优化,你应该多使用关键字与引用

weak_ptr可以用于解决循环引用的问题,当两个对象相互引用时,如果使用shared_ptr来管理引用,会导致引用计数无法归零,从而导致内存泄漏。weak_ptr可以从一个shared_ptr或另一个weak_ptr对象构造,它不会改变引用计数的值,也不会对所指向的对象产生拥有权。使用weak_ptr时,需要通过lock()函数获取一个shared_ptr对象来访问原始对象,如果原始对象已经被销毁,则lock()函数将返回一个空shared_ptr对象。move操作的背后,是一大段的长篇大论!

2024-04-11 09:55:57 851

原创 老生常谈C++, 又是充满BUG的一天

按照欧美那边的习惯与标准,添加足够的注释,会使得代码的更加的具体与明确,使得你调试起来,可以尽快的定位问题,看起来一目了然。比如,我们在C++里面会做各种类型的强制转换与隐式转换,某些时候,在你不知道的情况下,C++帮你做了隐式转换,你也没意识到,或者你做了强制转换,但,并没有标记ta。所以,一旦出现了问题。这里,我解释一下,指针之间的相互操作,访问内存,是一直存在的一种操作,即便不用ta我也可以直接转换,访问另一块内存,详见古老的C语言。的机制,好的,这差不多就是四种cast 的一些简单使用注意事项了。

2024-03-22 21:07:36 818

原创 C++<Vector>实现!!最新C++ 11标准特性版

C++ 11特性基础容器实现,包含迭代器实现!(备注:代码里面包含很多新奇地方,切勿乱动,否则内存问题自负)

2024-03-21 00:34:46 124

原创 UE5.2发布会总结——一个只有电脑受伤的世界

ue4在长达四年的时间里,经历了的疫情,各种乱七八糟的版本迭代,从ue4适配到ue5。从中看到了, 多数开发者,在开发过程所遇到的困境。并进行了这次实质性的提升。所带来的前所未有的改变。就比如,我们上面所说的《动态场景》埋下的答案,在这里揭晓。为什么会需要动态场景?ue5 开发团队在多年的总结中看出,开发者只能简单的一步步的布置好场景,启动,关闭再修改,这中间耗费了大量的时间。单纯的准备素材,就已经耗费了多年。提供这次实时的动态场景,开发者就可以边跑游戏边修改场景。

2023-04-07 02:32:08 1501

原创 Malloc源码解读三——Bins与Arena

define bin_index(sz) //首先宏定义,这里表示了替换 bin_index(sz) 申请的内存大小 ,函数体 unsigned long (sz) 意思就是,不管传进来的数值为多少,都会被替换为 无符号的long类型,然后右移>>9 == 0?这里关键点,在于对释放内存的处理,作者是这样想的,在对一个刚刚释放的内存块,并没有对ta进行立即的回收,而是把ta留在了与ta相同大小的内存块中。那就如上所说,省略的这一次合并节省了合并,再分裂,再搜索的时间,这样一步换三步的策略。

2023-04-01 02:18:30 441

原创 《Malloc源码解读二》——语言的背后,全是算法

当我看到这里的时候,原来malloc的设计是如此的巧妙。用了一个双链表结构,表示内存中的chunk(块的意思)。语句中提到的Knuth 是一位算法大师,不过ta 的成就可远不止这些,学习过计算机算法的童鞋大概多少都会知道;只是没想到,人会用一个如此简单的数据结构,来管理内存的分配方式,此乃拙见。值得注意的是,所谓堆内存,其实就是一块长度可变的连续虚拟内存,详细可见《Linux-UNIX系统编程手册》第七章。其中,chunk,mem,nextchunk 是三个指针,分别指向不同的内容。就如上面所展示的样子。

2023-03-09 13:09:19 370

原创 《Malloc 源码解读》

【代码】《Mallloc》 源码解读。

2023-03-06 22:39:54 533

原创 《C++23》——起草

官方已经发布了C++23的修改更新意见!只不过只有草案,还没有实装进标准官方文档中。不过快了,整理好之后马上就会有了。#elifdef。

2023-01-31 01:21:29 1900

原创 游戏场景服务器搭建——(SenceServer)

今天来写一下游戏中服务端,场景服务器的实现思路,游戏场景服务器在服务端后端,一直都是必不可少的一项。一般像稍微重度的游戏,手游都少不了一个场景服。当然,除了那些乱七八糟的棋牌,斗地主什么的不需要场景,直接就进房间了。SenceServer在后端中一直都是一个大项,名字不用一样,用法都是一样的。当你看到差不多类似的实现,可以暂时把ta当成是一个场景服务器来理解,等你具体的搞明白了,再具体的细分。在MMOAPG里面所有的表现几乎都在场景上实现。玩家的上线,下线,各种乱七八糟的消息广播都要在这里表现。

2022-10-24 00:30:47 1519

原创 记录一下最近的小问题——vs许可证无法下载问题解决

点到这里的时候,尽量什么都别选,选好安装路径就行了。系统会自动选好需要的文件。点修改,等待安装完成。重新打开Vs就行了。我这里有个两个版本在用, 所以把两个版本的install都下下来。这个样子差不多就解决 许可证问题了。由于没外网的链接和重装过之后的文件皆都丢失了。所以用这install,补全这些功能,许可证。适用于 账号登陆之后无法下载,没有效果。点外部链接登录无效的和重新装过系统的用户。

2022-09-06 16:07:20 4984 2

原创 SQL——shell命令

8.0之后的sql毛病是真鸡多,把这些常用的命令的都记录下来。里面包含了从安装到使用,远程登录,密码,redis,等等乱七八糟的问题。

2022-09-02 18:51:07 1826

原创 守望先锋世界观架构 ——(一款好的游戏是怎么来的)

这两天人被隔离了。去玩了ow2。只能说,让人大失所望,那个经典可能再也回不去了。曾经的那批人早已物是人非了。可能因为内部人员频繁的变动,这几年的各种问题。导致了这帮人早已不知所踪了。那个曾经为追求卓越,而存在的暴雪。真是让人感慨。OW世界观,如何做到的?前身:在ow之前,暴雪有一款叫做“泰坦计划”的项目,投入了很大。结果不幸夭折了。这个让暴雪的人打击很大。游戏公司中,一般,一款项目的直接砍掉,人员也会跟着变动。可能会全部裁光,只留下核心的人员。所以,前期的大量资金投入,人员............

2022-05-31 12:42:00 1493

原创 ECS框架(二)

2022-04-29 17:46:27 452

原创 蓝图 之 守望先锋

什么是蓝图???蓝图在哪? 老早就听说过UE4的蓝图了。但,从没用过。第一用蓝图竟然是在守望先锋里。。。某天的晚上,我闲的p慌。点开了自定义的地图工坊。点开的一瞬间,好像走进了魔法殿堂。卧槽! 可视化编程脚本。 If, Action 条件,动作。再一想,卧槽,这不是蓝图吗?守望先锋什么时候不知不觉的在里面塞了张蓝图? 我一直没发现。其实,自定义游戏工坊,一直都有玩过。但,就是没往深的点过。某天的我,点开一看,豁,原来这里面还藏了一个我一直不知道的背后宫殿。N...

2022-04-10 21:16:19 3002

原创 Go游戏框架初探《一》

这两天去看了一下go, 总结一下,目前的go开源游戏框架。不得不说,如今的大趋所势。go语言转变如此之快。go开源游戏端应用的框架,已经多到数不胜数。这才两年的世界里,就发生了如此多的转变。cpp所带来的痛苦,真让人非常印象深刻吗?在快捷开发,简单类型游戏中,比如卡牌类,回合制这种类型游戏,cpp可能确实不占优势。因为累啊!人都想快捷开发,避免更多的问题。人不想因为一个内存问题。纠结半天。稍微不注意,服务器就宕机了。解决起来又非常的棘手。单调试错误 ,可能一星期就过去了。边调试边骂N的呢种。...

2022-02-21 13:42:10 8889 1

原创 《STL容器概括成员方法》——这份表格真是解决了我的长篇大论

迭代器非法使用注意事项:容器成员方法:官网:https://zh.cppreference.com/w/cpp/container

2022-02-08 15:29:01 468

原创 C++ --《Sort》

今天把几个无聊的算法上传一下。都是N年前写过的小玩意,没什么很强的复杂度。实用就好。template<typename T>class Sort{public: void Bubblesort(T* arr, int len);//冒泡排序(改进) void BucketSort(T* arr,int len);//桶排序 void selectSort(T* arr, int len);//选择排序 void Insertsort(T* arr, in...

2022-01-28 11:01:44 1568

原创 《Effective C++》阅读

这世上有这么一本书,叫看过<<Effective C++>>的和没有看过的。让我们康康这个老外究竟是咋写的。

2022-01-12 00:50:04 133

原创 C++ 单例

众所周知,网上一直流传着,不知道叫什么的单例,乱七八糟写啥的都有。不是报错就是内存泄露的,没一点实用的。 那么今天就写一个。单例始终就保持一个实例。 在C++ 中我们就只要注意两点。哪里两点? 拷贝构造,拷贝复制 C++ 默认类中,会包含六个构造函数。我们只要把上面这两个禁用掉就没问题了。 怎么禁用?用新特性(=delete)。别跟我扯什么,这哪的。class Singleton{ public: static Singleton* GetInstan...

2021-12-27 16:25:34 749

原创 C++——进阶之路

我一直想是不是拜师,学学艺。有着大佬的庇佑,那岂不是轻车熟路,畅通无阻。后来,我又想了想。完全不用!按如今的环境,以及各种情况,综合因素,不可抗力,等等数不清的原因——不可能。那么,究竟该如何在C++的道路上进阶。如果你是从娘胎里就开始编程的,有着这一个会编程的爹。那真是——如获至宝(苦命的孩子)。那么,我们半路出身的,野生的,该如何学习。又没有这么厉害的爹,考上大学都已经是自求多福了。选了计算机专业,希望以后出来能挣大钱。结果却是没日没夜的996。说了这么多,你还教人家...

2021-12-26 01:53:57 2561 1

原创 架构篇《一》:我会什么?能完成一个什么样的架构

开篇一:我一直觉得国产游戏,要上升一个梯度。不再是那些,一天到晚648的氪金,圈钱跟时间。某讯的楼已经盖到40层那么高了。覆盖面积,可以算半个皇宫了。从技术角度和人才上,都是绰绰有余的, 可还是在做着648氪金,骗小孩子的钱。 国产游戏起步在, 03年左右。03x讯代理某游戏,上架了国区。那个时候的网游,初步还都是2D,大话西游,传奇这些类似暴力的东西。那个黑暗的年代里,烧钱如烧纸,倾家荡产打装备备。到我们这个年代,这些东西默默的退场了。给我们现在的00后怕是,根本不...

2021-12-04 22:18:07 2839

原创 总结下,这几天的一个面试(你咋没直接干ta呢)

初面,我就不说公司了。给ta留点脸。当时,我就想你咋没一套军体拳给ta干过去,打的ta满地找牙!教教ta做人。这家公司很奇怪,啥尿性就不说了。起初,以为四点中到,还以为啥呢!人多的踩破门了。结果没有,我就提前去了。在前台登记了下, 那张表开始填,还有面试题。我第一眼就看了面试题。觉得没啥,好像比较基础,就开始填了。写完之后我就开始看那些题了。三页纸,没多少东西。其实很就答完了。然后,我没急的交。想看看ta葫芦里卖的什么药。里面有些题,明显知道怎么解,有思路。写出来多少有些不满足的地方。所以就没写。在哪里

2021-12-01 01:58:26 166

原创 UDP重传,似牛非马。。。

问,为什么要udp重传???答:不为什么,只有不断的需求,没有写完的代码?只要有需求,ta就会存在。可能会有各种ADP,BDP,RUDP(这个真有,已经写好了git地址),QUIC(Google,快速传输协议,2016发布出来,在一次无意的抓包的时候,看到了这个协议。总结就是很牛批。脑瓜子不好的,尽量不要看。)为了,看这个协议, 我又重新翻看了《TCP/IP卷一》。看看有什么落下的。。。看了一圈结果就是没有。TCP的强悍之处,远远超出了UDP。现在在UDP基础上做重传,相当于给UDP实现重传机制。T

2021-11-13 22:26:17 4605

原创 今天教大家一个这个玩意,怎么写mysql_to_redis的一个批量脚本。

应用:平常在使用redis 跟mysql做数据同步的时候, 难免会用到这些东西。从mysql里面查询数据,然后塞入到redis里面。适用在大数据预加载数据,批量导入。算是间接的一种调用方法。启动之前,就直接把msql数据,同步到了redis里面。其实就是个sql文件,不过这样写,我还是觉得沙雕了点。完全可以用一些批量转换的工具,找了一圈发现没有。或者好用的,总是有各种欠缺。所以最后我还是用回了这个。git上有一个用go写的(go-mysql-transfer),用了一下,感觉还是差强人意。...

2021-11-07 14:50:01 145

原创 lua闭包,什么是lua的闭包。闭包又是什么用来干什么。和lua的面向对象又是什么lua 元表又是什么 东西。。

初次看到闭包还是n年以前的时候, 那时候懵懵懂懂的就用了lua。对lua也是 一知半解下面我们来看下这个东西。。

2021-09-01 23:48:01 160

原创 无缝大地图世界构建!!!为什么选择无缝大世界地图构造????

MMO 魔兽世界。。等诸多的开放世界游戏都用到了无缝大世界构建。不一一列举了。下面开始我们的大地图世界构建,和会遇到什么样的问题难点。 通常,都是先把游戏世界分成小块,然后在相邻的小块间加入一些服务器间的通讯,每个服务器都可以自主地作出反应。服务器互相通知那些与边界接近的对象,这样来,每个服务器都可以通过它们的本地代理来对远程对象(在某种程度上)进行控制。问题1:分割游戏世界怎样才能最好地划分游戏世界?这个问题往往依赖于特定的游戏。在一个由玩家控制游戏人物的基于地形(t...

2021-08-29 17:13:58 2537

空空如也

空空如也

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

TA关注的人

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