存档在 ‘《古月》引擎’ 分类

HAC 3.1来了!

2010年5月22日

HAC 3.1是HAC 3.0x的进化版,主要特性更新为:

  • 全64位文件索引表,包裹可以突破4G大限
  • 支持文件索引表加密和压缩
  • 多文件流式合并压缩,用于必定会一次性全部载入的多个文件,合并压缩有利于大幅提升压缩率
  • 全合并流式压缩,用于安装程序与更新补丁包
  • 自解压程序,用于安装程序与更新补丁包

CDB表格应用

2009年12月29日
  • 头文件:hgl/db/cdbtable.h
  • 示例:function/CDBTableTest
  • 工具:cdb2table.exe <example.csv> [example.table]
  • 查看器:LR-47直接集成,现有用户请点击这里下载

都忘了在自己的引擎中还有CDB表格这个东西,今天有人要用才把它翻出来。功能很简单,先将做好的表格文件用电子表格软件如WPS、OpenOffice、Excel将表格存成“UNICODE格式CSV文件”,再用CSV2TABLE将.csv/.txt转换成.table文件,然后就可以在引擎中使用了。详情请见示例程序function/CDBTableTest.

暂时重心转向服务器

2009年12月1日

说到底,我并不热衷于Linux/FreeBSD/OpenSolaris程序设计。主要是因为没有好用的IDE,虽说我这个DOS时代过来的人用命令行也无所谓,但那也只是DOS命令,对Linux/UNIX命令行,实在是不太习惯。

MacOS X最近也不多写了,主要是因为我的MacMini实在是太老了。1.25GHz的PowerPC G4处理器带着MacOS X 10.5也实在是太慢。

不过最近由于我的重心要转换到服务器程序设计,所以我将重新开始这些平台的程序设计,同时Windows平台将要放一放了。

此次顺带对《古月》引擎的服务器部分进行大规模更新,主要涉及以下两点:

  • TCPServer部分使用LibEvent进行重新设计
  • 纯64-Bit平台开发

HTP/HTPPart/HTPMerge:基于Tile的图片处理模块

2009年11月24日

如同HGP是《古月》引擎的一个重要元素一样,新的HTP同样将会成为引擎中的一个重要元素,并且更加令人瞩目。

  • HTP体系基于Tile系统保存图片,可以支持超大解析度的图片。
  • HTP的图片打包工具会自动计算重复Tile,支持多层PSD、多张图片、多种色彩格式自动拆分计算。在《秋之回忆5》1.08版中,由于人物图片有着大量重复内容,其压缩率达到了1/290,而且仍是无损压缩。不但减少了游戏的容量,也加速了游戏过程,减少了加载时间。
  • HTPPart可以只加载图片的指定区域,在超大复合图片组成的场景中,起着重要的作用。常用于2D-RPG/RTS等超大图片显示场合。
  • HTPMerge则是一个和显示完全无关的模块,它提供软件级的图片合成。如同HTPPart一样,它需要开发者指定需求的图片范围,但它并不负责显示,而仅仅是将这一区域的图片内容软件合成为RGB/RGBA/Luminance/LuminanceAlpha/Alpha格式供开发者使用。在3D游戏的超大地形中,不仅可以用其保存地表贴图,还可以用其保存地表高度图。由于其软件合成,可以生成任意层次、任意混合模式、并且极其精细的地表贴图,而且仅有一层,大大提升了3D游戏的地表贴图表现。

HTPPanel:HTP图片专用显示面板控件

2009年11月24日
  • 名称:HTPPanel
  • 类型:class
  • 头文件:<hgl/gui/HTPPanel.H>
  • 示例程序:
  • SVN版本:2407
  • 加入日期:2009-11-23
  • 说明:专用于HTP图片显示的面板,提供滚动条。

RWLock:共享读写锁

2009年11月24日
  • 名称:RWLock
  • 类型:class
  • 头文件:<hgl/RWLock.H>
  • 示例程序:
  • SVN版本:2428
  • 加入日期:2009-11-24
  • 说明:在unix下中使用pthread的rwlock,在Windows下使用Event/Mutex模拟实现。在上层的使用上保持了一致性的接口。
  • 另:由于pthread for Win32使用LGPL授权协议,所以没有选择使用pthread实现。

atom_int:原子整型数据类型

2009年11月24日
  • 名称:atom_int
  • 类型:class
  • 头文件:<hgl/Atomic.H>
  • 示例程序:Function/Atomic
  • SVN版本:2427
  • 加入日期:2009-11-24
  • 说明:基于原子操作的整型变量数据模拟,在使用方式上力求与int一致,使用操作符重载方式将各种运算转为针对各操作系统/CPU的本地API。

编译错误:microsoft.h(13) : fatal error C1189: #error : Please use the static version of the run-time state library.

2009年11月11日

microsoft.h(13) : fatal error C1189: #error :  Please use the static version of the run-time state library.

《古月》的Visual C++版.LIB全部使用静态运行时态库方式编译,所以当您使用动态运行时态库方式编译工程时,就会提示以上错误。

解决办法即将C运行时态库选择静态版本即可,如下图。

VC_CRT

IrrLicht 1.6整合初步完成

2009年11月8日

经过差不多5个小时的努力,已经成功的将IrrLicht 1.6的部分代码整合到了古月引擎中。

去掉了IrrLicht中的以下部分:

  • 音频支持
  • 鼠标键盘游戏杆支持
  • 各种图片加载功能
  • GUI
  • 两种软件渲染驱动、以及D3D8、D3D9渲染驱动
  • 各种操作系统以及SDL设备驱动

目前已经在Visual C++ 2008/2010、C++Builder 2009/2010上编译链接成功。即将进行的将是IrrLicht原本例程的变更以及测试。

新的程序入口代码

2009年11月7日

为让《古月》的使用更为灵活,从R46版开始,支持不从GameMain入口。开发人员可以自行搭配其它引擎。同时保留原有的GameMain入口方式。

目前,新的GameMain入口方式为:

void GameMain(int,wchar_t **)
{
SystemInitInfo sii;

sii.info.ProjectName=L”Box3D”;          //工程名称
sii.info.ProjectCode=L”Box3D”;          //工程代码(一般使用英文名称)

sii.graphics.gui.use=false;             //标记成不使用GUI

//旧式
/*
if(Init(&sii)==false)                   //初始化工程
return;

SetStart(new TestObject);               //设定起始流程

RunApplication();                       //开始运行程序
*/

//新式
GameApplication app;

if(app.Init(&sii)==false)               //初始化工程
return;

app.SetStart(new TestObject);           //设定起始流程
app.Run();                              //开始运行程序

}

鄂ICP备09027626号