U3D游戏开发要思考的问题

我用unity开发的第一款游戏demo心得 本人目前大一,双非一本,谨以此博客,记录日后的unity学习过程与算法训练。希望能同大家一起进步!也希望三年后回过头来能看到一个优秀而拼搏的自己! 话不多说,上我的第一个demo(虽然是跟着视频做的)就是一个简陋版的贪吃蛇啦! 首先是添加最基础的scene,我们添加plane,player,再添加几个cube然后通过改变他们的参数来控制它们的大小及形状。需要注意的是,为了让我们的每一个游戏物体都看起来生动,我们需要为他们添加材质。 在Project操作框下面的Assets里面新增一个文件夹Mretr. 阅读详情


 

代码驱动带来的技术题

游戏碎片化。U3D 引擎有个很有力的特色,就是实时编译运行。这意味着无论在任何时候,只要按下运行图标,当前的场景就会进入可执行状态。这导致了游戏在开发的过程中经常陷入一种不应当的自信状态。同时也导致了游戏内容长期处在碎片状态下,并低估游戏功能整合时可能遇到的困难。

资源管理是 U3D 引擎的一个难点。U3D 的资源管理系统因为跨平台的缘故和操作系统的文件系统是脱钩的,需要熟练的掌握 Resources 目录和 Assetbundle 的技术才能灵活的控制游戏中的资源使用情况。但这一工作时常会被简单的理解为将资源放置在游戏工程目录下,剩下的交给引擎自己搞定 ……

需要自己做数据系统。我们如今国内研发的作品,绝大多数是数据密集型(策略、经营、卡牌、KRPG),这和 Temple Run 这样的游戏类型有些不同。数据密集型的游戏需要采用数据驱动的形式来进行游戏的设计和开发,但是 U3D 提供的框架是一个代码驱动型的结构(对于原型开发来说极为有力)很多时候会让研发团队陷入泥潭 —— 看起来功能开发出来了(只要在U3D的对象检查器里调调参数就能工作),却迟迟无法进入大规模制作阶段(策划拿着数据表格却无法应用到游戏里)。U3D 引擎本身也没有提供任何在数据方面的支持,数据表要么需要自行处理,要么需要自己寻找嵌入式的数据库解决方案。

网络连接部分其实也是类似。U3D 本身集成的网络模块并不是为大规模 C/S 结构的游戏所设计,常需要自行开发一套客户端和服务器结构。当然也可以求助中间件来解决 …… 但是容易让人迷惑的地方在于,U3D 既可以使用 .net 的网络机制像端游一样工作,也退一步可以用加密的 www 机制,当一个简单的页游来处理。如何抉择是个难题,贸然贪多求全往往换来遥遥无期。

测试 U3D 开发的游戏亦一个很麻烦的过程。原因也是那个几乎不会崩溃,随时可运行的场景/逻辑混成编辑器 —— 它会让开发团队误算自己当前的游戏完成度,以及需要什么样的测试。

尖端技术带来的麻烦事

高精尖的动态光照和复杂材质系统。U3D 比起其他的移动平台或者网页游戏开发工具而言,往往最打动人的就是其无与伦比的画面渲染效果。但是在光鲜的官方演示背后,仿佛总有看不到的壁垒阻碍着其他开发者的步伐。实际上驾驭 U3D 所需要的能力是超乎一般想像的。U3D 的渲染架构的确够强大,完成 Unreal 甚至 CryEngine 级别的画面渲染质量都是可能的,但是它并没有包装这些系统而是将灵活性交给了开发者。我们的程序员是否已经控制住了渲染管线的复杂度?我们的技术美术是否可以指导我们的美术完成充分发挥 U3D 能力?美术制作人员是否有具有胜任所谓“次世代”精度要求的游戏内容制作?这些东西属于小团队吗?

全局光照烘培。这是一个非常非常非常实用的 U3D 功能。理应所有的 U3D 团队都灵活使用。但是想要用好就有了另外一番难度 —— 美术和场景制作人员的配合,而谁来负责就比较难说了。另外美术必须用非常精准的尺寸来制作场景中的物件,否则 U3D 将无法正确的处理全局 UV。

工具链带来的纷纷扰扰

