web开发编码_编码和游戏开发

2023-11-15

web开发编码

As a game enthusiast and a beginner programmer, I always wonder what it would be like to develop a game?

作为游戏发烧友和初学者程序员,我总是想知道开发一款游戏会是什么样?

What really grabs my attention is, how the game is developed and what role a software engineer plays in the process?

真正吸引我注意的是,游戏的开发方式以及软件工程师在此过程中扮演的角色?

In the early 1970s to mid-1980s, when video games were becoming popular, a programmer was responsible for both programming and design of the game. That was because early computers were limited and having a graphic designer was not necessary. Later when computers became more powerful, game development was expanded to more specific areas, and developers were able to add more depth into a game.

在1970年代初期至1980年代中期,当视频游戏开始流行时,程序员负责游戏的编程和设计。 那是因为早期的计算机是有限的,并且没有图形设计师的必要。 后来,随着计算机功能的增强,游戏开发扩展到了更特定的领域,并且开发人员能够为游戏增加更多的深度。

In general there are three main stages into game development, and programming still has its own place at the very core of this process. Here I emphasize more on areas where software engineers and developers are playing an important role.

一般而言,游戏开发分为三个主要阶段,而编程仍然是该过程的核心。 在这里,我将重点介绍软件工程师和开发人员正在发挥重要作用的领域。

预生产 (Pre-production)

Like any other production, game development also begins with pre-production. The development team decides what the game is about, who is the audience, how long will it take, what resources and staff are required and what is the estimated budget?

像任何其他作品一样,游戏开发也从预制作开始。 开发团队决定游戏的内容,受众是谁,需要花费多长时间,需要哪些资源和人员以及预计的预算是多少?

Pre-production usually takes up to %20 of the total production time. During that time a small team of programmers work on the main concept, while producer and concept artist work on the business and design aspects of the project.

预生产通常会占用总生产时间的%20。 在此期间,一小组程序员负责主要概念,而制作人和概念艺术家则负责项目的业务和设计方面。

生产 (Production)

Next stage is production. This is where programmers (aka game developers) play an important role. The basic idea is that programmers develop games by turning designed concepts into code and create a fully playable game. Game developers are generally software engineers with a strong programming and computer science background. They are responsible for different aspects of the production such as;

下一阶段是生产。 这是程序员(又名游戏开发人员)发挥重要作用的地方。 基本思想是程序员通过将设计的概念转化为代码并创建可完全玩的游戏来开发游戏。 游戏开发人员通常是具有强大编程和计算机科学背景的软件工程师。 他们负责生产的各个方面,例如;

  • Building a custom design base engine for the game

    为游戏构建定制设计基础引擎
  • Implementing game logic

    实施游戏逻辑
  • Creating user interface

    创建用户界面
  • Scripting functions and interactions

    脚本功能和交互
  • Developing and modifying 3D graphic renders

    开发和修改3D图形渲染
  • Implementing algorithms

    实现算法
  • Simulating AI in opponents

    模拟AI 在对手

  • Creating physics (like gravity differences in space)

    创建物理学(例如空间中的重力差异)
  • Adding sound effects and music

    添加声音效果和音乐
  • Identifying and fixing bugs

    识别并修复错误
  • Writing code specific for controllers (joystick, mouse and keyboard)

    编写特定于控制器的代码(操纵杆,鼠标和键盘)
  • Making network connectivity feature available for a game

    使网络连接功能可用于游戏

As you might notice, the very first responsibility of developers is to build a game engine. Despite, there are many game engines available out there, what really distinguishes between games is their custom designed engines. Unreal Engine, Unity, GameMaker, Godot, AppGameKit are some of the most common game engines.

您可能会注意到,开发人员的首要责任是构建游戏引擎 。 尽管有许多可用的游戏引擎,但真正区分游戏的是它们的自定义设计引擎。 虚幻引擎UnityGameMakerGodotAppGameKit是一些最常见的游戏引擎。

Some of the popular game engines 一些流行的游戏引擎

游戏引擎 (Game engine)

