有学游戏开发的朋友吗?你们都在哪里学的,可以交流一下吗
有学游戏开发的朋友吗?你们都在哪里学的,可以交流一下吗
咱们先从最初开始说起——纯针对新人属个人看法,这些步骤希望你能真的一步一步走过去,不要觉得内容“太简单”或者“看起来不像开发游戏”就想跳过。早20年我会推荐你Delphi,但是现在C#也算是Delphi的精神续作了(什么精神续作,只是主程是同一个人而已),当年开发游戏可没有什么引擎一说。
第一步:用C#的Image、Timer写一个小程序
要求不高,先自己安装VS、C#,这个环境非常好搭,我不在这里细说,是希望你首先能做到自己去找必要的知识。弄完以后,新建一个工程,在Form1里面拖一个Image和一个Timer,然后随便找一张图片,小一点的,你喜欢的。你要做的事情是:
Image拉个640x640就好,里面创建一个64x64的小方块,这个小方块里是这张图片的完整样子,这个小方块的坐标是相对于Image的(x:0-Image宽度随机,y:0)。
确保画面不要闪烁。
每30毫秒这个小方块的y会增加8,但不要让小方块“掉出屏幕”。
小方块可以根据你键盘输入的ASDW移动(ASDW分别对应什么方向你不知道的话,还是别继续了),移动速度为40像素/30毫秒。
鼠标点击Image区域,小方块会取消当前的移动,并向点击的地方移动过去,注意是移动过去,速度是40像素/30毫秒,而不是瞬间过去。
一步一步做到,这是你开发游戏的第一步,如果你这步都学不好,就不建议你打开Unity这种东西,别小看了这步,在这步里,你要解决的问题基本上就是理解贴图的概念→理解游戏就是Input+Timer+GDI也可以做的东西→理解Input的处理不应该是if key==xxx then....,而是要建立一套命令机制的。对于一个正常程序员来说,做这个最多不超过1小时,但是对于一个新人来说,这就算花了3天也没什么奇怪的,但是最重要的是你能坚持下来而不是跳过基本功。
第二步:还是在C#里做一个仓库番
这个要求对于一个新人来说是不低的,不要小看仓库番这个游戏,他可以让你学会不少游戏开发的初级知识。
当然这样一个仓库番的要求并不低,在这个项目里,你会接触到游戏设计的基本功。这个项目对于新人来说可能会需要1-2个月完成,尤其是当你的兴趣移到了策划技术下的关卡设计的话,会沉迷进去很久。但是这个项目最重要的是让你明白一个游戏是怎么开发和设计的,纯正的基础知识,一定不要跳过。一些游戏看起来很简单,比如flappybird,但这些比起仓库番来说不见得真的简单,而且更不适合学习用。
第三步:做一个俄罗斯方块
之所以做一个俄罗斯方块,是因为:
开发技巧:仓库番其实还是回合制的,俄罗斯方块会让你第一次遇到“动作游戏”操作的问题,别看这个“动作游戏”是打引号的,当你真的遇到不打引号的动作游戏项目的时候,这种input的经验也是有有用的。
策划技巧:在俄罗斯方块里,你会第一次遇到真实的分析一个需求——想一想:俄罗斯方块里,按下A键方块真的是“旋转”吗?其实这个抽象是大错特错的,俄罗斯方块里从来就没有方块是“旋转90度”的,而是从一个拼图变成了另一个拼图,只是看起来恰好是转了90度,那么如果不是转90度行吗?加入仅仅只是“玩家可能反应不过来”,那怎么让他们反应过来?
开发技巧:动态碰撞处理,或者说动作游戏和回合制游戏的交界点。你注意一个细节,俄罗斯方块在方块“落地”之前,还能通过左右方向来移动方块,这是为什么?
开发技巧:消除动画怎么穿插在这个过程中?
开发技巧:注意,你见过很多俄罗斯方块的范例,但他们都犯了一个错误——俄罗斯方块是会显示下一个要出现的方块的。当你注意到这个问题的时候,你会发现70%以上的范例做法都是错的。
策划技巧:无限关卡的游戏应该怎么设计?俄罗斯方块关卡变化函数所需要的参数只有一个——方块的下落速度,那么这个速度真的需要随关卡一直增加吗?还是增加到一个程度之后就不需要增加了?空想没有意义,自己做了试试看再回答。
开发技巧:当方块下落速度过快的时候,你会遭遇到跳帧。
俄罗斯方块是一个游戏程序员(Gameplay方向)和游戏策划走上正轨之前的最后一个挑战项目,你第一次真的“写对”俄罗斯方块,你也会经历代码重构(因为你多半是一次写不对的),然后重新整理思路和重构设计的阶段。
接下来,用Unity之类的引擎把它们做出来
当你完成这3个挑战之后,你再去熟悉Unity,才是一个好的开始。而这个时候你也差不多知道自己的兴趣所在了——究竟是做一个设计师,还是做一个程序员。这2个游戏的开发中蕴含了几乎所有RPG、SLG游戏的主要技巧,但是主要还只是主要,不是全部。如果你不服,可以试着先从坦克大战(FC)开始继续做游戏。
整个过程中最重要的几点:
不要心急,不要觉得这些事情都是小事,没有意义。如果说学计算机语言是扎马步,那么这些游戏是属于你进了少林以后挑水这些事情,他不是练武,但却是练你的底子。
带着思考去做,想想看有些技巧,用在较大型的游戏是怎样的?技巧是一样的技巧,关键看你怎么玩出花。
别管游戏是几D的,大多游戏逻辑上都是2D就够了的,3D只是Render而已。一个做法正确的游戏,2D到3D转换障碍并不大,想想Evoland,还有DQ系列最近几座,也都支持2D 3D切换,为什么呢?
不要为了实现,妥协你的设计。领悟一个策划的基本功——什么是What to do的,什么是how to do的,how to do的是设计,what to do不过是玩家牢骚而已。明白了how to do,你也会修正你对what to do的看法,这对于设计的理性一面是很有帮助的。比如仓库番一次推2格行不行?为什么?希望这样的回答对你有所帮助