【unity游戏开发——网络】客户端和服务端知识点

注意:考虑到热更新的内容比较多,我将热更新的内容分开,并全部整合放在【unity游戏开发——网络】专栏里,感兴趣的小伙伴可以前往逐一查看学习。

文章目录

  • 前言
  • 一、客户端 (Client / 前端 / 用户端)
    • 1、是什么?
    • 2、做什么?
    • 3、例子:
    • 4、核心特点:
  • 二、服务端 (Server / 后端 / 服务器)
    • 1、是什么?
    • 2、做什么?
    • 3、例子:
    • 4、核心特点:
  • 三、网络游戏开发中的客户端和服务端
    • 1、单机游戏和网络游戏
    • 2、网络游戏开发中的客户端:
    • 3、网络游戏开发中的服务端:
    • 4、前端程序员和后端程序员
  • 总结
  • 专栏推荐
  • 完结

前言

客户端与服务端是网络世界的“用户”与“服务者”,想象在一个餐厅里。

  • 顾客 = 客户端
  • 餐厅(厨房、服务员、收银台) = 服务端

一、客户端 (Client / 前端 / 用户端)

1、是什么?

  • 名词 (设备): 用户直接使用的设备,如你的手机、电脑、平板、游戏主机。

  • 名词 (应用程序): 运行在用户设备上的软件。这才是最常说的“客户端”。它直接面对用户,提供交互界面和本地功能。

2、做什么?

  • 呈现信息给用户看(漂亮的游戏画面、App界面)。

  • 接收用户的操作(点击按钮、滑动屏幕、键盘鼠标输入)。

  • 处理一些本地逻辑(比如单机游戏的部分玩法)。

  • 向服务端发送请求(“我要点菜”、“我要查订单”、“我要和队友聊天”)。

  • 接收并展示服务端返回的结果(“菜好了”、“订单状态”、“队友说的话”)。

3、例子:

  • 手机上的微信 App、王者荣耀 App、Chrome 浏览器。

  • 电脑上的 Steam 平台、网易云音乐软件、Word 文档(联网功能时)。

  • 你用 Unity / Unreal Engine 开发的游戏程序,运行在玩家的设备上,就是游戏客户端。

4、核心特点:

运行在用户设备上,为用户提供直接的交互体验。

二、服务端 (Server / 后端 / 服务器)

1、是什么?

  • 名词 (设备): 运行服务端程序的物理(或虚拟)计算机。通常性能强大、长期开机、放在机房(数据中心/云端)。它就是那台“远方的电脑”。你可以简单将服务器理解为一台没有显示屏和输入设备(键盘、鼠标等)永不关机的高配置电脑。

  • 名词 (应用程序): 运行在服务器设备上的软件。这才是最常说的“服务端”或“后端”。它默默在后台工作,不直接面对用户。

2、做什么?

  • 接收来自无数客户端的请求(处理海量的“点菜”、“查订单”、“聊天”请求)。

  • 处理核心业务逻辑(计算游戏战斗结果、匹配玩家、处理支付、管理用户数据)。

  • 存储和提供重要数据(用户账号、游戏存档、订单信息、商品库存)。

  • 管理连接和通信(转发消息给其他玩家、维持在线状态)。

  • 返回处理结果给客户端(告诉客户端“菜做好了”、“订单已确认”、“队友位置更新了”)。

3、例子:

  • 微信的聊天消息中转和存储服务器。

  • 王者荣耀的匹配服务器、战斗逻辑服务器、玩家数据服务器。

  • 淘宝的商品信息服务器、订单处理服务器。

  • 用 Java / C# / Go / Python / C++ 等语言编写的,运行在机房电脑上的程序,就是服务端应用程序。

4、核心特点:

运行在远端的专用计算机上,为大量客户端提供核心服务和数据支撑。通过网络响应请求。

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

1、单机游戏和网络游戏

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

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

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

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

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

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

4、前端程序员和后端程序员

因此我们Unity程序员也会被称为前端程序员,比如Unity客户端开发工程师、Unity前端开发工程师等等。而负责服务端开发的程序员一般被称为后端程序员

其实在早期游戏行业中,是不分前后端的,从业者要同时具备前端和后端的开发技能。而随着游戏引擎的出现并且从开发效率上来考虑,渐渐的就分出了前后端程序员,两个工种相互配合进行开发,事半功倍。

总结

  • 客户端 (前端): 用户手上的“遥控器”和“显示屏”。负责用户交互与本地表现。 (你在手机上点外卖、看骑手位置的那个App)

  • 服务端 (后端): 藏在机房里的“大脑”和“数据库”。负责核心逻辑、数据处理和为所有客户端提供服务。 (接收你的订单、计算配送费、把订单发给商家、把骑手位置推送给你的那个庞大系统)

它们通过网络紧密合作,共同构成了我们使用的每一个联网应用和游戏。 没有服务端,客户端就失去了联网的灵魂;没有客户端,服务端就失去了服务的对象。


专栏推荐

地址
【unity游戏开发入门到精通——C#篇】
【unity游戏开发入门到精通——unity通用篇】
【unity游戏开发入门到精通——unity3D篇】
【unity游戏开发入门到精通——unity2D篇】
【unity实战】
【制作100个Unity游戏】
【推荐100个unity插件】
【实现100个unity特效】
【unity框架/工具集开发】
【unity游戏开发——模型篇】
【unity游戏开发——InputSystem】
【unity游戏开发——Animator动画】
【unity游戏开发——UGUI】
【unity游戏开发——联网篇】
【unity游戏开发——优化篇】
【unity游戏开发——shader篇】
【unity游戏开发——编辑器扩展】
【unity游戏开发——热更新】
【unity游戏开发——网络】

完结

好了,我是向宇,博客地址:https://xiangyu.blog.csdn.net,如果学习过程中遇到任何问题,也欢迎你评论私信找我。

赠人玫瑰,手有余香!如果文章内容对你有所帮助,请不要吝啬你的点赞评论和关注,你的每一次支持都是我不断创作的最大动力。当然如果你发现了文章中存在错误或者有更好的解决方法,也欢迎评论私信告诉我哦!
在这里插入图片描述

你可能感兴趣的:(【unity游戏开发——网络】客户端和服务端知识点)