[翻译]How do I make games? - a path to game development(转载)

转自:原文
How do I make games?
- a path to game development

我要怎样做游戏?
-游戏开发之路

当我跟一些想要进入游戏开发界的人们聊天的时候,常常会听到这些话。“我要怎样做游戏?”或者,“我想做一个像Quake/Everquest/Starcrat……一样的游戏。”

第一个问题已经超出了我能够解答的范围,因为通向游戏开发之路的途径实在太多,并且,所有的这些路都无限复杂。

而第二个问题,则彻底的不切实际。Starcraft, Everquest 和 Quake这样的游戏全都是由专业人员组成的小组开发的,而其预算,通常超过百万美元。更重要的是,这些游戏都是由开发经验丰富的成员制作的。他们并不是仅仅想要做个游戏,于是就做出了能发行百万的东西。他们总是由小制作开始,一步一步地达到现在这样的水平。这一点,每一个想进入游戏制作行业的人都必须了解,并且重复,重复,再重复,一直到这观点成为你思想中的一部分。重要到你离了这条显而易见、放之四海而皆准的真理就无法了解生命的真谛。(某D注:啥?……太扯了吧……不懂这个的,那是小白……)

除非你已经了解到游戏开发所需要的技能来自经验积累,(意味着从小制作开始、按部就班、逐渐进步),否则你将注定无法完成你的游戏计划。实际上,真有寥寥无几的一些小组,能够在没有小型游戏开发经验的情况下就完成一个不怎么样的游戏。但是和有小型游戏开发经验的情况相比,他们所花的时间也要远长得多。

那么,我该从什么做起?

方块游戏。

想要成为一个有能力的游戏开发者,方块游戏会是一个完美的开始。为什么?
因为方块类游戏包含了所有游戏的基本元素,并且,需要的工作量可能是所有游戏中最少的。此外,不需要美术设计师那样的水平也能做出一个好看的方块游戏。任何一个会画方块的人,也就是任何一个有绘图软件的人都可以作出一个具有“商业水平”的方块游戏。

这是从方块游戏开始制作的另一个大好处。你不仅可以做出一个功能完善、有趣、能使人上瘾的游戏,而且这游戏还看起来还和商业游戏一样漂亮。不管是谁画的,方块就是方块,而游戏里那些图块(方块游戏里的图形种类)都是由四个方块构成的。

方块游戏具有全部游戏所共有的元素。它具有游戏环节(在退出游戏前,在游戏里一直进行的过程。译注:参见:Basic game loop一篇)。游戏环节接受玩家的输入,将游戏信息反馈给玩家,调节游戏内容(那些落下来的方块),并且判断玩家的胜负。

这些环节在你所开发的每个游戏里都会重复.因此掌握并切实执行这些环节是非常重要的.在完成你的处女作之后,你会了解到,在今后开发的游戏中,达到这些有多困难,以及需要花上多少时间.然而在没有做过这些之前(哪怕只试过一次),你将无法充分掌握这些游戏基本元素.
当你有了更长远的计划,还会有更多的未知数、无法判断的复杂情况以及时间安排。假如因为没有试过开发一个简单游戏,而导致你连基本的环节都无法完全了解,你将对工作计划和时间安排一筹莫展,并且,很可能就算尽了全力也无法成功。

(附图)一个叫做"惊奇砖块"的方块游戏复制品

还有一点我需要提醒你.那就是当你做出一个方块游戏的时候,你不能管它叫"方块(Tetris)".因为"Tetris"已经是Tetris公司(所有人Alexey Pajitnov,就是他设计了方块游戏)的商标了.他拥有这个名字的专利权.并且,我相信他已经申请过法律保护,确保任何一个和掉落的砖块有关的游戏都不能使用与"tris"有关的名字.因为这名字显然是乘了著名的"Tetris"游戏的顺风车.

