Blast Arena Open Beta

blastarena.io is a modern bomberman multiplayer game made with PlayCanvas. It’s been in development for almost a month now, and it is time for it to start seeing some player action, so it can grow bigger and improve to become a better, complete game.

The open beta is scheduled to begin tomorrow (30th of November) at 6pm (GMT+1), covering three main regions (EU, and the US West and East coasts).

This stage will let me gather useful data on my server’s architecture, player feedback and also trigger glitches & bugs before the game can be fully declared as not a beta.

You will be able to gather honest feedback & suggestions with a tool inside the game, and don’t hesitate to use it, it is very important for me if I can improve the game in any way.

Features

  • Fast, arcadey bomberman multiplayer game.
  • Short matches of around 5 minutes.

Coming features

  • Friend-matching; Being able to directly enter your friend’s match.
  • More powerups.
  • More arenas and variations of arenas.
  • Character customization (Clothing, Bomb model, particles, animations…).

For instant updates, you can follow me at twitter (@devMidgard) or follow the game’s twitter (@blastarenaio)

3 Likes

Would be cool to have it already running, as most people will simply forget about it tomorrow… :frowning:

It is in fact already running, just not public :wink:

I am just giving myself a bit of time to finish polish some things up (especially UI) before it goes public, want the best first play-experience I can deliver right now.

Thanks for your interest, can’t wait to know what you think about the game.

The beta is now open!

Current Supported Regions

  • Europe.
  • US West Coast.
  • US East Coast.

You can now play at blastarena.io!

Things are expected to break at some point, I will be working hard these starting weeks to get everything stable. The game is going to be in a few game portals in the next few days also. Let’s get this rolling!

Please, report any glitches/bugs found and give your honest feedback! Really valious for me.

1 Like

It’s a Blast!

Nice little details with facial animation. :slight_smile:
You could use VSM shadows, set up the VSM8, so it looks good, and switch to VSM32 so it looks great on desktop. On mobile it will fallback to VSM8 if float textures not supported. VSM is easier to control how smooth they are, to reduce ladder effect.

Consider using ACES tonemapping with changed exposure, to bring the contrast to the game.

Plays pretty well! :+1:
From gameplay, feels like walking on blast fire after it is exploded, kills you, which is a bit annoying :frowning: So in classic bomberman that was a case too, but there was a clear visibility when that would kill and and when not. Not sure how to overcome it without sacrificing smooth fading out.

The major thing I believe you want to address is initial download size, right now it is 19.8Mb! That is probably way-way too much for initial download.
Checked Network tab in Dev Tools, and straight away: mp3’s and wav’s take 80% of that download size. Simply untick “preload” on those assets, so they are loaded in async, and will be playing once available.
Then you have two day 28.mp3 and DAY 5.mp3, you sure you need both?
Wav is not playable on all platforms, consider using mp3’s.
Using mp3’s might be associated with licensing troubles :frowning:

map_forest model is 1.7Mb gziped, it seems like you use way too many triangles for it, or not utilizing clones of geometry. Consider optimising it, and reusing tiles/trees so to reduce model size.

And 2k for cubemap faces, looks like they are looped (1 could be used? :slight_smile: ) or reducing size of it, could do good save too.

So utilising async assets feature, by unchecking preload on assets that wont need right at the start. And with sounds it is pretty much always the case. Even music won’t need at the start.
Then if entity is shown and requires those assets, engine will trigger loading automatically, and it simply will appear once loaded. If you do want to trigger loading straight after preloading is done, you could simply do this:

  1. Tag assets you want to start loading after app is started with postload.
  2. Then trigger loading for them:
var assets = this.app.assets.findByTag('postload');
for(var i = 0; i < assets.length; i++) {
    this.app.assets.load(assets[i]);
}

After some of loading/assets optimisations, you can definitely bring your game under tiny as just 4Mb, and make it already interactive by user. So they can start queuing and enjoying the game earlier.
Bounce rate of user raises with every Mb they have to wait and download :frowning:

It does seems that you encode your WebSockets traffic already. Are you using protobuff? In https://tanx.io/ we do use them, they did made good difference, and even from code point of view - brought some packets schemas, which is easier to manage.
Consider adding permessage-deflate extension to WebSockets, that enables gzip for larger messages. But if you do already binary (protobuff) that wont make much effect.

1 Like

Hey this is really fun! Honestly :smiley:

Obviously it’s more exciting when you are close to your opponent as in the beginning you are just trying to get there (and then it ends pretty quickly). But I laughed out loud in many cases - well done :smiley:

1 Like

Hey, that’s a lot of high quality feedback you’ve got right here! Thanks a lot for that :slight_smile:

I am aware of the initial download size and I’m pretty frustrated with it, so your insight in this is also really valuable, I’m gonna see what I can do with the songs! (Yep, I need them both, I feel there has to be ambiance for when you’re waiting and for when you’re fighting!). For now on I’m gonna try and untick “preload” and upload a new build, tanx.io loads lighting fast, I would love that, too!

I will also convert the wav’s to mp3’s in the meantime. And what do you mean with licensing troubles?

