/zGameWare

Primary LanguagePascalGNU General Public License v3.0GPL-3.0

什么是 zGameWare?

zGameWare是一款跨平台2d游戏的制作中间件,它内置了并行化和多线程渲染框架,兼容fpc3.0.4和delphi xe10.3.2及以上版本。

底层api支持各类渲染引擎,内置强大工具链,高级几何系统,导航网络,音频,核心规则,大型资源包,内置跨平台ffmpeg支持

渲染器支持

开发平台支持

  • Delphi及IDE要求:Delphi Rad studio XE10.2.1 or Last
  • FPC编译器支持:FPC3.0.4 or last,可参看本项目随附的IOT入手指南将FPC升级至github最新的版本
  • CodeTyphon 6.0 or last(尽量使用Online更新到最新的Cross工具链+相关库)

平台支持,test with Delphi 10.3 update 2 and FPC 3.0.4

  • Windows: delphi-CrossSocket(C/S OK), delphi-DIOCP(C/S OK), delphi-ICS(C/S OK), delphi-Indy(C/S OK),delphi+fpc Synapse(C/S OK)
  • Android:Indy(C/S OK), CrossSocket(Only Client)
  • IOS Device: Indy(C/S OK), CrossSocket(Only Client)
  • IOS Simulaor: n/a
  • OSX: Indy(C/S OK),ICS(未测试), CrossSocket(C/S OK)
  • Ubuntu16.04 x64 server: Indy(C/S OK), CrossSocket(C/S OK)
  • Ubuntu18.04 x86+x64 Desktop:only fpc3.0.4 Synapse(C/S OK)
  • Ubuntu18.04 x86+x64 Server:only fpc3.0.4 Synapse(C/S OK)
  • Ubuntu18.04 arm32+arm neon Server:only fpc3.0.4 Synapse(C/S OK)
  • Ubuntu18.04 arm32+arm neon desktop:only fpc3.0.4 compile ok,no test on run.
  • Ubuntu16.04 Mate arm32 desktop:only fpc3.0.4 compile ok, test passed
  • Raspberry Pi 3 Debian linux armv7 desktop,only fpc 3.0.4,test passed.
  • wince(arm eabi hard flaot),windows 10 IOT,only fpc 3.3.1,test passed.

CPU架构支持,test with Delphi 10.3 update 2 and FPC 3.0.4

  • MIPS(fpc-little endian), soft float, test pass on QEMU
  • intel X86(fpc-x86), soft float
  • intel X86(delphi+fpc), hard float,80386,PENTIUM,PENTIUM2,PENTIUM3,PENTIUM4,PENTIUMM,COREI,COREAVX,COREAVX2
  • intel X64(fpc-x86_64), soft float
  • intel X64(delphi+fpc), hard float,ATHLON64,COREI,COREAVX,COREAVX2
  • ARM(fpc-arm32-eabi,soft float):ARMV3,ARMV4,ARMV4T,ARMV5,ARMV5T,ARMV5TE,ARMV5TEJ
  • ARM(fpc-arm32-eabi,hard float):ARMV6,ARMV6K,ARMV6T2,ARMV6Z,ARMV6M,ARMV7,ARMV7A,ARMV7R,ARMV7M,ARMV7EM
  • ARM(fpc-arm64-eabi,hard float):ARMV8,aarch64

高级渲染支持

  • 2D-HDR,只支持glscene渲染库
  • 跨平台影子效果支持
  • 跨平台叠影效果支持
  • 几何绘图支持(TPoly,TVec2List)
  • 多线程渲染支持
  • 并行化渲染支持
  • 渲染池支持(面向UI的渲染技术)
  • 粒子系统支持
  • 序列帧系统支持

音频引擎支持

基础几何库

  • 常用2d算法库
  • 常用3d算法库
  • 常用2d几何相交检测库
  • 2d凸包及凹包支持
  • 2d绝对坐标系支持(TVecList)
  • 2d尺度坐标系支持(TPoly)
  • 纹理排序(Texture Atlas)

游戏AI支持

  • pascal原生导航网络,并行化神经链条,路径优化决策
  • 基于随机森林的复杂AI决策
  • 基于KDTree的复杂AI决策

光栅库

  • 内存光栅库技术(Alpha混合处理支持,灰度支持,并行化缩放,反走样缩放,抗锯齿处理)
  • 内置序列帧光栅库
  • 内置JpegLS无损压缩(支持,灰度,RGB,RGBA三种光栅压缩模式)

数据

物理

  • 角色运动支持
  • 弹道运动支持
  • 碰撞检测支持(直接2d算法库即可
  • 暂时不支持外部物理引擎

脚本系统

  • 脚本系统在系统工程非常坑,不内置具体脚本语言,建议自行做脚本系统开发,下列指出三个方向
  • 脚本方向1,THashTextEngine,数据块形式的脚本系统,强烈建议使用该模式制作游戏需要的脚本,易于开发和维护
  • 脚本方向2,Json,Json格式形式的脚本系统,强烈建议使用该模式制作游戏需要的脚本,易于开发和维护
  • 脚本方向3,zExpression,表达式形式的脚本系统,强烈建议使用该模式制作游戏需要的脚本,易于开发和维护
  • 由于脚本引擎的技术技术陷阱实在太多了,不建议使用任何三方脚本引擎

工具链

  • 序列帧工具(支持从淘宝购买的大部分动画资源驱动)
  • Photoshop分层展开器(基于Photoshop的UI设计到引擎驱动)
  • 游戏UI布局设计器
  • 光栅纹理转换工具
  • 大批量文件打包工具
  • 跨平台字体生成器
  • 纹理打包排序工具(Texture Atlas)
  • Sepia色彩空间系批量处理工具
  • 色差均衡批化量处理工具
  • 抗锯齿批量处理工具
  • Tile地图编辑器(素材资源来自Warcaft3)
  • Brush地图编辑器(素材资源来自魔兽世界)
  • 部分从淘宝可购买的素材转换工具
  • 反走样字体生成工具
  • 2d骨骼动画工具

技术文档

  • FMX渲染器的优化指南
  • GLscene渲染器的优化指南
  • bass部署指南
  • HDR对于画质的神奇提升
  • 多线程后台渲染技术指南

示范游戏