客户端游戏开发者要不要学习服务端开发的相关技能?

news2024/11/18 1:48:26

学,给我狠狠地学

引言

大家好,今天继续分享点个人经验。

玩过游戏的小伙伴都知道游戏会有单机联网之分。

单机游戏通常以高质量3A大作著称,它的特点是独立的运行环境,不受网络的限制。

联机游戏则以全球互联实时同步以及社交互动等特点发展。

因此,在游戏开发中,会存在客户端服务端两个部门。

那么,作为一个客户端游戏开发者,要不要学习服务端开发的相关技能

先来看看笔者的亲身经历

1.过来人的经历

笔者刚毕业开始进到游戏研发公司的时候,是以U3D实习生的身份,也就是客户端游戏开发,还是个价值2K实习生

那时候公司在开发大型的MMORPG手机游戏,MMO的意思就是大规模多人在线,自然而然需要服务端的开发。

一心学习游戏引擎的我,怎么也没有想到,会有一天也加入到服务端的开发。受益于在学校的学习,对于服务端的逻辑开发没有什么难度

毕竟写逻辑不需要太过专业的知识,会模仿就行,且不说企业是否为了节省资源,鼓励双端开发

因此,笔者在实战过程中,掌握了双端开发

那客户端开发和服务端开发有什么不一样?

2.前端和后端

总的来说,前端需要效果和体验,后端需要严谨和稳定

1.客户端

客户端开发通常也称为前端开发,专注于游戏的表现效果,把视觉效果展示给玩家。

主要工作就是把游戏资源(图片、文字、动画等)拼接,然后在玩家的设备上展示

在这过程中需要考虑游戏的流畅性、稳定性,因此还需要对游戏的性能进行优化(资源加载优化、内存管理等)。

2.服务端

服务端开发,即后端开发,它需要严谨的游戏逻辑

例如背包系统,玩家使用道具时,需要考虑道具是否存在、道具是否有使用冷却、道具数量是否足够等等。

每一步都必须严谨,否者会形成漏洞,导致数据出问题

那前端到底要不要学后端开发?

3.个人选择

关于前端到底要不要学后端开发,其实是一个职业的规划与选择,前端开发学习后端开发,有浅有深

学习后端的优势

  • 全栈开发: 学习后端开发可以使你成为全栈开发者,能够负责整个游戏的开发。这种全面性的技能可以在一些小型项目或初创公司中特别有用。可以让你成为总的技术负责人

  • 更全面的理解: 了解后端开发可以让你对整个游戏的架构和数据流有更深入的理解,有助于更好地与后端团队协作

  • 拓宽职业发展: 具备前后端知识的开发者更具竞争力,可以在职业发展中拥有更广泛的选择。在某些项目或组织中,前端开发者也可能需要涉及到后端工作。总的来说就是给自己留一条路

  • 独立开发: 学习后端开发使你能够独立开发完整的联网游戏,而不仅仅局限于前端。这对于个人项目或创业者而言是一项有价值的技能。

不必学习后端的情况

  • 专注前端技能: 如果你对前端的技术栈和生态系统更感兴趣,并希望在这个领域深耕,专注于前端技能的学习可能更为合适

  • 团队协作: 在大型团队中,前端和后端的分工明确专业化程度较高。你可能更愿意在前端领域精进,与专业的后端开发者协同工作。

  • 时间有限: 学习一门技术需要时间和精力,如果目前时间有限,可能更好地专注于前端领域的深度学习。

  • 个人兴趣: 个人兴趣是决定学习方向的重要因素。如果你对后端开发没有浓厚兴趣,可能会觉得学习过程较为枯燥,不如专注于前端领域。

你怎么看?

4.我的看法

1.游戏开发新人

专注前端开发,由浅入深系统化地学习前端知识。

2.想要成为技术总监

深入学习前端内容(游戏效果、内存管理、性能优化),与此同时深入学习后端内容(网络编程、并发、服务器架构)。

3.独立游戏开发者

按需学习,通过要实现的游戏内容去学习对应的知识,时间宝贵,只做必须要做的,目的是产出精品独立游戏,而不是丰富技术栈。

4.其他

由于现在后端需求剧增,许多产品都是采用后端编程语言与前端编程语言一致或者相近的后端框架。

例如,前端是U3D的,那么把C#语言作为后端框架语言。前端是Cocos的,可以把TypeScript作为后端框架语言。

虽然不一定比专门做游戏服务器的框架好,但是贵在亲切易上手

这样使得前端更容易去学习和开发后端。

结语

在哪里可以看到如此清晰的思路,快跟上我的节奏!关注我,和我一起了解游戏行业最新动态,学习游戏开发技巧。

我是"亿元程序员",一位有着8年游戏行业经验的主程。在游戏开发中,希望能给到您帮助, 也希望通过您能帮助到大家。

AD:笔者线上的小游戏《贪吃蛇掌机经典》《填色之旅》《重力迷宫球》大家可以自行点击搜索体验。

实不相瞒,想要个在看!请把该文章分享给你觉得有需要的其他小伙伴。谢谢!

推荐专栏:

和8年游戏主程一起学习设计模式

8年主程手把手打造Cocos独立游戏开发框架

从零开始开发贪吃蛇小游戏到上线系列

游戏开发的技巧、心得、资讯

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1309285.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

2023.12.12 关于 Java 反射详解

目录 基本概念 定义 用途 反射相关的类 反射基本原理 Class 类中的相关方法 常用获得类相关的方法 常用获得类中属性相关的方法 常用获得类中构造器相关的方法 常用获得类中方法相关的方法 实例理解 反射优缺点 基本概念 定义 Java 的反射(reflection&a…

Unity 置顶OpenFileDialog文件选择框

置顶文件选择框 🌭处理前🥙处理后 🌭处理前 🥙处理后 解决方案

持续集成交付CICD:CentOS 7 安装SaltStack

目录 一、理论 1.SaltStack 二、实验 1.主机一安装master 2.主机二安装第一台minion 3.主机三安装第二台minion 4.测试SaltStack 一、理论 1.SaltStack (1)概念 SaltStack是基于python开发的一套C/S自动化运维工具,通信采用了zerom…

【谭浩强C语言:前八章编程题(多解)】

文章目录 第一章1. 求两个整数之和(p7) 第二章2. 求三个数中的较大值&#xff08;用函数&#xff09;(p14、p107)3.求123...n(求n的阶乘&#xff0c;用for循环与while循环)(P17)1.循环求n的阶乘2.递归求n的阶乘(n< 10) 4.有M个学生&#xff0c;输出成绩在80分以上的学生的学…

【JVM从入门到实战】(六)类加载器的双亲委派机制

一、双亲委派机制 在Java中如何使用代码的方式去主动加载一个类呢&#xff1f; 方式1&#xff1a;使用Class.forName方法&#xff0c;使用当前类的类加载器去加载指定的类。 方式2&#xff1a;获取到类加载器&#xff0c;通过类加载器的loadClass方法指定某个类加载器加载。 …

VR虚拟现实的七大应用领域

一、工业领域 园区利用虚拟现实技术优化生产管理与节能减排&#xff0c;实现提质增效降本。发展支持多人协作和模拟仿真的虚拟现实开放式服务平台&#xff0c;打通产品设计与制造环节&#xff0c;构建虚实融合的远程运维新型解决方案&#xff0c;适配各类先进制造技术的员工技…

Linux——MySQL数据库的使用

访问MySQL数据库 MySOL数据库系统也是一个典型的C/S&#xff08;客户端/服务器&#xff09;架构的应用&#xff0c;要访问MySOL数据库 需要使用专门的客户端软件&#xff0c;在Linux系统中&#xff0c;最简单、易用的MySQL.客户端软件是其自带的mysql 命令工具。 登录到MySQL服…

经典基本电路

USB电路 USB差分走线的阻抗为90欧:差分对10mil宽的走线以及5mil的间距,两边包地15/20mil以上厚度(SI9000计算阻抗) USB2.0接口电路&#xff1a; USB3.0接口电路&#xff1a; USB HUB电路: HDMI电路 HDMI差分走线的阻抗为100欧:差分对6mil宽的走线以及5mil的间距,两边包地15/20…

05 python数据容器

5.1 数据容器认识 5.2 python列表 5.2.1 列表的定义 演示数据容器之&#xff1a;list 语法&#xff1a;[元素&#xff0c;元素&#xff0c;....] #定义一个列表List List [itheima,uityu,gsdfg] List1 [itheima,6666,True] print(List) print(List1) print(type(List)) pr…

stm32F407-GPIO的使用——点亮LED并且讲解各个寄存器

stm32F407-GPIO的使用——点亮LED并且讲解各个寄存器 本文为stm32GPIO的介绍与使用&#xff0c;例子是简单的LED点亮。 一、 GPIO GPIO&#xff08;General Purpose I/O Ports&#xff09;意思为通用输入/输出端口&#xff0c;通俗地说&#xff0c; 就是一些引脚&#xff0c;可…

关于AISD300系列三相智能安全配电装置的详细介绍-安科瑞 蒋静

1概述 AISD300系列三相智能安全配电装置是安科瑞专为低压配电侧开发的一款智能安全配电产品&#xff0c;本产品主要针对低压配电系统人身触电、线路老化、短路、漏电等原因引起电气安全问题而设计。 产品主要应用于学校、加油站、医院、银行、疗养院、康复中心、敬老院、酒店…

Python 自动化之收发邮件(一)

imapclient / smtplib 收发邮件 文章目录 imapclient / smtplib 收发邮件前言一、基本内容二、发送邮件1.整体代码 三、获取邮件1.整体代码 总结 前言 简单给大家写个如何用Python进行发邮件和查看邮件教程&#xff0c;希望对各位有所帮助。 一、基本内容 本文主要分为两部分…

动画制作与动画控制器的使用_unity基础开发教程

动画制作与动画控制器的使用 导入素材创建动画控制器制作人物动画 前面我们讲过2D游戏中环境地图的制作&#xff0c;这里教大家使用动画控制器的使用 导入素材 先导入一下素材 选择window&#xff0c;点击Asset Store 点击Search online 搜索栏输入Sunny&#xff0c;然后回车…

2022年AMC8数学竞赛真题的典型考点和解析

大家好&#xff01; 从战争中学习战争。 在2024年AMC8考前一个多月的时间中&#xff0c;孩子除了完成学校作业外&#xff0c;备考AMC8的有效方法就是做往年真题&#xff0c;通过往年真题进一步了解AMC8的考点、题型&#xff0c;建立自己的解题策略和方法。并且查漏补缺&#…

Docker容器如何优雅地访问宿主机网络

# 前言 某些时候&#xff0c;我们会有在容器内容访问宿主机某个服务的需求&#xff0c;比如现在 openai 无法直接访问&#xff0c;需要给项目添加代理&#xff0c;我的 chatgpt-dingtalk (opens new window) 项目支持了通过环境变量指定代理地址。 添加方式如下&#xff1a; …

使用对象处理流ObjectOutputStream读写文件

注意事项: 1.创建的对象必须实现序列化接口,如果属性也是类&#xff0c;那么对应的类也要序列化 2.读写文件路径问题 3.演示一个例子 &#xff08;1&#xff09;操作的实体类FileModel&#xff0c;实体类中有Map,HashMap这些自带的本身就实现了序列化。 public class File…

c语言printf函数与==和=

介绍&#xff1a; 本篇文章 是一些 关于c语言的 细节代码讲解 代码与讲解&#xff1a; 代码&#xff1a; #include <stdio.h>int main(void) {int a 1, b 2, c 3;printf("%d %d %d %d\n", a b c, a b c, a (b c), a (b c));return 0; } 大家先自…

玉米浸泡液回收植酸,植酸回收树脂

植酸为环己六醇六磷酸&#xff0c;分子量为660&#xff0c;植酸钠为环己六醇六磷酸钠&#xff08;Na12C6H6O24P6&#xff09;分子量为924。 植酸用途&#xff1a;在食品工业中植酸钠可用作食品添设剂&#xff0c;菲丁&#xff08;植酸钙&#xff09;可用于生产肌醇&#xff0c…

02.尚医通 Mybatis-Plus

1、前期准备 a. 创建数据库 CREATE TABLE USER (id BIGINT(20)NOT NULL COMMENT 主键ID,NAME VARCHAR(30)NULL DEFAULT NULL COMMENT 姓名,age INT(11)NULL DEFAULT NULL COMMENT 年龄,email VARCHAR(50)NULL DEFAULT NULL COMMENT 邮箱,PRIMARY KEY (id) );INSERT INTO user…

jdk+zookeeper+kafka 搭建kafka集群

环境准备 环境资源包&#xff1a; jdk-8u341-linux-x64.tar.gz kafka_2.12-2.2.0.tgz zookeeper-3.4.14.tar.gz server-idip状态server110.206.120.10leaderserver210.206.120.2followerserver310.206.120.3follower 一、安装jdk 因为kafka需要Java环境&#xff0c;所以优先…