自己设计3D游戏引擎 - 简介(Crapell 3D Game engine design by self - Introduction)

名字Crapell取crazy spell 的缩写,纯个人设计,未基于其它任何开源引擎修改。c++语言实现。后续的重点将放在特效和AI上面。

        库及教程下载 : crapellengine_Lib.zip

        demo介绍 http://twopointfive.blog.163.com/blog/static/90058543201472513244202/

 

        demo下载 :  DarkBattle3.5.7z

基本思想:

 

        模块设计准则:易用(高内聚),易移植(低耦合),容错,高效。

场景组织模仿flash影片剪辑的嵌套结构(也类似gamebryo的nif结构)。

ui部分类似torque的嵌套结构。

纹理、模型等资源使用智能指针自动释放,自动避免重复加载。

已实现功能:

一  渲染 

                Crapell游戏引擎设计Render

1,可以将整个或部分max场景导出到单一文件,也可导出到单独文件。包含关键帧动画、uv动画、粒子动画、骨骼动画、顶点动画、布料动画导出插件。插件使用非常方便,比如可以直接导出附着于骨骼或关键帧的布料模型和物理刚体模型。支持opengl 、d3d9两种渲染方式。avi贴图,粒子特效(灵活的发射器和粒子形状,路径,模型附着,模型发射,碰撞板),lod及变形修改器。后期延迟渲染可以对ui和场景使用独立的渲染通道。shader支持使用cg、glsl和hlsl三种语言(实现了一些例子:水纹,特效扭曲, hdr,流体雾,体积光,shdowmap阴影,motion blur)。

               Crapell游戏引擎设计UI

2,自制ui库各基本控件,控件可以分组嵌套管理。可以将任意控件组作为list(列表控件)及tree(树控件)的元素。类似torque的游戏内置简易界面编辑器。任意ui控件可以显示3d movie,比如滚条按钮可以3d动画显示。窗体可以贴到动画模型表面且可以响应输入。UI控件及界面管理绑定了lua脚本,方便脚本控制界面。放弃了之前scaleform使用。

3,支持activex控件web嵌入,场景多线程加载。

4,随机多层建筑物生成(带有亭子、门、城墙、柱子、走廊、护栏、楼梯、水池、广场、寻路系统等)。

                      随机树模型生成(分形加放样生成,模拟自然植物生长过程)。

                      随机人脸生成(捏脸系统)。

                      随机赛道、随机迷宫、地牢、地形生成。

                      各种随机生成系统方便节省资源以生成微型客户端。

5,加入了android平台显示。

二  物理

                 Crapell游戏引擎设计physic

1,未使用其它开源物理引擎。简单模拟rgidbody,使用joint和spring模拟软体。碰撞检测使用粗测加细测快速剔除,模拟速度已初步优化到可以实时应用。各物理模型的初始参数(比如位置、质量)都可以通过导出插件直接导出,无需程序设置即可直接参与物理模拟,使用方便。支持任意模型而不局限于凸体模拟。针对面数较大的模型做了特殊优化。

三  AI

                Crapell游戏引擎设计AI

1,目标驱动,astar,自动生成场景导航图。做了一个简易的war3地图编辑器。

2,lua引入 (目前使用luatinker),将基本的场景node导出为脚本物体,使得编写脚本就可以像做flash小游戏一样方便的制作3d小游戏。制作大型游戏ai仍以c++为主。

四  网络

                Crapell游戏引擎设计网络

1,服务器使用iocp ,以rpg功能为主。玩家可以创建多种类型小游戏任务房间,房间为开放式,游戏可以直接在rpg场景中进行,所以进入房间会被传送至房主所在地。其他玩家可观战。通讯协议分若干大类,小游戏内部消息使用命令方式,部分小游戏逻辑判断放在客户端主机上。

 

 

准实现功能:

一  渲染 

1,动态3d遮罩,修改器功能增强,增加场景物体实时碰撞响应,比如所有物体都可以被破坏。max中shader材质导出。

二  物理

1,稳定性优化,避免小概率的穿透。

三  AI

1,完整可玩度较高的demo。 新游戏房间可以在rpg游戏场景中的一台游戏机的屏幕上进行游戏。

2,ai编辑器。使用as 做游戏的脚本语言也许是不错的选择。 as具有很好的编辑调试工具,容错强,方便图形化编辑。

3,   研究中,清晰的结构、分层,switch case与状态机、行为树、数据驱动等。

四  编辑器

场景编辑器就是3dmax。ai编辑器。放弃原先使用win32api编写编辑器,改用自制的ui库实现各编辑器。

过场动画编辑器(使用脚本控制人物动作,编辑剧本式超长过场动画)

 

Crapell游戏引擎设计使用教程

 

 

附图:(模型多为网上下载)

 

 

图: 场景关键帧动画,实时阴影,八叉树,ui库

图: 粒子特效,使用自定义的关键帧和uv动画可以方便的制作各种游戏特效

图:  随风舞动的植被系统(随机生成或从plantmap产生)

图: 地形编辑器 纹理和高度画刷可选 可贴细节纹理加强效果

图:图为模拟每个水滴都可以激起涟漪的效果

图:简单物理碰撞模拟

图:随机生成树模型,可以单独设置每一分型层的多种参数,生成永不重复的异形树或花草。

图:导航图自动生成 目标驱动

更多截图见相册

自己写3D游戏引擎(Crapell)一 简介(make game engine by self - introduce) - twopointfive - twopointfive的博客

 

        

 

完整demo进行中  

        demo介绍 http://twopointfive.blog.163.com/blog/static/90058543201472513244202/

 

        demo下载 :  DarkBattle3.5.zip

自己写游戏引擎一 功能简介(make game engine by self - introduce) - twopointfive - twopointfive的博客

 

 

自己写3D游戏引擎(Crapell)一 简介(make game engine by self - introduce) - twopointfive - twopointfive的博客

 自己写3D游戏引擎(Crapell)一 简介(make game engine by self - introduce) - twopointfive - twopointfive的博客

 
 

自己写3D游戏引擎(Crapell)一 简介(make game engine by self - introduce) - twopointfive - twopointfive的博客

自己写3D游戏引擎(Crapell)一 简介(make game engine by self - introduce) - twopointfive - twopointfive的博客

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值