自从大四下学期开始,经过短暂的软件开发经历之后,我毅然决定进入我梦寐以求的游戏开发行业,转眼间已经过去5年半了,在这个过程中,有过迷茫,有过放弃、有过疑惑,但是更多的是收获的喜悦,和技术上的进步。
从一个游戏开发菜鸟到目前的项目主管,在技术上成长了很多,在管理上才开始起步。但是在这5年的时间中,除了写过的代码,我鲜有文字记录留下来,这不是一个很好的习惯。在随后的一两年时间内,我争取把自己在游戏开发业内的一些经验和知识记录下来,生成一系列的文字,发布在博客上,姑且算作我在技术上的一次梳理和升华。
我给这一系列博文命名为——从零开始编写网络游戏。
首先,介绍一下在这个过程中需要用到的基础知识。
1、编程语言主要会用到C 和LUA两种语言,C 作为程序的主要框架,而LUA作为嵌入脚本语言。不一定需要很高深的C 知识,但是需要了解C 的基础。LUA是一种轻快的脚本语言,学习起来会很简单。
2、网络游戏必然离不开网络,因此,SOCKET的基础知识也需要了解,如果你对多线程也知道一些,那就更好了。
3、数据库也是网络游戏的一个重要组成部分,需要对MYSQL和SQL基础有一些了解。
4、对于渲染和GUI方面,因为我会采用两个开源游戏开发引擎,因此对于底层D3D或者OpenGL的知识不需要太多的了解,但是要对开源的渲染引擎和GUI引擎有基本的了解。
其次,介绍一下整个游戏框架的核心技术。
1、服务器支持Linux和Windows,数据库采用MySQL,脚本语言使用LUA。然后会自己封装一个操作MYSQL的数据库引擎以及一个网络引擎。
2、客户端采用OGRE CEGUI为基本框架,OIS作为输入系统,配合LUA脚本写游戏逻辑。
3、工具方面会编写一些辅助游戏开发的工具,比如场景编辑器,粒子编辑器、GUI编辑器以及文件打包工具之类等等。
4、服务器构架上我会给出我自己思考的最好方案,和大家一起共同探讨。
最后,我一定会坚持下去,把整个系列写完,文章内容不可避免会有错误之处,希望高手们不吝赐教,大家互相分享、学习、交流,共同提高。