You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

50 lines
5.4 KiB
Markdown

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

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