MMO项目是游戏产业的常青树
占据了游戏行业营收的80%以上
这期内容主要帮助MMO开发者过渡新手阶段
MMO学习Q群:961722355
视频观看地址:
点击进入

Unity3d 大型MMORPG项目 新手入职培训

作为初级岗位,主要负责UI模块,美术换皮
比如:策划需要添加节日活动(春节,元旦,国庆)

最主要的工作量就是UI模块
需要在特定的界面增加一个按钮,实现点击逻辑

项目代码往往有5-20万行
新人会出现猴子吃西瓜,无从下手的情况

这个时候我门的项目就像一本厚厚的书
所以我们要先找到书里的目录,找到UI到底在多少页

但是大多数商业项目不会像教程项目一样
把文档写得工工整的

所以我们可以通过查看项目的文件夹
第一:形成项目的大局观
第二:脑海里有个目录

很快我们定位到UI模块的路径

我们发现项目里有.lua后缀的文件
所以确定了这个项目是采用Lua作为脚本语言,
因为它是最早的代码热更解决方案
再加上MMO的代码重用在国内比较普遍
所以至今大部分的MMO项目仍然是采用LUA编写

MMO从2013年开始在资本的推动下
大量人才参与进来,开拓了游戏业板块,积累了很多现有代码资源
只要你能快速提炼 功能函数关键字,
90%的需求是可以通过复制+黏贴的方式完成任务

这个能力很重要,它直接影响了开发效率
效率=竞争力=我们的价值

题外话:
lua 未来会被边缘化或者完全替代(预计3-5年)
因为LUA的编写代码体验是很糟糕的

这导致很多人都想解决这个问题:
比如C#热更框架的IlRuntime
Xlua框架作者新出的
TS热更框架Puerts
这两种语言的编写体验比LUA高出很多
现在不少新的项目已经抛弃LUA语言了,使用新的方案了

所以在编写代码之前多看一下这套项目实现了哪些功能
当我们遇到需求时
就能从脑海尽可能多的提取代码复用
而不用重新编写新功能

入职之后一般会有2-30天的时间处于空闲状态
这个时候正确的做法是尽快阅读和熟悉公司的代码
而不是觉得没事干

因为接到工作任务之后,开发效率和下班时间是挂钩的

实战开发技巧:
比如我们要在登录界面中加多一个功能
并且点击输出hello world

如何在大型项目中快速找到自己关注的代码?
举个例子:
如何找到点击按钮的处理逻辑?
通过U3D面板我们知道这个按钮对象叫Btnlogin
方法:代码关键字搜索
可以搜索代码关键字"BtnLogin",找到相关代码

假如,搜不到怎么办?
这种情况一般是各种各样的原因规范没做到位
可能是项目急需上线,开发时间分配,管理等等原因
方法二:错误定位
我们可以通过把预制体的登录按钮删除,程序运行肯定会报错
这样我们也可以快速定位的需要关注的局部代码,把范围缩小

这两个技巧能让你在翻找代码的时候事半功倍

MMO的开发都是模块化的,都是继承,复制,代码重用
同样功能的模块都是大同小异
所以当我们看懂了一个小模块,基本就上其他的代码都能很快上手

就好比下图的登录和地图模块
这个项目采用了三层开发思想,每个小模块拆成数据,控制,显示
典型的MVC模板,为什么要用MVC?

1:代码的可维护性高
2:耦合度低
3:方便换皮(改写view逻辑)


不难发现,整个项目都有规律可循
ctrl负责主要逻辑,依赖data和view
data负责处理数据
view 负责unity组件做交互

举个例子:
登录模块
ctrl->view
ctrl 向服务器请求登录,打开UI登录中

ctrl->data
服务器返回登录数据,存到data中

ctrl-view
data的数据包含了服务器的列表,ctrl调用view的显示
view负责打开UI预制体,赋值UI文本等

如何快速掌握一个项目的框架?
尝试拓展功能
比如增项目的任意地方,添加一个按钮,点击时输出helloWorld即可

实战指导:
比如策划需要增加春节领取元宝的活动

这个时候我们增加一个文件夹Edu
里面包含一个edu_ctrl.lua

如何实例这个ctrl类?
有两种办法,一种是通过框架本身的系统,在指定的代码处插入
要找到入口就需要多阅读代码,整理出加载流程

第二种办法,绕过本身流程,自行开辟

在团队里建议使用第一种办法,因为这能代码更有规律,比较适合团队
因为主程一般是知道的这些关键点的,问一下可以节省很多时间

第二种情况适合项目二开
一般用于没有资源支持,时间不允许再继续寻找和探索

实现:
在登录界面点击测试按钮时,我们打开EduCtrl


VIEW逻辑
创建自己的UI预制体,记录下assetBundle标签

ui_config加载UI表单,ab标签,名字

UITable.node_list 存放了对象的引用方便LUA访问
比如经常要访问按钮订阅点击事件


成功拓展有一个功能之后,要完成策划的需求就是工作量和时间的问题

