游戏感虚拟感觉的游戏设计师_从零到游戏设计师:即使您没有任何经验,如何开始制作视频游戏...

游戏感虚拟感觉的游戏设计师

by Angela He

通过何安佳

从零到游戏设计师:即使您没有任何经验,如何开始制作视频游戏 (From Zero to Game Designer: how to start building video games even if you don’t have any experience)

2 years ago I was just 17 year old high school student who knew nothing about coding. But I pushed forward anyway, and within a few months I published my first game on Steam.

2年前,我还是17岁的高中生,对编码一无所知。 但是无论如何,我还是坚持不懈地前进,并在几个月内在Steam上发布了我的第一款游戏。

Now, I’ve made over 10 games for desktop, web, and mobile, with over 1.9 million plays combined.

现在,我已经为台式机,网络和移动设备制作了10多种游戏,总播放量超过190万。

No matter your skill level, you can make a game too. 2 years ago, I thought it was impossible, but tried anyways. It was the hardest thing I’d ever done. But it was worth it. Now, I realize game development is like any skill — you only get better by doing, failing, then improving.

无论您的技术水平如何,您都可以制作游戏。 2年前,我认为这是不可能的,但还是尝试了。 那是最难的 我曾经做过的事情。 但它是值得的。 现在,我意识到游戏开发就像任何技能一样,只有做到,失败,然后改进,才能变得更好。

I taught myself everything I know. And now I’m going to teach you.

我自学了一切。 现在我要教你。

要制作游戏,您必须经历游戏开发的6个阶段:设计。 艺术。 码。 音频。 抛光。 市场。 (To make a game, you must go through the 6 stages of game development: Design. Art. Code. Audio. Polish. Market.)

The rest of my post will structure each stage into the following:

我的其余文章将把每个阶段分为以下几个阶段:

  • ?Advice I’ve curated from my and others’ experiences.

    从我和其他人的经验中精心挑选了一个。

  • ?Resources I’ve found most helpful.

    ·R 物资跟不上我发现最有帮助。

1.设计 (1. Design ?)

忠告? (Advice?)

You’ve got a great idea. *

你有个好主意。 *

But how do you capture it in writing?

但是,您如何以书面形式记录下来呢?

Everyone’ll have their own way of doing that best. Some compose 60-page design documents. Others, like me, write a page of badly-written notes, unreadable to anyone else. I don’t know what’s best for you. But I can give suggestions on what to write about:

每个人都有自己的方法来做到最好。 有些包含60页的设计文档。 像我这样的其他人则写了一页写得不好的笔记,其他人都看不懂。 我不知道什么是最适合您的。 但我可以给什么就写建议:

  • Hook. What makes your game idea great? For me, this is the most important to write down. Once you capture this, you can write down the next three points much easier. Is your game about something thought-provoking? Scandalous? Is it putting a new twist to an old classic? Or, is it doing something that’s never been done before?

    钩。 是什么使您的游戏创意很棒? 对我来说,这是最重要的写下来。 捕捉到这一点后,您可以轻松记下接下来的三点。 您的游戏中是否包含一些令人深思的内容? 可耻的? 它给旧经典带来了新的变化吗? 还是正在做以前从未做过的事情?

  • Mechanics. What does your player do? And for what purpose? This is your gameplay. It can be as simple as pressing QWOP to move in the game QWOP, to tapping buttons to chat in Mystic Messenger, to the tons of key combos in Dwarf Fortress.

    力学。 您的播放器会做什么? 出于什么目的? 这是您的游戏玩法。 就像按下QWOP进入游戏QWOP一样简单,点击Mystic Messenger中的聊天按钮,以及Dwarf Fortress中大量按键组合。

  • Story. What story should players remember your game by? What emotions should they leave your game with? Every game has a story. If the story isn’t obvious, it is created by the player. A story can be created from the increasing numbers in 2048, the rising empires in Civilization, and the silent interactions in Monument Valley. Think about what story’ll be found in your game.

    故事。 玩家应该记住哪个故事? 他们应该给您的游戏带来什么情感? 每个游戏都有一个故事。 如果故事不明显,则由玩家创建。 可以从2048年的人数增加,文明的帝国崛起以及纪念碑谷的默默互动中创建一个故事。 想一想在您的游戏中会发现什么故事。

  • Mood. What impression does your game make? What are the visuals? Sound? First impressions matter. First impressions will hook — then keep — the player playing. Perhaps, you’ll give your game a retro vibe with pixel graphics and chiptune music. Or, a modern, clean look with flat geometries and instrumentals.

    心情。 您的游戏给人留下什么样的印象? 视觉效果是什么? 声音? 第一印象很重要。 第一印象将吸引(然后保持)玩家的比赛。 也许,您将通过像素图形和Chiptune音乐使游戏具有复古气息 。 或者,具有平坦几何形状和工具的现代,干净外观。

* Having a hard time thinking of an idea? Creative block hits us all.

*很难思考一个主意吗? 创意块打动了我们所有人。

  • Join a game hackathon/jam. You and other participants’ll be tasked to make a game in a short amount of time. Throughout, and after, you’ll be met with support from other jammers. And the excitement and creativity during a jam? Infectious. Don’t know where to get started? Try Ludum Dare, one of the largest game jams.

    加入游戏hackathon / jam。 您和其他参与者的任务是在短时间内制作游戏。 在整个过程中以及之后,您都会得到其他干扰器的支持。 还有果酱期间的兴奋和创造力? 传染性。 不知道从哪里开始? 尝试Ludum Dare ,这是最大的游戏堵塞之一。

  • Keep a list of ideas. I and other developers I know jot down our ideas. That way, we can refer back to our old ones when we run out of new.

    保留想法清单。 我和我认识的其他开发人员记下了我们的想法。 这样,当我们用完新的资源时,我们可以参考旧的资源。

When the muse hits, stop whatever you’re doing. Write that idea down. The next time creativity ghosts, you won’t be left grasping for straws.

当缪斯女神击中时,请停止您正在做的任何事情。 把这个想法写下来。 下次有创造力的幽灵时,您将不会被稻草所吸引。

资源? (Resources ?)

All of the below are tried and true. (?) means I use it currently.

以下所有内容均经过尝试和证明。 (?)表示我当前正在使用它。

Note-taking:

