51CTO博客开发
目前针对3D游戏移动端的开发,Unity3D引擎几乎占领了大部分份额,Unity的特点就是入手快而且市面上的插件比较多,这也说明它的架构设计还是非常不错的,有这么多人参与也使引擎的应用获得了空前的提升。但对于游戏公司的初级程序员或者说刚入门的程序员来说,在实际项目开发中,都是写写基本逻辑,对于底层架构设计并不是很清楚。这样对于自身发展非常不利,在这里
最近利用空闲的时间写了一本针对程序员开发3D游戏引擎的书籍,《手把手教你架构3D游戏引擎》 电子工业出版社,里面涉及到向量变换,矩阵变换,固定流水线的实现。给读者揭秘引擎的底层封装实现,对于学习者非常容易上手,可以做到举一反三,再学习其它引擎就会得心应手。目前在天猫,京东等各大网站有售,网址:https://detail.tmall.com/item.htm?spm=a220m.10
经过半年的努力,处女作《Unity 3D 实战核心技术详解》电子工业出版社 博文视点 终于问世了,该书是总结了游戏开发中的很多核心技术,结合着视频效果更佳,购买网址:http://www.broadview.com.cn/article/70 在12月5日到12日期间,在打折的基础上优惠,书籍内容全是干货,购买方式:可以查看网页中的“如何购买”。另外,在天猫都有
不知不觉在51CTO学院网站投放视频接近半年了,从开始有录视频的想法到在网上找发布视频的网站,不经意间与51CTO见面了,通过与51CTO学院的大霖聊了一下关于录制视频的要求,到录制视频样式给他审核,很荣幸就这样与51CTO建立了紧密的联系。
由于最近一直赶项目进度,没时间写,昨晚终于项目终于完成了,空闲下来,做一个总结。在这一篇中主要是把前五章一起总结一下,以及通过举例演示如何使用?有限状态机在游戏中使用的地方非常多,比如我们界面之间的切换,角色的状态切换等等。所以非常值得大家去学习一下,接下来我们主要实现的功能,为了表达清楚,我通过图例给大家说明一下:
在设计五中,我们把事件系统EventSystem实现一下。这个EventSystem类主要实现的是事件的注册,触发,以及分发Event消息的作用。提供接口对外使用的。在这里面为了功能扩展方便用了好多模板函数,方便大家调用。
接下来,我们继续我们的FSM有限状态机的设计,在设计三中我们实现了FSState这个类,我们继续实现FSEvent事件处理类。在FSEvent类里面我们声明了FiniteStateMachine里面定义的委托函数。代码如下:
在设计二中,我们实现了有限状态机管理类,接下来,我们实现FSState这个类,这里类主要是状态的基本操作以及事件触发。在这里我们定义了在FiniteStateMachine类里声明的三个委托。在FSState里面使用的代码如下:
在设计一中,我们把IState类设计了一下,接下来,我们写一下FiniteStateMachine这个类,这个类主要的作用就是对于外界调用,这个类是独立封装的,不继承Mono。这个类的功能是提供一个栈,用于存放FSState,还有通过Update进行状态的切换,以及对栈的管理,Pop和Push操作以及状态的注册。最重要的一点是声明了三个委托函数代码如下:
我们在游戏开发中经常面临架构设计问题,在蛮牛问答里面也有好多朋友问关于架构方面的问题,在这里我就将一些经常使用的游戏开发方面的知识跟大家介绍 一下, 一是给大家提供一个设计思路,在此基础上可以举一反三,二是大家可以通过这个平台共同学习。闲话不多说了,切入正题,FSM有限状态机,在游戏开发中如何使用?那些模块的设计需要它?接下来我们就分析一下游戏
我们接着系列二的问题继续讲解,系列二中的问题是如果多个材质是相同的,它没有去优化,接下来我们将其优化一下。
在系列一中,我们已经知道了问题所在,一个是优化后我们模型位置改变了,另一个是如果是不同的材质的物体一起优化的时候,不同的材质的对象会消失掉,我们在系列二中主要是解决这两个问题
Unity3D对于静态对象优化,一种方式是使用Unity自带的功能比如可以选择Static,这样Unity引擎内部会对其进行优化批处理,无需使用者关心,比较简单,但是还是不够理想。另一种方式是我们用脚本进行控制,用脚本对其进行优化,相对前者效率方面比如在DrawCall上可以减少。接下来我们逐步解析,优化直至达到我们的要求为止,本次作为一个系列来讲解,为了让大家更能透彻的理解。
对于静态对象,Unity可以使用通过勾选Static,然后让Unity自身进行优化Draw Calls,但是对于动态对象,Unity在这方面没有处理,这就需要我们自己去实现,实现的原理就是首先去遍历每个对象的SkinnderMeshRenderer,然后将其所有的动态对象组合成一个大的对象并且将骨骼动画赋值给他
大家在开发端游的时候,我们经常需要通过工具程序手动合并dds图片,意思是为了提高效率,需要我们把一些小的图片合并成一张1024或者2048的大图片。它的图片合成跟NGUI的图集原理是一样的,在这里我们不用NGUI的合并图集,我们手动合并图集。
任务系统一直是游戏中非常重要的系统,它一直伴随在游戏左右,玩家通过完任务去赚取装备,去升级,所以说任务系统是非常重要的,值得我们好好去架构。
在游戏蛮牛知识问答里面经常有人询问关于Unity中的Shader编程方面的函数问题,GPU编程其实就是把固定流水线的各种矩阵变换放到了GPU里面进行。
在Unity开发中会遇到一个问题就是在Anroid下使用Lightmap会出现场景高亮,曝光效果,这个问题折腾了一段时间,后来找到问题解决方案。
在游戏中,我们为了使敌人更智能化或者“智商”更高点,我们引入了行为树概念,什么是行为树?简单的理解就是,在一方做出行为的时候另一方会相应的做出举动来响应对方的行为
我们在使用Unity读取文件或者消息传递的时候,经常说到序列化。什么是序列化?序列化的意思就是我们的数据是按照一定的顺序进行赋值的,这个顺序是一定的。它主要是为了方便变量赋值。在Unity中我们也经常使用这种方法。
Hotween与ITween曲线是一样的,只是前者在后者的基础上增加了一些曲线编辑的可视化界面以及在功能方面,使用者可以更能随心所欲的构建自己所想要的效果。
Spine工具以前都是跟Cocos 2d结合的比较多,很多人以为Unity有了Toolkit 2d和NGUI不需要Spine了,其实这种理解是错误的,Spine非常适合Unity,不需要Toolkit 2D,自己本身就可以适应Unity。 而且由于他的资源量非常少,在效率和安装包方面都比Toolkit 2D好一些,现在Spine工具已经开始在Unity中使用了。
本文根据淮扬菜文化博物馆(筹)的应用需求,设计和实现一个多媒体辅助烹调系统。介绍了基于FlashScript脚本语言的多媒体辅助烹调系统的的功能结构、设计方法及实现技术。本文最后给出了所实现的效果图片与功能演示,并讨论了现有系统的不足和进一步的改进方向。
游戏中的换装系统一直是游戏中不可或缺的一部分,在Unity中如何去实现换装?换装需要注意哪些问题?接下来我们就上面两个问题展开讨论。
随着时代的发展,科技的进步,数据处理正朝着云服务器的方向发展,不论在大学还是在公司,云服务器以及大数据正变得越来越热门。在大学里,可以把资料放到云服务器上,所谓的云服务器其实就是利用多台服务器一起为用户提供诸如上传,下载等功能。可以通过并行处理加快运算速度,在公司比如动漫经常做的渲染模型使用的渲染农场,原理是一样的。
增强现实是把计算机产生的虚拟物体或其他信息合成到用户看到的真实世界中的一种技术.实现虚拟信息与真实景象的正确匹配或有机结合是每个增强现实实用系统都必须完成的一项重要任务,且它的具体实现需依赖于计算机硬件和软件系统的相互配合及协调.并能支持用户与其进行交互,它已经成为虚拟现实研究中的一个重要领域,也是人机界面技术发展的一个重要方向。
在游戏中,我们经常会看到角色挥动武器的时候,拖尾的效果,以及折射扭曲。在Unity开发中大家可以使用RPG Pocket插件或者其他的插件,在这里主要是给大家介绍一下其生成原理。
在玩网络游戏的时候,多人在线,多人组队,多对多PK等等,这些我们经常可以互相看到对方在移动,我们通常称这个为实时同步,有时,我们会看到对方忽然有被拉回的感觉,这个称谓延时操作,就是说客户端和服务器端时间不一致或者是网络不顺畅造成的,接下来我给大家介绍一下在客户端如何实现实时同步。
随着游戏的日益盛行,赛车游戏一直以来很受玩家喜爱,比如:极品飞车,侠盗飞车等。很多人可能会想如果我设计一款赛车游戏该如何做?首先遇到的问题是如何架构赛车游戏框架?带着疑问我们开始今天的探讨。我在这里结合自己多年的游戏经验以及利用业余时间制做的赛车游戏,跟大家分享一下架构设计赛车游戏逐步揭开它神秘的面纱。并不是说做赛车游戏一定要按照本文的架构进行设计,只是提供一种设计架构的方法以及思维方式,达到抛砖引玉的效果。
Copyright © 2005-2024 51CTO.COM 版权所有 京ICP证060544号