UNITY3D MMO开发指南(Lua)相关推荐

  1. 《游戏AI开发指南(基于Lua的人工智能在游戏中的应用)》(Yanlz+Unity+SteamVR+5G+AI+VR云游戏+Lua+人机交互+沙箱+导航+决策树+影响力地图+立钻哥哥+==)

    <游戏AI开发指南(基于Lua的人工智能在游戏中的应用)> <游戏AI开发指南(基于Lua的人工智能在游戏中的应用)> 版本 作者 参与者 完成日期 备注 YanlzAI_Lu ...

  2. [Unity3D]Unity3D游戏开发Lua随着游戏的债券(于)

    ---------------------------------------------------------------------------------------------------- ...

  3. SteamVR2.0开发指南(Yanlz+Unity+SteamVR+Plugin+OpenVR+InputSystem+Kunckles+VIVE+Oculus+OpenXR+立钻哥哥++ok++)

    <SteamVR2.0开发指南> 版本 作者 参与者 完成日期 备注 SteamVR2.0_Guide_V01_1.0 严立钻 2019.01.23 ++++SteamVR2.0开发指南: ...

  4. SteamVR2.0开发指南

    2019年02月14日 22:21:19 VRunSoftYanlz 阅读数:562 <SteamVR2.0开发指南> 版本 作者 参与者 完成日期 备注 SteamVR2.0_Guide ...

  5. Unity3D Shader入门指南(二)

    关于本系列 这是Unity3D Shader入门指南系列的第二篇,本系列面向的对象是新接触Shader开发的Unity3D使用者,因为我本身自己也是Shader初学者,因此可能会存在错误或者疏漏,如果 ...

  6. 猫都能学会的Unity3D Shader入门指南(二)

    关于本系列 这是Unity3D Shader入门指南系列的第二篇,本系列面向的对象是新接触Shader开发的Unity3D使用者,因为我本身自己也是Shader初学者,因此可能会存在错误或者疏漏,如果 ...

  7. Unity 5.x 游戏开发指南 HD版 final.pdf

    下载地址:网盘下载 <Unity 5.x游戏开发指南>详细介绍了Unity3D 5.0的各个主要系统,包括地形系统.脚本系统.动画系统.界面系统.音频系统.网络通讯系统和2D系统,并通过大 ...

  8. Boost程序库完全开发指南——深入C++“准”标准库(第3版)

    内容简介  · · · · · · Boost 是一个功能强大.构造精巧.跨平台.开源并且完全免费的C++程序库,有着"C++'准'标准库"的美誉. Boost 由C++标准委员会 ...

  9. Unity3D游戏开发之网络游戏服务器架构设计培训

    下面我们开始今天的Unity3D游戏开发技能培训. 我们专业培养"游戏主程",挑战20W年薪,初期学习Unity3D培训目标:让U3D初学者可以更快速的掌握U3D技术,自行制作修改 ...

  10. [整理]Unity3D游戏开发之Lua

    原文1:[Unity3D]Unity3D游戏开发之Lua与游戏的不解之缘(上) 各位朋友,大家好,我是秦元培,欢迎大家关注我的博客,我地博客地址是blog.csdn.net/qinyuanpei.如果 ...

最新文章

  1. 想轻松入门Python编程,这10个经典案例你还不知道嘛?
  2. 关于OpenCV中常见函数用法总结
  3. HTML 5 视频,音频
  4. 细数 Spring 那些最常见的面试问题
  5. Android 清除png图片的白色背景
  6. Codeforces Round #579 (Div. 3) F1. Complete the Projects (easy version) 排序 + 贪心
  7. Python3 使用 pymysql 连接 MySQL 建表时出现 Warning3719 UTF8 警告
  8. 计算abc=a!+b!+c!
  9. 区块链 用户身份权限模式 方案
  10. C语言基础视频教程-欧阳坚-专题视频课程
  11. PHP中MD5函数效率
  12. python爬股票历史价格_【Python】利用ricequant获取上证指数以及所有股票历史价格数据...
  13. 企业微信每日定时自动上报
  14. 手机照片分辨率dpi怎么调?一寸证件照照片dpi怎么调300?
  15. qt中去除首尾空格的操作simplified()和trimmed()的对比操作
  16. pytorch训练Class-Balanced Loss
  17. 理解Memcached缓存[转载]
  18. 什么是网关?使用网关有什么好处
  19. 社区宽带繁忙是什么意思_康平附近企业宽带价位,附近光纤宽带上门安装多少钱...
  20. 为什么改了css网页没有变化_「前端开发」HTML/CSS真的好学吗?为什么小胖认为它并没那么简单...

热门文章

  1. 何钦铭.c语言程序设计,《C语言程序设计》 - 何钦铭
  2. java is alphabetic_java中的java.lang.Character类 – 方法| 2 - Break易站
  3. 如何简单理解光圈大小对手机摄影的影响?
  4. python 爬取 谷歌以及百度图片
  5. 【金猿案例展】某新型股份制商业银行——客服智能质检系统建设
  6. 商业银行vh是哪个银行的简称_各个银行的简称是什么?
  7. 用python玩转数据前三节_2020中国大学慕课用Python玩转数据题目答案
  8. Python将二维数组/多维数组转换为一维
  9. 栅栏CyclicBarrier
  10. 富士胶片将作为全球合作伙伴赞助菲利普·科特勒教授发起的2019年世界营销峰会,并在网站发布专访