做笔记:

  • Notes for Mac (?)

    Mac的注意事项(?)
  • Google Docs (?)

    谷歌文档 (?)
  • Trello

    特雷洛

Collaboration (for teams):

协作(对于团队):

  • Google Drive

    Google云端硬碟
  • GitHub (?). Requires git and Unity .gitignore.

    GitHub(?)。 R 等于git和Unity .gitignore。

  • Unity Collab. Easiest out of the three. The free version has limitations.

    Unity协作。 这三个中最简单的。 免费版本具有局限性。

Heads up — Unity is the game engine I use to make games, so I’ll be mentioning it throughout. Feel free to use a different engine.

注意:Unity是我用来制作游戏的游戏引擎,因此我将在全文中进行介绍。 随意使用其他引擎。

Game design:

游戏设计:

  • The Art of Game Design by Jesse Schell

    Jesse Schell的游戏设计艺术

  • Gamasutra

    加马苏特拉

2.艺术? (2. Art ?)

忠告? (Advice?)

You’ve planned out your idea; congrats, that’s amazing! Now, you can work on the actual game.

您已经计划好了主意; 恭喜,这太神奇了! 现在,您可以进行实际的游戏了。

(If you don’t know how to code, I suggest doing stage 3, Code, before Art. You don’t want to create art that you’ll trash later because you can’t code it in.)

( 如果您不知道如何编码 ,我建议您在Art之前进行第3阶段的编码。您不想创建以后再浪费的艺术作品,因为您无法进行编码。)

Don’t know how to draw? Do not fret. Anyone can make something beautiful with the 3 basic visual principles: color, shape, space.

不知道怎么画? 不要烦恼。 任何人都可以通过3个基本视觉原理使事物变得美丽:颜色,形状,空间。

用户界面 (UI)

Think about how you can make it unique — have a distinct color scheme, font(s), shape(s), and icon(s) — while functional. Is the important information readable and obvious? Do the colors/fonts/icons distract from that at all?

想想你如何使它独一无二的 -有一个独特的颜色方案,字体(S),形状(S)和图标(S) -而职能 。 重要信息可读且明显吗? 颜色/字体/图标是否完全分散了注意力?

2D动画 (2D animations)

You have two options:

您有两种选择:

  • Frame-by-frame. Draw out each frame of the animation. For this, you should use sprite sheets with TexturePacker (or if you’re using Unity, Sprite Packer).

    一帧一帧。 绘制动画的每一帧。 为此,您应该将Sprite工作表与TexturePacker一起使用 (或者如果使用Unity,则使用Sprite Packer )。

  • Bone-based. Draw each animated limb, then animate the limb’s position, rotation, and whatnot in-game. Can be faster, easier, and save memory. If you’re doing 2D and using Unity, try editing the pivots of sprites or Anima2D.

    基于骨。 绘制每个动画的肢体,然后在游戏中为肢体的位置,旋转和其他动画。 可以更快,更轻松并节省内存。 如果您正在执行2D并使用Unity,请尝试编辑sprites或Anima2D的轴 。

杂项 (Misc)

Here are some general miscellaneous art tips that apply to not only art in games, but in other software as well.

这里有一些通用的杂技技巧,这些技巧不仅适用于游戏中的美术,还适用于其他软件中的美术。

  • Tile patterned assets to create tiled images and save memory.

    平铺带图案的资产以创建平铺图像并节省内存。

  • 9-patch/9-slice assets with unscalable borders but a scalable center to create scalable images and save memory.

    9补丁/ 9切片资产具有不可缩放的边框,但具有可缩放的中心,可创建可缩放的图像并节省内存。

  • Make the dimensions of each asset a multiple of 4 or a power of 2 to save memory. Which one depends on how you’re compressing the assets.

    使每个资产的尺寸为4的倍数 或2的幂以节省内存。 哪一个取决于您如何压缩资产。

  • If you’re using Photoshop, use “File > Export > Layers to Files” to quickly export each layer as a file (e.g. PNG, JPEG).

    如果使用Photoshop,请使用“文件>导出>图层到文件”将每个图层快速导出为文件(例如PNG,JPEG)。

资源? (Resources ?)

Creating UI:

创建UI:

  • Photoshop (?).

    Photoshop(?)。
  • Sketch.

    草图。

UI principles:

用户界面原则:

  • Google Material Design (?).

    Google Material Design (?)。

  • Apple’s UI Do’s and Don’ts.

    Apple的UI做与不做 。

Creating 2D assets:

创建2D资产:

  • Photoshop (?).

    Photoshop(?)。
  • Gimp.

    金普
  • Paint Tool SAI. Good for smooth/anime styles.

    绘画工具SAI。 适用于流畅/动漫风格。

Creating 3D assets:

创建3D资产:

  • Blender (?). Powerful but steep learning curve.

    搅拌机 (?)。 有力但陡峭的学习曲线。

  • Maya. Good for animation.

    玛雅人 对动画有益。

  • Max. Good for rendering.

    最高 很好的渲染。

Free assets:

免费资产:

  • Behance (?). Fonts + icons + other designs.

    行为 (?)。 字体+图标+其他设计。

  • KennyNL. HQ, game-ready UI/2D/3D art.

    肯尼·NL(KennyNL) 。 总部,可用于游戏的UI / 2D / 3D艺术。

  • Open Game Dev Art. Large library of user-generated art.

    开放游戏开发艺术 。 用户生成的艺术品的大型图书馆。

Inspiration:

灵感:

  • Dribbble. Designs from invite-only designers.

    运球。 仅受邀设计师的设计。

  • Behance (?). Designs from anyone with an account.

    行为 (?)。 D 从拥有帐户的任何人那里提出。

  • itch.io (?). Beautiful indie games.

    itch.io (?)。 美丽的独立游戏。

3.代码? (3. Code ?)

忠告? (Advice?)

Debug.Log(“Oh boy! Time to code!! ^_^”);

Your first step? Decide on a game engine and an IDE (Integrated Development Environment — basically, an app that lets you code). My recommended game engines+IDEs are in Resources below.

你的第一步? 确定游戏引擎IDE (集成开发环境,基本上是一个允许您编码的应用程序)。 我推荐的游戏引擎+ IDE在下面的参考资料中。

Your second step? Code.

你的第二步? 码。

Don’t know how to code? No worries. I got you. You can learn.

不知道怎么编码? 别担心。 我接到你了。 你可以学习。

