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

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是一些最常见的游戏引擎。

Image for post
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开发编码

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值