如何学习入门的游戏编程

如何学习入门的游戏编程,第1张

以下一篇是以服务器为例的,希望对你有帮助。

-------------

学习游戏服务器编程基础篇

姜雪伟

前段时间,一直给开发者灌输学习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游戏公司的服务器架构设计以及服务器负载均衡的设计,最终会介绍如何搭建全球同服服务器。

第一部分:计算机结构及工作原理、各种零配件的性能参数及主流品牌、计算机硬件的组装,CMOS设

置,硬盘的分区,格式化、Windows98/2000/XP的安装、硬件驱动程序和应用程序的安装、Windows注册表的结

构,备份及应用、Windows的内核:CPU、内存、硬盘等分配、软硬件系统的优化设置,整机性能评测、计算机

病毒的原理及防治、常见软硬件故障的原因,现象及解决、正确分辨市场假货、水货,软硬件产品的销售技巧

第二部分:网络的基本构成,发展和拓扑设计,10BASE-T局域网的构建与实现,以及各种服务器的结构与

特征,以太网对等网等各种方式。TCP/IP的四层模型与OSI七层模型的异同,TCP/IP协议剖析,如何设置IP地址

,子网掩码,默认网关,区分子网和网段及集线器,交换机和路由器,RJ45网线制作和种网吧的组建及维护,

NT、WIN2000server、Linux服务器的搭建,98对等网的组建与调试和代理服务器的设置

第三部分:Win2000配置,用户及权限、文件及文件夹的管理,新特性活动目录的管理,组策略。网络

资源的监控、系统环境的设置、磁盘系统的管理。Web、Ftp、DNS、DHCP、WINS等服务器的安装配置及管理。利

用Exchange邮件服务器软件实现企业内部个人邮件信箱服务器、公告栏服务器、网站收发电子邮件服务器、聊

天服务器的建立和管理。SQL Server中数据库的创建、表的创建及发布、数据库的备份及恢复、表的导入及导

出等一系列维护和管理方法。代理服务器基本原理。利用Microsoft Proxy为例实现代理服务器的设置及管理。

>>更多职位

第四部分:代理服务器基本原理。利用Microsoft Proxy为例实现代理服务器的设置及管理。流行网管

软件Cisco Work2000的配置、使用和管理技巧,在一台监控计算机上管理网络中所有的路由器和交换机,实时

监控网络流量,及时发现网络问题。路由与交换技术:路由原理的讲解,并通过对路由器配置实例的学习掌握

Cisco路由器的常用配置命令及配置。交换原理的讲解,通过对交换机配置实例的学习掌握交换机的常用配置命

令及配置。

第五部分:系统进行手工定制、系统性能检测管理、内核设置与编译。ftp服务与Samba服务,其它服

务,如,DHCP、NFS等。Web网络服务。包括:Apache服务的配置使用及安全设置。其它web服务软件的介绍。

DNS技术及应用。一些简单的路由技术一些简单的负载均衡技术。Mail网络服务。包括:sendmail的配置与使用

,Qmail的配置与使用。一些mail客户端程序的使用

第六部分:网络安全的基本概述,网络协议的介绍,常规加密的基本知识,公钥密钥加密的基本知识

及数字签名,身份难验证,用PGP及数字证书进行邮件加密实验,全面讲述在环境下实施网络安全对策

,Windows98下各种漏洞、攻击类型和防御方法及安全配置方案(系统安全、IE安全、Outlook的安全等)。结合

黑客攻击过程全面讲述在

WindowsNT环境下实施网络安全对策。WindowsNT下各种漏洞、攻击类型和防御方法及安全配置方案,全面

讲述在Windows2000环境下实施网络安全对策,Windows系统的日志安全、WEB安全,软件防火墙的实施。

Windows2000下各种漏洞、攻击类型和防御方法及安全配置方案。

第七部分:Linux管理员部分

一、 基本应用

1、 GNU/linux介绍、Redhat Linux的安装。

2、 系统知识(shell、文件系统、管道与重定向、进程概念)、常用系统命令介绍(ls、cp、mkdir、rm

、vi、man、chmod等)

3、 基本系统管理(包括:系统启动过程介绍、磁盘管理、用户管理、日志查看、tar/gz包的使用、rpm软

件包管理等。

二、 基本系统服务(包括:图形终端、基本网络服务)(9个课时)

1、 图形终端(即,x-window)的配置与使用。围绕KDE和(或)GNOME,展示UNIX系统的友好界面。

2、 简单的shell教本编写方法,环境变量

3、 Linux下IP网络的基本配置(IP地址、网关、名字)

4、 Linux下的网络服务的配置与使用(包括ftp、DNS、Apache、Sendmail、samba的基本配置)。基于

RedHat的setup和linuxconf进行介绍。Webmin管理工具的介绍。

三、 Prerequisite(背景课程)

1、 前言

2、 高级系统管理。包括:系统进行手工定制(inetd,service,ntsysv)、系统性能检测管理(ps,top

,tail,dmesg,/proc)。

3、 内核设置与编译。

四、 高级网络应用

1、 ftp服务与Samba服务,其它服务,如,DHCP、NFS等。

2、 Web网络服务。包括:Apache服务的配置使用及安全设置。其它web服务软件的介绍。DNS技术及应用。

3、 一些简单的路由技术

4、 一些简单的负载均衡技术。

5、 Mail网络服务。包括:sendmail的配置与使用,Qmail的配置与使用。一些mail客户端程序的使用。

五、 系统网络安全

1、 包过滤防火墙的理论与应用(NAT技术、内核构架、Ipchains/Iptable的使用),其它非核心态防火墙

的介绍。

2、 系统安全。SSH的配置与使用。入侵检测系统及Checkpoint技术与应用

3、 VPN(虚拟网关)的理论与应用。包括:Ipsec、PPTP、认证、密钥交换协议等技术。

1、首先你需要一台电脑,这绝对不是开玩笑,魔兽世界作为一款运营了十余年的大型网游,虽然多次向下优化压缩配置,但是拿一台运行winXP系统的蓝色大背头还是玩不了的,咱们就先来说一下这款游戏所需的电脑配置,四代以上英特尔酷睿I5、英伟达GTX960以上显卡(不好意思,不懂A卡)、16G内存、500G以上的机械硬盘,虽然这套配置并不算高,但是绝对可以完美运行魔兽世界这款游戏,一套下来大约三千多。

2、搜索战网、创建账号、下载游戏、登录游戏一气呵成,首先你要知道魔兽世界是分为部落、联盟俩大阵营的,每个阵营都有着属于自己的故事,而且只有同阵营的玩家才能互相的交流共处,然后创建一个属于自己的角色,联盟有人类、矮人、侏儒、暗夜精灵、德莱尼和狼人,而部落则拥有兽人、巨魔、牛头人、亡灵、血精灵和地精,至于在两个阵营之间的熊猫人则是唯一一个在玩家完成新手任务线之后可以自主选择阵营的种族。

3、说完了种族咱们再来看一看职业,现版本魔兽世界内共有12大职业,分别为战士、圣骑士、猎人、盗贼、牧师、萨满祭司、法师、术士、武僧、德鲁伊、恶魔猎手、死亡骑士。

4、选择好角色和职业我们就可以起个名字进入游戏了,在这里重点呼吁一下,新手玩家切忌寻找工作室代练或者商城直升服务,首先魔兽世界这款游戏重在探索和理解,快速的获得满级账号只可能会让你失去对这个游戏的兴趣,然后尽早的退坑。


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/500220.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-06-16
下一篇2023-06-16

发表评论

登录后才能评论

评论列表(0条)

    保存