自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

程序漫漫

Welcome to My Life!

  • 博客(12)
  • 资源 (1)
  • 收藏
  • 关注

原创 【UE4】联网游戏开发的正确姿势

联网游戏开发的正确姿势1. 前言刚接触UE4的同步机制感觉功能挺强大的,变量同步、RPC都无缝支持,但是却不知道怎么正确使用这些机制来开发游戏,什么时候客户端调用服务器,什么时候从服务器调用客户端,哪些代码在客户端写,哪些代码在服务器写。2. 正文首先应该明确游戏应该是数据安全的,原则上客户端不能直接修改任何数据,而客户端主要想服务器上传玩家的输入,然后服务器处理逻辑,逻辑处理结束后让客户端播放效果。例如跳跃功能的开发,客户端应该监听跳跃键"Space", 然后通过RPC调用服务器跳跃函数,服务器

2022-03-01 23:42:36 3564 4

原创 【UE4】C++的RPC调用

例子定义RPC函数如下:UFUNCTION(NetMulticast, Reliable)void OnClientJump();void OnClientJump_Implementation();在头文件声明RPC函数OnClientJump,同时要在函数上面加上宏UFUNCTION, 下面再写一个 OnClientJump_Implementation 参数列表和OnClientJump一致。要把函数实现写在OnClientJump_Implementation函数中,OnClientJ

2022-02-21 18:40:34 1859 1

原创 【UE4】FPS游戏多手臂实现方式

FPS游戏多手臂实现方式核心代码:TArray<FSkelMeshMergeSectionMapping> InForceSectionMapping;USkeletalMesh* CompositeMesh = NewObject<USkeletalMesh>(GetTransientPackage(), NAME_None, RF_Transient);USkeletalMesh* Arm = LoadObject<USkeletalMesh>(NULL

2022-02-21 14:57:27 3498

原创 【持续更新】Unity3d使用的经验记录

最近在研究状态同步,使用unity来作为显示接口,本篇文章记录一些unity使用的经验。Mono与.Net FrameworkMono是.net framework跨平台的实现,所以.net framework上能用的库都可以在Mono上使用。Unity3d引入库Unity可以设置Mono版本,一般是.Net Framework4.x和.Net Standard 2.0,如果想引入一个库,VS新建一个对应版本的项目,使用包管理器搜索并下载这个库,然后在项目目录下的package文件夹内就会有这个库的

2021-05-28 00:41:15 206 2

原创 游戏开发之状态同步

1. 背景这两天在研究unity3d引擎如何做多人游戏,游戏类型是fps游戏,所以同步方式选择状态同步,架构则为服务端跑主逻辑,客户端做表现以及行为预测。本篇文章主要介绍,游戏中的网络的设计。2. 设计状态同步不需要保证所有包都被客户端收到,所以发送包分为可靠包和非可靠包。2.1 可靠包游戏中时效性不敏感的数据使用可靠包发送给客户端,例如游戏内聊天等数据。可靠包实现暂时使用一个简单的实现,即确认方增加确认包,发送方发送后,收到确认包才算发送成功,否则一直重复发包。2.1 不可靠包游戏中有

2021-05-23 20:09:56 787

原创 C++变量快速序列化与反序列化

这可能是我还喜欢c++的原因吧。注意越界,谨慎使用,适当情况需要大小端转换// int转byte[]int a = 1;unsigned char byte[sizeof(a)];memcpy(byte, (unsigned char *)a, sizeof(a));// byte[] 转intunsigned char byte[4];int a;memcpy((unsigned char *)a, byte, sizeof(a));...

2021-05-18 13:43:07 177

原创 C++模板实参类型推导

1. 什么是模板C++特性之一,批量生成代码的手段。2. 模板有什么应用?1. 泛型编程例如:std::vector2. 模板元编程利用模板的特化等特性,在编译期计算出结果。例如: 3.模板实参类型推导虽然模板这么牛逼,但是今天我们不讲上述两个特性,我们讲一下细节:给模板填入一个类型时,模板是如何推导出实参(T)的类型。1.实参确定的几种方式编译期间,编译器一定会确定每个模板实参T的类型,一般开发者指定类型有以下几种方式。显式指定,如图 fun(15); 直接指定T的类型为int,

2021-05-17 17:55:12 841 5

原创 如何使用Xash3d引擎开发游戏一

如何使用Xash3d引擎开发游戏无论使用任何框架或者任何引擎,第一件事就是要搞明白在哪里写代码、如何输出hello world。1. 引擎的架构开发Xash3d引擎的游戏需要开发三个dll:client.dll (client_amd64.dll)游戏客户端,必要。存放目录: 引擎目录/游戏名称/cl_dlls/client.dllmp.dll (mp_amd64.dll)游戏服务端,必要。存放目录: 引擎目录/游戏名称/cl_dlls/mp.dllmenu.dll (menu_amd

2021-05-17 17:03:57 1289 2

原创 Xash3d引擎简介以及构建

Xash3d 引擎本文链接: https://blog.csdn.net/qq_30832915/article/details/1157633931. 简介:GitHub仓库: https://github.com/FWGS/xash3d-fwgsxash3d是一个兼容GoldSrc引擎(半条命1的引擎)的跨平台游戏引擎。支持iOS,安卓, linux, Windows甚至支持旗鱼系统。对于原版的GoldSrc也有所优化,例如增加了更大实体上线,光照貌似好像也有优化, 比goldsrc更亮一些,

2021-04-16 16:23:36 2050 2

原创 Java条件运算表达式值类型的确定

条件表达式逻辑表达式?值1:值2例如:int a = 2,b = 4;int c = a>b?a:b;这段代码相当于:int a = 2,b = 4;int c ;if(a>b) c=a;else c=b;当逻辑表达式的值为真时,该表达式的值为冒号左边的值1,当表达式为假的时候,该表达式的值为冒号右边的值那如果冒号两边的值的类型不一致,这个表达式的值的类型...

2019-11-13 00:00:20 1496 2

原创 Java引用类型的值传递

Java的参数传递我们都知道Java传基本数据类型的参数时是按值传递,所以在被调方法里修改参数的值函数结束以后实参是不会发生变化的,例如public Main{ public static void main(String[] args){ int x = 1 ; change(x); System.out.println("x=" + x); } public static...

2019-11-12 00:02:53 291

原创 C语言函数指针简单介绍

函数指针是什么?指针即地址的形象化名称,函数指针就是函数的地址。那么函数也有地址吗?如果在程序中定义一个函数,经过编译函数会编译成二进制代码,程序运行时会将函数的二进制代码加载到内存中然后被cpu执行,而这段二进制代码的首地址(相对地址,以后讨论)就是函数指针(地址),在源代码中,函数名就是函数指针。如何在程序中使用函数指针?#include<stdio.h>int ma...

2019-11-09 21:38:51 238

空空如也

空空如也

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

TA关注的人

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