LGame

Project Url: cping/LGame
Introduction: This is free 2d game development framework(Java Game Engine), support JavaSE/Android/IOS/WP7/HTML5/PSM/Linux/MAC/Windows and Default support Ripple protocol
More: Author   ReportBugs   
Tags:

#Loon Game Engine

LGame

  • 本引擎开发环境是 JDK 1.8,设置的最低运行环境为 JRE 1.7,请注意低版本 JRE 不能识别高版本编译的 jar,如果直接使用 jar(而非导入代码),而无法运行,请注意替换为高版本 JRE,或者以源码编译为低版本类库。

  • BTW : 前一阵病了(自 2016 年 3 月起),严重干眼症+结膜炎,用了 6 个月环孢素滴眼液,干眼总算缓解了,11 月开始继续垒码……

loon-0.5-java-beta 下载(总共约 50 多 MB,十几 MB 的源码及 jar 资源,四十多 MB 的游戏示例,暂时不正式 releases,因为 0.5 还不完整,目前只有 java 部分,并且还在修改中):

Dropbox:https://www.dropbox.com/s/46dfz2hqw1znpud/loon-Java-beta.7z?dl=0

360 网盘:https://yunpan.cn/cxAejmHmsiynn (访问密码 663d)

其它下载:http://xrpmoon.com/files/loon-Java-beta.7z

PS: 正在制作专用构建工具 loon-build,现阶段还无法自动构建全部 0.5 版项目,beta 阶段请根据文件中 template 自行修改。

附带一提,针对 windows 平台生成的游戏 jar 文件,可用 exe4j 或 install4j 之类打包为 exe 程序,不过只是暂时的。我准备重写 GreenJVM,附带一个超小的 loon 专用 openjdk,以后就可以直接一键构建本地 exe 了(我初步精简的 openjdk,压缩后大约 4MB 多一点,也就是单纯运行一个 Loon 的 hello world 的话,exe 有 5MB 多一点足够了)。

BWT:想自己开发游戏又找不到美工的网友,可以见 dev-res 目录,小弟已经列举了很多的开放资源,并且在不断更新(都是无版权问题的资源,要么就是作者放弃版权的,要么就是只要注明来源,就可以免费使用的)。

关于 LGame 的 0.5 版,是一次重大改版,此版本有较大结构升级,并引入了 3D 模块。另外,此版本开始将不支持 Java 多线程交互(为了跨平台移植不方便,当然,主要是因为 html5 方面),建议不要在游戏中交互使用 Thread,否则将导致游戏无法一键迁移到其他平台(在旧版中,也有个别示例游戏用了,所以这部分例子有待重写,或者等到 TeaVM 的支持包发布后才能使用),0.5 版主要变化如下:

1、此版有两套核心库。一者为 Java 版核心库,以 JavaSE、Robovm、J2Objc 以及 GWT 等不同本地方式,分别实现核心库的本地方法,然后跨平台移植。而另一套,则为 C#版核心库,走 Xamarin(具体来说,其实是走 MonoGame 实现(因为基于 MonoGame 开发的游戏,将可以免费使用 Xamarin,主要是为了混免费许可方便。另外,以前已经写过一个 XNA 版本的实现,不搞 MonoGame 版,代码就浪费了))、以及 Unity(二次封装)分别实现核心库的本地方法,然后走代码转化工具,直接 Java2C#跨平台。后续还会添加 C++版本,以及其它语言的实现版本,毕竟 Loon-0.5 改版后核心库基本从本地环境脱离,只有算法,没有了具体的实现,分别在不同平台进行实现就可以完成跨平台开发(不过,需要 GLSL 脚本的支持,否则部分特效将没有办法实现,所以不能跑 GLSL 的就没办法了)。等上述版本稳定后,也会移植到 C++环境去。

2、开始使用 GLSL 着色语言,因此不再支持 OpenGL 1.0 的 API,转而采用 OpenGL 2.0 以及 3.0,目前 Loon-0.5 底层渲染部分都已经替换完毕。

3、由于已经将核心库彻底脱离具体环境,使用新版的话需要把本地库和核心库共同引入 lib 才能运行(0.5 以前的版本的核心代码,是有平台依赖的,系统调用和具体实现混在一起,所以移植起来很麻烦,这次彻底分开了)。

4、删除了原来部分过时 API(或者说不适合多平台移植的),以及部分像素相关算法(凡是直接在界面显示中像素处理的,都删了,但留下了一些像素过滤类的算法),相关效果会使用 GLSL 着色语言实现(因为 GLSL 利用 GPU 处理更快,并且现成的特效也更多)。另外,此次改版后,将放弃已经无人使用的环境,因此 jdk 1.7 以下版本,以及 Android3.0 以下版本,将完全无法运行 Loon-0.5 以后的版本,并且为了向 HTML5 兼容,也删除了一些妨碍跨平台的的方法(具体来讲,少数调用可能变得不太直观,但整体来说变化不大),但以此为代价,将可以完美支持 IOS 和 HTML5 平台。

5、默认情况下,已经强制所有资源目录统一到 assets,Loon-0.5 开始默认将只从此路径下加载数据,把资源放入此目录下系统即可(另外也兼容旧版写法,填上 assets 路径也没问题)。

6、统一替换 LImage 为 Image,LGraphics 为 Canvas,LTouch 为 GameTouch,LKey 为 GameKey,Touch 为 SysTouch,Key 为 SysKey,以及 Screen 需要的抽象实现函数也有所扩展,并将原来仿 JavaSE 的 CPU 渲染接口 LImage 和 LGraphics,改为仿 HTML5 以及 Android 中 Canvas 标准的 Image 和 Canvas.并且,LTexture 和新修改后的 Image,将不再允许自身的直接 new,而只能走封装后的静态方法调用(这样构建时方便我做内部处理与判定,虽然不这样也可以处理,但是不方便统一接口……)。