But what is it really? Game engine is a software development environment. It provides developers with essential tools and features, which allows them to build a game quicker and more efficient. This lets the whole team of game development focus more on unique elements such as object interaction, design, character model, etc. As a result, games have more depth in all aspects from script to graphics.

但是到底是什么呢? 游戏引擎是一个软件开发环境。 它为开发人员提供了必要的工具和功能,使他们可以更快,更高效地构建游戏。 这使整个游戏开发团队将精力更多地放在对象交互,设计,角色模型等独特元素上。因此,游戏在从脚本到图形的各个方面都具有更多的深度。

A game engines provides things like:

游戏引擎提供以下功能:

  • Scripting

    脚本编写
  • Rendering

    渲染图
  • AI

    人工智能

  • Physics

    物理
  • Audio

    音讯
  • Networking

    联网
  • Graphical user interface (GUI)

    图形用户界面( GUI )

  • And many more features could be added if the engine is designed by developers themselves.

    如果引擎是由开发人员自己设计的,则可以添加更多功能。

Building a game engine requires developers to be knowledgeable in areas like math, physics, linear algebra, algorithm design. Many believe C++ is the most efficient language for this purpose, but more on languages later!

构建游戏引擎需要开发人员在数学,物理,线性代数,算法设计等领域具有丰富的知识。 许多人认为C ++是用于此目的的最有效的语言,但稍后会介绍更多语言!

后期制作 (Post-production)

After completing the production a small group of developers keep working on maintenance like fixing bugs, adding features and downloadable content.

完成生产后,一小部分开发人员将继续进行维护工作,例如修复错误,添加功能和可下载内容。

哪种编程语言? (Which programing language?)

As game development becomes more popular more programmers discover more programming languages to benefit the process. Like deciding on game engine, choosing the programming language(s) is another essential step to start the process.

随着游戏开发变得越来越流行,更多的程序员发现了更多的编程语言以使过程受益。 就像决定游戏引擎一样,选择编程语言是启动该过程的另一个重要步骤。

So what programming language should you learn, becoming a game developer? To answer the question, better to decide what type of game you like to develop or where in the industry you would like to be?

那么,要成为游戏开发人员,您应该学习哪种编程语言? 要回答这个问题,最好决定您想开发哪种类型的游戏,或者您想成为什么样的行业?

Let’s start with AAA games. These games are published by mid to large size game companies. They have a higher budget for development and marketing, and they mostly use C , C++ and Java. Rust is another language which some AAA game publisher started using recently. But it is only recommended for already skilled programmers, so be prepared if you are going with Rust!

让我们从AAA游戏开始。 这些游戏由中大型游戏公司发行。 他们有较高的开发和营销预算,并且大多使用CC ++JavaRust是AAA游戏发行商最近开始使用的另一种语言。 但这仅推荐给已经熟练的程序员,因此,如果您要使用Rust,请做好准备!

Indie game developers are another big fan of using C++ since it is the language of Unreal Engine and has the flexibility of PC and mobile.

独立游戏开发人员是使用C ++的另一个狂热爱好者,因为它是虚幻引擎的语言,并具有PC和移动设备的灵活性。

Next would be mobile games without a heavy load of graphic effects and animation. Based on your only two choices between iOS or Android you will end up using their native development tools. Xcode for iOS by using Swift programming language, and Android Studio that is written in Java and Kotlin languages.

接下来将是没有大量图形效果和动画的手机游戏 。 根据您在iOS或Android之间仅有的两个选择,您最终将使用其本机开发工具。 使用Swift编程语言的iOS Xcode ,以及用Java和Kotlin语言编写的Android Studio

Other than those few main languages used for major game production, languages like Python and Javascript used for simpler game.

除了用于主要游戏制作的少数几种主要语言之外,诸如Python和Javascript之类的语言用于更简单的游戏。

游戏程序员的职位描述 (Game programmer job description)

Like any other job, it is important to know what to expect when searching for a programmer position in the game industry. As expected, major job duties are code to creating programs that allow computers, smartphones and video game systems to read and run the game.

