论坛首页 移动开发技术论坛

自己开发的手机游戏引擎

浏览 9709 次
精华帖 (1) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2008-10-27  

 


   

BLADE 开发者:

刀刀

联系方式:

QQ 653506560

EMail 653506560@QQ.com

 

(有高薪职位请介绍)

 

    BLADE是一套使用 Symbian C++ 语言编写的基于Symbian S60 平台的ARPG 手机游戏引擎,BLADE 使用 Symbian S60标准应用程序框架(Series 60 Application Framework),利用 BLADE 可以开发能够在所有 S60 手机平台上运行的游戏程序。BLADE 的主要特点包括:
■     完全 Symbian C++ 语言设计  在面向对象的程序设计理念前提下,遵循 Symbian OS 程序设计规范,在编写过程中不仅使用 Symbian OS 提供的数据类型集,而且在字符串处理、复杂集合类型、类命名、异常错误的处理、清理栈的使用、活动对象等方面均符合 Symbian OS 的设计标准。

■     标准 Symbian S60 应用程序框架结构  包含 CAknApplication、CAknDocument、CAknAppUi、CAknKeySoundSystem、CCoeControl等多个框架类扩展,实现 MMsvSessionObserver、MCoeForegroundObserver、MMdaAudioOutputStreamCallback、MTimingCall、MAudioSystem、MRenderSystem、MInputSystem、MImageSupervisor、MAnimSupervisor、MTempletSupervisor等数十个系统级接口,对来电接听、接收短信/彩信、前/后台切换等支持良好。
■     架构管理的层次化和组件的模块化  以 CARPGContainer 主容器为核心,下设渲染系统(CRenderSystem)、音效系统(CAudioSystem)、输入系统(CInputSystem)、图像管理器(CImageSupervisor)、动画管理器(CAnimSupervisor)、模板管理器(CTempletSupervisor)以及各类标准游戏程序组件(Splash、Title、Help、About、Setting、Game):
□           渲染系统(RS)  支持 208x176、208x208、320x240、416x352、640x360等各类分辨率;支持4K、64K、16M等多种色深;高效blitter,以及同一数据的X轴反转、Y轴反转、X+Y轴反转、缩放、RGB独立调节、Alpha调节、影子渲染等多种渲染模式,在最少内存使用下实现图像的多样性;支持任意位置点、线、矩形、圆、多边形等几何形状的快速渲染(含各几何体的扩展,包括实心、空心、Alpha);内建12x12、14x14、16x16等多套汉字点阵,以及适应小屏幕终端显示的5x5 数字/字母字体。该系统所有功能均由引擎代码实现,未使用SDK API。
□           音效系统(SS)  支持 16位 单声道 8000hz .wav 格式音频文件读取和播放;支持多音效片断合成播放。考虑到目前手机的硬件条件,应把程序的计算时间侧重于游戏的互动逻辑,故该系统没有采用双声道和更精细的采样频率输出。
□           输入系统(IPS)  支持普通手机键盘和QWERTY全键盘输入,暂不支持触摸屏。
□           图像管理器(IS)  程序使用的所有图像资源由其管理调度,包括加载文件、分配使用以及清理等。IS是主容器下属的独立模块,负责为容器内其他模块提供需要的图像资源。IS在保存图像资源的同时,也记录有该图像资源的切割信息。
□           动画管理器(AS)  AS是引擎的重要组件,它基于IS为程序的其他组件提供需要的动画数据。AS管理的基本单元为 as,as将一套动画划分为三个层级,每一层级是对上一层级的细化,这样使得动画数据的编排更直观,组件在使用动画数据时更快捷。
□           模板管理器(TS)  游戏中所有对象均使用模板构建,包括地形、角色、建筑、物品、法术等。各类模板均基于IS和AS但又具有各自不同的属性。
l  地形模板  包含碰撞检测类型、阻力系数、地理类型、状态转换类型、切换条件、阴影类型等。
l  角色模板  包含基础生命值、基础法术值、体重、最大移动速度、碰撞检测类型、基础攻击值、基础防御值、基础抵抗力、基础精确度、基础敏捷度、基础力量、各种音效等。
l  建筑模板  包含碰撞检测类型、多边形类型等。
l  物品模板  包含物品种类(货币、武器、防具、饰品、疗物、关键、其它等)、不同种类具有的位旗标(与角色模板属性、法术模板属性联系)。
l  法术模板  包含效力类型、目标类型、造成不适类型(中毒、沉睡、昏迷、衰弱、迷惑、惊呆、笨拙、盲目、沉寂等)、光影类型等。
□           标准游戏程序组件  闪屏组件、主菜单组件、设置组件、游戏组件、帮助组件、关于组件等各组件不仅提供公共接口且具有各自独特的接口。公共接口包括逻辑更新、绘制、按键响应、前后台切换、屏幕旋转等。
l  闪屏组件  包含脚本系统、LOGO显示、过渡效果等。
l  主菜单组件  包含脚本系统、选项功能、背景及光标显示等。
l  设置组件  包含控制设置、音量设置、图像效果设置等。
l  游戏组件  该组件是游戏功能具体实现的组件,负责游戏运行过程中所有资源的调度,下设场景(Scene)、场景信息库(SIL)、游戏时间系统(GT)、天气系统(GW)、游戏菜单(GM)、脚本系统、对话库(PL)等多个子系统。
○     场景  游戏中大部分可视化对象的容器,包括地形、角色、建筑、物品、法术、摄像机、脚本系统等,负责对其内部的所有对象进行资源调度和规则仲裁。
○     场景信息库  库中记录所有Scene的基础信息,包括ID、出口数量、出口打开条件、环境类型(户外、城内、屋内、地下、平原、高原、湖底等)。
○     时间系统  与真实时间匹配的游戏时间系统。
○     天气系统  基于时间系统产生多样性的天气效果,包括晴天、阴天、雨天、白天、夜晚、太阳照射、月光、云雾、雨水等,同一环境在不同的天气下渲染效果不同。
■     丰富的游戏特效和元素
□           环境光、物体光和阴影  时间以及天气环境的变化产生明暗不同、色彩不同的渲染效果,发光物体对周围地形、角色、建筑等照射和闪烁效果,各物体受光照产生阴影,相对角度、光照半径、距离等因素对阴影的方向、浓度、透明度造成影响。
□           物理特效  地形具备不同的摩擦因子(泥土路面、冰面、雪地、草地、木地板、石板等),物体具有各自的质量、速度和加速度,物体产生运动依靠力的驱动而非直接设置其速度;物体产生惯性运动的同时受地形产生的相对摩擦力反作用;运动中的物体产生碰撞依据各自的质量、速度、碰撞角度产生多对相互作用力,每个物体依据受力大小和方向相应改变运动状态。基于物理算法甚至可在游戏中嵌入考验操作的额外小游戏。
□           地形互动  地面、水、机关、陷阱等不同类型地形对游戏中的角色产生不同的作用,如落水、受伤等;不同的地形对角色的物理攻击、法术攻击、踩踏、碰撞等有不同的响应,如:用指定的某一法术攻击墙体可打开秘密通道、角色的物理攻击值达到指定的下限时才能破坏的机关、角色碰撞冲击造成地形改变等。
□           物品系统  物品分为货币、武器、防具、饰品、疗物、关键、其它等多个种类,每一类物品的功效各自不同。角色可捡起、装备、使用、丢弃物品,同时一些特殊物品对剧情产生作用。
l  货币  包含Diamond、Gold、Silver、Copper、Tin五种,各种类有不同的换算比例。
l  武器/防具/饰品  不同的物品对角色的等级、力量、HP、TP、速度、物理攻击、物理防御、精确度、敏捷度、法术抵抗等产生额外影响。
l  疗物  不同的物品产生不同的疗效,包括恢复HP/TP、治疗中毒、沉睡、昏迷、衰弱、迷惑、惊呆、笨拙、盲目、沉寂等。
l  关键  特殊物品的装备和使用能够剧情推动、进入特殊场景等。
l  其它  其它的物品使用可以让角色学会新的法术、了解更多等。
□           法术系统  游戏中所有角色都能够使用的各种各样的法术,各种法术产生的效力也丰富多彩,包括攻击、治疗、属性提升、造成不适状态、即杀、复活等。随着角色等级的提升或剧情的发展,可以学会更多的法术。
□           角色操控  游戏中的所有角色基于公共角色接口,下设Player、Npc、Demon、Boss、Building、Item、Theurgy等多个子类,具有走、跑、休息、攻击、施法、被攻击、潜水、死亡等多种状态。
□           AI  角色能够对周围事物的变化产生响应,包括不同类别角色的走近、角色移动的碰撞、敌对角色的攻击等。
□           脚本系统  程序中各组件均可脚本驱动,包括主容器脚本、游戏组件脚本、场景脚本、摄像机脚本。主容器脚本负责模块的切换、通知各子系统装载资源等;游戏组件脚本负责游戏组件内各子系统的资源装载、剧情发展等;场景脚本负责场景中地形的互动;摄像机脚本负责镜头的运用等。
□           事件驱动  引擎中包含一个独立的事件处理器(EC),可以接收程序任何位置发送出的事件。事件记录了发送方、接收方、响应方式、响应时间、数据包等,EC负责事件的接收和分派,实现了引擎中各层级模块和系统的相互通讯。
□           自由规则  物品生成、属性相互影响等可以自由设定;程序中数百个宏定义参数,涉及音频参数、对象池参数、角色阴影参数、移动方向参数、模板数量参数、动画层参数、对话框参数、地形脚本数目、天气、时间等数十个模块均可自由调整。
□           辅助工具  引擎包含了向量的各种运算、各类几何体(点、线、圆、矩形等)的相交检测、力、区间判断、文件I/O操作等多个工具函数。所有功能均由引擎代码实现,未使用SDK API。
■     简洁明了的游戏资源  引擎中各子系统/组件读取独立格式的外部文件,而外部文件的设计更简化到了仅用文本编辑器就能够进行。引擎设计读取的文件类型包括:.mbm .wav .is .as .phs .mls .bdt .lct .itt .trt .tgt .scn .cis等。
■     兼容性和移植度  支持运行于所有S60 3rd 和S60 5th 平台的移动终端,包括:NOKIA 3250、5320XM、5500、5700XM、6110Navigator、6120C、6121C、6124C、6210Navigator、6220C、6290、6650、E51、E55、E60、E61、E61i、E62、E65、E66、E70、E71、E90Communicator、N71、N72、N73、N75、N76、N77、N78、N79、N80、N81、N81 8G、N82、N85、N91 8G、N92、N93、N93i、N95、N95 8G、N95-3NAM、N96、N96-3、5800XM;SAMSUNG i458、i520、i550、i560、G810;LG KT610。
BLADE 在开发过程中使用的是以下操作环境:

