Jump to content

BlackMass.io - Multiplayer ARPG / Bullet Hell


zeebo
 Share

Recommended Posts

Hello - I've been working on a multiplayer action rpg + bullet hell game for about 5 months now and decided to share a short gameplay video. The front end is Pixi.js for rendering, React for the UI, and the rest is a custom engine. The back end is socket.io & Node.

Features Implemented so far

  • 3 classes - Warrior, Mage, Rogue
  • ~12 different skills
  • ~40 item types with magic and rare item generation
  • ~30 different mobs
  • 4 maps
  • authoritative server
  • Persistent characters, inventory, skills with DB

https://blackmass.io - I'll leave it up for a bit

 

 

Link to comment
Share on other sites

Looks great!

Multiplayer bullet hell must have been difficult to implement. How did you handle the projectiles? It was difficult to see from the video if there's any client-side prediction for the bullets (I would assume there's none?). Is there any lag compensation? Is there also pvp? :)

Link to comment
Share on other sites

21 minutes ago, Antriel said:

Looks great!

Multiplayer bullet hell must have been difficult to implement. How did you handle the projectiles? It was difficult to see from the video if there's any client-side prediction for the bullets (I would assume there's none?). Is there any lag compensation? Is there also pvp? :)

Yeah there's definitely some challenges involved. Some lag compensation techniques I used, prediction for smooth client side movement, lerping other players and mobs ~150ms in the past, and skill cast time and fire rate to mask latency. How a projectile fire works is client initiates a fire, there's a 150ms "fire rate" or delay to allow the client to confirm with the server. The projectile is never actually fired on the server and the event gets broadcasted to connected players. The delay is actually a fairly smooth experience since it's consistent.

If a client detects a collision between their projectile and a mob the server is notified and replays the old event and past mob position to verify. 

As you can see in the top right corner I had about ~50ms latency here connecting to a cheap server but anything up to 150 is smooth and I still need to test higher latency than that.

No pvp at this time although I may add it in the future.

Link to comment
Share on other sites

13 minutes ago, zeebo said:

Yeah there's definitely some challenges involved. Some lag compensation techniques I used, prediction for smooth client side movement, lerping other players and mobs ~150ms in the past, and skill cast time and fire rate to mask latency. How a projectile fire works is client initiates a fire, there's a 150ms "fire rate" or delay to allow the client to confirm with the server. The projectile is never actually fired on the server and the event gets broadcasted to connected players. The delay is actually a fairly smooth experience since it's consistent.

If a client detects a collision between their projectile and a mob the server is notified and replays the old event and past mob position to verify. 

As you can see in the top right corner I had about ~50ms latency here connecting to a cheap server but anything up to 150 is smooth and I still need to test higher latency than that.

No pvp at this time although I may add it in the future.

You getting ddos attack?

502 Bad Gateway


nginx/1.10.0 (Ubuntu)
Link to comment
Share on other sites

Just now, zeebo said:

Nah it's not up and running right now.

for me doesn't work. Showing that 502 bad gateway. I'm guessing it's because your hosting provider is bad? Usually such things show up which have very limited bandwith for hosting.

Link to comment
Share on other sites

2 minutes ago, zeebo said:

The node server wasn't running - I started it just for you. 

I'm guessing you used RainingChain tutorials to get started? Some art and base is off there. Good job tho, game runs really smooth and is really well made. But the thing is that, you should optimize interface for smaller screens otherwise i'm playing from laptop and chat is collapsing with slotbar.

Link to comment
Share on other sites

36 minutes ago, Arcanorum said:

You need some sort of 'Guest play' button on the login screen so people can jump straight in, or people will just see the log in fields and leave.

Definitely. I plan on adding a guest play you can roll over to an account.

Link to comment
Share on other sites

22 hours ago, zeebo said:

As you can see in the top right corner I had about ~50ms latency here connecting to a cheap server but anything up to 150 is smooth and I still need to test higher latency than that.

This convinced me to document how I'm testing this. Not sure if it's new to you or not, but here goes: Multiplayer Platformer Log #4 – Testing Environment

Link to comment
Share on other sites

1 hour ago, Antriel said:

This convinced me to document how I'm testing this. Not sure if it's new to you or not, but here goes: Multiplayer Platformer Log #4 – Testing Environment

Yep that's what I'm doing - Note adding a tc rule on ubuntu only effects outbound packets. If you want to more accurately simulate latency you may want to add outbound latency on windows using Clumsy that way you can test 50ms to server, 50ms back rather then ~2ms to server, 100ms back.

Link to comment
Share on other sites

Wow really nice! 

I´m working in a similar game and you have already implemented lots of thinks i would love to have :).

I think you need to build a city or something like that to start in a safe place!

A mini map or something like that would be great. I want to see all the map and I didn’t know where to go!.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...