These CS fundamentals should be enough to start. (All code examples here are in C++, one of the main languages the Unity 3D game development framework uses.)

这些CS基础知识应该足以启动。 (这里的所有代码示例都是C ++,这是Unity 3D游戏开发框架使用的主要语言之一。)

1) Data types and variables. At the root of all code is data. That data is stored in variables. You can declare a variable like this:

1)数据类型和变量。 数据是所有代码的根本。 该数据存储在变量中。 您可以这样声明一个变量:

int i = 0;

Let’s break that down.

让我们分解一下。

int is the data type. i is the variable name. And that = 0 assigns zero as the variable value.

int是数据类型。 i是变量名。 = 0会将零分配为变量值。

So what’s this?

那是什么

string s = "pusheen is best cat";

string is the data type. s is the variable name. And yep — you guessed it — “pusheen is best cat” is the variable value.

string是数据类型。 s是变量名。 是的,您猜对了, “pusheen is best cat”是可变值。

Some common data types: int and long are integers. float and double are decimal numbers. And string is any sentence. (Even an empty one — “”!)

一些常见的数据类型: intlongintegersfloatdouble是十进制数。 字符串是任何句子。 (即使是空的- “” !)

Want to know more? Go through this and this.

想知道更多? 经历这个和这个 。

2) If statements. If statements evaluate if a certain condition is true. If it is, run the code that’s inside the if statement:

2)if语句。 如果语句评估某个条件是否为真。 如果是这样,请运行if语句内的代码:

if (true){ //true is always true!

    doThings(); //I'm inside the if statement's brackets; run me!
}

If the condition isn’t true, we can evaluate other conditions with else if:

如果条件不成立,我们可以使用else if评估其他条件:

int i = 1;

if (i == 0){ 

   doThings(); 
}
else if (i == 1){

   doOtherThings(); //I'm gonna be run!
   
}

Or, just run some other code with else:

或者,只需使用else运行其他代码:

int i = 60000;

if (i == 0){

  doThings(); 
  
} else {

  doOtherThings(); //I'm still gonna be run.
  
}

3) For/while loops. While loops continue while a certain condition is still true, executing the same lines of code over and over again. When the condition is false, the while loop exits.

3)for / while循环。 虽然循环在某个条件仍然成立的情况下仍在继续,但要一遍又一遍地执行相同的代码行。 如果条件为假,则while循环退出。

while (someBool == true){ //condition

   doThings(); //We'll keep doing things until someBool is false
   
}

Think: how long does this while loop last?

想一想:while循环持续多长时间?

while (true){

  doThings();
  
}

For loops are basically while loops where:

for循环基本上是while循环,其中:

int i = 0;
while (i < condition){ 

    doThings();
    
    i++; //increment after doing things
}

That’s equivalent to:

等同于:

for (int i = 0; i < condition; i++){

    doThings();
}

4) Basic data structures. So, we have data, and we ways to evaluate and manipulate that data. We can also store that data into some structure — a data structure. Data structures you should know are arrays, lists, queues, stacks, and sets.

4)基本数据结构。 因此,我们拥有数据,并且我们可以评估和处理该数据。 我们还可以将该数据存储到某种结构中-数据结构。 您应该知道的数据结构是数组 , 列表 , 队列 , 堆栈和集合 。

Here’s a quick example of an array:

这是一个数组的简单示例:

/*
Say you have numbers 0 through 9 that you want to store somewhere. You can store it in an array!
*/
int[] arr = new int[10]; 
/*
The [] brackets declare an array. We assign a new array to arr of size 10 - that means it can hold 10 elements. Arr now looks like this:

arr = [ 0 0 0 0 0 0 0 0 0 0 ]
*/
for (int i=0; i<10; i++){

    arr[i]=i; //We assign whatever i is to the the ith index of arr.
    
//Did you know data structures' indices start at 0? ? 
}

/*
After the for loop, our array data structure should look like this!
arr = [ 0 1 2 3 4 5 6 7 8 9 ]
*/

To solidify your knowledge of 2–4, go through this.

要巩固对2–4的了解,请完成此步骤 。

5) Functions and exceptions. Functions are basically a small line of code describing a big bunch of code. For example, if you call:

5)功能和例外。 函数基本上是一小段代码,描述了一大堆代码。 例如,如果您致电:

EatBread();

And EatBread() looks like:

EatBread()看起来像:

void EatBread(){ //<---this is a function. 

   breadAte=true;
   
   printf("I CAN FEEL THE CARBS COURSING THROUGH MY BODY");
   
}

Then the call to EatBread() is actually a call to the two statements within the EatBread() function.

然后,对EatBread()的调用实际上是对EatBread()函数中的两个语句的调用。

If you do something bad in your code, an exception might get thrown. They’re angry red errors there to tell you, hey, back up, what you did right there just ain’t ‘workin out logically. Go revise it.

如果您在代码中做不好的事情,可能会引发异常。 他们在生气红色错误,告诉您,嘿,备份,您在那儿所做的只是没有在逻辑上解决。 去修改它。

To learn more about functions, go here; for exceptions, go here.

要了解有关功能的更多信息, 请转到此处 ; 例外情况, 请转到此处。

Then, there’re other things you should know:

然后,您还应该了解其他事项:

6) Language. What language are you going to code in? C++? Javascript? C#? Every language is written somewhat differently and can let you do different things.

6)语言。 您要使用哪种语言编写代码? C ++? Javascript? C#? 每种语言的书写方式都有所不同,可以让您做不同的事情。

7) API (Application Programming Interface). Once you know the basics, you’ll have to learn the specific API of your game engine. APIs are essentially a bunch of powerful tools wrapped in simple classes and functions that you can call. APIs make life easier. Way easier.

7)API(应用程序编程接口)。 一旦了解了基础知识,就必须学习游戏引擎的特定API。 API本质上是一堆包含在可以调用的简单类和函数中的强大工具。 API使生活更轻松。 方式更简单。

Lastly:

最后:

8) Look at an example project in your chosen game engine. Unreal and Unity both have a ton of free example projects. This’ll let you discover how everything comes together. Plus, you can build your game idea off of the project. (I built my first game off of Corgi Engine.)

8)在您选择的游戏引擎中查看一个示例项目。 虚幻和Unity都有大量免费的示例项目。 这将使您发现所有内容如何组合在一起。 另外,您可以从项目中构建游戏构想。 (我是用Corgi Engine制作的第一款游戏。)