■     软件环境
□       OS  Windows Vista HomeBasic(支持WinXP sp1/sp2/sp3)
□       IDE  NOKIA Carbide.c++ v1.3.2 Build039 Express
□       SDK  S60_3rd_FP1、S60_3rd_FP2_v1.1、S60_5th_v0.9
■     硬件环境
□       CPU  AMD Athlon 64 X2 Dual Core 5600+
□       GPU  NVIDIA GeForce 8600 GT 256M
□       Board  Biostar TF570 SLI
□       Mem  Kingston PC2-5300U 3 x 1G

BLADE 实际运行的一些画面截图:

 

   发表时间:2008-10-27  
强人啊,这套东西要给钱买的吧
0 请登录后投票
   发表时间:2008-10-27  
引擎代码可以出售
0 请登录后投票
   发表时间:2008-10-31  
光影效果不错。
0 请登录后投票
   发表时间:2008-11-02  
"一天,你遇到狮子"

好像应该是遇到了熊吧?
0 请登录后投票
   发表时间:2008-11-02  
顺便说下
建议lz移植时空之轮
因为你的图像效果让我想起当年玩了n遍却没翻过一次版的经典。。。
0 请登录后投票
   发表时间:2009-06-08  
非常nb 可惜不能学习一下啊 
0 请登录后投票
   发表时间:2009-06-08  
真的是强大啊。。。开发了多久啊?
0 请登录后投票
   发表时间:2009-06-09  
太强悍了。。
0 请登录后投票
论坛首页 移动开发技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics