Orz游戏开发框架阅读笔记(一)
2011-08-20 22:12
190 查看
Orz是邸锐(免费打工仔)开发的游戏框架,我阅读的版本是书籍《Ogre 3D游戏开发框架指南》的配套光盘中的OrzSource。我是和书籍一起对照来读的。
在读Orz源代码时,最好首先用CMake将源代码生成Visual C++ (2005或以上)的工程文件。这样可以在VC的集成环境中来读源代码,效率会提高很多。
Orz的源代码主要包括8个源代码文件夹,它们是Controller_Base、Controller_Win32、Framework_Base、Model_Base、Toolkit_Base、View_Fmod、View_OGRE3D和View_OIS。其中,Controller_Base和Controller_Win32只包含main和WinMain等程序入口文件,对整个框架的功能没有影响;Model_Base是一个插件,它是动态链接库的形式,Model_Base建立了一个简单的游戏逻辑,这个游戏逻辑通过插件的方式可以加载到程序中来(当加载其它插件时,要以Model_Base这个插件为基础,请参考书籍《Ogre3D游戏开发框架指南》的配套光盘第3周的程序);View_Fmod、View_OGRE3D和View_OIS这三个文件夹是orz框架对音频、图形引擎和输入输出函数的封装或适配,提供其他模块所需要的相关功能;Orz源代码中最核心的文件夹是Framework_Base和Toolkit_Base。
除了上面8个源代码文件夹外,还有其它一些文件夹。bin文件夹可以放编译后的dll文件,cmake文件夹存放CMake编译相关的文件,media文件夹可以放与游戏有关的一些媒质文件。值得注意的是orz文件夹,orz文件夹包含5个子文件夹,子文件夹中都是.h文件。如果使用orz框架开发游戏程序,应该将orz文件夹中所有的头文件都包含进去。从orz文件夹的头文件中也可看出orz框架向游戏程序提供的主要功能。
下面来看Orz源码最核心的两个文件夹ToolKit_Base和Framework_Base。这两个文件夹中供Orz以外程序调用的头文件都在前面所述的Orz子文件夹中,在两个文件夹下只有include子文件夹和src子文件夹,所有实现文件都在src子文件夹中。
我们先来研究Toolkit_Base文件夹,顾名思义,这个文件夹存放的是Orz框架使用的程序工具。在src子文件夹下,有5个”孙”文件夹,分别是DynLibManager、EventSystem、IDManager、LogManager和TimerManager,相应地,这几个文件夹下的实现文件主要完成插件管理、消息系统、ID管理器、日志管理器和计时器管理器等功能。(因为.h文件分布在几个不同文件夹中,不太好寻找,我们只需阅读.cpp文件即可,在阅读.cpp文件的过程中,根据需要再去阅读相关的.h文件)
在读Orz源代码时,最好首先用CMake将源代码生成Visual C++ (2005或以上)的工程文件。这样可以在VC的集成环境中来读源代码,效率会提高很多。
Orz的源代码主要包括8个源代码文件夹,它们是Controller_Base、Controller_Win32、Framework_Base、Model_Base、Toolkit_Base、View_Fmod、View_OGRE3D和View_OIS。其中,Controller_Base和Controller_Win32只包含main和WinMain等程序入口文件,对整个框架的功能没有影响;Model_Base是一个插件,它是动态链接库的形式,Model_Base建立了一个简单的游戏逻辑,这个游戏逻辑通过插件的方式可以加载到程序中来(当加载其它插件时,要以Model_Base这个插件为基础,请参考书籍《Ogre3D游戏开发框架指南》的配套光盘第3周的程序);View_Fmod、View_OGRE3D和View_OIS这三个文件夹是orz框架对音频、图形引擎和输入输出函数的封装或适配,提供其他模块所需要的相关功能;Orz源代码中最核心的文件夹是Framework_Base和Toolkit_Base。
除了上面8个源代码文件夹外,还有其它一些文件夹。bin文件夹可以放编译后的dll文件,cmake文件夹存放CMake编译相关的文件,media文件夹可以放与游戏有关的一些媒质文件。值得注意的是orz文件夹,orz文件夹包含5个子文件夹,子文件夹中都是.h文件。如果使用orz框架开发游戏程序,应该将orz文件夹中所有的头文件都包含进去。从orz文件夹的头文件中也可看出orz框架向游戏程序提供的主要功能。
下面来看Orz源码最核心的两个文件夹ToolKit_Base和Framework_Base。这两个文件夹中供Orz以外程序调用的头文件都在前面所述的Orz子文件夹中,在两个文件夹下只有include子文件夹和src子文件夹,所有实现文件都在src子文件夹中。
我们先来研究Toolkit_Base文件夹,顾名思义,这个文件夹存放的是Orz框架使用的程序工具。在src子文件夹下,有5个”孙”文件夹,分别是DynLibManager、EventSystem、IDManager、LogManager和TimerManager,相应地,这几个文件夹下的实现文件主要完成插件管理、消息系统、ID管理器、日志管理器和计时器管理器等功能。(因为.h文件分布在几个不同文件夹中,不太好寻找,我们只需阅读.cpp文件即可,在阅读.cpp文件的过程中,根据需要再去阅读相关的.h文件)
相关文章推荐
- libgdx游戏引擎开发笔记(九)SuperJumper游戏例子的讲解(篇三)---- 主游戏界面显示框架
- 【游戏客户端开发】Unity3D 学习笔记4 —— UGUI+uLua游戏框架
- 【阅读笔记之十三】《DIRECTX.9.0.3D游戏开发编程基础》 网格(三)加载小汽车的XFile的demo
- 【阅读笔记之十二】《DIRECTX.9.0.3D游戏开发编程基础》:网格(二)浅话X文件和渐进网格
- 【阅读笔记之九】《DIRECTX.9.0.3D游戏开发编程基础》:Direct3D中的融合技术
- Android游戏框架libgdx笔记(一):开发环境搭建
- cocos2dx游戏开发学习笔记(五)之引擎框架
- 【阅读笔记之四】《DIRECTX.9.0.3D游戏开发编程基础》绘制流水线
- 【阅读笔记之二】《DIRECTX.9.0.3D游戏开发编程基础》:基础数学知识
- 【阅读笔记之三】《DIRECTX.9.0.3D游戏开发编程基础》:Direct3D初始化
- 【阅读笔记之五】《DIRECTX.9.0.3D游戏开发编程基础》Direct3D中的绘制
- 【阅读笔记之六】《DIRECTX.9.0.3D游戏开发编程基础》:Direct3D中的颜色
- 【阅读笔记之十一】《DIRECTX.9.0.3D游戏开发编程基础》:网格(一)闲话ID3DXMesh接口
- 阅读笔记-游戏开发中的人工智能-第1章-游戏人工智能简介
- libgdx游戏引擎开发笔记(七)SuperJumper游戏例子的讲解(篇一)---- 游戏框架的搭建
- 【麦可网】Cocos2d-X跨平台游戏开发学习笔记---第七课: Cocos2D-X引擎框架2
- libgdx游戏引擎开发笔记(十)SuperJumper游戏例子的讲解(篇四)---- 主游戏界面内部框架编写
- 阅读笔记-游戏开发中的人工智能-第4章-群聚
- Orz游戏开发框架代码研究
- 【阅读笔记之七】《DIRECTX.9.0.3D游戏开发编程基础》:Direct3D中的光照