Differences between Pixi.js and Sheetengine

Sep 9, 2013 at 7:40 PM
Here is Pixi.js:

http://www.goodboydigital.com/pixi-js-has-landed/

I'm wondering about difference between theses two display engine. I want to make a video game in html 5 canvas isometric.

Do you have any informations about this?

Thank you!
Coordinator
Sep 9, 2013 at 9:02 PM
I don't have any information about pixi.js, but if it does not explicitely state that it supports isometric graphics, then I doubt it would. From what I've read I would say that pixi is for 2D games specifically and not isometric. Sheetengine is specifically for isometric (2.5D) and not for 2D or 3D. So if you need isometric I would suggest you search for the terms 'isometric' or 'orthographic' or '2.5D' in relation with javascript engines and check out if sheetengine is something that you could use. A standard 3D engine could also be an option, some 3D engines can render using isometric projection, but if you want to use hmtl5 make sure that it is supported by the engine and that the engine does not rely on webGL exclusively. Sheetengine is html 5 compatible, so it works in IE9, too.
Sep 9, 2013 at 9:14 PM
Pixi.js is 2.5D too (isometric) with shadows too.
Canvas renderer and WebGl.

They said this:

"Although I fully intended pixi.js to be used to make wonderful, juicy HTML5 games, it is not a game engine – it is a rendering engine. It puts things on your screen and thats it, although I think it does that quite well though :D This means you can use pixi.js in conjunction with all the other great libraries out there in javascript land without having to choose ‘A’ over ‘B’."

What means the difference between game and renderer engine?

Thank you.
Coordinator
Sep 9, 2013 at 9:30 PM
This usually refers to the feature set the given library is equipped with. A game engine usually handles the game loop, handles collision-detection, implements basic physics engine, takes care of animations and playing audio, and also does the rendering. A rendering engine does not care about audio or collision detection, it only renders stuff and everything else needs to be manually implemented by the developer. Sheetengine is also more close to a rendering engine (hence the title "display engine"), however it does contain some simple collision detection which is clearly not part of rendering.

So think about what features you need for your game and check out if those are contained in the engine you chose. If the engine does not contain a feature you need you will have to implement it for yourself or look for another library that solves that specific problem (for example if the game engine is not equipped with physics simulation you can use a javascript physics library to implement physics in your game and use the game engine for the rendering).

Everything sheetengine knows is written down at the documentation (https://sheetengine.codeplex.com/documentation), and also check out some real-life examples (https://www.crossyards.com/developers) to have an idea of what sheetengine is capable of. Compare these examples to other engines' isometric examples and I think that will give you enough information to decide.
Sep 9, 2013 at 9:45 PM
Thank you for the explanations.
I will take a look.
Dec 27, 2013 at 7:16 AM
I think this deserves a look at. The main reason is that pixijs invokes WebGL (2D and 3D) meaning that the game will use the GPU for performance. This is huge. If you look at their examples, the games run lightning fast on mobiles, PCs, tablets, anything.

It's a rendering engine, not a game engine, just like sheetengine. I think it could be possible to port sheetengine into pixijs and gain the amazing benefits it offers while still keeping the core of sheetengine the same. It would turn sheetengine into an isometric engine powered by WebGL basically.
Coordinator
Dec 27, 2013 at 10:44 AM
Edited Dec 27, 2013 at 10:46 AM
Although I understand the benefits of WebGL please note that it is not an HTML5 standard. There are HTML5 compatible browsers that do not support WebGL but do run everything written with sheetengine. It is gaining popularity though and more widespread support - it is clear. My question: if you want to work with devices/browsers supporting WebGL technology, why not use three.js in the first place? It does have isometric renderers, too, and it is by far the most popular and supported rendering engine out there.
Dec 27, 2013 at 11:59 AM
Edited Dec 27, 2013 at 11:59 AM
I think the difference that I've seen between threejs and pixijs is that pretty much all the examples for threejs run poorly on iOS (and most likely other mobile OSs). Pixijs' example game ran like butter on my phone, I was quite amazed, it literally felt no different from playing a native application. The reason why I think Pixijs would be a good fit for a possible sheetengine port is because of it being primarily a WebGL 2D renderer, rather than a 3D one. I think sheetengine is great as it is, but through my bench marking I've run into some performance related issues. Probably a lot of these can be fixed via code optimizations, but some may be hard to crack such as having multiple sheets changing sprites constantly throughout a game scene while handling movement. At this point if the hardware could be utilized for some extra power, it would be really awesome. Don't mean to say anything bad about sheetengine at all, it's really good and I'm still using it, just thought it might be an idea for the future to consider maybe.
Jan 3, 2014 at 6:58 AM
So I had a look at this https://github.com/corbanbrook/webgl-2d/blob/master/webgl-2d.js it seems the implementation is very simple. I'm going to try and do a mashup with this and sheetengine and see if I can make it work.
Coordinator
Jan 6, 2014 at 5:08 PM
Wow, I didn't know this. Of course, my original aim was to create an HTML5 compliant engine so I never really dug myself into WebGL. But I certainly see your points. I'm gonna take a look at this library but I'm quite sure there could be more improvements made than what using this lib brings - if we assume the user uses a browser that supports WebGL.
Jan 6, 2014 at 9:18 PM
Yeah it's pretty cool. However, this library is not really supported anymore and it has some pretty large omissions (no support for arc for instance). I think if you were considering to work Web GL improvements into SheetEngine, I think you'd either want to roll your own or convert SheetEngine into a kind of PixiJS plugin of sorts. With the amazing performance they are getting across all devices, I'd say there's no need to reinvent the wheel, PixiJS has a really solid base from which to build 2D HTML5 games now. Even the stuff they are doing outside of Web GL implementation is very good. I'm not sure how hard it would be to do that though.