if (you.getThisFar()==true){
  veryProud=true;
  you.didIt(); //CURRENT MOOD: THE SH⭐⭐KEST ???
  
}

A word of encouragement: I know. Coding is scary at first. Nothing makes sense, you’re hitting constant roadblocks, and you might want to quit in the face of failures and exceptions. It doesn’t mean you’re bad at coding. Coding is challenging. It’s understandable to feel incompetent at first.

一个鼓励的词:我知道。 起初编码很吓人。 没有任何意义,您遇到了不断的障碍,并且您可能想在遇到失败和异常时退出。 这并不意味着您不擅长编码。 编码具有挑战性。 刚开始感觉不称职是可以理解的。

But it just takes time, like any other skill. It’ll get easier. And it’ll get fun (at least, it did for me).

但这需要时间,就像其他技能一样。 它会变得更容易。 它将变得很有趣(至少对我而言是如此)。

Important game programming concepts:

重要的游戏编程概念:

  • Object orientation. Makes programming feel more natural.

    面向对象。 使编程感觉更自然。

  • Naming conventions. Name your classes, methods, and variables as something that obviously conveys its purpose. For instance, a melee attack function should be named meleeAttack(), not mA() or protecbutalsoattac(). You (and others who read your code) should know what’s going on.

    命名约定。 将您的类,方法和变量命名为明显传达其目的的名称。 例如,近战攻击功能应命名为meleeAttack(),而不是mA()或protecbutalsoattac()。 您(以及其他阅读您代码的人)应该知道发生了什么。

  • Decomposition. Put code that repeats itself into a separate function. Call that function instead of duplicating the repeatable code.

    分解。 将重复自身的代码放入单独的函数中。 调用该函数,而不是复制可重复的代码。

  • Singleton design pattern. Allows data that a lot of things need to be stored in one place.

    单例设计模式。 允许将很多东西需要存储在一个地方的数据。

  • Static avoidance. Beyond singletons, I’d avoid making static variables— their lifetime is the game’s lifetime, they’re slower, and they can have unexpected behaviors in the editor.

    静态回避。 除了单例之外,我还要避免创建静态变量-它们的生存期是游戏的生存期, 它们的运行速度较慢,并且在编辑器中可能具有意外的行为。

  • Observer design pattern. Allows things that must happen depending on another thing to not waste the computer’s time checking that other thing.

    观察者设计模式 允许根据另一件事必须发生的事情不会浪费计算机检查另一件事的时间。

Important Unity-specific things:

关于Unity的重要事项:

  • Coroutines. IEnumerators and Coroutines allow you to start doing things, continue doing things until some time has passed, then stop. I use them all the time: for bursts of visual effects; for lerping movement; for waiting for a scene to load before grabbing the scene’s objects.

    协程。 IEnumerator和协程允许您开始执行操作,继续执行操作直到经过一段时间,然后停止。 我一直在使用它们产生视觉效果; 保持运动; 用于在抓取场景的对象之前等待场景加载。

  • ScriptableObject. These contain data with less overhead than MonoBehaviors.

    ScriptableObject。 这些包含的数据比MonoBehaviors具有更少的开销。

资源? (Resources ?)

Game engines:

游戏引擎:

  • Make your own. Requires C/C++. Low level. Really, really low.

    自己做。 需要C / C ++。 低级。 真的,真的很低。

  • Unity (?). 2D/3D. Requires Javascript/C#. Mid-level. Cross-platform.

    团结 (?)。 2 D / 3D。 需要Javascript / C#。 中级。 跨平台。

  • Unreal Engine. 2D/3D. Requires C++. Mid-level. Cross-platform. Notes: 2D support is not great.

    虚幻引擎 。 2D / 3D。 需要C ++。 中级。 跨平台。 注意:2D支持不是很好。

  • pixi.js (?). 2D. Requires Javascript. Mid-level. Web.

    pixi.js (?)。 2D 需要Javascript。 中级。 网络。

  • GameMaker Studio. 2D/3D. Requires GML. Beginner level. Cross-platform.

    GameMaker Studio 。 2D / 3D。 需要GML。 初学者级。 跨平台。

  • Corona. 2D. Requires Lua. Beginner level. Cross-platform.

    电晕 。 2D 需要Lua。 初学者级。 跨平台。

IDEs:

IDE:

  • Visual Studio Code (?). For MacOS. Gives me no lag and has awesome, VSCode-exclusive features (such as inline reference info, quick navigation (⌘T)).

    Visual Studio代码(?)。 F 或MacOS。 不会给我带来任何延迟,并且具有VSCode独有的出色功能(例如内联参考信息,快速导航(⌘T))。

  • Visual Studio (?). For Windows.

    视觉工作室 (?)。 F 或Windows。

  • MonoDevelop. Comes with Unity. Tends to lag.

    MonoDevelop。 带有Unity。 倾向于滞后。

Free Unity assets:

免费的Unity资产:

For Unity, tons of free assets exist on the Unity Asset Store, GitHub, bitbucket, and other sites. I use at least 2 in every project. Make your life easier with assets, but realize they’re not perfect. If you spot mistakes, don’t hesitate to fix them and/or ping the developers.

对于Unity,Unity Asset Store,GitHub,bitbucket和其他站点上存在大量免费资产。 我在每个项目中至少使用2个。 资产让您的生活更轻松,但要意识到它们并不完美。 如果发现错误,请立即修复它们和/或对开发人员执行ping操作。

  • TextMeshPro (?).

    TextMeshPro (?)。

  • LeanTween (?).

    LeanTween (?)。

  • Fungus.

    木耳 。

  • Corgi Engine.

    柯基犬引擎。

  • Dialogue System.

    对话系统 。

  • Post Processing Stack.

    后处理堆栈。

  • Keijiro Takahashi. Works at Unity. Has amazing open source Unity visual effects projects!

    高桥敬次郎。 在Unity工作。 拥有惊人的开源Unity视觉效果项目!

Last but not least, my #1 solution for coding problems: Google!
最后但并非最不重要的一点是,我的#1编码问题解决方案:Google!

4.音频? (4. Audio ?)

忠告? (Advice?)

First: Do you want audio?

第一: 您要音频吗?

Audio can do wonders for immersion and mood. But, it can cost memory.