The arena model is also something I was trying to sort out but wanted to launch the game before I would look into that, especially to see how it played and how servers ran, which apparently is pretty good! I am planning on releasing a new arena christmas-themed soon (1-2 weeks timespan), so I will try to do all you said. I have really zero experience in optimizing my games, so the fact that you’re helping me out on this too is pretty amazing!

For the WebSockets traffic, I made myself a really simple Packet Building/Reading/Sending library in C# back when I used Unity WebGL, and as I already know how it works and needed this game out fast, I just ported my library to JS and I’m using it with this game, was planning to continue on improving and using it :slight_smile: I don’t know about protobuf, will have to do some research later!

Again thanks for the feedback, it’s being really helpful, will get back to you if I don’t manage to reach a small download size!

1 Like

Very happy to hear that!

Yes, at the beginning it’s a bit slow, that’s planned so you begin on exploding blocks near you and collecting powerups to have advantage over your opponents, but the powerup-spawning-algorithm is pretty bad now, so there can be big portions of the arena without any powerup, while there can also be powerups grouped together, that’s another issue I have to address in the following days!

Perhaps proceduraly removing some blocks from level so that you have some sense of tunnels towards middle - might get some randomness in replayability.

Looking forward to your optimisations. And do feel free to ask us questions if you get stuck with something.

And, btw. Detailed Feedback - would be very very appreciated. Feel free to post it either to private message or in another topic. We do need good detailed feedback, especially of things that you might find odd or even frustrating. Be honest with it :slight_smile:

And you could use distance to player of a blast to affect the strength of camera shake. As it is too much of it when blast is not close.

Holy shit, asset streaming is the key :slight_smile:

I have uploaded a new build with all assets marked for streaming and it now loads in just an instant. It’s awesome!

On the engine, my biggest concern is UI, it’s really tedious to use any of the existing solutions right now (my game uses plain css), but I know you’re already working on a better solution for the future, so I can’t really blame it right now.

Out of that, I think this engine really deserves a lot more attention, it’s amazing how fast can you build lighting-fast 3D web-games… which with my Unity Experience, it’s absolutely impossible to have with that engine. PlayCanvas is my new favorite :slight_smile:

I will make some improvements to the block-generation algorithm tonight and implement what you just suggested, it seems like a nice way of approaching the issue of variation :slight_smile:

1 Like

That is really warm and great thing to hear by the Team!

Projects like yours can perfectly showcase powers of PlayCanvas, and it helps to bring the word out there. So keep it going :wink:

I really like the game, simple and funny. Really a GREAT job!

1 Like

The Open Beta is being a nice success, I have fixed some critical stability problems on the servers this morning, which were crashing constantly and not responding for minutes. This has to be improved tho, as there is still some really laggy moments sometimes.

There is now always >40 simultaneous players combining all regions (the most active is US West Coast, which already has had +1000 matches played since the start of the Open Beta).

1 Like

I’ve noticed US West Coast is chosen by default.

You could use GeoIP Lite from maxmind to identify country using IP on server side, it returns you a region as well.
There is state too (for US). And you could then have a map of countries/states to your server regions, that would allow you to select region automatically.

Or there is another way, which depends on what cloud services you use. For example in Route53 in AWS, there is load balancing based on latency to specific data centres. It tries to balance users to the lowest latency datacentre. And because it hits specific servers of region, on back-end you already know that they should select default same region. So when you template HTML, just adding that - would pre select region.

Second option is what we do for tanx.io, so there is no even region selection. And we do have 3 regions there as well, same as you: eu-west, us-west, us-east.

1 Like

Great stuff. It’s a great fun game. Though I echo Max that the camera shake could be toned down a little from far away explosions :slight_smile:

What sort of launch promotion have you done to get the players you currently have?

I had considered doing automatic region joining but I feel like players might want to play on other regions aswell, when there’s a small player count on their own, but I also think that placing the nearest region to you as default would be great, so I am gonna add that to my trello and will implement it today or tomorrow :slight_smile:

Glad to hear that :slight_smile: Indeed, there’s pending changes on the Camera Shake, I will make it based on distance.

The promotion: I am slowly partnering with game portals like iogames.space, minijuegos.com (miniclip), and others that will be coming through the next days/weeks as I shape the game and polish it for the big launch.

Consider make a page on facebook and add a button to play that link directly to the game, i have just done that with my project

Today’s Update
· Fixed a series of critical crashes on the Game Servers.
· Reforced Server Security (less probability of cheating).
· Players can now see how many players are currently on each region.
· Added social network buttons, and a contact button.
· Improved Screen Shake.
· Improved Map Generation.
· Improved Powerup Generation.
· Usernames can no longer be greater than 25 characters.

2 Likes

Important Server Update (still in progress)
The Game Servers have been ported to socket.io, I am no longer using my C# lib as it was constantly crashing, causing important connection delays and more. Socket.io provides a stable and more than tested lib and I have ported the whole servers from C# to JS, just to take advantage of that.

I will however keep improving the servers and keep track of possible crashes with socket.io (as I still am not experienced with it).

The game is now also available at PlayCanvas! http://playcanv.as/p/OLxHsOQz/