PlayCanvas vs Unity

Hi, can some who as experience with both engines give a fair comparison of both engines, I am still on the fence about migrating from Unity since PlayCanvas is still relatively new and feature lacking compared to Unity. One of the main appeals of PlayCanvas so far is having access to source code.

Any input would be much appreciated.

1 Like


I’ve worked with Unity a lot for at least 3 years and I’ve been using PlayCanvas for about a year and a half now, so I’d say I have a fair amount of experience using both engines.

As you said, PlayCanvas does not have all the features that Unity has, but then again you don’t necessarily need all those features in every game. PlayCanvas offers the most important features needed to make a good looking game, that will work in all devices. So let’s take it one by one:

- Entity / component system

This is very similar to the Game Object / component system in Unity where you have empty Game Objects with no functionality until you add components. One noticeable difference from Unity is the script component. In Unity all scripts are treated as different components. In PlayCanvas there is one script component that contains a bunch of scripts. Each script can expose attributes that you define in code (similar to Unity) so that you can edit them from the PlayCanvas Designer.

A cool thing about the PlayCanvas script component is that you can add any URL in there as long as it is valid javascript. So for example you can easily add jQuery, Tween.js or whatever else, and you can also easily integrate your game with popular social media, like Facebook, Twitter etc. In Unity you would need to download an SDK for the platform you want to integrate and SDK’s are not always that easy to work with or that documented in the community.

Other than that you can enable / disable Entities or individual components, create Entities programmatically etc.

- Physics

Unity has integration with PhysX and recently added Box2D. PlayCanvas has integration with Bullet by using a javascript port called Ammo.js. So like in Unity you can have colliders, rigid bodies, triggers etc.

- Lighting

PlayCanvas supports the most popular light types like directional, point, ambient and spot lights.

- Input

Most input devices are supported, like mouse, keyboard, game pads, touch etc.

- Particles

Unity has Shuriken - PlayCanvas has simpler particle emitters like the ones used in the game Swooop and more advanced emitters are in development.

- Audio

Like in Unity you can have 3D / 2D audio sources that support all the audio formats that are supported by browsers.

- Scripting

PlayCanvas offers a very powerful and also simple API for scripting game behaviour. It is pure javascript (not a javascript hybrid like Unity’s UnityScript).

- Custom Shaders

If you want to write custom shaders, then in Unity you have to learn how to use ShaderLab. In PlayCanvas you write shaders in GLSL which is widely documented.

There’s a lot more features like that but let me get to the clear advantages of PlayCanvas:

- Cloud

Everything is stored in the cloud, your assets, your code, your projects etc. This means that they are safe from hard disk failures (I have been in game jams where a failed hard disk meant 40 hours of work went into the trash). Also it means you can access your projects and work on them from anywhere in the world and also from any device. No need to download a > 1 GB file etc…

- Collaboration

PlayCanvas was built from the ground up with collaboration in mind. This means you can add people from all around the world to your project and work on it simultaneously (think of it like editing a document in Google Docs).

- Source Control

A thing that really bothered me while working with Unity was source control. First of all it is not clear how to structure source control with Unity so that it’s easy for everyone to collaborate, and also not push everything on the server. After 3 years I never found a satisfactory solution and instead just ‘lived’ with it.

In PlayCanvas you don’t really have to worry about that. If you want to use source control the only thing you need to have in your repository is your code. PlayCanvas has Github and Bitbucket integration so it’s very easy to set everything up.

- Cross-platform

Unity has all sorts of build targets and special cases. You have to develop with that specific build target in mind. In PlayCanvas everything is deployed to WebGL so it works on almost all devices now (iOS too since the latest update!).

- Publishing

In PlayCanvas when you publish something it is just a link. You can share it anywhere you want and the users who click on that link are instantly in-game. No need to download plugins, install software or anything like that. When your game is just a link, then it’s a lot easier for someone to click on it and have a look than if you have to install it on your machine. And in situations like game jams for example I always only look at games that have a web link instead of games I need to download and setup, just because I don’t want to go through all the fuss.

- Support

After Unity got so popular it became increasingly more difficult to get support when you’re having issues. There are still unanswered questions I asked in the Unity forum after years. This is natural, as you can’t keep track of everybody when there’s a gazillion questions. In PlayCanvas you get instant support from users and also from the actual developers. If you ask a question on the forums or the answers site you usually get an answer within a day.

You also get instant fixes because it is very easy for the site to be redeployed. In Unity the deployment process is naturally a lot more difficult. In PlayCanvas the fix can be deployed in hours after a question has been asked.


I hope this gives you more insight - there’s a ton of stuff I haven’t mentioned but this is already too long!



Thank You for the helpful insight and explaining the differences between both engines while pointing out the pros and cons. Though I am still on the fence about both engines, mainly because of Unity’s larger development community and the many asset store solutions available for accelerating development.

Good question from @S0L0 and great answer from @vaios!

I can say I’ve used Unity for 5 months, but since my first playcanvas game, it became my primary game engine. One of the reasons is that I can natively make games on Linux with Playcanvas, while Unity Editor is Windows/Mac only.

The tiny size of the projects, the collaboration, the support, the price, and the git integration are also great differentials from Playcanvas, in my opinion.

1 Like