音频可以为沉浸感和情绪带来奇迹 。 但是,这可能会占用内存。

If the answer’s yes, what audio?

如果答案是肯定的,什么声音?

Will you include music? Sound effects? Voiceovers or narration?

您会收录音乐吗? 音效画外音 旁白或?

For any of the above, record and mix them in a way that matches your game’s mood. For example, Bastion uses organic mouth and instrument sounds, matching its game world. Crypt of the Necrodancer uses a blend of electronic beats and chiptune rock to match the colorful, rhythmic game.

对于上述任何一种,请记录并混合它们,使其与您的游戏心情相匹配。 例如,堡垒使用自然的嘴巴和乐器声音来匹配其游戏世界。 死灵巫师的地穴结合了电子节拍和碎石摇滚,以配合丰富多彩的节奏游戏。

“Immersion is king.”

“沉浸为王。”

“Immersion is king.”

“沉浸为王。”

“Immersion is king.”-Darren Korb, Supergiant Games

“沉浸为王。” -Darren Korb,超级游戏

If your audio doesn’t match your game’s mood, it could detract from immersion. How will your audio match your game?

如果您的音频与您的游戏风格不符则可能会降低沉浸感。 您的音频将如何与您的游戏匹配?

资源? (Resources ?)

Audio tools:

音频工具:

  • Logic Pro. $200. MacOS only.

    Logic Pro。 200美元。 仅MacOS。

  • FL Studio (?). $99–899. Has free demo.

    FL Studio(?)。 $ 99–899。 有免费的演示。

  • Reaper. $60–225.

    死神 60-225美元。

  • Audacity (?). Free. Limited capabilities. Useful for cleaning audio.

    大胆(?)。 免费 功能有限。 用于清洁音频。

Retro sound effect generators:

复古音效发生器:

  • Chiptone.

    Chiptone 。

  • Bfxr.

    Bfxr 。

  • Leshy SFMaker.

    莱斯希SFMaker 。

  • as3sfxr.

    as3sfxr 。

Free sounds:

免费声音:

  • Soundcloud (?). Soundcloud has a ton of gorgeous gems under Creative Commons (CC). Here’s a playlist to get started. Make sure to provide attribution if needed.

    Soundcloud (?)。 在Creative Commons(CC)下, Soundcloud拥有许多 华丽的宝石。 这是一个开始播放列表。 如果需要,请确保提供出处。

  • Incompetech (?). CC music. Must attribute.

    Incompetech (?)。 C C音乐。 必须属性。

  • Bensound. CC music. Must attribute.

    Bensound 。 CC音乐。 必须属性。

5.波兰语 (5. Polish ?)

忠告? (Advice?)

Hey! You’re here! You made it; that’s absolutely incredible (I’m serious, if you get this far, I’d love to hear about your game; hit me up)!

嘿! 你在这里! 你做到了; 那绝对是不可思议的 (我是认真的,如果您能做到这一点,我很想听听您的游戏;打我吧!)!

You’re done.. right?

你做完了..对吗?

Well. There’s a 99.99999% chance there’re bugs.

好。 有99.99999%的机会存在错误。

It’s time to bug test.

是时候进行错误测试了。

对游戏进行错误测试 (Bug testing your game)

  1. Get others — not you — to play it. Preferably in front of you, because if they encounter a bug, they might not realize or have a hard time describing it.

    让其他人而不是您来玩。 最好是在您面前,因为如果他们遇到错误,他们可能不会意识到或很难描述它。

  2. Play it on all targeted platforms. It may work in the editor, but does it work where it matters? For Linux and the different versions of Android especially, I find that things get a little wonky.

    在所有目标平台上播放。 它可以在编辑器中工作,但是在重要的地方工作吗? 特别是对于Linux以及不同版本的Android,我发现事情有点不稳定。

Alright. You’ve found a bug. What now?

好的。 您发现了一个错误。 现在怎么办?

  1. Check the console for exceptions. Found one? Great! Find the file and line number where the exception was thrown. If the exception sounds like something from Mars, Google it and learn about it. Then figure out why that line number is throwing that exception.

    检查控制台是否有异常。 找到一个? 大! 查找引发异常的文件和行号。 如果异常听起来像是来自火星的东西,请对其进行搜索并对其进行了解。 然后找出为什么该行号引发该异常。

  2. Still can’t figure it out? Write to console. Start tossing in them log statements in the place(s) you think is causing you trouble. Print variable values, and see whether what’s printed is what’s expected. If not, fix that.

    还是不知道吗? 写入控制台。 在您认为会造成麻烦的地方开始向他们发送日志语句。 打印变量值,并查看打印的内容是否符合预期。 如果没有,请解决该问题。

  3. When worse comes to worse, check logs. The logs of your project will give you way more info than the console. Read the last lines where the exception occurred. Google anything you don’t know. Can you fix it now?

    当情况变得更糟时,请检查日志。 您的项目日志将为您提供比控制台更多的信息。 阅读发生异常的最后几行。 谷歌什么都不知道。 现在可以解决吗?

  4. Sleep. It’ll get fixed in the morning. This is just a bad dream. Right? ?

    睡觉。 它会在早上固定。 这只是一个噩梦。 对? ?

常见错误 (Common errors)

  • NullReferenceException.

    NullReferenceException。

var.doThing(); //throws NullReferenceException: Object reference not set to an instance of an object

Problem: You’re doing a thing on a null (nonexistent) variable.

问题:您正在对null (不存在)变量进行操作。

Quick fix: Check if the variable is null before doing the thing.

快速修复:在执行操作之前,检查变量是否为null。

if(var != null)
    {
        var.doThing(); // do the thing safely!
    }
  • SyntaxErrorException.

    SyntaxErrorException。

Problem: Your code has invalid syntax.

问题:您的代码语法无效。

Quick fix: In the Exception message, it should tell you what character is throwing the error. Change that character.

快速修复:在“异常”消息中,它应该告诉您是哪个字符引发了错误。 更改角色。

Note: If the character is a double quote, make sure you’re using dumb quotes instead of smart quotes:

注意:如果字符是双引号,请确保您使用的是哑引号而不是智能引号:

" //dumb quote
” //smart quote. I promise these'll give you trouble at some point in your life. ?
  • Pink or black screen.

    粉色或黑色屏幕。

Possible problem: Some shader can’t render.

