Unity WebGL or JS framework WebGL

Started by
6 comments, last by Tom Sloper 7 years, 11 months ago
What you prefer when you develop web game ? (I am not mean flash craps games or PHP click games like tribal wars or ogame etc. - But modern HTML5 games).
Unity engine export into webGL (no WebPlayer, its require their plugin), I know its just experimental version but its there.
Or some Javascript framework (for canvas/webgl), like phaser.io pixi.js playcanvas etc. ?
What is better ? What did you prefer ?
For game developer comapany is better unity with webgl export, becuause they can fast develop games, but its still engine with limits, license and its only scripting.
And the other hand, second choice sounds better, developing in javascript with some framework. Its more low base as unity.
Advertisement

A pretty high percentage of WebGL content is developed the same way Unity and Unreal's exporters work: taking a runtime written in native (i.e. C/C++), and cross-compiling it to asm.js + WebGL via Emscripten.

Rolling everything from scratch in Javascript is certainly feasible for smaller projects, but you lose out on a lot of the features offered out-of-the-box by native game engines and frameworks.

Tristam MacDonald. Ex-BigTech Software Engineer. Future farmer. [https://trist.am]

It is a tricky question and there are 2 big things to consider.

1. Are you targeting desktop web or mobile web or both?

2. Are you thinking 3D or 2D?

Will cover 2 first:

Rolling your own 2D engine is much much (MUCH) easier than a 3D one is if you do not have much experience with engines.

You can literately get a basic 2D game engine prototyped in a day or two without much trouble.

3D on the other hand and you have a lot more on your place, file parsing, shaders, culling, animations/skeletons, more complex management of assets etc...

1: Games that target the web you have to concious of filesize (as that is download/waiting time) and stability, at the moment the webgl tech from the big players such as unity and unreal is nearly there but not quite in my opinion. Much crashing and instability on every demo I have seen so far and those are only demos never mind a genuine long terms production piece. It is getting better though and hopefully soon we will get there, but if you are targeting desktops remember that folks don't upgrade their pcs as often as their devices. Hell my pc could be considered ancient and is still going strong.

I would be weary of fulling committing to webgl output from unreal or unity just yet as there is still a lot at steak and you don't want to be stuck waiting 6 months for the next big release to fix a show-stopper!!

I have made games with js/webgl, unity, flash and air. So no true experience with unreal sadly yet.

As a side note re web-games...

Here are some example web and device games made with flash just to show what it is capable of as so many people seem unaware:

light of the darkness:

armed with wings:


mars tommorow:

cheops adventure:

avengers global chaos: https://forums.tigsource.com/index.php?topic=48790.0

divide by sheep: http://tinybuild.com/dividebysheep

catch yellow: https://vimeo.com/123876950

maze myth:

isl:

pokaboo:

ancient planet:

ghosts of memories:

city monkey:

tsiouqe:

lumino: https://vimeo.com/97832046

Anyway, best of luck whatever route you go for :-)

Hi Hadik,

I'm the CTO of PlayCanvas. So I can offer my (rather biased smile.png) thoughts on this...

Obviously Unity (and Unreal) are extremely well established game engines. Both primarily designed to create native (PC, console and mobile) applications. If your primary concern is to build a native game, then you could do a lot worse than use one of these two engines.

When it comes to building web games. First I think you can pretty much discount Unreal 4. They have some experimental support for HTML5 exporting but it doesn't seem to be well-supported and isn't a focus for them.

Unity are making great progress with they WebGL export. They clearly see it as an important replacement for the now defunct web player. However, the main issues lie with the cross-compilation process that they use to create web games. Their biggest issue is the size of the code that they generate. For example, their angry bots demo generates 19MB of javascript code for that game. That is without any assets.

By comparison, the PlayCanvas Engine is 128kB to download, and you can fit a complete game into a few megabytes. From our experience this is critical when it comes to getting people to actually play your game. As many as 40% of page visitors give up if the page takes longer than 3 seconds to load, so getting that loading time down is very important.

This also leads into the second issue that Unity has. They bundle all assets into huge data files which are downloaded upfront when you load the game. This prevents dynamically streaming in content at runtime. Something that PlayCanvas is designed to do.