GUI 系统的各种理论。所有人都在吐槽 U3D 自带的 GUI 系统太慢 —— 问题是真的有证据吗?一方面很多人说我做测试的时候做了一大堆的控件,的确很慢。另外一方面大家也会发觉 GUI 系统会带来一些不必要的渲染请求(Draw Call)。于是大家都在拼了命的做两件事情,一个是减少渲染请求,一个是想尽一切办法的避开 GUI。但其实情况没那么严重,无论是挑选替代中间件如 NGUI 还是直接使用 U3D 的 UI 系统都不会巨大的影响 —— 除了不当使用之外极少见到 GUI 成为性能焦点的时候。不过无论是 NGUI 还是 U3D 内置 UI 都没有很好的 UI 工具 —— 要么过于程序员导向,要么过于偏向布局而不方便增加代码功能。内部开发一些扩展工具或者工作流程都很有必要。

版本控制的难题。Asset Server 还是 SVN 其实多多稍稍都有不适应 U3D 的情况。但是更关键的地方在于整理好文件的内部结构以及经常备份。恰当的使用 U3D 的命令行模式可以实现 U3D 工程的自动编译发布。

扩展 U3D 本身功能的能力。因为 U3D 较为完整的功能而忽视对 U3D 本身的功能拓展是一种常见状态,随时保持专人不断的优化 U3D 本身的功能是非常重要的,譬如各种各样的批量化操作等等。但是这有个前提,扩展工具需要充分理解工具,U3D 相对来说功能过于强大,以至于很多团队中的成员会害怕学习,而将 U3D 作为少数团队成员或专属于程序员的工具 —— 这就很成问题了。

需要前瞻性的判断能力

每一个,每一个国内开发 U3D 游戏的团队都在抱怨 U3D 的中文字体支持问题等等。可是实际上真正用前瞻性的角度在使用 U3D 引擎的团队并不多 —— 以今天此时此刻为例,U3D 4.0 已经可以在任何平台上使用动态的字体,支持 Unicode 编码 —— 中文不在话下。从 U3D 3.5 迁移到 4.0 几乎不用对项目做任何的修改,而如果说之前并不知道 4.0 会支持动态字体的话,那么为什么不多去官方论坛关注一下每个版本的开发进度情况呢?每一个在 2013 才会发布的游戏都不应该担心字体问题才对嘛 ……

保持对每个版本 U3D 更新内容和未来 U3D 功能的关注可以大量减少重新发明轮子的问题,也能在遇到一些困境时保持更好的心态。直接邮件开发者也会是个很好的选择,请一定要多骚扰他们!一般提前3个月到6个月就能获知将来版本可能更新的内容的。

1  “Code-Driven”
State Management
Assets Management
Data Management
Networking
Testing

2 CuttingEdge Techs
Dynamic Lighting & Complex Materials (Textures)
Lightmapping
Nav mesh
Mecanim
DX11

3 Toolchain
GUI
VersionContorl

4 Vision


浅谈初学Unity3d感受 本人在学校学习的时候学过一点C#,再加上本身做java开发,对于编程思想和设计模式都有所了解,所以在刚接触到unity的时候,感觉上手并不难。 目前自学了不到一个月unity3d,在网络上找了很多教程,明白了一些简单的unity开发,对于这种开发模式很感兴趣,再加上有朋友是做这行业的,遇到问题也请教过别人,慢慢开始对这个行业产生了很强的兴趣。 之前做java开发,基本上都是千篇一律的增删查改,有集成的框架,从sql到前端ui全部都由代码生成器生成,工作内容... 阅读详情

相关推荐

U3D游戏开发 技能树分析

学历 对于游戏行业来说,其实对学历的需求并没有这么高,基本上大专或大专以上就比较好找工作。 当然有一些前提,比如你的专业是关于计算机的。 至少对计算机底层逻辑有一个理解,或者至少学习过一个语言,语言这个东西基本上都是差不多。能学会一种语言,其他语言也比较好学。 再就是对于一些本科的同学,是否要考虑读研究生,其实这还是要想到一个年龄的问题,因为如果你本科毕业了还是22.23岁左右,那是可以读的,但是要保证一个技术的持续跟新,因为技术每年都在更新。 如果读完本科就24.25了,那就没啥必要了,因为游戏行业,基本

TgzzGGj的博客 825

学习unity心得体会

