从0开始学游戏开发 / 你的游戏开发入门第一课
蔡能
原网易游戏引擎架构师,资深游戏底层技术专家
 
  • 课程目录
  • 课程介绍
  • 开篇词 | 跟我学,你也可以开发一款游戏!

    如何做出你的第一款小游戏?

  • 第1讲 | 游戏开发需要了解哪些背景知识?

    游戏开发第一步,从哪里开始?

  • 第2讲 | 2D游戏和3D游戏有什么区别?

    3D游戏引擎可以用来制作2D游戏吗?

  • 第3讲 | 游戏的发动机:游戏引擎

    游戏引擎是什么?为什么它在游戏开发中这么重要?

  • 第4讲 | 底层绘图接口的妙用

    你知道几种常见的绘图接口?它们分别有什么优缺点?如何直接使用绘图接口进行游戏开发?

  • 第5讲 | 构建游戏场景的武器:地图编辑器

    地图编辑器和关卡编辑器有什么区别和联系?分别又在什么情况下会用到?

  • 第6讲 | 从0开始整理开发流程

    讲完了第一模块的背景知识,这一节,我来带你整理一下整个游戏开发流程以及流程中所需要的工具。

  • 第7讲 | 如何建立一个Windows窗体?

    标准的Windows窗体有哪些部分组成?这一节,我会教你用C/C++和Python分别来编写一个窗体,并和你谈一谈在窗体背后,Windows系统做了什么。

  • 第8讲 | 如何区分图形和图像?

    你知道图形和图像的区别吗?搞清楚这两者的区别对游戏开发又有什么帮助呢?今天,我还会教你如何载入、绘制一幅图像。

  • 第9讲 | 如何绘制游戏背景?

    这一节,我将带你绘制游戏背景,并且让游戏背景动起来。

  • 第10讲 | 热点剖析(一):HTML5技术是如何取代Flash的?

    为什么现在大家都在谈论H5?你真的深入理解了H5吗?H5究竟是什么?它的优点在哪里?

  • 第11讲 | 如何载入“飞机”和“敌人”?

    这节我通过导入随机函数、贴图、移动等过程,一步步示范如何载入主角飞机和敌人飞机。

  • 第12讲 | 如何设置图像的前后遮挡?

    这节我和你讲,根据绘制顺序来设置图像之间的遮挡效果。

  • 第13讲 | 热点剖析(二):如何选择一款HTML5引擎?

    这是H5的第二节。我和你介绍三款常见的H5引擎,并教你如何根据自己的需求选择合适的引擎。

  • 第14讲 | 如何设置精灵的变形、放大和缩小?

    今天我和你讲什么是精灵,如何实现精灵的变形、放大和缩小,以及这些操作背后都有哪些技巧。

  • 第15讲 | 如何设置淡入淡出和碰撞检测?

    在打飞机游戏或者日常生活中,哪些地方用到了淡入淡出效果?可Pygame中其实并不存在相应的函数,我们自己如何实现这样的功能呢?

  • 第16讲 | 热点剖析(三):试试看,你也可以编写一款HTML5小游戏!

    一款好上手的引擎要具备哪些要素?相比客户端的游戏开发,H5要关注哪些地方?不需要关注哪些地方?

  • 第17讲 | 如何制作游戏资源包和保存机制?

    游戏开发中,素材资源这么多,你知道如何理清游戏素材以及游戏素材的存放结构吗?游戏进度又是如何保存的?

  • 第18讲 | 如何载入背景音乐和音效?

    在游戏中载入背景音乐和音效需要用到哪些函数?播放音乐需不需要多线程控制?在没有Pygame、游戏引擎也不提供音频库的时候,有什么专业的音频库可以使用?

  • 第19讲 | 热点剖析(四):安卓端和苹果端游戏开发有什么区别?

    安卓端和苹果端游戏开发有哪些相同点和不同点?基于这两大平台,有什么通用的开发工具?

  • 第20讲 | 如何在游戏中载入UI和菜单?

    在游戏中,UI的呈现有哪些方式?每种实现方式又有什么优劣?具体我们又该如何摆放UI界面?

  • 第21讲 | 如何用鼠标和键盘来操作游戏?

    在Pygame中,有几种检测、编写键盘事件的方式呢?每一种分别是如何实现的?

  • 第22讲 | 热点剖析(五):如何选择移动端的游戏引擎?

    我和你介绍五款移动端引擎,并从可支持的编程语言、容易上手程度、可以编写的游戏类型等这些方面出发,教你如何选择适合自己的移动端引擎。

  • 第23讲 | 如何判断客户端的网络连接?

    今天我们学习了网络的七层模型结构,以及选择了TCP协议进行游戏编程,并用Python封装了Socket库。

  • 复习课 | 带你梳理客户端开发的三个重点

    我们用了将近两个月的时间,学习了游戏客户端的开发,今天我带你来总结并回顾一下重点(内含我整理的游戏开发全流程图)。

  • 第24讲 | 如何嵌入脚本语言?

    关于Lua语言,没学过的话,记住这节讲的三个细节就可以了。至于为什么要用Lua脚本嵌入C/C++硬代码,这节我也会详细跟你讲解。

  • 第25讲 | 热点剖析(六):AR和人工智能在游戏领域有哪些应用?

    VR、AR是什么?你是否对这些技术有深入的了解和认识?它们在游戏中又有哪些应用?

  • 第26讲 | 脚本语言在游戏开发中有哪些应用?

    在Lua和C语言的结合过程中,需要新建一个Lua虚拟机,然后使用虚拟机指针来操作Lua函数。这节我就和你讲这个过程是如何实现的。

  • 第27讲 | 如何使用脚本语言编写周边工具?

    这节我以编写周边工具Makefile为例,带你了解Lua的工作机理。

  • 第28讲 | 热点剖析(七):谈谈微信小游戏的成功点

    微信小游戏和小程序用的HTML5技术有什么不同?从技术层面来看,什么决定了小游戏的成功?

  • 第29讲 | 如何选择合适的开发语言?

    这节我要讲几种常见的编写服务器端的语言,以及它们各自优缺点,以及究竟如何去选择合适的编程语言去编写网络服务。

  • 第30讲 | 如何定制合适的开发协议?

    网络协议是最常用的概念。这节我们来看游戏开发中常用的三种协议,以及自己定制协议需要遵从哪些标准。

  • 第31讲 | 热点剖析(八):谈谈移动游戏的未来发展

    这节我们来看看现阶段移动游戏的特点,并分析下究竟什么是移动游戏最大的掣肘。

  • 第32讲 | 不可忽视的多线程及并发问题

    这节我要讲并发、并行、线程这几个概念,并来分析C语言编写的Python里GIL锁的问题。

  • 第33讲 | 如何判断心跳包是否离线?

    心跳包是一种服务器之间交互的方法,可以用作服务器数据调试和回滚的策略方案。心跳包有两种策略,一种是两种运算时间A和心跳时间相对固定,第二种是两种实时调整。

  • 第34讲 | 热点剖析(九):谈谈独立开发者的未来发展

    游戏的开发难度变小了,制作难度反而变得更大了。这是为什么?

  • 第35讲 | 如何用网关服务器进行负载均衡?

    Nginx的反向代理用的是负载均衡的网关模型。这种模型无法负担更大体量的内容,可以通过增加网关,将业务逻辑分割到独立的服务器,分摊服务器压力。

  • 第36讲 | 如何制作游戏内容保存和缓存处理?

    Redis除了可以作普通的缓存机制使用,还可以做什么?

  • 课后阅读 | 游戏开发工程师学习路径(上)

    整个开发流程和内容我们已经讲完了,接下来的路该怎么走呢?

  • 课后阅读 | 游戏开发工程师学习路径(下)

    关于游戏设计,这里有几本书可以推荐。

  • 结束语 | 做游戏的过程就像是在雕琢一件艺术品

    开发游戏就是在雕琢一件艺术品,从哪里下刀,怎么切入,怎么设计,人物的表情、仪态、动作如何,完全取决于手握刻刀的你。

