你好,我是蔡能。从96年编写第一行代码开始,我在IT行业从业已经有22年的时间。
从程序员到管理者,我参与过各式各样的项目,也主导过很多项目。当然,我经历的大部分项目都是游戏。20多年里,我目睹了从最初的像素游戏,到如今高清贴图的3D游戏的发展过程。游戏行业,乃至整个IT行业都发生了翻天覆地的变化。
当然,我本人也非常喜欢玩游戏。我喜欢自由自在的游戏和需要脑力的游戏。比如,“GTA系列”“老滚系列”和“三国志系列”。在玩游戏的过程中,我体会到各种各样的乐趣,同时,作为开发者,我也会从专业的角度出发,思考这款游戏究竟是如何制作出来的。
我发现,喜欢玩游戏的人,都很有兴趣自己做一款游戏。哪怕自己不懂编程,但是自己做做策划,懂美术的话自己做做图,能让自己的游戏跑起来,就是一件幸福的事情。
还有一部分人,可能对游戏并不感兴趣,但是对赚钱感兴趣,那么我的专栏也可以让你知道游戏开发的基础流程和知识,避免走弯路,不花冤枉钱,不掉技术坑。
我看过网上各式各样的“傻瓜式”游戏开发工具,比如RPG MAKER。任何不懂编程的人,只需要导入规定的模板,就能方便地开发出一款游戏。然而,这种方法只能开发某一类非常简单的游戏。如果想要开发出一款真正意义上的游戏,还是要借助编程基础和系统的开发知识。
我举几个简单的例子,你就明白了。
在《守望先锋》里,我们看到的子弹射击,对方被击伤,这些都是经过怎样不断地网络优化实现的呢?还有各种网络预判模型,你是否都了解呢?
我们玩的《星际争霸》,究竟是每个线程控制一个兵种,还是一个线程刷新全部兵种画面?
《魔兽世界》如此庞大,它是如何将海量逻辑写在游戏客户端里?将逻辑编写成硬代码显然不理性,写成配置文件又缺乏机动性,那它是怎么做到的呢?
另外,我发现,很多公司在开发游戏的时候,选择引擎也是一个尴尬事。是自己研发一款引擎还是购买别家成熟的引擎呢?引擎的好坏,对开发的游戏来讲有什么影响?很多人也是不知道的。
这些问题,我都会在专栏文章中一一解答。但前提是你最好具备一定的编程知识和基础。
我将会尽量选择简洁的Python语言来编写。我会从最上层的脚本语言Python的使用开始,剖析为什么游戏开发要从这里开始。在用到C/C++代码的地方,我将会尽可能地使用简单易懂的语法来示范,所以,其实你只需要懂点儿英文就可以了(笑)。
我会尽量选择简单的开发工具,而不是动辄几个G的开发工具。比如“VS系列”,比如各种复杂的IDE。简单的开发工具足够简单明了地让你了解开发的具体流程,快速进入状态,而不是在设置工具上浪费大量的时间和精力。
我会尽量避免特别复杂的底层知识,但是也不会一带而过。我会帮你一步步梳理开发的流程,并仔细剖析,在C/C++中如何控制计算机的各种设备,操作计算机的各种硬件。或许你还会在编译中遇到问题,我也会一步一步,由浅入深,教你如何解决编译问题。
我将用制作“打飞机”游戏demo的过程,来完成游戏开发内容的分解步骤讲解。之所以选择“打飞机”作为游戏demo,是因为它的开发过程几乎涵盖了我要讲述的所有开发流程,包括操作、画面的前后遮挡、图像的碰撞和切换、资源包、脚本语言等等。
对于专栏的具体内容,我将分以下几个方面来阐述。
我希望,学习完这个专栏,能让你对游戏开发有个实质性的掌握,让你对游戏的开发和理念有一个完整并且系统的了解,并且能很快地着手进行游戏的开发。万变不离其宗,希望我的分享不会辜负你为此投入的金钱和时间。
让我们一起踏上游戏开发的旅程吧!
评论