There are few things to look at:
- Download Size - this is what defines how long it will take untill users will be able to interact with your content. In the web, you always want to have it as tiny as possibly. Consider using streaming and async assets loading to deliver only necessary content first, and stream what needed on demand.
- RAM usage - this usually is not a problem, unless you doing something very crazy, computing a lot of data in your app.
- VRAM usage - this is major consideration for mobile. Mobile VRAM is actually shared with RAM, and is not very large. So for example, if you use uncompressed, raw texture, lets say PNG of resolution 4096x4096, that is about 90Mb of VRAM with mipmaps. On low end devices with 512Mb of RAM, this means you barely can have few of these, remember that this RAM is shared by OS and other apps too. So VRAM usage - is huge consideration, and we do provide tools to deal with it well:
a. You can load/unload textures on demand.
b. You shall compress textures to mobile friendly compression formats, that can save at least 6 times of VRAM usage.
c. Geometry shall be simple as well, as large buffers takes longer to download, parse, render and they take more VRAM too.
Pretty much same rules apply as for native development, but you have to consider the fact that users in web do not want to wait loads of MB to download. So you have to keep initial download as small as possible.
Downloading on mobile internet will be always slow. You have to make initial download tiny, regardless of technology you are using.
30Mb - is a lot, unless you deliver content to users that have to access it, people will simply not wait that long.
You can have app running as long as you want. If it is engaging and users like it - they will use it as long as they want.
Same rules apply here as for any other platform development, nothing special:
- Manage your memory, avoid leaks.
- Make content engaging.
- Make content accessible (UX).
Yes. You have to keep things simple. Same process applies here as for any other tools developing optimised content for mobile - it has to be small and compressed.
Writing code for PlayCanvas, is writing same JavaScript for any other purpose. You have full control over your code and environment. There is no compilation/translation in the middle. And there is no isolation - you have full access from JS to anything that browsers offer as for classic web development.