在未来的学习和工作中,我将继续努力学习、实践项目、团队合作等方面的知识和技能;通过在学习 unity中遇到的问题,以及在实践项目中不断解决问题、积累经验和教训,我逐渐从入门到慢慢地熟练操作 unity。在未来的学习和工作中,我将继续努力学习 unity技术知识、提高自己的动手能力和团队合作能力。通过这些实践项目,我不仅学习到了 Unity中的各种知识和技能,还提高了自己的动手能力和团队合作能力。在学习 unity中,我遇到了很多问题,但是通过不断的尝试和探索,我最终解决了这些问题。

vdndnc54649498的博客 1805

【论文阅读】2021-(Pidinet)Pixel Difference Networks for Efficient Edge Detection

文章目录摘要1. Introduction 摘要 motivations: 基于CNN的边缘检测的高性能是通过一个大的预训练CNN主干来实现的,该主干占用大量内存和能量。传统边缘检测器(如Canny、Sobel和LBP)很少被研究。 contributions: 提出了一种简单、轻量级但有效的架构,称为像素差分网络(PiDiNet),用于有效的边缘检测。PiDiNet采用了新颖的像素差卷积,将传统的边缘检测算子集成到现代CNN中流行的卷积运算中,以增强任务性能。 experiments: 在BSDS500

轻舟的万重重山 1万+

2.18 u3d

如何理解工具、正确使用Unity引擎确实需要讨论,在选择Unity之前你或许需要了解下这个引擎实际开发过程中的技术特点、以及适应的游戏产品类型,gamelook热心读者Fxcarl昨天就这个问题专门撰文一篇,来帮助大家了解Unity游戏开发、分享心得,推荐阅读。 文/FXCarl 代码驱动带来的技术题 游戏碎片化。U3D 引擎有个很有力的特色,就是实时编译运行。这意味着无论在任何时...

dongdongya94510的博客 280

electron windows设置镜像地址环境变量报错npm error `ELECTRON_MIRROR` is not a valid npm option

如果你是在使用某个特定的脚本或配置文件,请检查该文件中是否有不正确的配置项,并进行相应的修正。确保你遵循electron的官方安装指南,并且没有包含不必要的或错误的配置选项。如果问题依然存在,可以查看npm的官方文档或者相关社区获取更多帮助。

qq_36158551的博客 3322

2018南京大学计算机夏令营机试

1. Count number of binary strings without consecutive 1’s Given a positive integer n(3≤n≤90), count all possible distinct binary strings of length n such that there are no consecutive 1's . Examples...

climber16的博客 1万+

Unity游戏开发笔记(二)

C#中关于as关键字的使用 在C#中提供的很好的类型转换方式总结为: Object => 已知引用类型——使用as操作符完成; Object => 已知值类型——先使用is操作符来进行判断,再用类型强转换方式进行转换; 已知引用类型之间转换——首先需要相应类型提供转换函数,再用类型强转换方式进行转换; 已知值类型之间转换——最好使用系统提供的Conver类所涉及的静态方法。 ...

第7维度 - 日常笔记 888

手机拍照对焦快准狠的秘密:一文看懂PDAF、Dual Pixel和Super PD的区别

本文深入解析手机拍照中的三种主流相位检测自动对焦(PDAF)技术:Shield Pixel、Super PD和Dual Pixel。通过对比它们的原理、优缺点及实际表现,帮助读者理解不同技术的对焦速度、暗光表现和画质影响,从而做出更明智的购机选择。

weixin_26985923的博客 486

拷问Unity:开发U3D游戏要思考的问题

游戏蛮牛列举了u3d游戏开发要思考的问题,工具本身无罪,但如何理解工具、正确使用Unity引擎确实需要讨论,在选择Unity之前你或许需要了解下这个引擎实际开发过程中的技术特点、以及适应的游戏产品类型,gamelook热心读者Fxcarl昨天就这个问题专门撰文一篇,来帮助大家了解Unity游戏开发、分享心得, 代码驱动带来的技术题 游戏碎片化。U3D 引擎有个很有力的特色,就是实时编译

u013951435的专栏 736

Rstudio安装org.Hs.eg.db

