UE4独立服务器构建
前言 根据UE4官方文档的介绍,UE4引擎在架构时就已经考虑到了多人游戏的情景,多人游戏基于客户端-服务器模式(CS模式)。也就是说,会有一个服务器担当游戏状态的主控者,而连接的客户端将保持近似的副本。服务器是UE4多人游戏的一个重要部分,其作用是:做出所有重要决定,包含所有的主控状态、处理客户端连接、转移到新的地图以及处理比赛开始/结束时的总体游戏流程。 服务器的功能开发在UE...
前言 根据UE4官方文档的介绍,UE4引擎在架构时就已经考虑到了多人游戏的情景,多人游戏基于客户端-服务器模式(CS模式)。也就是说,会有一个服务器担当游戏状态的主控者,而连接的客户端将保持近似的副本。服务器是UE4多人游戏的一个重要部分,其作用是:做出所有重要决定,包含所有的主控状态、处理客户端连接、转移到新的地图以及处理比赛开始/结束时的总体游戏流程。 服务器的功能开发在UE...
回顾 学习UE4已有近2周的时间,跟着数天学院“UE4游戏开发”课程的学习,已经完成了UE4蓝图方面比较基础性的学习。通过UE4蓝图的开发,我实现了类似CS的单人版射击游戏,效果如下视频: 不得不说UE4蓝图功能的强大,无需写一句代码,就能实现一个基本的游戏玩法。并且使用门槛极低,只要熟悉蓝图的API,通过“拖拖,连连”就能完成游戏玩法的开发,对游戏策划(设计师)及其友好,...
前言 如今,持续集成已成为软件开发的标准化流程,也是敏捷开发的重要组成一环。所谓持续集成,是指软件开发团队成员定期(每天甚至更短)将自己的开发成果合并到产品项目中,通过自动化构建(编译、发布、自动化测试等)验证本次开发成果,尽可能快地发现错误与漏洞(可能是本次开发内容本身的问题,也可能是开发内容与产品现有内容之间的兼容性问题)。 而持续交付,则是指定期将产品新版本交付给质量团...
介绍 为了更方便的书写数学公式,有多种语法支持,主要有TeX/LaTeX, MathML和AsciiMath,目前使用最多的是LaTeX。 公式渲染 虽然写好了LaTeX语法的数学公式,但是还需要渲染支持,才能将LaTeX语法渲染为公式,目前主流的渲染引擎为MathJax。Github默认是不支持渲染LaTeX的(Gitee支持),为了让Github支持渲染,还需要安装chrome浏览器插...
背景 网络程序开发就离不开客户端与服务器,而客户端与服务器交互的核心之一就是通信协议,通信协议的选择往往关系到通信的稳定性、通信效率(消息序列化/反序列化时间)、数据量(序列化后的字节大小)等等。目前主流开源的通信协议有:Json, Message Pack, Protocol Buffers, Flat Buffers, JDK Serialize等等,我将依次就开发便捷度、序列化效率、数...
前言 Maven是java开发中常用的项目管理工具,可以很好的处理java组件的依赖关系。在java web项目中,maven也提供了“tomcat7-maven-plugin”这样的maven插件来使我们方便地将项目部署到服务器中的tomcat,下面就是我对配置步骤的总结。 Maven中的配置 pom文件配置 <plugins> <plugin> ...
安装ssh-keygen Mac或者Linux:一般都自带了SSH Client,所以也自带了ssh-keygen,因此无需额外安装。 Windows:最简单的方法就是下载Windows版的Git客户端,因为它自带了ssh-keygen。 所以如果你正在用Windows,而又没有安装Git,最快的办法就是找一台Linux服务器去上面生成一下...
背景 最近查阅了一些“全球同服”服务器架构设计的资料,也请教了有全球同服架构经验的几位大牛,发现全球同服并没有想象中的那么困难。对于玩家而言,玩家并感知不到自己属于哪个服务器(登陆时无服务器列表),但实际上,玩家通过既定算法,被自动分配到了某个服务器中进行游戏。 分布式设计方案 因为服务器单服因承载量的原因,不可能将所有玩家都放在一个服务器(机器硬件),因此,全球同服的服务器架构都使用了分...
问题 我们有时会在线上生产环境(正式服务器)遇到测试服很难碰到的问题,例如内存泄漏、GC过于频繁、线程死锁等问题,因为该类问题需要一定数量的用户基数,因此很难在测试服遇到。正式服一般没有debug日志,也无法打断点,无法像在测试服一样进行常规问题的排查,但JDK为我们提供了很多排查该类问题的工具。熟练使用这些工具,能帮助我们快速解决上述问题,同时也是java进阶必备能力。 常用JDK自带工...
wxPython介绍 wxPython是针对Python编程语言的一套跨平台的图形用户界面工具集。它允许Python开发者使用一些健壮的、功能强大的图形用户接口来简单并且容易地开发GUI程序。它实现了一套封装了闻名的跨平台的使用C++编写的GUI组件——wxWidgets的Python扩展模块。 像Python和wxWidgets一样,wxPython是开源的,这就意味着任何人可以免费地使用...