Hi !
Featured games (91)
games approved by the League of Dukes
Games in Showcase (800)
Games in Android Showcase (237)
games submitted by our members
Games in WIP (866)
games currently in development
News: Read the Java Gaming Resources, or peek at the official Java tutorials
    Home     Help   Search   Login   Register   
Pages: [1]
  ignore  |  Print  
  UX2Engine - 2D Game Engine  (Read 5397 times)
0 Members and 1 Guest are viewing this topic.
Offline Dxu1994
« Posted 2013-11-07 10:39:51 »

Hello everyone, I just thought I'd post here to showcase a project I've been working on for quite some time.

Ux2Engine is a framework for developing 2D games that I've built from the ground up to be pluggable into different types of APIs and frameworks, designed with speed and simplicity in mind.

The flagship game behind the engine is Renoria, a 2D MMORPG currently in development by my company Uxsoft:

For more info on Renoria please check out my other topic:

Current features of the engine:

  • Pluggability - Plug any renderer, physics engine or audio renderer you want! Java2D/AWT, LWJGL and JOGL/NEWT currently supported. Audio currently only supports JavaSound and Physics engine currently only supports Box2D, but support for any framework can be added.
  • Need to load encrypted resources? Just add a filter driver into the AssetManager and away you go!
  • Need to load a custom format into the game? Just plug in your custom loader into AssetManager and all the details are hidden from you Wink
  • Built in networking module running on Java NIO, all you need to implement is the protocol encoder & decoder!
  • Fine tune any part of the engine without changing the engine itself, just extend any classes derived from the engine!
  • LWJGL module has a TextureLoader which uses dynamic texturepacking to improve performance by decreasing amount of bindTexture calls. Also has young/old generation textures to better manage VRAM.
  • Prefer immediate mode? Just plug in an immediate mode renderer, or prefer VBO graphics? Just plug in the LWJGLVBORenderSpace Smiley
  • Input details are also transparent, all you need to provide is an InputHandler and the actual details of whether its using LWJGL, Swing or NEWT is completely hidden

Example code from Renoria that shows the engine in action (runtime choice between Java2D or LWJGL):

UxEngineOptions options = new UxEngineOptions();
options.fullscreen = useFullScreen;
UxAssetProvider renoriaEncryptedProvider = new RenoriaEncryptedAssetProvider();
options.displayMode = new UxDisplayMode(requestedWidth, requestedHeight, 32, UxDisplayMode.REFRESH_RATE_UNKNOWN);
options.setComponent(UxComponent.RENDERER, useJava2D ? new Java2DRenderer() : new LWJGLVAORenderer());
options.setComponent(UxComponent.ASSET_MANAGER, new UxAssetManager(useJava2D ? new Java2DBufferedImageAssetProvider(renoriaEncryptedProvider) : new GLTextureAtlasBuilderAssetProvider(renoriaEncryptedProvider, runOptions.getOptionalInt("textureCacheSize", 10))));
options.setComponent(UxComponent.PHYSICS_ENGINE, new RenoriaPhysicsEngine());
options.setComponent(UxComponent.INPUT, new RenoriaInputHandler());
options.setComponent(UxComponent.NETWORK, new RenoriaPacketCrypto());

Ux2Engine engine = new Ux2Engine(options);

UxEngineWindow wnd = useJava2D ? (new SwingDoubleBufferedEngineWindow(engine) : new LWJGLEngineWindow(engine) );

wnd.loop(new RenoriaGameLoop());

Example screenshots of my stress testing for it:

Java2D renderer (80 FPS, 2000 sprites)

LWJGL renderer (with index buffer, vbo and texture packer) (200 FPS, 5000 sprites)

LWJGL renderer (with immediate mode and textureRect) (120 FPS, 5000 sprites)

I'm thinking about opensourcing parts of the engine later on, so other people can put it to use (once the main game using the engine is complete!)

Offline lcass
« Reply #1 - Posted 2013-11-07 15:39:05 »

LOl those pigs. Very neat though.
Offline StumpyStrust
« Reply #2 - Posted 2013-11-07 17:56:48 »

This is the first "Check out my game engine" that I was actually like,  Shocked

Not trying to rip on those who are making there own but you are doing many things right here. Using box2D for physics instead of writing your own. That I like. I also like the java2D support even though it is basically useless. Do you have nice shader wrappers? and maybe some build in shader stuff? Lighting? Particle system?  Cheesy

Glad that you are developing and engine as you are making a game. Seems really silly to make an engine before you make a game as you never quite know what stuff you need or how it should be done in an api.

Keep up the good work.

And I like the stone pigs.  Grin

Games published by our own members! Check 'em out!
Legends of Yore - The Casual Retro Roguelike
Offline dezzroy

Senior Newbie

Exp: 10 years

« Reply #3 - Posted 2013-11-08 05:10:07 »

I also like the java2D support even though it is basically useless.

It's fine for having a debug renderer while you do main logic development, waiting to do the real renderer last. To each his own, I guess.

I like those sprites! I'm sure the game engine is great, too  Smiley
Pages: [1]
  ignore  |  Print  

Riven (342 views)
2019-09-04 15:33:17

hadezbladez (5124 views)
2018-11-16 13:46:03

hadezbladez (2006 views)
2018-11-16 13:41:33

hadezbladez (5393 views)
2018-11-16 13:35:35

hadezbladez (1116 views)
2018-11-16 13:32:03

EgonOlsen (4532 views)
2018-06-10 19:43:48

EgonOlsen (5387 views)
2018-06-10 19:43:44

EgonOlsen (3079 views)
2018-06-10 19:43:20

DesertCoockie (3972 views)
2018-05-13 18:23:11

nelsongames (4524 views)
2018-04-24 18:15:36
A NON-ideal modular configuration for Eclipse with JavaFX
by philfrei
2019-12-19 19:35:12

Java Gaming Resources
by philfrei
2019-05-14 16:15:13

Deployment and Packaging
by philfrei
2019-05-08 15:15:36

Deployment and Packaging
by philfrei
2019-05-08 15:13:34

Deployment and Packaging
by philfrei
2019-02-17 20:25:53

Deployment and Packaging
by mudlee
2018-08-22 18:09:50

Java Gaming Resources
by gouessej
2018-08-22 08:19:41

Deployment and Packaging
by gouessej
2018-08-22 08:04:08 is not responsible for the content posted by its members, including references to external websites, and other references that may or may not have a relation with our primarily gaming and game production oriented community. inquiries and complaints can be sent via email to the info‑account of the company managing the website of java‑
Powered by MySQL Powered by PHP Powered by SMF 1.1.18 | SMF © 2013, Simple Machines | Managed by Enhanced Four Valid XHTML 1.0! Valid CSS!