VS下用C++实现的简单3D射击游戏(附游戏文件与源工程代码)
2016-11-01 21:34
726 查看
记不得什么时候开始感兴趣写游戏代码了。开始的时候就只是写一些简单的小游戏,打台球,开小车,走迷宫,用一些2Dgraphics库,完成每个小作品后都很开心。后来一想,在现在的计算机设备条件下,2D太简陋了,于是开始着手做一个3D赛车游戏。说是赛车,实际上也就只有一辆小车。模型简陋而且贴图粗糙。但做完之后还是很开心的。毕竟,修改修改美工,多写点运动控制代码,也勉强算个小游戏。
然后,就想到开始做这个3D射击游戏。
这就是个时间长的过程了。因为决定提高质量,所以打算多看完教程再来写。
附:LearnOpenGL CN
https://learnopengl-cn.github.io/
推荐这本网上的教程。当时看了一些书打了基础,再看这个教程时就尝试看完一篇实现一篇。这个过程虽然漫长,但因为亲身实践学到了很多有意思的内容----视差贴图,HDR,泛光,帧缓冲。。。
然后,就开始动手做了。框架构思好,然后一步一步来。
做的时候才发现,没有想象的那么容易,因为全部都是自己一个人做。比如搭地图做骨骼,因为opengl的三种变换矛盾了很久;比如贴图时,发现光照和深度贴图总会产生问题;比如链接库文件时版本,格式不同,困扰了我好几天。。。有的预期效果,因为实在找不出bug只好放弃。
有时候趴在图书馆的桌子上想,万一花了很多时间做,但最后做出来还是很烂怎么办啊?但一抬头看着电脑屏幕,看到自己已经做出来的东西,就突然振奋了许多,又提上了劲。
中间还夹杂了很多事情:除了学习任务,还要做助研,完成IPP,这两件事都需要不少时间,于是只能从课余时间中再抽点零碎时间来做这个。有趣的是:我还在做助研项目时受到了启发------为什么不把这个3D射击游戏做成联网的呢?联网这部分反而做的比较快,就是连接数据库,然后分析每帧过去后哪些上传哪些接收。可能很多人认为难点在于联网交互,实际上数据库部分不难(也可能我做的不完备,会有数据冲突),难的是立体图形处理的细节,比如人物关节,比如碰撞、射击检测。
数了一下,总共写了十多个类,一共2500行,应该算是我写过最长的一个project了。如今终于差不多可以说Mission
Complete,回首间才发现自己已经收获了很多。
链接:http://pan.baidu.com/s/1slTcLPj 密码:f4f9
然后,就想到开始做这个3D射击游戏。
这就是个时间长的过程了。因为决定提高质量,所以打算多看完教程再来写。
附:LearnOpenGL CN
https://learnopengl-cn.github.io/
推荐这本网上的教程。当时看了一些书打了基础,再看这个教程时就尝试看完一篇实现一篇。这个过程虽然漫长,但因为亲身实践学到了很多有意思的内容----视差贴图,HDR,泛光,帧缓冲。。。
然后,就开始动手做了。框架构思好,然后一步一步来。
做的时候才发现,没有想象的那么容易,因为全部都是自己一个人做。比如搭地图做骨骼,因为opengl的三种变换矛盾了很久;比如贴图时,发现光照和深度贴图总会产生问题;比如链接库文件时版本,格式不同,困扰了我好几天。。。有的预期效果,因为实在找不出bug只好放弃。
有时候趴在图书馆的桌子上想,万一花了很多时间做,但最后做出来还是很烂怎么办啊?但一抬头看着电脑屏幕,看到自己已经做出来的东西,就突然振奋了许多,又提上了劲。
中间还夹杂了很多事情:除了学习任务,还要做助研,完成IPP,这两件事都需要不少时间,于是只能从课余时间中再抽点零碎时间来做这个。有趣的是:我还在做助研项目时受到了启发------为什么不把这个3D射击游戏做成联网的呢?联网这部分反而做的比较快,就是连接数据库,然后分析每帧过去后哪些上传哪些接收。可能很多人认为难点在于联网交互,实际上数据库部分不难(也可能我做的不完备,会有数据冲突),难的是立体图形处理的细节,比如人物关节,比如碰撞、射击检测。
数了一下,总共写了十多个类,一共2500行,应该算是我写过最长的一个project了。如今终于差不多可以说Mission
Complete,回首间才发现自己已经收获了很多。
链接:http://pan.baidu.com/s/1slTcLPj 密码:f4f9
相关文章推荐
- 利用VS根据文件目录结构创建C++工程自己简单实现的方法
- 用简单的代码来实现文件上传
- (深信服笔试题)简单文本文件的过滤高频率单词C++代码
- Android Library 工程实现模块复用 (代码及资源文件)
- 游戏程序设计学习初窥简单DirectX代码实现
- 用简单的代码来实现文件上传
- Android Library 工程实现模块复用 (代码及资源文件)
- 使用C++与SFML编写一个简单的撞球游戏Part1——新建工程以及设置
- 简单文件操作(Linux下C++实现)
- C++实现简单的分牌游戏
- 用C++实现简单的文件I/O操作
- socket简单实现ftp的文件传送(C++V2.0版,解决数据丢失问题)
- 用C++实现简单的文件I/O操作
- 《大话设计模式》读书笔记(C++代码实现) 第一章:简单工厂模式
- c/c++: 读取配置文件(文本)内容的简单实现
- C++(STL)实现的修改游戏存档文件的2个相关类
- 用C++实现简单的文件I/O操作
- 用C++实现简单的文件I/O操作
- windows下,c /c++实现磁盘扫描,结合配置文件,读取特定后缀文件目录代码
- 自动添加VS 2008 代码文件版权信息 注释,用小程序实现更改