可能的问题:某些着色器无法渲染。

Possible causes: You’re using a 3D shader for a 2D game. Or, you’re using some shader feature unsupported by the target OS. Be sure to use mobile shaders for mobile games.

可能的原因:您将3D着色器用于2D游戏。 或者,您正在使用目标操作系统不支持的某些着色器功能。 确保为手机游戏使用手机着色器。

After you’re done debugging, polish your game off by optimizing its memory usage and performance. This’ll make it download faster and heat up people’s devices less.

完成调试后, 通过优化游戏的内存使用和性能来完善游戏。 这将使其下载速度更快,并使人们的设备发热更少。

常规优化技巧 (General optimization tips)

  • Set the target frame rate. The frame rate could be 20 for a visual novel or 60 for a first-person shooter. A lower than default target frame rate allows the game to spend less time rendering frames.

    设置目标帧频。 视觉小说的帧速率可以是20,第一人称射击的帧速率可以是60。 低于默认目标帧速率可使游戏花费更少的时间渲染帧。

  • Animation / particles / occlusion culling. Culling means that things invisible to the camera aren’t rendered. Characters’ll only animate, particles’ll only update, and 3D models will only be rendered when in view.

    动画/ 粒子 / 遮挡剔除 。 剔除意味着不会渲染相机看不到的东西。 角色只会动画,粒子只会更新,并且仅在可见时才会渲染3D模型。

  • Compress textures and audio. Crunch compress textures. Stream music and decompress sound effects on load. Decrease the audio quality. Note that compression may or may not decrease the quality of assets noticeably.

    压缩纹理和音频。 紧缩压缩纹理。 流音乐并在加载时解压缩声音效果。 降低音频质量。 请注意,压缩可能会或可能不会明显降低资产质量。

  • Object pooling. Avoid instantiating and destroying many objects at once to prevent huge spikes. Instead, object pool them in a List, Queue, or other data structure. Things like bullets should be object pooled.

    对象池。 避免立即实例化和销毁许多对象,以防止出现巨大的峰值。 而是将对象池化为列表,队列或其他数据结构。 子弹之类的东西应该放在对象池中。

  • Don’t let raycasts hit things that don’t need input. Raycasts are like little rays that shoot from your fingers or mouse everytime you tap or click. Remove objects that don’t react to those inputs from raycast calculations.

    不要让射线广播击中不需要输入的东西。 射线广播就像每次单击或单击时从手指或鼠标发出的小射线。 从raycast计算中删除对这些输入没有React的对象。

如果您要挑战: (If you’re up for a challenge:)

  • Optimize shaders. Give each renderer a material. This’ll save resources in the beginning since the game doesn’t have to create new materials for everything. Have the shader for the material only include what’s functionally needed (for example, a button that doesn’t need masking can use a Sprite shader instead).

    优化着色器。 给每个渲染器一个材质。 由于游戏不必为所有内容创建新材料,因此一开始就可以节省资源。 让材质的着色器仅包含功能所需的内容(例如,不需要遮罩的按钮可以改用Sprite着色器)。

  • In Unity, Use AssetBundles instead of Resources. AssetBundles will save memory by pulling from online (e.g. dropbox) or local storage (e.g. hard disk). I haven’t tried too much due to the poor documentation, though.

    在Unity中, 使用AssetBundles代替资源。 AssetBundles将通过从在线(例如保管箱)或本地存储(例如硬盘)中提取来节省内存。 由于文档不佳,我没有做太多尝试。

资源? (Resources ?)

All of these are from Unity but can be applicable to other engines.

所有这些都来自Unity,但可以应用于其他引擎。

Scripts:

脚本:

  • Optimizing scripts in Unity games (?)

    在Unity游戏中优化脚本 (?)

Art:

艺术:

  • A guide to optimizing Unity UI (?)

    优化Unity UI的指南 (?)

  • Art Asset best practice guide (?)

    Art Asset最佳做法指南 (?)

Memory:

记忆:

  • Reducing the file size of your build (?)

    减少构建文件的大小 (?)

  • Memory

    记忆

Platform-specific:

特定于平台:

  • Practical guide to optimization for mobiles (?)

    手机优化实用指南 (?)

  • WebGL performance considerations (?)

    WebGL性能注意事项 (?)

  • Memory Considerations when targeting WebGL (?)

    定位WebGL时的内存注意事项 (?)

  • Olly’s seven stages of optimizations for mobile VR

    Olly针对移动VR的七个优化阶段

6.市场? (6. Market ?)

忠告? (Advice?)

Congrats! ?? You’ve made something. It’s time to show the world what you’ve made.

恭喜! ?? 你做了点事。 现在该向全世界展示您的成就。

Personally, marketing is my most anxiety-inducing stage. If you, too, get doubtful, the game developer community is helpful. You’re not alone in this. And you’ve come so far — might as well get through to the end, right?

就个人而言,营销是我最容易引起焦虑的阶段。 如果您也对此感到怀疑,那么游戏开发者社区将为您提供帮助。 您并不孤单。 您已经走到了尽头-还是可以坚持到底,对不对?

You’ll never know if it’ll be a hit unless you try.
除非您尝试,否则您永远不会知道它是否会大受欢迎。
  1. Draft. Create drafts of your game page on all your targeted game distribution platforms. Find a list of platforms in Resources below.

    草案。 在所有目标游戏发行平台上创建游戏页面的草稿。 在下面的参考资料中找到平台列表。

  2. Network. If you go the full networking mile, you’ll want to email game press, showcase in festivals, and attend conferences.

    网络。 如果您全力以赴,就需要 通过电子邮件发送游戏新闻 ,在节日中展示并参加会议

With game press, email your unlisted game page a week before release. Give people some time to write about it. It’s likely they won’t write about it at all. I’ve found that press loves a compelling developer story, unique/controversial concept, and, most importantly, a presskit.

通过游戏新闻,在发布前一周通过电子邮件发送您未列出的游戏页面。 给人们一些时间来写它。 他们可能根本不会写任何东西。 我发现新闻界喜欢一个引人入胜的开发人员故事,独特/有争议的概念,最重要的是,它喜欢新闻资料袋 。

How do you find emails? You can..

