有没有不用一点编程基础就能开发出游戏的软件???
以下一篇是以服务器为例的,希望对你有帮助。
-------------学习游戏服务器编程基础篇姜雪伟前段时间,一直给开发者灌输学习3D游戏引擎技术,包括游戏底层数据结构封装,算法与游戏实战技术分享视频课程,以及编写了一些使用算法解决游戏实际问题等等方面的文章。
再给读者介绍3D游戏引擎的同时,也有人问我关于如何学习游戏服务器编程技术,其实我也喜欢游戏服务器编程。
在游戏开发过程中,游戏服务器开发的工作量相对客户端来说少的多,比如游戏开发后期客户端要调各种效果,更换UI等。
当然网上关于开源的服务器代码也很多,在Github上能搜到很多代码,比如java的,C#的,C++的,C的,erlang,python等等,很多人为此比较迷惑不知道到底该学习那种编程语言。
服务器编程开发也是随着地区不同而不同,IT行业发展的中心是北京,上海,广州,它们对于游戏服务器编程语言的需求也是不同的,北京偏向于java语言编程,上海偏向于C++语言编程,广州偏向于erlang编程,这个也是告诉开发者,如果想去不同的地方可以根据需求有针对性的学习。
本篇文章就是告诉读者如何学习游戏服务器编程开发?我本人还是喜欢C++编程,其实语言只是一方面,原理还是要清楚的,下面我谈谈学习服务器编程的一点体会。
学习游戏服务器编程也要分阶段的,先把基础学习好,编程语言是必须具备的,可以学习java,C++,C#,erlang任意一种要熟练掌握,还是以C++为例,游戏编程中经常会使用一些宏定义或者模版定义,开发者要知道宏定义的含义以及模版定义的含义。
服务器开发中经常会使用STL模版中的对象,比如Map,Dictionary,List,Vector等等。
网上有很多学习资料,另外在这里还是要谈到数据结构,不论在客户端开发还是在服务器端开发,数据结构都会用到,比如哈希表,二叉树,队列,堆栈等等,以上提到的是关于语言方面必须具备的。
语言基础掌握牢固的,可以直接略过这一阶段的学习,直接学习第二阶段,关于网络通信协议,比如我们TCP/IP协议一共分七层,各个层的作用是什么?服务器传输有几种常用的协议分别是TCP协议,UDP协议,还有Web使用的Http。
TCP协议是可靠的协议,数据传输后必须要经过确认,UPD协议是不可靠的,无需确认,Http协议是主动的去获取,主要用于资源和Web注册的。
这三种都会在服务器开发中使用到,必须要要掌握。
在这里给读者展示一下各个层包含的协议:应用层:TFTP,HTTP,SNMP,FTP,SMTP,DNS,Telnet 等等传输层:TCP,UDP网络层:IP,ICMP,OSPF,EIGRP,IGMP数据链路层:SLIP,CSLIP,PPP,MTU通过上面列举的点,我们知道了各个层都有哪些通信协议,当然各个层不是孤立存在的,它们之间是有关系的,在计算件原理中也有这方面的介绍,这里借用网上的图给读者展示如下:应用层主要是我们自己程序处理的,它可以通过传输层和网络层进行消息的传输,将上图再进一步细分如下所示:通过上图可以很清晰的看到TCP/IP协议组的组成,具体大家可以查看大学课程《计算机原理》。
这些基础的通信协议掌握了后,接下来就要掌握Socket套接字了。
socket是在应用层和传输层之间的一个抽象层,它把TCP/IP层复杂的操作抽象为几个简单的接口供应用层调用已实现进程在网络中通信。
Socket套接字是通信的最基本方式,在游戏中的服务器和客户端之间通信,以游戏登录为例,客户端先创建Socket,然后把玩家的用户和密码以及登录服务器的IP地址,端口号这些数据写入到Socket中传送到服务器端,服务器会做监听,接收到消息后,打开读取Socket信息进行处理比如验证信息的正确性,然后服务器创建Socket,把传送给客户端的消息写入到Socket,发送给客户端,客户端也会做监听操作,客户端接收到消息后,客户端打开Socket,读取消息。
客户端和服务器之间的通信方式如下所示:在TCP/IP协议中有三次握手,通过三次握手可以建立一个可靠连接,效果如下图所示:三次握手在服务器端程序员面试中,经常被提到,掌握了TCP/IP协议后,接下来进入实兵演练阶段,也看看自己对网络这块掌握程度。
以Unity为例,可以学习TNet超轻量级的网络传输,因为它没有数据库,但是可以很好的验证学习的TCP协议以及Socket套接字,自己可以在此基础上再尝试做一些消息传递,最后要学习一下服务器存储所需要的数据库MySql。
学习数据库的安装,数据库操作比如新建表,插入数据,删除数据,读去数据等,掌握数据库后,接下来就需要通过游戏服务器编程对它进行操作了,建议先学习网上的PhontonServer,它是使用C#编写的,方便开发者学习,另外它提供了Unity实现的Demo,开发者可以调试连接,从而熟悉Mysql。
以上这些知识也是作为服务器开发者必须掌握的,掌握了这些技术后,继续提升的最好方法是去公司跟着项目走,在后面章节还会给读者介绍关于如何架设真正的游戏服务器以及知名IT游戏公司的服务器架构设计以及服务器负载均衡的设计,最终会介绍如何搭建全球同服服务器。
学习游戏软件开发要具备什么?
学习游戏软件开发要具备以下条件:1、基础编程:C/C++基础编程,WinAPI(windows programming),数据结构,游戏算法 ( Game Mathematics ),C/C++语言在游戏中的应用、游戏算法、数据结构和STL在游戏中的应用等。
2、DirectX图形编程:DirectX基础概念,Key Board及Mouse控制,预告篇控制,2D/3D图像输出,游戏效果音,游戏背景音乐,DirectX的Network Socket,OpenGL的图形编程应用。
DirectX游戏网络编程应用,游戏开发人员的用户图形接口设计、MMORPG游戏服务器编程。
人工智能技术在游戏编程中的应用等。
3、Socket 编程技术:掌握网络基础理论、关于数据通讯的基础概念、网络基础概念以及其Model等,Socket Programming入门、Socket Programming基础、Socket Programming高级、Application实验等,Socket Programming实战。
4、游戏服务器架设:游戏服务器架构设计,Windows2003、Unix、Linux服务器架设等。
5、高级编程实战:Java游戏程序开发,SQL服务器2000编程,利用XML编程网络游、Messenger、坦克、五子棋、象棋、俄罗斯方块等简单游戏的编程方法与技巧等。
6、项目实战开发:游戏服务器编程项目制作开发,游戏客户端编写、项目制作开发、游戏编程技巧、实时表现图形的窍门等。
游戏动画师需要什么基础?
游戏动画师不但掌握动画原理和动画运动规律,会让模型贴图岗位制作出的角色动起来,更加可以赋予角色生命,不仅仅是会动。
不管是人类、还是怪兽、还是精灵等等,不同的角色都可以赋予他们不同性格特征的动作,让整个游戏世界更加真实可信。
游戏动画设计师,网络游戏制作及动画制作在国内正成为快速崛起的产业。
从事这行业之人,收入十分可观。
现在国内达到专业游戏动画工程师人才水平的只有8000人,而市场需求目前最少有15万人的缺口。
游戏开发基础:游戏架构设计与策划 游戏设计/策划的各项要素,玩家心理分 析,游戏策划文档的编写方法,游戏开发相关 技术介绍游戏运营管理 游戏运营环境分析,游戏宣传策略、开发管理与成本控制,运营维护管理,客户服务管理游戏开发基础-美术 游戏美术设计介绍,像素图制作,游戏道具制作,3ds max7.0与网游(C++)接口介绍游戏开发基础-程序 游戏编程语言介绍,游戏开发流程介绍,游戏的美术要求,手机游戏成型项目分析,网络游戏脚本介绍游戏动画设计游戏造型和色彩 游戏道具写生,素描几何体、石膏头像、 石膏人体,速写,游戏道具色彩写生,游戏兵器,游戏宝石,游戏服饰,游戏角色创作游戏场景与角色 游戏花草木创建,辅助建筑创建,主要建筑创建,地图编辑器实现,角色(男女)、怪兽、鸟类设计与制作游戏动画与特效 运动理论,cs动作实现(7套),bone设定,特效实现游戏3D项目实践 原画临摹,场景实现,角色实现,特效实现,地图编辑器等
游戏软件编程好学么?
我是主修软件开发,各种语言的编程。
1、首先要知道游戏编程用的什么语言。
是c++ 因为c++语言是目前最为稳定的、指针最为全面的语言。
游戏尤其网游的稳定性要求极高,因此必须用c++。
2、先学c语言。
c语言是全部计算机语言的基础更是c++的基础。
因此要学好。
再学c++,这个要学精,不然开发游戏没戏。
然后学数据结构、数据库(orcle大型数据库,小型sql不可以)、线性代数、离散数学结构就差不多了吧。
要求:不单单是会,举一反三。
3、2中说的是核心课程。
html、css、js知道也行,但做游戏开发的你要知道,我们做的是一个人的心脏和大脑,那些一个美工人员会做的很好,而且不用你操心,也许美工做的比你还多但是,我们拿的薪资是他们的很多倍,咱们按年薪、他们按月还得算生活费、、呵呵、注:有不明白的再问我。
游戏编程入门看什么书比较好?
先学下C/C++语言,《C语言程序设计》,《C++语言程序设计》,《C++Primer》,就掌握基本的C++了。
还有《Visual C++游戏编程基础》《Visual C++经典游戏程序设计》《nehe教程》《OPENGL游戏编程》《3D游戏编程大师技巧》《Windows游戏编程大师技巧》。
游戏编程指利用计算机编程语言,如C编程语言、C++、java等,编写计算机、手机或游戏机上的游戏。
目前流行的游戏编程语言为C++编程语言,游戏编程接口为DirectX9.0、OpenGL和SDL(Simple DirectMedia Layer)等。
现在手机上玩的游戏分为Android与IOS两种平台,分别是用eclipse/MyEclipse和xcode。
当然时下也流行一些跨平台的编程引擎,例如cocos2d-x、unity 3D等。
手机软件应用编写入门
1. 入门首先必须要精通一门语言,iOS培训一般的入门语言为C语言,因为iOS开发多用OC语言,这是一款基于C语言而发展起来的语言,虽然和C的关系也不是很大,但是如果有比较好的C语言基础,学习起来OC语言会更加轻松。
开发工具一般建议使用Xcode,因为是在Mac系统上运行的,所以和iOS系统有一定的亲近性,只需要自己多摸索就可以进行简单的APP开发了。
一般学习者可以自行购买iPhone开发秘籍,手机培训将语言的基础概念全部弄清楚之后,做一两个例子体会一下,这样基础部分就没有问题了。
2. 在进行实际操作的时候,可以先借助网上一些视频教程之类,多看看精品视频教程的东西,等到自己觉得理解吸收得差不多了,就可以进行上机开发了。
一般建议先调动自己的思维,自行设计某一个APP,可以涵盖你所学习到的东西,当然过程可能会有些坎坷,不过最后的结果绝对是好的。
3. 掌握了UI了之后,就可以往数据存储方面走了。
比如完成一个网络图片搜集的APP,包括网络连接、图片保存、UI线程安全、数据库操作等等,在这个过程中不断加深巩固之前的零碎概念,这样才可以保证自己的知识能够牢固,为日后进行大项目打下基础。