找回密码
 立即注册
查看: 488|回复: 5

[笔记] 如何用unity引擎然后用c#语言搭建本身的处事器?

[复制链接]
发表于 2023-6-23 17:21 | 显示全部楼层 |阅读模式
想要开发ios手机游戏,如果用unity引擎用c#开发一款像部落冲突的游戏,能不能用unity搭建本身的处事器?或者得用租借处事器?
发表于 2023-6-23 17:21 | 显示全部楼层
比如 ET 引擎?
发表于 2023-6-23 17:22 | 显示全部楼层
前言

Unity引擎本省就是一个框架,我们基于Unity再做一个游戏开发框架,本质就是建立一种组织自己项目的方式和方法,让程序+美术+策划一起协同工作,同时能开发出满足项目需求的游戏产品。所以游戏框架的架构与设计与项目管理本身有很密切的关系,今天从另外一个维度来说说基于游戏引擎来如何来做游戏app游戏开发框架。
对惹,这里有一个游戏开发交流小组,希望大家可以点击进来一起交流一下开发经验呀
1: Unity引擎给我们开发游戏提供的是机制
渲染机制:


开发机制:


资源管理更新机制:


可视化编辑器与编辑器扩展机制:


跨平台机制:


玩家输入设备:


提供第三方开发库的机制:


提供性能参数分析相关机制与工具:


还有其它的一些机制,我这边就不一一列举了,对于Unity引擎给开发者提供的是一些游戏开发中的常用的机制,而接下来我们要做的是用这些机制,结合我们的项目和团队定制出最适合我们开发游戏项目的策略,所以本质上来说我们做游戏框架其实是基于Unity机制来定制定制适合我们的一种开发策略。
Unity游戏框架需要定制哪些策略
根据游戏定制渲染管线+Shader策略:
这个是大型游戏项目中很重要的一个环节,它首先会涉及到游戏的渲染效果,涉及到游戏运行的性能。比如我们要做一个卡通风格的游戏《火影忍者》里面所有的角色都是卡通风格,那么我们做框架的第一件事情就是要实现卡通渲染着色Shader。


如果游戏不需要支持任意数目的光源,最多只有4个光源,但又需要实时光照计算,而不能用静态光照,又需要极致性能在手机上跑,我们可能就会定制渲染管线或换渲染管线,用定制渲染管线或URP轻量级渲染管线来代替传统的向前渲染管线。所以框架要做的第一件事情就是根据项目选着或开发适合项目的渲染管线与Shader。然后做项目技术验证,看看当前的渲染效果与性能能否满足要求,多平台手机端的差异是否被解决等。
选择合适的开发模式来定制开发策略:
我们用Unity做项目的时候搭建框架首先要考虑的就是开发模式,到底是使用传统的组件化开发模式还是使用ECS模式,还是组件化+游戏逻辑ECS的模式结合。这个根据自己的项目来选择合适的就可以了。ECS,数据都在一个Entity内,大量的数据用Trunk分配,避免内存碎片,提升访问数据的缓存命中,提升性能,System只有代码算法逻辑, 可以通过多线程来调度System获得更好的性能。组件化模式开发简单方便,符合大多数开发者的思维习惯,选一个合适自己项目和团队的方式就可以了。有些技术总监一上来就各种复杂的开发模式,其实要反思一下这样是否真的适合团队,复杂的东西不是每个团队的开发者都能驾驭好的。
选择合适团队与项目的开发规则
开发模式选好了后,就来制定开发中团队协作的一些规则,通过规则来限定不同的研发角色的一些工作方式,让大家统一,高效的协同作战。比如版本管理工具用git。所有的角色,特效,UI,地图场景都做成预制体,预制体不挂任何的逻辑代码。根据美术来分好项目资源目录结构,场景美术, UI美术, 特效美术, 角色美术与动作特效等, 这样就可以独立的工作最大限度的减少版本冲突等。这些策略确定好了都是为了多人更好的协同开发,减少冲突。


制定好规则,规定好哪些代码需要考虑重用,哪些代码不用考虑重用,很多开发者在写一些原本不用考虑代码重用的地方,花了很多心思,想了很多的设计模式来包装,其实有时候没有必要,提前制定好规则,不用考虑重用的地方不用花太多的心思精力在可复用上。这样能大大减少开发人员包袱,让逻辑代码更简单。
制定好代码模块的衔接规则,能方便的屏蔽代码,隔离错误,移除与重构质量不高的代码。
还有一些定制命名规范等规则,一些程序与策划沟通的规则,这些就不再展开描述了。
定制好基于版本管理与增量更新的资源管理策略:
资源管理对于游戏开发而言是非常重要的,在开发中控制游戏的内中占用涉及到资源的加载与释放,每次更新新的功能与游戏打空包都涉及到资源的增量下载与更新,Unity提供了3中机制来做资源加载Resources, AssetsBundle, Addressable, 由于要涉及打空包和资源更新一般资源管理都抛弃掉了Resources,大部分的项目都基于AssetsBundle或Addressable来做好资源管理,资源的版本管理,和基于版本的增量更新与断点续传。这些都是框架自己根据项目来定制策略。


定制好多平台自动化打包发布的策略:
当我们开发完游戏或者游戏在测试的时候经常需要做版本发布。做好自动化的打包与发布非常的重要,比如某个版本要做内测了,用git拉取一个分支出来,然后运行自动化打包脚本,生成对应平台的安装包提交内测。内测的时候测试报告如何写,需要测试哪些功能等都要做好规定,定制好对应的策略,稳定的项目都是通过优秀的管理与测试测出来的。
定制好特定项目的特定工具
很多特定的游戏需要开发一些工具来完成,如关卡编辑器, 行为决策树,路径烘培与地图生成工具等。这个时候我们就需要开发一些工具出来给美术,策划来使用,帮助他们和程序很好的配合,完成项目开发。
经过这些考虑,基本上一个游戏框架的雏形就出来了,一个组织游戏项目开发的流程与规范基本就定型了,这样项目也就基于这样的方式铺开来,进行快速的迭代开发。
这个有一些的Unity游戏主程框架进阶的一些课程,值得大家学习和交流。
Unity

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
发表于 2023-6-23 17:22 | 显示全部楼层
用 c# 搭建服务器的话,可以搜索dogse试试看
发表于 2023-6-23 17:22 | 显示全部楼层
题主将游戏引擎和服务器端的概念搞混乱了。
发表于 2023-6-23 17:23 | 显示全部楼层
Unity3d是款夸平台的3d引擎,目前支持的开发语言有c#和js,它和服务器没有任何关系。想开发服务器,请使用tcp socket来开发。mono是个可以夸平台的,使用c#作为语言的好东西,当然也能写服务器
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Unity开发者联盟 ( 粤ICP备20003399号 )

GMT+8, 2024-4-29 03:11 , Processed in 0.297201 second(s), 28 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表