UN1L3——客户端和服务端

客户端

名词角度解释含义

  • 客户端:用户使用的设备(计算机、手机、平板等等)

  • 客户端应用程序:

    用户使用的设备上安装的应用程序,用户会直接使用操作的内容
    比如各种游戏、聊天软件、外卖软件等等,往往提到客户端都泛指的是客户端应用程序

基本概念:客户端(Client,或称为用户端、前端),是指与服务端相对应,为客户提供本地服务的应用程序
我们在设备上(计算机、手机等)使用的所有软件和应用几乎都是客户端应用程序

比如:各种浏览器,游戏,外卖应用程序(美团,饿了么),通讯软件(QQ、微信、陌陌)等等
他们都可以统称为客户端应用程序(简称客户端)

说人话:用户在设备上(计算机、手机、平板)运行使用的应用程序就是客户端应用程序(简称客户端)

服务端(服务器)

名词角度解释含义

  • 服务端:为客户端提供服务的设备,一般是一台性能较好的计算机

  • 服务端应用程序:

    为客户端提供服务的应用程序,该应用程序是运行在服务端设备上的
    往往在软件开发中提到的服务端或服务器都是泛指服务端应用程序

基本概念:服务端(Server,或称为服务器、后端)是为客户端服务的,服务的内容诸如向客户端提供资源,保存客户端数据等等
它是一种有针对性的服务程序,往往一个服务端都是针对性的为某类客户端提供服务
它往往是一台运行在远端的计算机,客户端和服务端通过网络进行通信

比如:

  • 某游戏服务端它只为该游戏的客户端提供服务(消息转发、信息保存、逻辑处理等等)
  • 某外卖服务端它只为该外卖的客户端提供服务(分派订单、查看订单、查看配送进度等等)

说人话:服务端应用程序运行在远端的一台计算机上,客户端通过网络和服务端进行通讯,服务端为客户端提供各种服务

网络游戏开发中的客户端和服务端

  1. 客户端:用户在设备上(计算机、手机、平板)运行使用的应用程序就是客户端应用程序(简称客户端)

  2. 服务端:服务端应用程序运行在远端的一台计算机上,客户端通过网络和服务端进行通讯,服务端为客户端,提供各种服务

  3. 网络游戏开发中的客户端和服务端

    我们用Unity开发的应用程序就是游戏客户端应用程序
    后端程序员可以使用C++、C#、Java、Go等等语言进行服务端程序开发,为游戏客户端提供服务
    客户端和服务端之前通过互联网进行信息交换

在没有学习网络相关知识之前,我们只能制作单机游戏

  • 单机游戏:只有客户端,没有服务端,不存在玩家之间的交互,数据存储在本地

  • 网络游戏:有客户端和服务端,玩家之间可以进行交互(信息同步,信息交换),静态(不变的)数据存储在客户端,动态(要变的)数据存储在服务端

  • 网络游戏开发中的客户端:

    Unity、UE、Cocos、Egret、Laya、Flash等等游戏引擎开发的游戏都属于客户端应用程序,他们都是被用户直接操作的
    主要功能就是游戏玩法、UI交互、美术表现、本地数据保存等等

  • 网络游戏开发中的服务端:

    C++、Java、C#、Go等等语言开发的运行在远端计算机上为游戏客户端提供服务的软件都属于服务端应用程序,
    它的主要功能就是消息转发、数据保存、逻辑处理等等

因此我们Unity程序员也会被称为前端程序员,比如Unity客户端开发工程师、Unity前端开发工程师等等,
而负责服务端开发的程序员一般被称为后端程序员
其实在早期游戏行业中,是不分前后端的,从业者要同时具备前端和后端的开发技能
而随着游戏引擎的出现并且从开发效率上来考虑,渐渐的就分出了前后端程序员,两个工种相互配合进行开发,事半功倍

image