Sharlenwar wrote:But, if any of you find a kick butt engine, then please share as I am interested. I'm diving into the php/msql realm for now, as I want to mess with that. I do plan on using an engine for a 2d game I have in mind.

OK, I have been working with Phaser a bit more, and I see what Alain's problems with it were. Structuring is crap. Both it and Kiwi.js (which both were created by the same person, although Kiwi is now maintained by a different team) seem to be completely centered around the concept of "states", where all code that you need for a particular state in your game go inside the state code file. But if your game is complex, and if you would want to share classes between a state, I don't see an easy way to do that. The whole board is wiped clean every time you load a new state. For example, if you wanted to have your main character exist in two different states, you would have to include all the code for the character again in the second state. That is not acceptable.

Obviously, I am not a master with either one of these engines, and there very well could be a way around this, but it just seems that with the impressive feature lists found in these two engines that a pretty fundamental feature would be to have a psuedo-class system like that in ImpactJS. It would make complex games much easier to structure. I wonder if these engines were originally designed for a smaller scope than they are trying to fill now, and a class system would require a complete recoding.

a_bertrand wrote:Yes checked out is the term.... I don't want to link myself to any of those. I had to link myself to Three.js and I can tell you I already see the down side.

What do you mean by "linking" yourself? Like as far as threejs?

My hazarded guess would be that you don't want to rely on a higher level library if you don't have to. My concern is that I am digging into threejs, because I'm not sure I could accomplish anything in my lifetime in webgl without using threejs. On the other hand, I'm not a fan of too many 3rd party abstractions.

WebGL is way too low level to use directly. Basically, it is one of those cases where you would only use it directly if you want to make WebGL engines, but you would use an existing engine if you want to make games.

tourmaline wrote:would you be compelled to use WEBGL directly if your game engine's performance was lacking, and you might try improving very specific areas? Just a thought.

I would still probably start with something like three.js, and optimize areas of it as needed. But even then these would only be very specific optimizations for your own use case. Most major and even minor area optimizations have already been done on three.js by its giant open source army of devs.

Starting directly with WebGL is almost like starting with DirectX or OpenGL for desktop games. It just isn't a good idea unless you are or want to be a 3D rendering engine developer. With DirectX or OpenGL, a single dev wanting to get results nearly on-par with even last gen quality engines could expect to sink a couple of years into the engine's design before writing a single line of code of their game logic, and that just isn't reasonable for most game devs. Things aren't quite that bad with WebGL, but that is the direction that WebGL lies in.

Using libs like Three.js means you depends then on the development of those. Which means, tomorrow the lib could die (yes it's open source but you never know), or they could change the way you would use the lib and you either need to stick with an old version or continue to edit your own code to be able to follow them. Sorry that just hurt.

a_bertrand wrote:Using libs like Three.js means you depends then on the development of those. Which means, tomorrow the lib could die (yes it's open source but you never know), or they could change the way you would use the lib and you either need to stick with an old version or continue to edit your own code to be able to follow them. Sorry that just hurt.

That is my general fear and is why I'm just about opposite on the DRY mantra. I think if I'm going to do something worth doing, I should probably go as low level as I can afford (time wise).