主要学的内容如下:
1游戏程序设计:C++程序设计入门;基本数据类型和输入输出;流程控制语句;数组、指针和引用、函数;程序结构和书写规;范结构体和联合体、类;继承与多态;异常处理与程序调试。
2算法与数据结构:算法分析;数据结构;基本算法;STL的概念与使用;静态库与动态库;XML库的使用。
3Win32程序设计:Windows程序入门;Windows消息;GDI绘图游戏工具与MFC;网络编程基础。
4游戏数学和智能应用:游戏中的坐标系;矢量、矩阵;几何碰撞;物理模拟;人工智能与寻路算法。
52D游戏技术与应用:2D游戏技术概论;游戏地图系统;GUI系统;战斗系统设计;任务系统;优秀的声音引擎BASS;Cocos2D-X引擎;Box2D物理引擎。
想要系统学习,你可以考察对比一下开设有相关专业的热门学校,好的学校拥有根据当下企业需求自主研发课程的能力,能够在校期间取得大专或本科学历,中博软件学院、南京课工场、南京北大青鸟等开设相关专业的学校都是不错的,建议实地考察对比一下。
祝你学有所成,望采纳。
UNITY3D和 COCOS2D-X都是跨平台的游戏开发引擎,COCOS2D是专门做IPHONE游戏的2D游戏引擎。
下面就从多个方面来对比阐述一下:
1)是否开源
COCOS2D开源,有文档支持,论坛资料庞杂博大;
UNITY3D闭源,有强大的文档支持,论坛资料一样的庞杂博大。
开源对COCOS2D来说,意味着可以进行随心所欲的改造,可以更深入的了解各种游戏需求的底层实现原理,更可以订制出更符合自己要求的类库。
相对的,它的麻烦也不小,因为开源,所以可以随便改,因为可以随便改,所以很容易改错,而且调试维护的成本也会倍增,因为更接近底层,所以往往实现一个功能的时候或者自己要更费周折。
闭源对于UNITY3D来说,意味着更能方便的使用,更有质量保证,同时意味着偶尔有使用者看不到的想看的内容,想接近底层会花费巨大的代价,想订制一种自己的数据结构或者功能来添加进去的时候很难下手。
2)是否免费
COCOS2D免费,免费意味着,服务差,很多程序员不想看到的现象会莫名其妙的出现,偶尔作者不小心出点意外什么的没有什么可以控制的方法…例如,作者一不小心使用了一种非常危险的方法来写代码,这个时候基本上使用者欲哭无泪,查起错误异常艰难,但是总能查出来免费的好处是,有一天如果用COCOS2D做了一个很牛逼的游戏,可以正当光明的说,这个游戏是我们做的,游戏质量很好,而且不用恐惧有人冲过来收钱。
UNITY3D收费,收费意味着…服务真心是不错诶,U3D小组力求把麻烦留给自己,方便留给程序员,所以用着还真是爽,很多麻烦都被U3D消灭在萌芽阶段,真心好,但是,要钱的。
3)跨平台能力
两者都能跨平台。
COCOS2D的跨平台,需要大量重写代码,面对各种平台的各种细节麻烦所以当使用COCOS2D的时候,很多麻烦来了,于是再面对平台特定的更麻烦的问题的时候,程序员基础好很多,更容易搞定
UNITY3D的跨平台,程序员只需要选选按钮就淡定许多的搞定了,但是当面对U3D团队没有想到的平台特定的更麻烦的问题的时候,这个时候的程序员,需要使劲的“吃”键盘来克制自己内心的焦虑吧…
4)团队开发
cocos2d压根就没往团队方面想,所以团队配合方面的工具,程序员基本自理,细节问题自理,麻烦问题自理,UNITY3D想了一些,做了很多,但是也有纠结的地方,程序员在没有完全理解的基础上使用会变得很难接受值得一提的是,UNITY有强大的所见即所得能力,动态解释,现场执行,COCOS2D一直在向着这个方向努力,或许在未来某一天两者也会不相伯仲
5)周边工具
COCOS2D是集体智慧,各路人马都提供了各种各样的工具,COCOS2D将他们整合到了一起,各种工具都有各种麻烦,也有各种好处,总的来说,花点精力还是有好结果的。
UNITY3D自家解决了很多麻烦问题,周边工具也有很多人做,但是,不开源,而且要钱,服务好很多。
6)可定制性
COCOS2D拥有令人发指的可定制性,因为从C++写起,所以程序员可以为所欲为,为所欲为的代价就是,所有细节都要照顾,所有麻烦都要生顶(例如,写出的工具不跨平台,订制的数据结构无法通用,序列化一个类到其他平台之后无法反序列化等等)。
UNITY3D有一个专门为订制而写的类库,没怎么用过,但是可以确定的是,这个类库是跨平台的,这个优势很伟大。
7)3D
这个U3D确实完爆COCOS2D,不过,要是不想做3D游戏呢那多余的3D功能也会很累赘。
总而言之,两家都是游戏引擎的大家,两者都能适应不同的需要,各具特色各有特点,估计谁也灭不了谁。
如果完全没有学过C++ 建议看<C++ PRIMER>把基础通篇阅读 不求全理解。再学cocos2d-x的时候慢慢消化。 C++用不好 危险性是很大的。我见过量两个 写了4年JAVA的程序员转到cocos2d-x转了两年了,写的代码还是内存管理漏洞百出一眼就可以看出是基础惹的货我总结的经验是:不怕遇到不能解决的错误 , 就怕根本不知道这个是错误 所以从基础开始吧 初次简单看完<C++ PRIMER>也不过1-2周时间 可以的 我感觉当时我看了<C++ PRIMER>两遍,第二遍才算是通篇理解了之后我自己都感觉自己简直是变了个人 遇到问题一般都可以解决,万变不离其宗
最近有不少开发者都向我提出了一个问题:我为什么应该选择 quick-cocos2d-x?
这个问题在我看来,实际上包含几重意思:
1 为什么会出现 quick 这个项目?
2 quick 和 cocos2d-x 到底有多大的区别?
3 选择 quick 还是 cocos2d-x?
4 选择 quick 的风险有多大?
5 quick 未来的路线图是什么?
----
1 为什么会出现 quick 这个项目?
关于这个问题,我在 cn quick-x com 上有一个详细的说明,简单概括那就是:开发商需要一个更完善的 cocos2d-x + Lua 的解决方案。
2 quick 和 cocos2d-x 到底有多大的区别?
区别分为几个层面:
21 底层 C++ 代码:quick 是建立在 cocos2d-x 基础上的开源项目,对 cocos2d-x 的功能几乎没有做裁剪(除了用一些更好的 Lua 扩展组件代替 cocos2d-x 内置的),主要修改都是新增功能。cocos2d-x 的 C++/Lua 项目拿到 quick 里是完全可以跑的。
22 扩展的功能:针对开发商的实际需求,quick 里提供了加密解密、网络请求、IAP、第三方 SDK 集成、物理引擎封装等一系列扩展。这些扩展都是独立的代码,并不侵入 cocos2d-x 的底层代码。
23 对 cocos2d-x 的改进:主要包括 Lua 支持的改善,以及触摸事件机制的改进。前者是为了游戏运行更稳定,后者则简化了 UI 的开发。
24 一个 Lua 框架:quick 包含的 Lua 框架,绝大部分功能都可以直接跑在 cocos2d-x 上(实际上有开发商这样做)。这个框架的价值在于将 C++ 风格的 API 转为了 Lua 风格,让开发者可以用更精简的代码实现更多的功能。并且框架定义的规范、接口,让开发者可以创建更容易维护的程序代码。
所以 quick 和 cocos2d-x 就像美女穿衣服和不穿衣服的区别。
3 选择 quick 还是 cocos2d-x?
如果你认为 Lua 是更靠谱的选择,那么请使用 quick。
4 选择 quick 的风险有多大?
我能想到的有几点:
41 quick 的作者发疯了,对 cocos2d-x 乱改一气,造成了 quick 和 cocos2d-x 的兼容性被破坏。我不敢保证不会有这一天,但是我时刻警醒自己抵制住这种诱惑。大家需要的是一个可靠的产品,而不是一个按照个人意愿随心所欲改变的玩具。
42 主要维护者跑路了,不维护 quick 了。我想出现这种情况,要么是转发过了 500,要么是 cocos2d-x 这个体系已经玩不转了。
43 quick 不再跟随 cocos2d-x 升级。这个请放心,当 cocos2d-x 3x 成熟的时候,quick 会第一时间发布匹配的版本。追求新技术,是有节 *** 程序员的基本素质。
5 quick 未来的路线图是什么?
quick 的架构会继续保持:cocos2d-x 最小修改 + 扩展 + Lua 框架 的形式。这样对 cocos2d-x 的修改最小化。同时,我们会努力将 quick 中对 cocos2d-x 的改进推送到 cocos2d-x 官方仓库。希望有朝一日能够实现官方版 cocos2d-x + quick 扩展 的架构。
而具体到功能上,quick 在 2013 年将实现下列目标:
51 一个功能全面的 UI 库:亮点是自动布局管理和可扩展的 UI 控件。因为整个体系都是 Lua 实现,所以可以充分利用动态语言的优势。
53 一个 MVC 库:包含基本功能的 MVC 架构,提供清晰的 API 和代码组织结构,并且可以很容易的扩展。
54 全面的网络解决方案:异步 >
开发游都需要的人才有:
1、一款游戏的开发需要一个总的游戏策划人,为游戏编写背景故事,制定游戏规则,设计游戏交互环节,计算游戏公式,以及整个游戏世界的一切细节等。
2、需要游戏程序员。游戏程序员根据游戏策划人的策划书,不同的游戏需要不同的计算机语言以及不同的游戏引擎进行开发。
比如网络游戏程序,需要用到C++语言,用到cocos2D-x游戏引擎,untiy3D游戏引擎,Dx等技术。手机游戏程序,用到java计算机语言,安卓平台技术,ios平台技术等。
3、游戏美工。游戏美工主要是游戏原画,2D、3D游戏美工,需要用到手绘,PS,3Dmax等软件。设计与制作游戏中的角色,场景,动画,特效等。
网络游戏策划设计分为执行策划和主策划,网络游戏美工设计分为原画设计、游戏UI设计、游游戏动画设计,网络游戏程序设计分为游戏程序设计。
1、网络游戏策划设计师需要学习:数字游戏宏观环境解析、数字游戏高级策划理论、数字游戏创意实践Unity3D项目开发。
2、网络游戏原画设计需要学习:手绘基础、原画艺术基础、动物角色设定、场景设定。
3、网络游戏UI设计需要学习:UED概述、GUI设计基础、网页UI设计、软件UI设计、游戏UI设计。
4、网络游戏程序设计需要学习:游戏程序设计、算法与数据结构、Win32程序设计、游戏数学和智能应用、2D游戏技术与应用。
对于“学习”而言,
Cocos2d-x是比较好理解的。它是传统的OOP结构,对于有编程经验的人来说,是最好不过了。就连Unity3d上,也有一个很火的2D框架,Futile,是模仿Cocos2d-x的架构和代码风格。从Cocos2d-x上手接触一下游戏引擎,是一个不错的选择。
而
Unity3d是Component-Based结构,对于OOP背景的程序员来说,一开始会觉得别扭。而且Unity3d有很多针对3d模型、3d动
画、优化等等的商用功能,对于初学者来说会有点overwhelming的感觉。而且无论如何使用Unity3d,总需要在editor里进行大量 *** 作,
对理解游戏引擎和代码架构来说,并不是一个很好的方式。
然而,从“开发”的角度来说,
Cocos2d-x正如 @周华 所说,是一个“纯正”的引擎——仅仅只是代码库。虽然可以利用CocosBuilder和其他一些工具进行图形化 *** 作,但效率始终不够Unity3d高。而且暴露过多的底层代码,对于研究是一件大大的好事,但是对于创作而言,未必是福音。
而
Unity3d则是一个高效的IDE+代码库。它很好地封装了底层代码,提供许多简便的图形 *** 作,还有商业级的高级功能。对于开发而言,我认为是更好地选
择。之前大多数开发者对Unity3d的认识还停留在3D开发,但2013年末的2D支持让更多人选择Unity3d进行2D开发。
以上就是关于游戏程序员学什么编程语言好全部的内容,包括:游戏程序员学什么编程语言好、Unity3d 和 Cocos2dx有什么区别、要学Cocos2d-X要会C++的哪些知识等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)