但是,假如你把你做的这个游戏起名叫"天塌下来了"或者别的一些不带"Tetris"字样的名字,我刚刚说的这些问题就和你完全没关系了.因为,Tetris公司并不拥有游戏性,界面和掉落方块的创意的版权.假如有人对此有异议,你就告诉他们这是你自己想出来的.假如还需要更多的证据支持,你还可以到USPTO网站(http://www.uspto.gov/ )去看看相关的信息.

接下来呢?

(附图)一个叫"疯狂弹球"的撞球游戏复刻

在你已经全部,完整,绝对的完成了你的个人版方块游戏之后,就准备好迎接下一个挑战吧。

弹球游戏和方块游戏相似。但是,它加入了更多的碰撞检测,比方块游戏里所需要的要多得多。
你还需要在游戏里加入一些简单的物理角度公式,使球能够在碰到球杆或挡板后弹回。

游戏难度规划也是弹球游戏里的重要项目。为了把游戏分成多个难度不同的等级,你还需要想出一个存储游戏目前进度的方法。这牵涉到所有大型游戏必不可少的组成部分,存储,读取资料,以及等级(难度)的变化。

在完成你的弹球代表作之后,接下来就该制作Pac-Mac(所谓的吃豆子小游戏,中译名是啥)了。Pac-Mac的层次也更高一级。因为这个游戏加入了有关敌人AI(人工智能)的部分。也许你并没有意识到,但是实际上,原版的Pac-Mac里,四种不同种类的幽灵都有各自的行动方式,以求合起来能够打败你。“攻击者”会以最短的路线接近你,而你必须直接避开它。第一种“拦截者”,会在离你最近的交叉路口等着你,而那个位置可能就是你躲避攻击者的必经之处。第二种“拦截者”,则会在中间停留更久一点,并通过两侧的地道偷袭。最后一种则采取随机移动方式,结果导致这种幽灵经常会呆在地图的出口附近,成为你通关的最后障碍。

这样细致的AI设定在当时的游戏界是相当先进的。假如做为你的第一个包括AI设计的游戏,想必对你也是一大挑战。
PAC-MAC也增加了地图的复杂性,并为使用音效留出了空间。毫无疑问,音效对于PAC-MAC的成功起到了不可或缺的作用。(想想看,如果没有那些“wakka-wakka”的声音,PAC-MAC还成什么样子?)

(附图)PAC-MAC——真正的经典

我对你最后的建议是,制作一个横版过关游戏,例如超级玛里奥。在横版过关游戏里,角色跳上多重平台,射击,躲避,与敌人交手。鉴于游戏中所需要的美术比较多,我建议你使用SpriteLib,一个免费易用的素材库。地址是:http://www.arifeldman.com/free/spritelib.html

When I talk to people looking to get into game development some of the first things I often hear fall along the lines of, "How do I make games?" or "I want to make a game like Quake/Everquest/Starcraft and…". The first is just way out of the realm of answerability, as there are too many aspects to possibly go into, and each of those components can be infinitely complex.

The second, however, falls into just being unrealistic in expectations. Starcraft, Everquest and Quake were all made by teams of professionals who had budgets usually million dollar plus. More importantly though, all of these games were made by people with a lot of experience at making games. They did not just decide to make games and turned out mega-hit games, they started out small and worked their way up. This is the point that anyone who is interested in getting into game development needs to understand and repeat, repeat, repeat until it becomes such a part of your mindset that you couldn’t possibly understand life without this self evident, universal truth.

Until you understand that all skills in game development are learned by experience, (meaning to start very small and working your way up) you will be absolutely doomed to never finish your projects. Even the infinitesimal number of teams that do manage to finish a non-trivial project before they have made any smaller ones have to learn incrementally, it just takes them many times longer than if they had started out with smaller projects.

So where do I start?

Tetris.

Tetris is the perfect game to begin your journey on the path to becoming an able bodied game developer. Why? Because Tetris contains the all the elements found in every game, and can be done with just about the least amount of work. Also, you don’t have to be an artist to make a good looking Tetris game. Anyone who can draw a block, which is everyone with a paint program, can make a commercial quality version of Tetris.

This is another one of the big benefits of starting with Tetris. Not only can you make a fully functioning game, that is fun and addictive, but it looks basically just as good as any commercial version done of it. Blocks are blocks no matter who draws them, and tetraminos (the shapes used in Tetris) are all just a collection of four blocks.

Tetris has all the individual components that ALL games share in common. It has a game loop (the process of repeating over and over until the game is quit). The game loop reads in input, processes the input, updates the elements of the game (the falling tetraminos), and checks for victory/loss conditions.

Every single game you will ever make does all of these things, so learning the process and actually implementing it is extremely important. After you have completed this the first time, it will give you an insight into how hard it will be and how long it may take on future games. Without having done this all the way, at least once, you will never fully have a proper grasp of each of the elements.

When you have larger projects, there will be more unknowns that you can't judge for in complexity and time. If you don’t even fully understand the entire process because you have failed to DO it, you will likely be helpless to create schedules or estimate times properly and will most likely not succeed at the endeavor.
A Tetris clone called Amazing Blocks


Something I need to mention is that when you make your Tetris game, you can't call it "Tetris". Tetris is a trademark of the Tetris Company who is owned by Alexey Pajitnov, the creator of Tetris. It is his exclusive right to use the name Tetris, and I believe they may have won a lawsuit saying that you cannot make a falling blocks game with the syllable "tris", as it is obviously playing off the popularity of the of the name Tetris.
However, this means nothing to you if you call your game "The Sky is Falling", or anything without a "tris" in it, as they do NOT own the gameplay, interface, or idea of falling blocks. If you hear anything differently from anyone, tell them you can't own ideas, and if you require further proof you can look up information on this subject at the USPTO (http://www.uspto.gov/ ).

What's next?

A Breakout clone called Manic Ball

After you have totally, completely, absolutely finished your version Tetris, you are ready for your next challenge: Breakout.

Breakout is also a similar game, but it adds in much more advanced collision detection than was necessary in Tetris. You will also need to add some simple deflection physics of the ball rebounding off different portions of the paddle and the blocks.

Level layout also becomes an issue in Breakout, and in order to have more than one level you will need to come up with a way to save the maps. This deals with another component found in all larger games, which is saving and loading resources and switching levels.

After you finish your Breakout masterpiece you should move on to making Pac-Man. Pac-Man is an evolutionary step because it adds in the element of enemy artificial intelligence (AI). You may not have been aware of this, but in the original Pac-Man the four different ghosts had different goals to trying to defeat you as a team. The aggressor would try to follow the shortest path to you, making you directly avoid him. The interceptor would try to go to a junction that was closest to where you would have to move to avoid the aggressor. A second interceptor would try to stay more towards the middle and try to cut you off from using the tunnel through the sides. The last ghost would sort of wander aimlessly about which often kept him staying in a section you needed to finish the map.


This kind of detailed AI was quite advanced for games of that time, and should give you a good challenge for your first game with enemy AI.


Pac-Man also increases the complexity of maps, and adds a good deal more flexibility for using sounds, as sound was certainly a crucial elements to the success of Pac-Man. (After all, what would Pac-Man be without some sort of "wakka-wakka" sound?)


Pac-Man. A real classic.


Super Mario Brothers 2
The last game I suggest you should create is a side scroller, such as Super Mario Brothers, where you can jump on multiple platforms, shoot, duck and interact with enemies. As there is added art involved in this game, I would suggest looking in to using SpriteLib for some free and easy to use artwork, which is available at: http://www.arifeldman.com/free/spritelib.html

------------------------------------------------------------------

Side scrollers introduce the possibility of added enemy AI complexity through the use of enemy bosses which have patterns you must learn to beat, as well an added screen complexity. Now you must make a screen that is capable of scrolling in at least two directions, if not four, and deal with screen clipping, which can have a bit of a learning curve. You must also work on the physics of any jumping, bouncing of the character or shooting projectiles.

There will additionally need to be a lot more enemies than before, and you will need to keep track of their current game state (alive/dead, active/inactive), by whether they are on the screen or have already been dealt with. The level complexity and map/character storage complexity will have also increased and you will most certainly need to make a level editor at this point.

The level editor should be capable of placing tiles, scrolling through tiles, scrolling over the map, choosing tiles as brushes, cycling through the brushes, cutting and pasting, an undo, and placing enemies. If you decide to skip writing any of these, you will most likely feel sorry about it, and if you have an artist or level designer, they will probably not be very happy with you either (how would YOU feel if you had to go through someone’s text files containing a bunch of numbers and commas to edit a level?). I would also suggest making back ups of previously saved maps, as it is often easier to just back things up by versions, than redrawing them.

 

Finally, the side scroller has a real victory condition! When you get to the end of the side scroller, you have actually GONE somewhere, so you can add on a story to progress through the game as well (and don’t forget some sort of fireworks on the screen for the end of a level, so that the player has a sense of accomplishment and a REAL show of fireworks for beating the game… merely putting the words "You Have Won!" on the screen when a player has spent endless hours trying to beat your game is anti-climatic).

 

Get Out The Polish…


Finishing a game does not merely mean you get it to a point where it is playable, and then move on, this is not a finished game. A finished game will have an opening screen, a closing screen, menu options (if applicable, at least instructions on how to play and start), introduction screens to playing, reward screens and a score board (where applicable).

If you couldn't put your game in an 80's arcade game and not be able to tell it doesn't belong just by the modes it goes through (minus the attract mode or demo mode), then your game is not finished.

There is a big difference between a game that is "bare bones", and a game you have put all the finishing touches on. This difference will be a matter of a couple of days to two weeks (depending on the size of the game). It will get increasingly (sometimes exponentially) more involved as you move from Tetris to Breakout and so on.

The result, though, will be very important, both to terms of your understanding game development, and your own pride in your work and satisfaction/fulfillment. (Accomplishment does wonders for self-esteem!)

It’s not easy to show people your game and have to constantly tell them to overlook different things and feel the same as if they picked it up and had no problems moving through it and everything was well presented and complete feeling. Other game developers are a bit more forgiving, since they know the process.

Most importantly though, you will learn all the details that go into really finishing a game. If you stop at just working gameplay, you will still miss out on the details of wrapping things up, which will leave a blank spot in your mind when trying to plan larger projects in the future.


Galaga
Everything explained at a glance

 

 


But, these games are stupid!


Actually, these games clearly show the basis for ALL game's gameplay. Throw a fancy 3D interface over a shooter and it’s still a shooter. You could create the same game in a 2D overhead view and the gameplay would be coded exactly the same.

Is it stupid to be able to make a game with EXACTLY the same controls, responses and enemies as Quake? If you remove the 3D interface, and look at what is really happening from a directly overhead view, does it still seem as out of reach?

Even so, this is not a beginning project. There are too many elements that need to be developed and refined for a first project, so I strongly urge you to follow the order of games I suggest to gradually build up your understanding of gamedevelopment. (When you learned how to swim, did you IMMEDIATELY start out with a high dive into the deep water? NO! You start in the shallow end, you learn to dog paddle, and progress from there.)

One thing that you need to clarify to yourself before starting anything, is what you want out of it. Do you want to make games, or just duplicate the technology in Quake? If all you are interested in is the technology, then skip all the games stuff and get started on graphics technology.


Gauntlet

 

If you are really interested in making games, then you need to separate your desire to create the next cutting edge, hard core game, and focus on building your ability to do so. The best way to do that is through actually making and (more importantly) finishing games, which is what following this path (or a similar one) will give you experience in.

 

Be proud of your games!

You don’t hear people in college embarrassed about being in college because they don't have a job yet. You are learning, and making even a simple game is hard, especially if you want it done WELL. This is shown clearly by all the people who have NOT made even simple games but talk about it constantly. Once you have finished a game, consider yourself to have more of a track record than anyone who have not finished a game even if their idea sounds phenomenal and like it's up there with the latest cutting edge games. If you can't play it, it’s not a game.

When you have a finished product you can show, you need to accept that for what it is, not what it isn't or compare it to people with 5+ years of experience and million dollar budgets who work on games full time.

 

I made my game, now where's my Ferrari?

Sorry, one game, two games, five games probably won't cut it. Last year there were 3,500 games released on the PC, and only a few handfuls made back a large portion of cash. Most of those that did weren't made by small groups who were self-funded, they were funded by large publishers and probably had multi-million dollar budgets, and definitely near or well over million dollar advertising campaigns. This isn't a world you can't join though, it just takes a good deal of time and experience and track record of making quality games, that hopefully sell well, to give publishers confidence in your team, so that they will entrust you with this kind of financial responsibility.

Decisions, decisions.

 

However, there is more to making a living of games than the multi-million dollar budgets and I strongly suggest you take a look at the other things as well. There is nothing bad or embarrassing about making budget games, they can be just as or more fun than the high budget commercial games, and it is a lot easier to get publisher to trust you with smaller budgets. On top of that, you don’t have to spend years working on the same project, and if it doesn't go over well, you don’t have to feel as much loss with it.

Just have an understanding of what you really want out of making games and then concentrate on making that come true.

转载于:https://www.cnblogs.com/daweixj/articles/2248909.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值