像其他任何工作一样,重要的是要知道在游戏行业寻找程序员职位时会期待什么。 正如预期的那样,主要工作职责是创建程序的代码,该程序允许计算机,智能手机和视频游戏系统读取和运行游戏。

Programmers work as a team under supervision of their lead programmer. Simultaneously other teams like AI, physics and graphic programmers benefit from the codes made by programmers to make the game as lifelike as possible. They work on reactions of game to player’s moves and their decisions.

程序员在其首席程序员的监督下作为团队工作。 同时,诸如AI,物理和图​​形程序员之类的其他团队也受益于程序员编写的代码,以使游戏尽可能逼真。 他们致力于游戏对玩家动作和决策的React。

Annual salary for a junior game programmer at its lowest starts from 50,000 a year and increases depending on the experience and skill level.

初级游戏程序员的最低年薪从每年50,000起,并根据经验和技能水平而增加。

结论 (Conclusion)

While working in game development as a programmer sounds exciting and entertaining. There are few important things to consider before taking this journey;

在游戏开发人员中工作时,听起来很刺激和有趣。 进行此旅程之前,没有什么要考虑的重要事项;

  • Knowing multiple programming languages, specially C++

    知道多种编程语言,尤其是C ++
  • Developing knowledge of math and computer science

    发展数学和计算机科学知识
  • Patience

    忍耐
  • Understanding other aspects of the production

    了解生产的其他方面

After all, the best approach to become a game developer is to create simple games as a hobby! Enjoy the process and be patience with the growth.

毕竟,成为游戏开发人员的最佳方法是将简单的游戏作为一种爱好来创建! 享受过程,并耐心成长。

祝你好运! (Best of luck!)

翻译自: https://medium.com/@soroosh.gb/coding-and-game-development-86b88b966377

web开发编码

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

web开发编码_编码和游戏开发 的相关文章

