当前位置: 首页 > 软件库 > 程序开发 > 游戏开发包 >

IndieLib

2.5d 游戏开发引擎
授权协议 LGPL
开发语言 C/C++
所属分类 程序开发、 游戏开发包
软件类型 开源软件
地区 不详
投 递 者 逑俊楚
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

IndieLib是一个 2.5d引擎,使用它可以简化游戏开发的难度,提高游戏开发的速度。内部它使用Direct3d做硬件加速,但它并没有使用DirectDraw或者 ID3DXSprite,而是直接将材质渲染在多边形上。它的设计重点是快速2d渲染,但同时也可以渲染3d模型。

IndieLib的主要特点是:

  1. 简单的接口和超强的易用性:使用entities来代表图形实例,可以调用简单的函数来设置它们的属性。如"SetPos", "SetCollisionArea", "SetFade", "SetTransparency",等 等
  2. sprites移位、旋转、镜像和缩放
  3. sprites Alpha blending, transparency, tinting and fading
  4. 渲染任何尺寸的图片(不一定非要是2的次方)。你可以载入10000x10000像素或更大的图片,IndieLib在内部会自动将它们分割成小的区块。还有,IndieLib可以自动丢弃显示窗 口以外的区块,提高渲染速度。在IndieLib中,还可以使用摄像机(camera),当使用摄像机时(如旋转,拉远拉近等)只有你看到的会被渲染。
  5. SetGrid函数可以给sprites设定grids,所以当移动grid上的点时,可以得到如波浪等的特殊效果
  6. 2d和3d摄像机(camera)概念,完全独立于图形。可以方便的移位、旋转和拉远拉近
  7. 可以方便的创建多个视角(viewport),方便创建大屏幕分屏游戏
  8. 随意缩放,引擎会自动决定是否显示图形
  9. 动画系统,使用XML文件定义动画文件
  10. 高级碰撞检测系统,使用xml文件定义碰撞区域。区域类型可以是圆圈、矩形和三角形。还可以将多个碰撞区域定义为组,从而方便检测组成员的所有碰撞。定义碰撞区域后, 你不用担心移位、缩放等操作会导致碰撞失效。引擎会自动重新计算碰撞区域。(非常适合于街头霸王类型的打斗游戏)
  11. 位图文字系统
  12. 渲染3d Mesh(你可以方便的将2d与3d图形混合起来显示)。也可以对3d模型进行方便的移位、旋转、镜像和缩放操作。这个特性可以是你制作"New Super Mario Bros"这样角色 是3d,而场景是2d的游戏
  13. 灯光系统,可以为3d模型加入灯光效果
  14. 定时器(Timer),开始、结束、暂停,可以方便的控制时间
  15. 实体(Entity)类,用于2d或3d图形,可以方便的控制图形。
  16. Image类,用于载入、保存不同格式的图片文件,还可以实现gaussian, noise, equalize, saturation等特效
  17. 直接blit基本图形(矩形、圆圈、多边形、直线等)
  18. 鼠标、键盘输入支持

IndieLib是一个开源引擎,它的License是LGPL,这就是说你可以将它用于商业项目。

 相关资料
  • 此功能旨在降低H5游戏接入手Q轻游戏成本,同时提供手Q相关的能力:用户信息、排行榜、分享等 支持版本:安卓手 Q 7.6.0 及以上,iOS 7.9.0 及以上 H5游戏包上架与正常游戏包上架流程一致 H5游戏包说明 H5游戏包与普通游戏包有所不同,游戏专用包地址 gameConfig.json:游戏配置文件,H5需重点关注 main.js:使用Bricks引擎开发的游戏的代码文件,H5游戏不用关

  • 8.6一面,supercell部门,邮件上写的游戏发行,实际还是技术部门,被拷打一个小时 先问简历和项目,提到角色骨骼动画(简历相关),骨骼动画的原理和生成过程,判断2D下线与矩形相交,射击游戏中子弹如何判断碰撞,速度过快时如何判断穿墙和击中(简历相关),判断点在三角形内 图形学八股,渲染管线,太久没碰忘了很多 cpp八股,泛型、特化介绍,虚函数、多态介绍,堆栈内存不同点,进程和线程不同点 算法,

  • 看到没什么发多益的同学,我就发一个给大家参考参考吧,一面是业务面,面了70min,二面是HR面,问的什么忘了 问项目(做了什么、难题怎么克服),和项目组成员以及需求方怎么沟通的 项目中信息如何加密,未收到信息如何处理? 项目中用redis做什么,用了redis的哪些数据结构?为什么用这些数据结构? 项目中事件的逻辑引擎怎么设计的?设计的思路是上面? 最熟悉的两种语言以及他们的优缺点 深拷贝和浅拷贝

  • 一个顶点从局部坐标怎么到屏幕上; NDC 空间的范围是什么;所有平台都是这样吗; 在 NDC 空间的点如何变换回世界空间; MSAA 的原理和实现细节;为什么要用 MSAA; 锯齿出现的原因;走样背后的原理; irradiance 和 radiance 的区别;量纲分别是什么;积分表达; 写出渲染方程;解释下每项的含义; 写出 Cook-Torrance BRDF 公式; 解释漫反射型;兰伯特项为

  • 问答阶段项目问的比较细,我自己是做了一个开源游戏引擎,问了一些项目实现问题,然后技术问答基本都是一些C++的特性问题还包括一些操作系统的问题,答题阶段手撕一个好像是力扣困难题,给10分钟我没想好也没写完,让说了一下思路我感觉我说的也不是很好,最后就聊了一些打不打游戏之类的。总体我感觉我发挥可能还行,有一些没答上来,不知道是否会有二面机会。 #腾讯# #光子# #2024面经#

  • 你的常用的数据结构都有什么? HashMap和HashSet的区别? 怎么构造一个HashMap HashMap优势是什么? 还有什么需要注意的? 扩容机制,hash冲突? 如果你去设计一个Hash函数怎么设计呢? 一般 HashMap多线程情况下会出现什么问题? 怎么解决扩容死链的? 尾插会有什么问题? 数据错乱问题以外还有什么其他问题? 怎么解决这个问题? councurrentHashMap

  • 介绍软光线追踪项目; 讲述光栅化里的MSAA和SSAA的区别; 讲述布林冯光照模型; 讲述Cook-Torrance BRDF;微表面模型中如何反应材质的粗糙程度? 讲述延迟管线和前向渲染; 光照计算发生在哪个shader里; forward+在移动端和PC上的底层实现(不会); 虚函数/纯虚函数/重载/析构函数相关; 指针和引用的区别; 计算结构体的内存大小; 如何用代码判断机器是否为大小端;

  • offer已经有一小段时间了,其实之前就打算发,但是最近在赶前一阵因为找实习而搁置的活。这两天有点闲工夫,就把之前记录的一点点面经发一下,回馈社区。 (看其他真正的引擎佬面试强度比我高太多了,相比之下我就是个臭弟弟,运气太好了。面试中也看到了很多不足,得抓紧补起来了) timeline 3.22 投递(过了个周末,3.25周一约了3.27一面) 3.27 一面(当天过,并约次日二面) 3.28 二