您如何查找电子邮件? 您可以..

  1. Find writers you like and Google their name. Their email is bound to come up somewhere: Twitter, LinkedIn, etc. Or..

    查找您喜欢的作家,并在Google中找到他们的名字。 他们的电子邮件注定会出现在某个地方:Twitter,LinkedIn等。
  2. Find the magazine/new’s company-wide email on their About page. It’s usually in the format of [email protected].

    在其“ 关于”页面上找到杂志/新公司的全公司电子邮件。 通常采用[email protected]格式

Do not email press about your game if they explicitly don’t cover your genre/targeted platform.

如果您的游戏明确不涵盖您的类型/目标平台,请不要通过电子邮件向您发送有关您的游戏的新闻。

Festivals can get you awards and/or professional recognition by other developers and press.

节日可以使您获得奖项和/或其他开发商和媒体的专业认可。

Conferences are what you make of it: they can be all about networking with other developers, companies, and press (go get them business cards!); updating your latest game dev know-how; playing others’ games; or meeting up with internet friends.

会议活动 您所做的就是:他们可以全力以赴与其他开发人员,公司和媒体建立联系(获取名片!); 更新您最新的游戏开发人员专有技术; 玩别人的游戏; 或与网友见面。

Game conference tickets are expensive. If you’re a student, think about applying for scholarships for them. The IGDA Scholars program gives you some especially amazing networking and event opportunities.

游戏会议门票很贵。 如果您是学生,请考虑为他们申请奖学金。 IGDA Scholars计划为您提供了一些特别令人称奇的社交和活动机会。

3. Youtubers/Streamers. You can get video coverage of your game by:

3. Youtubers / Streamers。 您可以通过以下方式获得游戏的视频报道:

  1. Ranking high on game distribution platforms.

    在游戏发行平台上排名很高

  2. Emailing. If you email, don’t talk about yourself; talk about the game. Keep it sweet, short, and compelling. Use eye-catching photos and gifs.

    用电子邮件发送。 如果您发送电子邮件,请不要谈论自己。 谈论游戏。 保持甜美,简短和引人注目。 使用引人注目的照片和GIF。

How do you find emails? Look at their About page. If you can’t find it there, Google them and see if their other social media have it.

您如何查找电子邮件? 查看其“关于”页面。 如果您在该处找不到它,请搜索他们并查看其他社交媒体是否有它。

4. Social media.

4. 社交媒体。

Social media is an amazing marketing tool. Agar.io found its rise from 4chan, Butterfly Soup got mad boosts from Twitter, and some form of social media always ends up in my top 4 referrers:

社交媒体是一种了不起的营销工具。 Agar.io从4chan发现了它的崛起 , 蝴蝶汤得到了Twitter的疯狂推动 ,某种形式的社交媒体总是以我的前4位推荐者而告终:

My favorite social media platforms for marketing are in Resources below.

我最喜欢的营销社交媒体平台在下面的参考资料中。

A last note Publisher or self-publish? Game marketing is a lot. Do you want a publisher to take care of all that? Want to go the Hotline Miami x Devolver Digital route, or rely on Farmville and Doki Doki Literature Club’s word-of-mouth?

最后说明 - 发布者还是自行发布? 游戏营销很多。 您是否希望出版商照顾所有这些? 想要走迈阿密热线x Devolver数字路线,还是依靠Farmville和Doki Doki文学俱乐部的口碑?

With a publisher, you’ll have to do your research to find a good one. After, you’ll sign paperwork and go through legal hoops. Plus, it’s a huge financial investment.

对于出版商,您必须进行研究才能找到好的出版商。 之后,您将签署文书工作并经历法律纠纷。 另外,这是一笔巨大的金融投资。

By yourself, you’ll have to put a lot of time and effort into learning marketing. You may love it. You may hate it. And you might not do a great job of it, either. But it’s free, and you learn valuable skills.

就您自己而言,您将不得不花费大量时间和精力来学习营销。 您可能会喜欢。 您可能会讨厌它。 您也可能做得不好。 但是它是免费的,您会学到宝贵的技能。

For me, I’ll always self-publish. I love learning new things. Also, I firmly believe that a truly great game will succeed no matter what, as long as some marketing effort was put.

对我来说,我将永远自我出版。 我喜欢学习新事物。 此外,我坚信,只要 付出了一定的营销努力 ,一个真正伟大的游戏无论如何都会成功

6. Hit that Publish button!

6.点击“ 发布”按钮!

??Yooo, you DID it!! ?Now relax, sit back, grab a yummy drink, and take some time for yourself! You’ve worked so hard. You deserve it.

Y,你是 ! 现在放松一下,坐下来,品尝美味的饮料,并花点时间为自己! 你辛苦了 你应得的。

And remember that, even if your game doesn’t get the reception you expected, that’s ok. It’s not gonna be perfect your first time. My first game on Steam only has 255 downloads.

请记住,即使您的游戏没有获得预期的接待,也可以。 第一次不会完美。 我在Steam上的第一游戏只有255次下载。

The facts are, you made a game. You learned so much. That’s enough.

事实是,您创造了一个游戏。 你学到了很多。 够了

And there’s always a next time!

而且总会有下一次!

资源? (Resources ?)

Game distribution platforms:

游戏发行平台:

  • Steam (?). PC. Requires $100 USD fee per game.

    蒸汽 (?)。 P C.每场比赛需要$ 100 USD的费用。

  • Origin. PC.

    起源 。 电脑

  • GOG. PC. Free to publish. Game must get accepted.

    GOG 。 电脑 免费发布。 游戏必须被接受。

  • Mac App Store. MacOS. Requires Apple Developer account.

    Mac App Store 。 苹果系统。 需要Apple Developer帐户。

  • itch.io (?). PC/Web. Free to publish.

    itch.io (?)。 P C /网站。 免费发布。

  • Game Jolt (?). PC/Web. Free to publish.

    游戏震动 (?)。 P C /网站。 免费发布。

  • Armor Games (?). Free to publish. Must apply to be a developer.

    装甲游戏 (?)。 免费发布。 必须申请成为开发人员。

  • Kongregate (?). Web. Free to publish.

    Kongregate (?)。 韦伯 免费发布。

  • Newgrounds (?). Web. Free to publish.

    Newgrounds (?)。 韦伯 免费发布。

  • GitHub (?). Web. Free to publish on your own site with domain name formatted as “___.github.io”.

    GitHub (?)。 韦伯 可在您自己的网站上免费发布,域名格式为“ _ __.github.io”

  • Amazon. Web/Mobile. Free to publish.

    亚马逊 网络/移动。 免费发布。

  • Google Play (?). Mobile. Requires one-time $25 USD fee.

    Google Play (?)。 移动 需要一笔25美元的一次性费用。

  • iOS App Store (?). Mobile. Requires Apple Developer account.

    iOS App Store (?)。 移动 需要Apple Developer帐户。

