Recommended Posts

http://shellshock.io

My first BabylonJS project is a whacky multiplayer first person shooter featuring, well, eggs, of course! It's in very early development and still fairly rough around the edges, but it's super easy to jump in quickly and play. It's just been made public, so finding people to shoot may be a little hit and miss (pun intended). Enjoy!

Facebook: http://www.facebook.com/ShellShockGame

Twitter: https://twitter.com/eggcombat

Share this post


Link to post
Share on other sites
16 hours ago, Will Welker said:

Not normally a shooter fan but I just played that for an hour LOL.  Very nice game mechanics.  What are you using for a back-end?

Haha; great! Glad you're enjoying it. I'm normally not a big shooter player either, ironically enough, but thought this type of game could fill a niche that has opened up a bit since the Unity Web Player is on the way out.

I'm using NodeJS on the back end with Express and the 'ws' module to support Websockets. I started out with Socket.io, but it doesn't support binary transport, and I really needed to keep packet size down as much as possible. Obviously, C/C++ would be a lot faster on the server, but Node allows me to share code on the server and client ends, making things a whole lot easier, and it's actually been handling the load quite well so far. At least 100 players can play at the same time, and I don't even have multi-core support in there yet.

Share this post


Link to post
Share on other sites

I seem to be stuck at 30FPS using 64Bit Firefox. Other than that, I really liked the game and played it quite a while already. :D

Some guy had a 90+ steak and didn't seem to take any damage. I think his name was eeey. Looking through the code, I presume it's client-authoritative, right? That means a reactive approach is needed to prevent these types of cheats. Have you any plans for this? I'm simply asking, because it's interesting..

Again, nice game.

Share this post


Link to post
Share on other sites
20 minutes ago, Raggar said:

I seem to be stuck at 30FPS using 64Bit Firefox. Other than that, I really liked the game and played it quite a while already. :D

Some guy had a 90+ steak and didn't seem to take any damage. I think his name was eeey. Looking through the code, I presume it's client-authoritative, right? That means a reactive approach is needed to prevent these types of cheats. Have you any plans for this? I'm simply asking, because it's interesting..

Again, nice game.

It's actually entirely server-authoritative. There's simulation on the client-end, which is probably what you're looking at, but the server has the first (and only) say as to when a player is actually hit, where he can move, etc. That makes connection quality paramount to successful play, so you might make a note of your ping as well. Generally, for any first-person shooter, anything under 100ms is considered good. Problems arise when it gets much higher, and especially when it fluctuates a lot. I'm quite close to the USA server, and my ping is generally under 20. I had a 45-kill streak myself once, so 90+ doesn't seem entirely out of the ordinary. People who play FPSes competitively on a regular basis have a serious advantage, I've noticed.

Make sure you aren't downloading anything while you're playing. Steam, for instance, can be a killer if it happens to be downloading an update in the background.

As for your frame rate, there's probably a way to increase that, but not knowing your system specs, I can't be sure. I get 50-60 pretty consistently on my MacBook Pro. A guy I know has a pretty powerful PC, but it was running significantly slower until he tweaked something. I can't remember if it was a driver update, or a WebGL setting in his browser.

There's some good information here regarding browser settings (including Firefox) in regard to WebGL:

https://superuser.com/questions/836832/how-can-i-enable-webgl-in-my-browser 

Edit: Actually, the game won't run at all if you don't have WebGL enabled, but Firefox does have a lot of settings for it. Enter about:config in your address bar, and search for webgl.

Share this post


Link to post
Share on other sites

Chrome does not have the same issue. It might just be some of the many extensions I have messing it up :P

Very impressive game.

I'm using CannonJS server-side for a little FPS project of my own. (On hold while I work on something else).

I assume you use BabylonJS on the server as well? In that case you are very welcome to throw out some pointers on how you did just that, as I know it's a very sought after feature of the community.

Although I use CannonJS, I have a project that would benefit from a BabylonJS backend as well.

Share this post


Link to post
Share on other sites

I'm using some Babylon on the server side, but basically just for the vector and quaternion math. Since Babylon at large expects to run in a browser (and therefore, a 'window' variable), I just cut-out the portions that I needed; portions that don't require window, and put them in a new file. I'm not using a physics engine, and the collision detection I'm doing myself, because I wanted to keep it as simple (and therefore, fast) as possible. The map is just a grid, so collisions just come down to a simple box test.

Share this post


Link to post
Share on other sites

It is hard to quantify what make a great game.  But when you see it, you know it.  I think you have hit a sweet spot with this.  It reminds me of Angry Birds in that it is simple yet satisfying in a way that we are not used to.  Definitely run with this one LOL.

Share this post


Link to post
Share on other sites

Okay, so I have a list of things that I think that should be changed or added in the game:

  1. Rename the soldier class to be "Hard Boiled". Makes sense, right?
  2. More than three classes. I mean, at least add one more. Like an explosives-based character that instead of grenades it has remote explosives and a grenade launcher for its primary weapon.
  3. Cosmetics. You know, skins, right? Hats, at least. Or, just a reskin of the normal character. Like an easter skin, dragon egg skin, etc. I'd love to give you some pointers!

I hope this works out and I hope at least one of these gets added to the game. Thanks!

Share this post


Link to post
Share on other sites

Update: I'm using the full-on Babylon Null Engine on the server-side now to handle collision detection. The maps are divided into 3D grids, and every occupied cell contains a reference to an arrangement of one or more AABB or OBB bounding boxes for quick collision calculations, all loaded from a .babylon file exported from Blender. The game supports all sorts of map elements of all shapes now.

Also, kudos to everyone who worked on Babylon v3.3. I'm making the transition now, and I'm seeing huge improvements in some key areas. A number of animation problems have disappeared. SPS mesh building is orders of magnitude faster than it was, which is great, because that's how I build the maps at run time. A number of other smaller items that I had clumsily patched up myself no longer need to be. Good stuff!

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.