A9VG电玩部落论坛

 找回密码
 注册
搜索
查看: 6756|回复: 31

[杂谈]我对游戏开发的见解

[复制链接]

精华
0
帖子
25
威望
0 点
积分
25 点
种子
0 点
注册时间
2010-9-9
最后登录
2015-5-13
 楼主| 发表于 2011-10-23 06:53  ·  法国 | 显示全部楼层 |阅读模式
本帖最后由 echo_alain 于 2011-10-23 21:03 编辑

           我在A9VG很久了, 不过这么久来都是潜水过来的, 发得贴聊聊无几.

           我现在是一名计算机系大学3年纪生, 我对游戏从小一直很热情, 虽说现在好几个月都没碰游戏机了, 现在有意毕业后往游戏开发方面发展. 从大学起, 开发的游戏(虽说有些谈不上是游戏), 从最初用 c语言 + ncurse 开发的俄罗斯方块, 经历用c++语言 + opengl 开发的neo炸弹人, 到现在的 c# + xna + .net 4 组合. 我慢慢的理解了游戏开发的过程和对各种游戏引擎的理解, 我想用这个贴来跟大家分享一下我对游戏开发的理解.
          基本上一个游戏就是一个大循环, 再在大循环里加入一个个步骤, 比如按键输入检查,人物移动检查, 物品碰撞检查......
这一个个步骤分开来的话就成了一个个引擎. (以下只是本人个人理解)

          以下我会用制作贪吃蛇的步骤来解释一下一般的游戏开发.

         图像引擎
         贪吃蛇会自动的向前方移动
在游戏里, 蛇由一组图来表现, 这组图的每个图片代表蛇的一个躯干, 蛇的每次移动对程序员来说就是一组图的坐标的变化, 在2d游戏里就是x, y, 3d里x, y, z.
图片的每次变化都需要一个程序来实现, 用其现有的坐标值来取代其发生变化前的值,再在现有的值上画上新的图片,  这个程序, 我们可以称为图像引擎.

         物理引擎
         贪吃蛇碰到四面墙壁就game over, 在游戏背后, 这仅仅代表贪吃蛇的坐标x, 或y超过了界限的设定值, 这时我们需要一个程序来检查每次蛇的移动后的x,y值有没有超过界限的x, y值. 这个程序我们称为物理引擎.

         引擎之间的互动
         当贪吃蛇碰到食物时, 蛇的身体就会深长一格.
在游戏里, 其实就是物理引擎检查到蛇的x或y碰到食物的x或y, 产生碰撞, 然后在游戏里我们再分析碰撞的类型, 在这里是吃食物, 然后我们在叫图像引擎里 “蛇部分”(面向对象程序设计里的class)里 的 “吃”程序, 来表现蛇吃东西的画面,在 “吃” 程序里叫 “深长一格”程序来添加一个蛇的躯干. 然后我们在叫图像引擎里 “食物部分”里的 "消失"程序来实现食物被吃掉了.

          基本上, 一个游戏就是各种引擎之间的互动.

          下面我简单的说一下自己对各种不同引擎的理解

          上面的贪吃蛇游戏我们用了一个物理引擎和一个图像引擎, 不过这样的一个引擎只对这类型的游戏有用, 比如我们在贪吃蛇2中可以继续使用这物理引擎, 不过我们不能把它用到像mario那样的游戏, 因为mario里mario在身体踩空状态下mario会往下掉, mario还会跳, 会跑...所以Mario需要的物理引擎要比贪吃蛇检查更多的方面, 换句话说就是要强大的多.

           一般的游戏引擎都拥有物理和图像引擎, 它可以简单到贪吃蛇游戏引擎一样, 但只能运用于这样类型的游戏, 或者向xna引擎一样, 我们可以用它在pc, xbox, windows phone上制作任何的2d游戏.
不过xna只能算游戏引擎的骨架, 它需要我们加入游戏地图载入程序, 物理引擎, 图像引擎, 存储.....
现在的基本游戏引擎都拥有 地图制造程序, 物理引擎, 图像引擎.... 比如flatredball游戏引擎, 它在xna的基础上加上了以上几个部分, 或者Unity, 一个强大的2d.3d游戏引擎, 基本上用这些引擎来开发游戏都很快, 简单, 像上面的贪吃蛇游戏, 用unity的话可能程序员只有十几条编码要写, 其他的unity都给包办了.

             下面我简单的谈下我对主机上的开发环境看法

            我们都知道每个游戏机的系统都是不同的, 所以ps3游戏不能在360上运行(废话了..), 所以所有的开发商都会编写一段程序来认识他们的游戏在那个平台上运行,然后根据平台的不同再来挖掘不同的机能, 我觉得开发商偏爱xbox360的原因就是因为他们可以直接用C#来开发, C# 简单易学,存在的也有十几年了,懂得人也多, 所以开发也比较简单, 而ps3我觉的它运用的是sony自家新的一个编程语言(仅用于ps3, psv开发用的), 所以要在ps3上开发就要重新学这语言, 所以抱怨的人也就难免会有.

             下面我对3大主机对业余开发者的支持

             谈到业余开发者, 我指的是那些xbox live, psn小游戏个人开发者, 我认为之所以在xbox live上小游戏这么多是因为微软很重视业余开发者, 普通大众只需下载xna, visual studio 就可以开发xbox游戏了, 这些都不用花费钱, (visual studio 有免费版的), 如果想在xbox live上发表游戏 的话只需在app hub上申请注册, 再交100美元就成了(前提是游戏能被microsoft接受), 最重要的是用xna开发xbox live游戏的话, 你能在网上找到很多很多很多....的教程网站, xna拥有很丰厚的使用群体, 我唯一不爽Microsoft的就是游戏的价格由他们来定, 挣得钱他们拿9成.