随机推荐

  • 稳压二极管(齐纳Zener二极管)的接法和应用详解

    http www elecfans com dianzichangshi 20170529520260 html http www elecfans com yuanqijian erjiguang 20180103610356 html
  • Zabbix学习笔记(二)Zabbix的配置

    提示 文章写完后 目录可以自动生成 如何生成可参考右边的帮助文档 目录 前言 1 数据库设置 2 zabbix 服务器设置 1 访问并配置zabbix 总结 前言 近期学习网络运维监控方面的知识 在使用Zabbix系统中遇到了许多的问题 在
  • 深入理解CSS中em, rem, ex区别,及使用技巧

    CSS 中常见尺寸 单位 描述 百分比 in 英寸 cm 厘米 mm 毫米 ex 一个 ex 是一个字体的 x height x height 通常是字体尺寸的一半 pt 磅 1 pt 等于 1 72 英寸 pc 12 点活字 1 pc 等
  • 华为三层交换机VRRP与DHCP综合实验

    要求设计 1 公司有三个部门 为确保通信安全 每个部门都处于独立的广播域 2 Vlan40为外来人员所在的Vlan 此vlan中的主机只能访问DHCP服务器 3 每个部门的 IP地址规划为 192 168 xx 0 24 4 每个部门的主机
  • 【前端】Vue项目:旅游App-(18)TabBar:debug,非点击tabBar的路由跳转active显示问题

    文章目录 目标 过程与代码 原因与属性的添加 currentIndex的修改 效果 总代码 修改的文件 tab bar vue 本项目博客总结 前端 Vue项目 旅游App 博客总结 目标 当我们在url处实现路由跳转时 tabBar没有产
  • java程序语句_Java-语言编程

    创建节点和插入节点 很多时候我们想要在某个位置插入一个新的节点 此时我们首先需要有一个节点存在 可以通过以下几种方式创建新节点 创建节点 方法描述createElement 创建一个新的节点 需要传入节点的标签名称 返回创建的元素对象cre
  • 100天精通Python(数据分析篇)——第74天:Panda索引标签修改函数大全(参数说明+代码实战)

    文章目录 本文导读 一 添加标签前后缀 1 add prefix str 2 add suffix str 二 标签重命名 1 set axis 1 修改行标签 2 修改列标签
  • oracle统计信息详解

    收集oracle统计信息 优化器统计范围 表统计 行数 块数 行平均长度 all tables NUM ROWS BLOCKS AVG ROW LEN 列统计 列中唯一值的数量 NDV NULL值的数量 数据分布 DBA TAB COLUM
  • RGMII Delay的一点理解

    RGMII delay 如何产生的 可能是RGMII协议规定如此 因此在soc内部集成的RGMII片内外设 将时钟边沿与数据跳变在同一时刻发生 但是RGMII接收端是需要在时钟的边沿处捕获数据的 因此就需要将发送时钟移位 进而使接收端可以正
  • js 数组id去重

    可以用下面的方法来去除数组中的重复项 先将数组转换为 Set 类型 然后再转回数组 这种方法的缺点是会丢失原数组的顺序 const arr 1 2 3 3 2 1 const unique new Set arr console log u
  • C语言PTA题目:7-22 1022 利息

    输入存款金额money 存期year和年利率rate 根据下列公式计算存款到期时的利息interest 税前 输入格式 输入可能有多行 每行有3个整数 分别表示金额 存期 年 年利率 百分比数 输出格式 根据money 1 rate yea
  • 服务器怎么把自己的项目放上去,怎么把项目放到云服务器上

    怎么把项目放到云服务器上 内容精选 换一换 云服务器组是对云服务器的一种逻辑划分 云服务器组中的弹性云服务器遵从同一策略 当前仅支持反亲和性 即同一云服务器组中的弹性云服务器分散地创建在不同的主机上 提高业务的可靠性 您可以使用云服务器组将
  • 微信小程序:字体保持大小

    小程序和网页差不多 前台用wxml把内容摆好 然后用css调整样式 所以和web一样 必须要能够精确控制每一个元素的大小 在Web中 通过CSS基本达到了像素级的控制 但在小程序中 情况有所不同 下面是我通过微信提供的事件分析 把近7天访问
  • 数字化转型方法论汇总(学习笔记)

    数字化转型方法论汇总 德勤制造业数字化转型方法论 数字化转型的3大要点 1 从满足利益相关者期望出发 2 以企业价值引领业务模式创新 3 以信息作为企业神经中枢 重塑组织协同 一 关注集团利益相关者 两类利益相关者 集团外部的证监会 国资委
  • 比较2个数组是否一样

    需求 如果两个数组的类型 元素个数 元素顺序和内容是一样的我们就认为这2个数组是一模一样的 请使用方法完成 能够判断任意两个整型数组是否一样 并返回true或者false 分析 1 定义方法 接收2个整型数组 gt 是否需要参数 返回值类型
  • 《Win10——如何进入高级启动选项》

    Win10 如何进入高级启动选项 第一种方法 1 管理员命令提示符输入如下代码 自动重启并进入高级启动选项 shutdown r o f t 00 第二种方法 1 管理员命令提示符输入以下代码 开机时按下F8 进入高级启动选项 bcdedi
  • java基础总结(二十五)--访问修饰符protected

    三 protected 关键字的真正内涵 很多介绍Java语言的书籍 包括 Java编程思想 都对protected介绍的比较的简单 基本都是一句话 就是 被protected修饰的成员对于本包和其子类可见 这种说法有点太过含糊 常常会对大
  • 基于python 自写Tobii VI-T滤波器

    文章目录 官网参考文档 Gap fill in interpolation Eye selection Noise reduction Velocity calculator I VT classifier Merge adjacent f
  • react-router-dom V6

    目录 1 前言 2 变更概览 将 Switch 升级为 Routes 路由匹配组件参数 由 component 改为 element 相对路径识别 子路由不需要补全父路由的path react会自动补全 用 useNavigate 替代 u
  • web开发编码_编码和游戏开发

    web开发编码 As a game enthusiast and a beginner programmer I always wonder what it would be like to develop a game 作为游戏发烧友和初