MiniRoyale2 - Battle Royale game on PlayCanvas

Hello everyone!

I just released my new game MiniRoyale2. The previous version MiniRoyale was also on PlayCanvas engine but I’m not happy with first one.

In this year, I spent more time on PlayCanvas and tried to understand all parts of engine. And released this new game.

I tried to optimize it as much as I can but still there are some performance issues that I’m working on.

There will be also different maps and new features soon. I just disabled some of them on engine, before stabilizing them.

Also, if you have any idea or suggestion or find any bug on game, please don’t hesitate to share with me. I’ll continue to update game with new features and bug fixes.

I just want to thank you for PlayCanvas team for that amazing engine! Every part of this engine is amazing, I can’t even compare it with Unity.

Happy new year everyone!

To play game visit https://miniroyale2.io/

Best regards

12 Likes

Ok so first I wanna say Happy new years to everyone out there,Were in a brand new decade that will change our lives forever with this new tech coming out soon espicially 5G.

Now lets talk about Miniroyale2,It’s an amazing game all around.Like I love the feel of the game,the new design,and the characters.But there’s still some bugs llike how you press one of the side button like shop or leaderboard and it freezes for a couple second like some cooldown for if you press to amny different buttons at the same time.

NOW TIME TO TALK ABOUT THE BACKEND(Node.js)
So like the first miniroyale you dropped I wanna make my hit game Matrexball mulitplayer for everyone to play against their friends and against eachother.Now I First wanna know how did you first get a serverside to work with the engine like is the server on the engine or is it somewhere else.Second I wanna know how did you make the become public to the world,did you use a webhost then upload the game to the the hoster.Next I really need help on learning how to use node.js to make a multiplayer game like your’s.So if you could do that,It would really help out alot and save lots of time searching.And thnx again the game is amazing :100::two_hearts:

2 Likes

Inventory problems can be about network lags, I still optimize game, in new versions it should be better.

I use NodeJS WebSocket (ws) library for backend side. You can communicate client and server over websocket connections.

For client you don’t need any other library. I was using socket.io since then, but now I can work with vanilla websockets too. Maybe for beginning you would prefer socket.io.

Making game public is easy. There are hosting services or dedicated servers that provides disk spaces and servers and public IP address. Please check out Heroku for that. They have free plans, you could test and see how it works. You’ll be simply using git to deploy your game to a public env.

For domain part, go to Godaddy.com buy a domain for your game. Then go to Cloudflare, they also have free plan. Connect your domain to cloudflare (that will provide you SSL and a DNS interface, so you could connect your IP to your domain over Cloudflare service)

When you enter your domain on browser, it will automatically connect to your IP and serve your static files. Like you test your game on PlayCanvas test URL, your users will be able to play your game on your domain.

There are plenty of tutorials on web that shows you how to do that thing step by step. If you need search terms, please try these : How to build website on Heroku, how to buy domain on Goddady, Cloudflare setup etc.

Also, making a multiplayer game can be confusing at the beginning. But after you understand some basic concepts you get familiar all parts of it.

On multiplayer games there is always a host and there are clients. All clients are basically connected to server, they send some info to server, and server broadcasts these informations to other clients, so users can see what you do, where you at etc. With this way, all clients are synced thanks to server.

You’ll be sending some important details, like player’s positions, rotations and use these datas to render world.

I’ll give you an example ;

  • I connect a server
  • You connect a server
  • My client sends an information about my current position, like this : x : 10, y : 0, z : 10
  • This data goes to server and server sends this information to you, not me
  • Once your client gets that information from “server”, not from my client, it renders me in your client, simply clone a player (entity) and triggers setPosition(10, 0, 10); to put me correct position on your client.

This simple concept will you give you the idea of multiplayer. We are not really in your client, but with some functionalities we show all clients to each other and that provides such an amazing experience.

9 Likes

Thanks for sharing your experience @commention, much appreciated!

Thnx man this has really helped out alot

Also think you could do a video tutorial for this

2 Likes

Been playing for a couple of days and everything looks promising… But there’s quite a way to go.
The main issue i have with the game at this point is that I am almost certain that there are AI in the game, which are not affected by the poison area. Because players die really fast without even touching the smoke, but some “players” (im guessing AI) are running in death zone without taking damage. So im usually just left to die by the smoke while AI is running somewhere in the corner of the map, in the death zone, untouched.
Im not a game developer, so i dont really know this, but im thinking that in order to get better optimization and less load on the engine, you should change the way death zone (smoke wall) looks, because at the moment its way too taxing with all the detail, in my opinion.

There is no bot in game, I also fixed death zone issue, with next update it won’t happen again. Thank you for your comments.

Suggestion: Make it, so that the queue timer starts counting when at least 5 players join the lobby. Because right now there’s too many 1-3 man games (yes even 1 man games).

When trying to enter certain building (3 storey red one) through a window when descending with parachute, you can get stuck in between third floor and the roof.

Needles sometimes wont restore health.

Sniper rifle should have lower fire rate because its over powered in my opinion. And this is comming form a sniper player myself,- its just too easy.