Finally, mobile browser support. Officially Unity don't support WebGL on mobile. And when you see the amount of javascript they are generating you can see why. They are just about scraping by on desktop OS's with powerful processors and tons of memory but as bwhiting says, they have many crashes and issues. I don't see how they are going to solve that problem for the limited mobile hardware.

With a JS/WebGL first engine like PlayCanvas, mobile is no problem. Our engine runs fine on mobile and games that are designed to run on mobile have no issues.

Everyday we deploy new features that take us closer to the kind of features that Unity and Unreal have. We already have the most advanced WebGL engine in the world, with Physically based rendering support, skinned animation, built in physics, real-time shadows, etc. And there is loads more to come!

To summarize, If you're designing a game for a native platform Unity/Unreal makes a lot of sense. If a primary platform is going to be web. You can get much better performance, cross-platform behaviour and probably better user-numbers by using a JS-first engine. And if you use PlayCanvas you're not losing too much of the toolset functionality compared to the native engines.

Thanks,

Afaik, webGL export feature of Unity is far from being acceptable as stated above. (Have no idea about Unreal)

If you consider 2D , Phaser is a good option (Pixi is used by Phaser as well) . And for 3D , Three.js (especially if you care about backward compatibility) or Babylon.JS are good choices.

mostates by moson?e | Embrace your burden

http://blogs.unity3d.com/2015/12/07/unity-5-3-webgl-updates/

Hello daredevildave,

There is one big downside to PlayCanvas, though: it can only be used in a web browser, online. Second, we need to pay per month to get increased storage and team members, whereas Unity is free with no limits of size whatsoever. Third, PlayCanvas owns our data, which is totally not okay.

If you guys somehow release a new standalone version of PlayCanvas (on OSX and Windows) without theses constraints, we might be interested.

Thanks for your help!

Hi Hadik,

I'm the CTO of PlayCanvas. So I can offer my (rather biased smile.png) thoughts on this...

Obviously Unity (and Unreal) are extremely well established game engines. Both primarily designed to create native (PC, console and mobile) applications. If your primary concern is to build a native game, then you could do a lot worse than use one of these two engines.

When it comes to building web games. First I think you can pretty much discount Unreal 4. They have some experimental support for HTML5 exporting but it doesn't seem to be well-supported and isn't a focus for them.

Unity are making great progress with they WebGL export. They clearly see it as an important replacement for the now defunct web player. However, the main issues lie with the cross-compilation process that they use to create web games. Their biggest issue is the size of the code that they generate. For example, their angry bots demo generates 19MB of javascript code for that game. That is without any assets.

By comparison, the PlayCanvas Engine is 128kB to download, and you can fit a complete game into a few megabytes. From our experience this is critical when it comes to getting people to actually play your game. As many as 40% of page visitors give up if the page takes longer than 3 seconds to load, so getting that loading time down is very important.

This also leads into the second issue that Unity has. They bundle all assets into huge data files which are downloaded upfront when you load the game. This prevents dynamically streaming in content at runtime. Something that PlayCanvas is designed to do.

Finally, mobile browser support. Officially Unity don't support WebGL on mobile. And when you see the amount of javascript they are generating you can see why. They are just about scraping by on desktop OS's with powerful processors and tons of memory but as bwhiting says, they have many crashes and issues. I don't see how they are going to solve that problem for the limited mobile hardware.

With a JS/WebGL first engine like PlayCanvas, mobile is no problem. Our engine runs fine on mobile and games that are designed to run on mobile have no issues.

Everyday we deploy new features that take us closer to the kind of features that Unity and Unreal have. We already have the most advanced WebGL engine in the world, with Physically based rendering support, skinned animation, built in physics, real-time shadows, etc. And there is loads more to come!

To summarize, If you're designing a game for a native platform Unity/Unreal makes a lot of sense. If a primary platform is going to be web. You can get much better performance, cross-platform behaviour and probably better user-numbers by using a JS-first engine. And if you use PlayCanvas you're not losing too much of the toolset functionality compared to the native engines.

Thanks,

Necro. Closing.

-- Tom Sloper -- sloperama.com

This topic is closed to new replies.

Advertisement