网络游戏服务器端编程,个人电脑搭建小型服务器
客户端脚本和服务器端脚本有什么区别
什么是脚本语言
首先需要了解“脚本语言”的概念,脚本语言通常为一种扩展语言,也可以理解为一种动态编程语言,用来封装、扩展提升特定系统、应用扩展性、维护性。
常见的脚本语言
我们常见的脚本语言包括:Javascript、Lua、PHP、Python、Bash等。
脚本语言的作用
脚本语言的存在,很大程度上简化了系统、应用开发,比如:我们在开发一个网站服务的时候,早期我们需要采用C/C++去实现,开发者需要了解C/C++许多底层技术(网络通信、文件读写、内存控制等),这对于一般程序开发者而言是很难做到的,但脚本语言的诞生就解决了这个问题,我们可以将一些Web相关的操作封装起来,通过调用脚本语言的方式进行扩展,无需再了解如此多的技术细节。
什么是客户端、服务端
在了解了脚本的作用之后,我们回归本题,客户端脚本和服务端脚本,我们需要再了解客户端和服务端这两个概念。
顾名思义,客户端就是客户使用的软件终端,这个客户端可以是软件、游戏,或者是现在最常见的客户端:网页浏览器。服务端就是跑在服务器上提供服务的终端。
什么是客户端脚本、服务端脚本
那么客户端脚本,就是为了扩展客户端功能的脚本语言,例如浏览器使用的Javascript,游戏客户端会使用Lua,封装一些业务层的逻辑处理,服务端脚本则是PHP、Perl、Ruby这些,提供服务器扩展的脚本。
他们的区别是什么
他们最直接的区别就是运行的地方不同,另外就是这些脚本语言根据端的需要封装的功能扩展不同,同时也可能提供的脚本语言的语法上会有差别。
大型网络游戏开发需要什么知识
看你搞哪端了,服务器端确实图形方面知识不用那么多,数据库和网络接口,还有信息安全需要考虑
客户端的话,建议LZ去学个游戏引擎吧,这个编程语言一样,都是相通的,学会了一个,再用另一个的时候上手也会很快,毕竟现在早就不是完全用代码去“敲出”一个游戏的时代了,游戏引擎就是帮你把必要的逻辑算法整合到一起,如果你想自定义自己的游戏方式,结合编程语言的知识去学习那个游戏对应的脚本就好了,但更多的还是美工的活。
就拿UDK来说吧,整个引擎就好像一个3D MAX,你用引擎自带素材做一个和AI对战的射击游戏,完全可以用鼠标操作,把素材、场景导入UDK,然后如果你想设置触发事件,打开UDK的kismet(一个可视化编程工具),建立事件和触发事件对应的条件以及物品,用鼠标连连箭头(整体感觉就和UML图一样)。但是你想用自己的素材去做一个,你会发现,可能一把枪的建模,你就会头疼一个礼拜。
对于大型游戏,尤其是3D游戏来说,游戏引擎是必不可缺的,别看现在报道的引擎并不多,好像仅仅有虚幻引擎、孤岛危机的CE3引擎和战地3的寒霜2引擎一样(这些都是要买的,几百万一个,但是类似于UDK这样就是用来让别人接触利用游戏引擎开发游戏的免费版),其实还有很多开源引擎。
我只说大型游戏哈,开发游戏和开发游戏引擎是不一样的,开发游戏引擎需要很底层的知识,比如DX,因为你要去了解如何生成一个物品,并使它渲染出最好的效果,这是游戏引擎开发者需要干的事情。而游戏开发者就好像餐馆中拼盘的师傅一样,我们需要用别人整合到一起的资源,来进行加工和自定义。
当然,也不是说编程不重要,每个游戏引擎不可能就让你用它仅有的功能,如果你觉得他的事件设定不符合你的标准,或者引擎里并没有你要的事件,那么脚本就派上用场了。还是UDK来说,他的是虚幻脚本,类似于java的一种专属脚本,但是你学会C++或java后上手会很快。假如我想将自定义角色导入UDK,那么脚本就有大用了,你需要用脚本替换你的角色,为你的角色的各种动作定义。
游戏开发用什么编程语言
游戏开发用到的语言有C#、C++、Java、JavaScript、HTML5、SQL、Python、Rust、UnrealScript、Lua。
C#
C#如今在许多游戏引擎中广泛使用,并且是游戏开发所需的很流行的语言之一。它具有XNA框架,该框架是Microsoft的一组工具和运行时环境,使其特别适用于Xbox或Windows上的游戏。如果您希望使用monogame在几乎任何平台上分发游戏,这是一种很好的语言。
C++
C++是一种面向对象的语言,被认为是最难学习的语言之一,但它是游戏开发人员的重要语言。它允许对硬件和图形过程进行更直接的控制,这对行业很重要,对于某些很受欢迎的游戏引擎来说,它是很受欢迎的语言。它还提供了对参数和内存管理的大量控制,从而增加了游戏的性能和用户体验。
Java
Java使用与C++相同的面向对象原理,但是提供了范围更广的系统。 Java代码通常在Java虚拟机(JVM)上运行,并转换为可在任何系统上执行的通用字节码。因此,Java是使开发人员能够为任何给定系统开发游戏的少数游戏编程语言之一。它是游戏的优秀编程语言之一。
JavaScript
JavaScript是很流行的游戏编程语言之一,作为在线交互语言更是如此。使用JavaScript,可以更轻松地将代码与HTML和CSS等传统网络技术集成,从而导致越来越多的跨平台手机游戏。
HTML5
HTML5已成为网络上最常见的游戏编程语言之一。您今天玩的绝大多数手机游戏都使用这种标记语言。通过与JavaScript协作创建复杂的基于Web的游戏很容易。该语言易于学习,并不一定需要学习复杂的算法编程知识,因此已成为游戏开发人员的热门选择。
Python
Python是另一种提供OOP方法的语言,是游戏开发人员使用的最容易使用的通用编程语言之一。它具有Pygame框架,可让程序员快速开发游戏原型。
SQL
SQL用于播放器访问后端帐户并在服务器上执行其他操作的后端数据库工作。有新的语言,库,框架,尤其是关于AR,VR,图形,物理和游戏性的框。
游戏平台不同,选择的开发语言也会不同。
PC端:使用的编程语言大部分是C/C++,因为我们使用的操作系统如window,mac的底层是C,而使用C/C++可以极大的发挥性能上的优势;
移动端:又可以分为IOS与Android两个方向。Android上面的游戏以Java开发居多,因为安卓系统本身就是以Java开发为主的;IOS上面的游戏以object c开发居多。
因为一款游戏要部署到各个平台的成本太高了,所以现在主流的技术是使用跨平台的游戏引擎开发,然后发布到不同的平台。因此现在选择语言主要看主流的游戏引擎使用哪些语言。
主流的游戏引擎:unity和unreal,unity是以C#语言为主;unreal主要是以C++为主。
硬件型号:惠普暗影精灵6
系统版本:Windows10专业版
软件版本:Unreal Engine 4 v4.5 Unity3D 5.0