好久没写blog了,懒懒的,从大学毕业到现在任职于一家游戏公司,这段时间学到了很多,也看到了很多不错的代码和架构,突然有了一种,想自己写写看的想法,我觉得,自己写有几个好处,一个是可以整理出一些东西,方便以后写东西时可以重用,确实发现很多代码经常会用,一个是可以学学组织比较大的代码结构,还有就是这里有很多高手,可以和大家讨论讨论:)。虽然说是游戏库,但不是完整的包含游戏的方方面面(我也写不了),也不一定要非要用于游戏开发,我的目标是能方便的做一些游戏的prototype(公司经常会做)或者是应用程序,提供一个好的framework,其实也是可以以后自己用起来方便点啦,还有比较重要的目标是跨平台,因为要用到console平台和pc平台。有可能写的东西会比较基本,高手可以无视啦。
库的名字很简单,就叫“TLibrary”,现在已经写了一部分了,先说一些基本的结构吧,因为我也一直在修改中,可能以后结构会有变化
TLibrary把游戏中的一些东西分成一个个模块,比如TCore(核心模块),TInput(输入模块),TGraphic(图像模块)等等,每个模块都位于一个namespace下,比如TCore就是:
... {
}
这样做主要基于几个方面的考虑,一个是可以清楚的表示这个函数或类是来自TLibrary的并且不会冲突,另一方面是不用起很长的类名和函数名(很多库的代码确实是通过加前缀来防止冲突的),还有就是ide的代码completion会比较方便:)
当然,基于跨平台的考率,一开始,我typedef了所有的基本类型,随便说一句,我的这种类型表示法,是借鉴了Wii的库,感觉比较简练和直观
#undef NULL
#endif
#define NULL 0
typedef unsigned char u8;
typedef unsigned short u16;
typedef unsigned int u32;
typedef unsigned __int64 u64;
typedef signed char s8;
typedef signed short s16;
typedef signed int s32;
typedef signed __int64 s64;
typedef char Char;
typedef bool Bool;
typedef float f32;
typedef double f64;
(待续....)