网游《地下城与勇士》究竟是如何制作出来的?

2018 年 3 月 27 日 黑客技术与网络安全

十年前,那时候的网吧还不叫网咖,那时候没有王者荣耀也没有英雄联盟,那时候梦幻西游刚推出珍宝阁系统,那时候巫妖王的灵魂还封闭在冰封王座。


寻仙、穿越火线、征途、天龙八部……同时在线人数超百万的游戏纷纷涌现,那个中国网游群芳斗艳的年代,地下城与勇士无疑是最耀眼的那个。

DNF当年有多火?那年小编还在读初中,跟同学去网吧,一排排全是在玩DNF,当时有人爆了一把双龙魔影光剑,整个网吧都炸了,一个地主家的傻儿子当即把手机押那儿,然后冲回家再取800块,一出门就摔了一跤,滋溜就爬起来继续跑,一边跑一边喊千万别卖给别人……

不过呢,玩游戏不如做游戏,再牛逼的游戏号在程序员的眼里就是一堆代码,所以今天呢,小编要跟大家说说如何进行游戏开发。


作为一款横屏格斗游戏,绚丽的画面和流畅的动作是DNF的精髓,那么我们先从画面和动作着手。


关于GDI的初步认知


什么是GDI,GDI是windows与生俱来的图形设备接口(GraphicsDeviceInterface)的英文缩写,主要任务是负责系统与绘图程序之间的信息交换,处理所有Windows程序的图形和图像输出。


利用它我们可以很轻松的在屏幕上绘制图形了。也能利用它开发一些绘制要求不高的游戏,比如小时候玩的魂斗罗,超级玛丽啊等小游戏,或一些RPG(角色扮演类)小游戏,我们都是可以用GDI制作的。


虽然LOL,DNF,QQ炫舞等这些游戏是DirectX或OpenGL这类图形接口,但对新手小白来说最简单的还是GDI。


准备一张BMP格式的背景图片,创建一个窗体,在窗体上进行绘制,然后通过GetDC函数来获取窗体的设备环境DC

获取设备环境后,还需要在内存中创建一个设备环境,我们在内存中画图,画好以后,直接拷贝到窗体的设备环境上


关于初步动画实现


3D是渲染的艺术,具备动画状态机和混合树的方案在如今基本是标配,如常见的Unity的Mecanim,UE4的Animation Blueprint。


那如何利用GDI在游戏中实现动画效果呢?


2D游戏是贴图的艺术,贴图基本有两种方式,一种采用定时器,一种则是利用消息循环,目前都是采用的第二种绘制方式(消息循环),也就是说游戏中的动画都是一帧一帧的帖上去的,就像放电影一样。


例如这个动画(素材来自DNF),通过一个数组把他们保存起来,然后依次播放。下面是部分代码:

运行效果图:

是不是感觉还不错呢?其实地下城与勇士这类游戏是比较适合新手小白开发的,相比于3D游戏的骨骼动画,2D横版游戏的序列帧更简便。


在这个娱乐化时代,游戏已经融入到我们的生活成为了一种生活方式,游戏开发也是当下和未来绝对热门的行业,但是对于初学者而言呢,缺乏经验和指导往往会举步维艰。


所以今天小编特意给大家带来一堂

C++游戏实战开发直播分享课

在开发过程中,我们会用到C/C++语言、Win32窗口创建、消息机制、GDI三缓冲绘图原理等知识点。


●学习过程中你能学会:

       1.使用API函数创建好Win32窗口。

       2.将准备好的游戏素材加载到程序中。

       3.使用GDI图形设备接口函数绘制地图与角色。

       4.利用C/C++语法结合数据结构与算法算法处理游戏数据。

       5.编写游戏逻辑。


●学习成效:

       1.跳出控制台,在界面编程中去锻炼自己的逻辑思维能力。

       2.了解windows程序设计的基本框架。

       3.可尝试去开发各种界面化的程序,例如雷霆战机,俄罗斯方块,坦克大战等等。


C++游戏开发课程领取方式

长按或扫描识别下方二维码

加入C++技术交流群即可免费获取

长按二维码识别

或添加Q群:652954961

不定期有Socket编程和Hook(钩子)编程等网络黑客技术、腾讯内部核心技术比如QQ截图系统、编写雷霆战机等经典游戏的免费知识分享课。

 

点击阅读原文,也可以参与哦

登录查看更多
0

相关内容

【2020新书】实战R语言4,323页pdf
专知会员服务
100+阅读 · 2020年7月1日
【2020新书】使用高级C# 提升你的编程技能,412页pdf
专知会员服务
57+阅读 · 2020年6月26日
一份简明有趣的Python学习教程,42页pdf
专知会员服务
76+阅读 · 2020年6月22日
【实用书】Python爬虫Web抓取数据,第二版,306页pdf
专知会员服务
117+阅读 · 2020年5月10日
【干货书】流畅Python,766页pdf,中英文版
专知会员服务
224+阅读 · 2020年3月22日
【经典书】Python计算机视觉编程,中文版,363页pdf
专知会员服务
139+阅读 · 2020年2月16日
【GitHub实战】Pytorch实现的小样本逼真的视频到视频转换
专知会员服务
35+阅读 · 2019年12月15日
你跳宅舞的样子很专业:不,这都是AI合成的结果
怎么画高大上的神经网络结构?试试这个!
用Python制作3D动画
Python程序员
30+阅读 · 2018年1月17日
Python除了不会生孩子,其他的都会了!
全球人工智能
3+阅读 · 2017年11月9日
Python除了不会生孩子,什么都会
算法与数学之美
3+阅读 · 2017年11月8日
Arxiv
3+阅读 · 2018年6月14日
Arxiv
11+阅读 · 2018年1月11日
VIP会员
相关VIP内容
相关资讯
你跳宅舞的样子很专业:不,这都是AI合成的结果
怎么画高大上的神经网络结构?试试这个!
用Python制作3D动画
Python程序员
30+阅读 · 2018年1月17日
Python除了不会生孩子,其他的都会了!
全球人工智能
3+阅读 · 2017年11月9日
Python除了不会生孩子,什么都会
算法与数学之美
3+阅读 · 2017年11月8日
Top
微信扫码咨询专知VIP会员