专栏简介

游戏行业一直是公认的“吸金”行业。对于热爱游戏的人,能够开发出一款自己的游戏,绝对是一件很酷很有格调的事。游戏行业的高回报,也吸引着越来越多的人跃跃欲试。

而一款游戏的诞生,需要诸如策划、原画、UI设计等多领域的合作,涉及的内容十分繁杂。没有系统的理论学习和一定的编程基础,是没有办法开发出一款真正意义上的游戏的。

那么,如果想成为一名专业的游戏开发工程师,究竟该如何入门呢?

本专栏中,蔡能老师将结合自己二十余年的游戏领域实战经验,手把手带你梳理游戏开发流程,教你从零开始学习游戏开发。

他精选游戏开发最基础的知识倾囊相授,着重讲解游戏开发最核心的三个概念,游戏引擎、底层绘制接口和地图编辑器,帮你做好入门的准备。继而以一款经典的游戏为例,详细讲解客户端、服务器端的开发细节和步骤,带你从理论到实践掌握整个开发流程,为深入学习游戏开发打好坚实的基础。最后,为你深度剖析HTML5游戏和移动端游戏相关的热门技术,以及独立游戏开发者的未来发展,给你独家的游戏行业洞察。

蔡能,网易杭州研究院的创始员工,原网易游戏引擎架构师,资深游戏底层技术专家。在过去22年的职业生涯里,蔡能负责过各种游戏和应用的服务器架构、设计和开发,深谙各种编程语言和服务器开发,也曾出版《游戏服务器架构和优化》一书。

专栏模块

专栏共36期,分为6大模块。

  • 基础知识: 将介绍游戏开发基础,重点讲解游戏开发中最重要的三个武器:游戏引擎、底层绘图接口和地图编辑器。

  • 客户端开发: 将梳理整个开发流程,手把手教你编写一个窗体、区分图形和图像、绘制游戏背景及内容填充。所有呈现在用户面前的部分,这一模块都会涉及。

  • UI和键盘鼠标: 将讲述如何在游戏中载入UI和菜单,如何用鼠标和键盘控制游戏精灵,以及整个客户端的网络连接问题。

  • 脚本语言: 将用简单易懂的C/C++代码讲解如何嵌入脚本语言,阐述脚本语言在游戏开发中的应用,以及如何使用脚本语言编写更多的周边工具。

  • 服务器端开发: 将阐述游戏开发中网络传输相关问题,比如选择开发语言、定制开发协议,多线程和并发问题,心跳包离线和断网处理,用网关服务器进行负载均衡,内容保存和缓存处理等。

  • 热点剖析: 将解析热门的HTML5游戏和移动端游戏的技术及威力,并带你编写一款HTML5游戏,教你选择移动端游戏引擎,最后谈一谈独立游戏开发者的未来发展。

专栏详细目录如下:

限时福利

适宜人群及所需基础

游戏开发初学者,特别是想要系统学习游戏开发的程序员;希望深入了解游戏开发流程和细节的游戏相关从业者;所有对游戏开发感兴趣的人。

希望你最好具备一定的编程基础,能看懂Python或简单的C/C++代码。

你觉得怎么样?期待您评价: