siki暗黑战神项目总结,框架和主要的优化点
暗黑战神项目总结
参考暗黑战神项目siki学院的课程,做的一个项目,自己加了一些优化。目前战斗没做完,做完后可能再发(水)一篇。siki牛逼!!!我要给siki打call!!!
课程地址http://www.sikiedu.com/my/course/330
简介
本项目是一个MMORPG,是网络游戏,主要玩法是类似暗黑破坏神,就是是刷副本PVE刷材料养成。网络都是业务层逻辑,没有帧同步。玩家可以通过摇杆移动,然后攻击和释放技能击杀怪物。实现了登录注册,强化系统,自动任务引导,世界聊天,副本业务等系统。完整的客户端,服务器,数据库三层结构。除了美术资源外,都是本人实现的,花了四个月时间。在客户端实现了资源动态加载,并设置缓存层。UI采用MVC,降低愈合,并用事件回调解决数据同步问题。项目采用数据驱动方式,所有数据采用XML配置表实现,用XML配合C#自动序列化大大减少工作量。在服务器中,使用C#序列化数据,使用socket传递数据,使用多线程处理网络IO,使用多线程实现计时回调,设置缓存层减少数据库查询。
框架
启动逻辑:只有一个启动脚本有Start入口,它会依次调用其他实现有序初始化。
Loading界面:通用,异步加载方式,用一个委托实现加载完成后的动作。
数据分三层:数据库一层,服务器缓存一层,客户端显示一层,数据同步是主要修改服务器缓存,再向数据库和客户端发送更新。
启动进入一个根场景,它有一个不会被销毁的对象,所有系统都挂在上面,此外还有UI根路径。
一般的业务流程:用户点击按钮触发按钮事件,窗口把需要的数据收集起来,然后进行验证,完成后交给网络模块发送。网络模块只发送必须的数据。服务器收到后,再次验证,然后进行对应业务处理。处理完成结果写入cache,cache把数据写入数据库。服务器网络模块向客户端发送改变后的数据。客户端收到后更新数据,并通知各个模块刷新,然后给出一条提示显示结果。
业务中的异常:收到回复前,客户端禁止其他操作,如果超过一段时间没有收到回复认为网络异常,请求失败。
数据驱动:主要数据都在配置表里,解析成XML,需要时再通过XML序列化加载。可以不用在代码中配置数据。
框架的分层:服务层,提供通用功能。有网络服务,音效服务,计时服务,资源加载服务。
业务层,实现各个业务处理。例如登录注册模块,任务引导模块,装备强化模块等。
UI层,每个界面一个UI脚本。每个界面被一个业务系统管理,不能直接访问。
服务器采用多线程+socket实现,每个连接一个线程,但是所有数据都传回主线程,防止冲突。用死循环+sleep防止服务器结束。
日志实现较简单。为了调试方便,把数据明文打到日志里,可能造成安全问题。
UI
UI逻辑框架。每个界面一个U脚本。
MVC,UI只负责数据显示,绑定按钮事件等。用一个action通知UI刷新。
UI自适应:(横屏游戏)根据上下高度缩放,设置锚点等。
UI优化:关闭不用的raycast,并且写了个脚本批量关闭。UI都在根物体上,根据需要动态加载所需的UI。
滑动列表:根据配置数据动态创建条目。
战斗模块
摇杆控制。自己实现。
动画。状态机过度,使用动画混合树平滑,还可以使用IK进行交互动画制作,特殊需求用dotween或者自己写tween动画。此外可以使用物理动画或者直接脚本控制位置。
寻路。使用navmesh。用于任务自动引导。
主城渲染优化。把环境灯光设为静态,离线渲染为光照贴图,运行就不需要计算环境灯光。可以把draw call从1000降低到100.运行后动态合批再降到16.
定时。两种方式,帧检查实现,每帧检查是否到达时间。
多线程实现,使用C#Timer,要把回调传回主线程执行防止冲突。
业务
登录:服务器启动时加载所有用户名和密码,缓存只存已经登录的用户账户信息。发送时进行验证,为空等不发。保存上次成功登录的用户名密码,下次使用这个默认的直接登录。
角色展示:使用一个摄像机拍主角,结果做成rendertexture,UI上作为图片显示它。
自动任务:数据库维护一个自动任务ID保存当前任务,客户端加载配置知道导航到谁,然后用navmesh寻路。接近到一定距离认为引导完成。
强化升级系统:根据当前点击的部位,取得对应数据,并进行显示。点升级就发送消息。
聊天系统:收到一个聊天请求就群发给登录的所有人。群发之前完成解析等重复操作,减少压力。
体力:对已登录用户,每5分钟发送一次数据通知体力增长。
对离线用户,记录最后下线时间,在上线时计算增长的体力。
任务检测:在其他系统中有Action回调,把任务检测注册到这些回调中。注意在任务完成后删除回调。
siki暗黑战神项目总结,框架和主要的优化点相关推荐
- Kratos战神微服务框架(一)
目录 Kratos战神微服务框架 简介 目标 原则 特性 架构 CLI工具 安装 创建项目 项目结构 代码生成与运行 生成 运行 测试接口 Kratos战神微服务框架 简介 Kratos 一套轻量级 ...
- Kratos战神微服务框架(二)
Kratos战神微服务框架(二) 目录 Kratos战神微服务框架(二) 项目结构 api编写 protobuf编写 使用makefile service层接口实现 biz层 data层 config ...
- python ui框架_PyQt5GUI项目程序框架
本次介绍PyQt5 GUI应用程序框架组成,以dialogApp项目文件组成为例,其他类似. 主要做两件事情:1.窗体UI设计,主要在Qt Designer内完成:2.对应窗体业务逻辑类功能实现,在m ...
- PowerDesigner(二)-项目和框架矩阵
项目和框架矩阵 项目是PowerDesigner 15的新概念,通过项目系统分析/设计人员可以对模型以及各类文档进行分组.项目也可以包含框架矩阵,以表格的形式体现各个模型之间的关系. 项目和框架矩阵解 ...
- 客快物流大数据项目学习框架
文章目录 客快物流大数据项目学习框架 前言 一.项目简介 二.功能介绍 三.项目背景 四.服务器资源规划 五.技术亮点及价值 六.智慧物流大数据平台 客快物流大数据项目学习框架 前言 利用框架的力量, ...
- ssm毕设项目基于框架的众筹管理系统f5244(java+VUE+Mybatis+Maven+Mysql+sprnig)
ssm毕设项目基于框架的众筹管理系统f5244(java+VUE+Mybatis+Maven+Mysql+sprnig) 项目运行 环境配置: Jdk1.8 + Tomcat8.5 + Mysql + ...
- 原生微信小程序项目基础框架搭建
原生微信小程序项目基础框架搭建 文件目录结构 1. 环境变量(开发环境, 线上环境,测试环境)便于在不同环境的切换 接口的url webview的前缀url 埋点相关的环境参数 本地存储的环境变量配置 ...
- 【收藏】Android开源项目和 框架
Android四款系统架构工具 http://dev.yesky.com/281/35399281.shtml AOSP http://source.android.com/index. ...
- 龙芯2K1000实战开发-项目整体框架介绍
目录 概要 整体架构 技术名词解释 1.DDR3: 2.NAND_FLASH: 3.FPGA: 4.MSATA: 5.VPX: 6.PCie: 7.ETH: 技术细节 小结 概要 本项目主要以龙芯2k ...
- vue移动端项目基础框架搭建
本文章,主要提供vue移动端项目基础框架搭建思路,每个独立的模块网上有很多相关的文档. 移动端vue项目基础框架搭建,主要包括6个步骤 项目使用的脚手架vue-cli搭建模板,2.使用淘宝lib-fl ...
最新文章
- helloworld设置成开机自启动的服务
- 微信环境中如何实现下载apk文件的下载
- VTK:绘制封顶球CappedSphere用法实战
- mysql 导出数据字典_操作MySQL?这个库比pymysql香一百倍
- 飞鸽传书创造出自己的一片天吧
- 大数据心得体会_20年备受关注的6款数据工具!谁最好用?毫无争议的答案来了...
- “页面制作人员”?“页面工程师”?“页面架构师”?滚一边去!
- 安全维护上最不应该犯的十个基本错误
- linux系统移植和根文件系统制作
- 李明洋十讲学会ADS教学课程笔记
- ISO8601时间格式转换为Date
- 浏览器打不开网页 服务器停止响应怎么办,浏览器打不开未响应怎么办
- ##gif录制软件——初识GifCam##
- AUTOSAR MCAL CAN Driver 接口函数
- Python基于php+MySQL的英语四六级在线报名平台
- 大数据开发工程师要求高么?有前景么
- 中国有句俗语叫“三天打鱼两天晒网”。某人从2010年1月1日起开始“三天打鱼两天晒网”,问这个人在以后的某一天中是“打鱼”还是“晒网”。
- 个人APP盈利之道:内容为王 学会适当放弃
- 误删文件或者文件丢失怎么样来应对
- 数据结构课程设计:中国计算机设计大赛赛事统计
热门文章
- R语言制作长三角城市群空间权重矩阵及作图显示
- Oracle 学习资料
- c语言贪吃蛇设计意义,C语言贪吃蛇设计理念.pdf
- 从苏宁电器到卡巴斯基第03篇:我的本科时光(下)
- 私塾 java_JAVA私塾
- Citrix XenApp工作原理
- 安卓端gis_微图手机版下载-微图(GIS软件工具)下载v2.1.7安卓版-西西软件下载
- 北京飞马贸易借沟通CTBS实现总部与分公司同步做帐
- 计算机上机操作表格试题,全国计算机等级考试四Excel电子表格操作试题.doc
- 最新前端四天精通node.js视频教程