Can I make this with PlayCanvas?

Hi guys, I have a game idea in mind with specific requirements, and I’m currently deciding between Unity webgl and playcanvas for what I want to do.

  1. It’s going to be a game that contains various levels of terrain/interactive things that the player can walk through in 3d. However, there will need to be 2D “minigames” that the user can play that pops up after interacting with a certain object in the 3D world. Furthermore, these players could possibly have an inventory of items, rewards, etc; or just a points counter of some sort (work in progress)

  2. There need to be user login capability

  3. Users need to be able to save their data somewhere online (location, character customization, level, rewards, inventory, etc.) so that they can play the game from a different computer, login, and start exactly where they were.

  4. *Important: The website hosting the game will also have a login for “moderators” of the game, who will need to be able to see the game data that all of the players generate (either updating every set interval, or whenever a player saves). I imagine this requires some server side scripting?

  5. Possible multiplayer

Thanks to anyone who responds, I would love to hear your responses, and methods to how I can achieve these tasks in playcanvas, I’ve been having trouble finding examples of any game that does something like that. However, there are many examples of these things in unity. But I’m more comfortable with JS, and my game doesn’t require anything overly complex or highly graphics intensive. Also I think playcanvas seems to be smoother and faster than unity webgl.

I will probably be using Django as a web framework to allow certain people to view player game data, along with the game (in the same page)

You can certainly do all of these things with PlayCanvas. Most of these actually do not really involve PlayCanvas at all, they just fall into generic JavaScript / Web programming. If you want to store things online somewhere you either need to create a web server in your language of choice, or use an existing online service that allows you to store stuff online using some sort of REST API.

Multiplayer again is not a PlayCanvas thing - you can do multiplayer by using WebSockets and you will also need to create a server or use an existing solution like Photon.

Essentially using PlayCanvas or not should not really be based on the criteria you mentioned as this can be achieved by any engine. Choosing PlayCanvas is the better option for WebGL because it is a lot more lightweight than Unity, it runs faster, it runs on mobile devices as well, and currently it’s just a more stable and easier solution than Unity as far as WebGL is concerned.

2 Likes

Great! What’s the best way to manage players being able to log in to the game? Do you recommend some existing tool, or just encrypting all of the passwords and storing them in a database?

Edit: I noticed things like player.io exist, but they don’t seem to be used too much?

Those are generic web questions (not gamedev, but web), and there are plenty ready solutions as well as information out there.

1 Like

Got it, thanks. How much of a performance difference will there be (game should be running on chrome in chrome OS). Will unity be a problem/a serious limit on the game (again nothing super complex or graphics intensive)?

Also, what do you think is the best way to save game state? Is there a recommended method (I mean everything, block positions, character info, every problem/challenge solved, etc), and does anyone have any recommendations on cloud save methods or how I could do that myself?

Edit: not multiplayer

Start slow. Making multiplayer game, or even game on the cloud - is very complicated topic. Without experience it is very unlikely anybody will be able to pull something off.

Go slowly and steadily. Start small, and be organised, don’t get ahead of things.

Questions you ask, you have to find answers to through experience. Answers from those who had experience wont help much, because deep understanding and experience - is what you are actually looking for, not specific answers.

Developing for Unity you will be using C#, and dealing with normal web stuff from it, is an ugly process and quiet slow.

Just go slow, don’t rush.

Learn JavaScript here: https://www.codecademy.com/learn/javascript
Learn PlayCanvas here: http://developer.playcanvas.com/en/

Please, ask specific questions in the future, with specific problem.
There are plenty info around the web. Gathering and investigating - is a mandatory skill you need to learn. Asking others all the time - won’t get you far.

As @max says, online multiplayer is a huge subject and it’s not something where you can just plug-in a library and it ‘just works’. You have to deal with client side hacking, latency issues, dropouts, data bandwidth etc.

There are services to make this easier such as Photon which is available on a range of engines and platforms including Javascript (example project by ryotaro).

BlastArean.io by devMidgard wrote a bit on how he implemented the multiplayer here: http://devmidgard.com/blog/income-report-4.php

Valve have written a bit on how the Source engine approaches networking: https://developer.valvesoftware.com/wiki/Source_Multiplayer_Networking

That should give you a start in learning material. Good luck!