自己也是个小白,初次安装org.Hs.eg.db碰到好多问题,步骤总结如下: 第一,instal.packages()安装,不行则换 BiocManager::install() 第二,如BiocManager不成,说明不是最新版本,可按提示安装最新版 BiocManager::install(version = '3.13') #由于R版本较新,按照提示中的相关信息,安装最新版本的 第三,再次安装 BiocManager::install("org.Hs.eg.db") 第四,之后每个人.

ZH_DDong的博客 2万+

UE4项目迁移指南:如何无缝导入外部.uasset文件并保持材质关联

本文详细解析了将外部.uasset文件无缝导入UE4项目的专业方法。针对手动复制文件时常见的材质关联丢失问题,提供了使用引用查看器进行诊断和修复的实用技巧,并推荐使用引擎内置的“迁移”功能确保资源依赖关系的完整性,帮助开发者高效整合项目资源。

t8u9v0的博客 1046

U3D游戏开发从入门到弯道超车(1):序章

1. 写在最前面的寄语: 很多人把学习定义为一件痛苦的事情,那是因为90%的人都未掌握正确高效的学习方法。这也是为什么只有10%的人站在了职场的最顶峰,因为他们掌握了高效的学习方法,这样的方法能够让他们不断地更新迭代自己,不断地刷新自己的认知。每个人的成就最终很大程度上依赖于个人的认知。所以在我分享各种技术、产品策划设计、项目管理方面知识的同时,我想把一种高效的学习方法也教给大家,最终能够达到授人...

Richard_shen的博客 7441

YOLOv5源码逐行超详细注释与解读(5)——配置文件yolov5s.yaml

全网最详细的YOLOv5源码解读之配置文件yaml。逐行注释,逐句讲解,一文带你了解yaml。小白必看!

路人贾的博客 1万+

U3D游戏开发从入门到弯道超车(一):序章

1. 写在最前面的寄语: 很多人把学习定义为一件痛苦的事情,那是因为90%的人都未掌握正确高效的学习方法。这也是为什么只有10%的人站在了职场的最顶峰,因为他们掌握了高效的学习方法,这样的方法能够让他们不断地更新迭代自己,不断地刷新自己的认知。每个人的成就最终很大程度上依赖于个人的认知。 所以,在我分享各种技术、产品策划设计、项目管理方面知识的同时,我更想把一种高效的学习方法也教给大家,最终能够达...

weixin_33695450的博客 718

基于MATLAB开发AUTOSAR软件应用层模块-part2.建立一个AUTOSAR的模型,并生成autosar格式代码

上一篇我们建立了一个空模型,这篇我们接着上篇文章,建立一个简单的模型 点击 Library Browser,打开simulink模块库,见下图 左侧是模块库的列表,右侧是每个模块库里包含的具体的模块。 点击通用模块库,里边是一些常见的模块, 我们选取里边的3个模块,分别是输入,输出和增益三个模块,右键点击模块,选择add block to model xx,可以把模块添加到模型中。 然后练好连线 一个简单的模型就搭建好了,之后我们修改配置,将模型修改为AUT...

汽车软件开发 3301

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

U3D游戏开发框架(一)——什么是框架?什么是库?

一:前言 框架提供了⼀个规则,你必须遵守,他的最大特征就是会接管程序的主控制流程,你只需要写业务逻辑代码,具体底层的执行由框架来调用而库可以理解为一个工具箱,是一系列预先编写好的代码的集合,例如printf就是来自C语言标准库 一个好的框架可以提高我们的编码效率,规范流程 二:框架思想的演变 一开始接触U3D游戏开发,我们会习惯写一些例如UI、Manager,内存池这些与GameObject没有明显关系的脚本挂载到一个空的GameObject上,使用的时候通过GameObject.Find()找到目标

L的博客 4789

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

U3D游戏开发商思考

代码驱动带来的技术题 游戏碎片化。U3D 引擎有个非常有力的特色,就是实时编译执行。这意味着不管在不论什么时候,仅仅要按下执行图标,当前的场景就会进入可执行状态。这导致了游戏在开发的过程中常常陷入一种不应当的自信状态。同一时候也导致了游戏内容长期处在碎片状态下,并低估游戏功能整合时可能遇到的困难。 资源管理是 U3D 引擎的...

weixin_30955341的博客 120

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

上一篇: 35岁亿万富翁:程序员之神 游戏玩家的领袖
下一篇: unity3d面试题摘选(全)
七大黍
博客等级 码龄20年 436粉丝 260原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值