接下来说sony, 在sony主机上开发难度是个问题, 再加上使用社群没有xbox那么多, 再加上需要买kit development连上电脑
来开发, 这些方面铸就了psn上的游戏没有xbox上的那么多.
Wii的话, 我没什么话说, 不过任天堂不同意业余游戏者来开发游戏, 想要在wii或ds上开发自己的游戏也只有把机器破解后才能实现了.




精华
0
帖子
226
威望
0 点
积分
233 点
种子
15 点
注册时间
2005-9-18
最后登录
2024-2-27
发表于 2011-10-23 08:22  ·  广东 | 显示全部楼层
前面说的基本对的,第一次听说Xbox用C#,得求证下,PS3 不是用C/C++吗?

不过你这么一说,我倒想到,其实一些小游戏还真未必需要C/C++

精华
0
帖子
254
威望
0 点
积分
302 点
种子
7 点
注册时间
2010-5-10
最后登录
2021-1-13
发表于 2011-10-23 12:53  ·  北京 | 显示全部楼层
科普了=。=
记得那会学计算机语言的时候是各种烂啊=。=
该用户已被禁言

精华
0
帖子
3396
威望
0 点
积分
3408 点
种子
84 点
注册时间
2006-7-19
最后登录
2023-3-14
发表于 2011-10-23 12:58  ·  四川 | 显示全部楼层
问下技术帝,超级马里奥变大扔火球击中敌人,以及各种飞机游戏BOSS被击中时的效果是什么程序啊?

精华
0
帖子
22
威望
0 点
积分
22 点
种子
7 点
注册时间
2006-8-24
最后登录
2019-12-17
发表于 2011-10-23 13:04  ·  湖北 | 显示全部楼层
哇,真叼,去开发个实况中超篇吧!

精华
0
帖子
363
威望
0 点
积分
586 点
种子
277 点
注册时间
2007-3-4
最后登录
2024-10-21
发表于 2011-10-23 13:31  ·  江苏 | 显示全部楼层
到大三了还只做了俄罗斯,贪吃蛇,炸弹人之类的,恐怕很难在游戏业立足啊~入门入得太晚了~

精华
0
帖子
25
威望
0 点
积分
25 点
种子
0 点
注册时间
2010-9-9
最后登录
2015-5-13
 楼主| 发表于 2011-10-23 19:42  ·  法国 | 显示全部楼层
回复 szxyz 的帖子

如果用xna来开发xbox游戏的话, 那就一定要用到c#, xna只支持c#, 不过我想当然也可以用别的语言来开发.

精华
0
帖子
25
威望
0 点
积分
25 点
种子
0 点
注册时间
2010-9-9
最后登录
2015-5-13
 楼主| 发表于 2011-10-23 20:00  ·  法国 | 显示全部楼层
回复 robbychild 的帖子

技术帝我担当不起, 我上面那些毛皮在有编程经验的人面前简直是班门弄斧.

在游戏中的各种爆炸或类似的都是运用一个叫做 ”颗粒引擎“ (particle engine)的程序.

精华
0
帖子
25
威望
0 点
积分
25 点
种子
0 点
注册时间
2010-9-9
最后登录
2015-5-13
 楼主| 发表于 2011-10-23 20:02  ·  法国 | 显示全部楼层
回复 咸菜 的帖子

你就是再给我100年, 我看我都开发不出一个像样的足球游戏。

精华
0
帖子
25
威望
0 点
积分
25 点
种子
0 点
注册时间
2010-9-9
最后登录
2015-5-13
 楼主| 发表于 2011-10-23 20:07  ·  法国 | 显示全部楼层
回复 肌肉侠 的帖子

恩, 是挺晚了, 不过现在的游戏都是有一个团体来制作的, 我个人实力和经验都有限, 我现在想的是到一家有规模的游戏公司当个程序员, 而不是自己招兵买马, 建立个新的游戏公司.
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|A9VG电玩部落 川公网安备 51019002005286号

GMT+8, 2024-11-22 08:28 , Processed in 0.191333 second(s), 15 queries , Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

返回顶部