7、目前 loon-0.5 的 GWT 版本导出 HTML5 游戏,分为两种模式:

一是普通模式,此模式以常规方式导出数据为 HTML5 页面(也就是 js 脚本),虽然在理论上,GWT 导出的数据完全可以通过网页静态访问,但是,由于程序中大量使用 XMLHttpRequest,默认情况下破不了 Chrome 和 IE 还有各种衍生品的跨域文件访问限制(Firefox 访问本地页面则无此限制,其它浏览器纹理不能“脏”,所以无解)。所以此模式打包出的数据,实际上无法脱离服务器运行,在没有服务器的场合仍然无法在本地直接运行(不过有其它环境版本在,其实完全本地运行意义不是太大)。

二是内部加载模式(示例见 html5demo2(no-cross-domain)),在这个模式下,Loon 程序会将所有数据完全打包到 js 中,然后本地 js 读取,因此没有任何跨域问题,支持 webgl 的浏览器就能正常读取,完全不必有服务器的存在,把 js 和 html 传给任何人他都能本机直接运行。但代价是 js 体积会过大,并且只能利用 src 方式加载数据,不利于轻量级发布和异步加载。

暂时来说,两模式的切换是走 xml 配置来决定的,需要手动修改些许参数,不过稍后小弟会增加开发工具,直接让用户选择导出方式,不必改变任何配置就能自行切换。

8、关于 Java 版本到其它语法版本的自动转换:

这个代码转换工具不难做,无论是语法翻译,或者字节码翻译,都有现成的第三方工具,只要把对应语法版本的基础库开发完毕,然后整合一下第三方工具就可以实现。

但无论是走语法翻译,还是走 ikvm 字节码翻译,原则上都不推荐使用 java 标准类库。因为用 ikvm 完全转换 Java 代码的话,同时还需要用到 ikvm 的 java 支持库(也就是 openjdk 那些 dll),本来 mono 支持库就大,再加上 ikvm 的,打个 hello world 出来,打包后不多出 20MB 左右的支持库也基本没戏。走语法翻译打包大小上要好很多,也容易自动化精简代码,不过无法完整重现 java 支持库(只会实现部分常用 java 包,比如字符处理和集合处理部分)。

所以如果想最小化运行程序,最好只用 LGame 自带的类库,否则以后打包到某些平台时,大小可能难以控制,甚至无法转换程序到对应平台。

9、为什么 C#部分不直接自己实现,而是要利用第三方框架做封装:

原因很简单,因为 Windows 手机部分默认不支持 OpenGL,而是使用 DirectX,如果完全自己写 C#实现,渲染部分就需要自己重新写了。虽然可以比较容易的照抄 MonoGame 使用 SharpDX 在 Windows 环境的实现部分,不过那样不如直接用 MonoGame 以及 Unity3D 做封装省事,至少能利用现成的第三方框架,多跨几个平台,反正无论如何,目前 java 版的 opengl 实现也无法照抄过去,同时减少自己做不同平台适配的时间(-_-)。

PS:正在全力开发 C#版(也就是 MonoGame 和 Unity3D 的封装版,等 2D 部分稳定了再翻过头来写 3D 支持,另外增加了 Live2D 伪 3D 模型的全平台支持(移植于官方 Android 包,重写了渲染部分,完美支持所有 live2d 建模)

另外,还有个新坑,准备加个 NScripter 的脚本实现(扩展包形式,不在核心 jar 中),以后 NScripter 或 ONS 的游戏,可以直接导入到 Loon 中来,作为自己的游戏使用了,能干什么用大家懂的(理论上讲,多大的游戏都可以搬来,不过 HTML5 之类环境中,太大的还是不建议,毕竟网页加载几 G 资源不现实)。


LGame (formal name : Loon)

A fast, simple & powerful game framework, powered by Java (also supports C# and C++).

Please see XRPMoon.com for downloads, build and installation instructions and other documentation.

LGame Project Restart,The game's just started.

源自中國本土的 Java 遊戲引擎項目

International Entertainment Machines

Features

LGame(LoonGame) is a very cool and small game library designed to simplify the complex and shorten the tedious for beginners and veterans alike. With it, you can use the best aspects of OpenGL/OpenGLES in an easy and organized way optimized for game programming. It is built around the concept that beginners should be able to start with the basics and then move up into a more complex plane of development with the veterans, all on the same platform.

LGame puts all of its effort into keeping things short and simple. The initial setup of a game consists only of making a single class; then you are done. The interface is entirely documented for easy and fast learning, so once you are started, there is nothing between you and your killer game but coding and creativity.

LGame is built around the users wishes, so do not hesitate to suggest and critique!

Create a LGame project

LGame comes with a file called LGameProjectMake.jar which is an executable UI and command line tool. You can simply execute the JAR file which will open the setup UI. LGame

Built-in over 30 game example(Part screenshots):

LGame

LGame

LGame

LGame

LGame

LGame

License : http://www.apache.org/licenses/LICENSE-2.0

This Java implemented game framework(but will provide a cross-compiler contain C#,C/C++,Go,JavaScript or other programming language implemented),Support IOS\Android\WP7\PSM\Mac\Windows\Linux.

Android 开发经验分享
随手点击下面广告支持本站吧
 
Android 开发经验分享