Game press:

游戏新闻:

  • IndieGames.

    独立游戏。

  • Siliconera.

    Siliconera。

  • FreeGamesPlanet. Super nice admin.

    FreeGamesPlanet 。 超级好管理员。

  • PCGamer.

    PCGamer。

  • Kotaku.

    小宅

  • Rock Paper Shotgun.

    石头纸Shot弹枪。

  • Polygon.

    多边形。

  • Giant Bomb.

    巨型炸弹。

  • EuroGamer.

    EuroGamer。

Game festivals:

游戏节:

  • Independent Games Festival (IGF). Deadline around October.

    独立游戏节(IGF)。 截止日期为十月左右。

  • Indiecade. Deadline around May/June.

    独立。 5月/ 6月前后的截止日期。

  • Swedish Game Awards. Deadline around July.

    瑞典游戏奖。 截止日期约为7月。

  • South by Southwest Festival (SXSW). Deadline around December.

    西南节日(SXSW)向南 。 截止日期约为12月。

  • The Game Awards. Deadline around November.

    游戏奖。 截止日期约为11月。

Game conferences:

游戏会议:

  • Game Developer’s Conference (GDC). San Francisco.

    游戏开发者大会(GDC)。 旧金山。

  • Penny Arcade Expo (PAX). Seattle/Boston/Philadelphia/Melbourne.

    竹enny街机博览会(PAX)。 西雅图/波士顿/费城/墨尔本。

  • Electronic Entertainment Expo (E3). Los Angeles.

    电子娱乐博览会(E3)。 洛杉矶。

  • Tokyo Game Show. Japan.

    东京游戏展。 日本。

  • Steam Dev Days. Seattle. For Steam developers only.

    Steam开发日。 西雅图。 仅适用于Steam开发人员。

Emailing:

电邮:

  • presskit()

    新闻资料袋()

Social media:

社交媒体:

  • reddit (?). Pick an appropriate subreddit. Some of my favorites are /r/WebGames, /r/IndieGaming/, and /r/visualnovels.

    reddit(?)。 选择一个适当的subreddit。 我最喜欢的一些游戏是/ r / WebGames, / r / IndieGaming /和/ r / visualnovels。

  • Facebook (?). Post on your Facebook Page (if you have one) and personal facebook (if you’re comfortable). There’s also tons of Facebook Groups where you can show off your game! Here’s some:

    Facebook(?)。 在您的Facebook专页(如果有)上的费用和在个人Facebook(如果您感到舒适)上的费用。 还有大量的Facebook群组,您可以在其中炫耀您的游戏! 这里是一些:

GameDev Show and TestWelcome to GameDev Show and Test - a sister group to the Indie Game developer groups. The purpose of this group is to…

GameDev Show and Test 欢迎来到GameDev Show and Test-独立游戏开发者小组的姊妹小组。 该小组的目的是……

Indie Game DevelopersIndependent Game Developers group for small companies and individuals designing and publishing their own games. **READ…

独立游戏开发者 独立游戏开发者小组,为小型公司和个人设计和发行自己的游戏。 **读…

Indie Game PromoIndie Game Promo has 47,645 members. Sister group to Indie Game Dev and Indie Game Chat for the purpose of promoting…

独立游戏促销 独立游戏促销有47,645个成员。 姐妹组独立游戏开发和独立游戏聊天的目的是促进…

  • Tumblr (?).

    Tumblr(?)。
  • Twitter (?). Try using tags like #gamedev, #indiedev, and #screenshotsaturday to get discovered.

    推特 (?)。 尝试使用#gamedev,#indiedev和#screenshotssaturday等标签进行发现。

Community:

社区:

  • /r/gamedev (?).

    / r / gamedev (?)。

  • Ludum Dare (?).

    Ludum Dare (?)。

  • Indie Game Devs (?).

    独立游戏开发人员 (?)。

结论 (Conclusion)

There’s no cheat code to making a game. It’s just a lot of determination and effort.

没有编写游戏的作弊代码。 这只是很多决心和努力。

“Behind every Half Life, Minecraft and Uncharted, there are OCEANS of blood, sweat and tears.”

“在每个《半条命》,《我的世界》和《神秘海域》的背后,都有海洋,鲜血,汗水和眼泪。”

“Behind every Half Life, Minecraft and Uncharted, there are OCEANS of blood, sweat and tears.”

“在每个《半条命》,《我的世界》和《神秘海域》的背后,都有海洋,鲜血,汗水和眼泪。”

“Behind every Half Life, Minecraft and Uncharted, there are OCEANS of blood, sweat and tears.”— Ken Levine

“在每个《半条命》,《我的世界》和《神秘海域》的背后,都有海洋,鲜血,汗水和眼泪。” —肯·莱文(Ken Levine)

You’ll get confused. You’ll make mistakes. You might even cry (I did—and still do).

您会感到困惑。 你会犯错误。 您甚至可能会哭泣(我曾经做过并且至今仍在做)。

But that’s okay. It means you’re growing. If you‘re putting in that much effort, I believe in you and your game: You can do it.

但是没关系。 这意味着你正在成长。 如果您付出了很大的努力,我相信您和您的游戏: 您可以做到。

If you liked reading my first article, be sure to give a ?(or several — did you know you can give more than one?) It’d mean the world ?

如果您喜欢阅读我的第一篇文章,请务必给一个?(或几个?您知道您可以给多个吗?),这意味着世界吗?

You can also follow/DM me on Twitter, Tumblr, and GitHub, and buy me a coffee if you wish.

您也可以在Twitter , Tumblr和GitHub上关注/ DM我,如果愿意的话可以给我买 杯 咖啡 。

翻译自: https://www.freecodecamp.org/news/from-zero-to-game-designer-how-to-start-building-video-games-even-if-you-dont-have-any-experience-5e2f9f45f4bb/

游戏感虚拟感觉的游戏设计师

你可能感兴趣的:(游戏,java,webgl,游戏开发,编程语言)