michaelcalkins

[Phaser] RangerSteve.io - Ranger Steve: Buffalo Invasion

Recommended Posts

Ranger Steve is a web (phaser) based realtime 2d shooter that let's you have instant lan parties with your friends.

Ranger Steve: Buffalo Invasion

YouTube Teaser Trailer

Fast paced, intense shooter, explosions 
This is a realtime, "shoot em up", explosive multiplayer game that makes playing with your friends as simple as sharing a link.

Made with: Phaser.io, ReactJS, NodeJS, Socket.io, and Redux.

Screen Shot 2016-05-27 at 8.55.24 AM.png

Screen Shot 2016-05-31 at 4.59.55 PM.png

Screen Shot 2016-08-21 at 2.16.33 PM.png

share.png

Share this post


Link to post
Share on other sites
9 minutes ago, drhayes said:

Can you talk about the server-side stuff? I see you're emitting messages for shooting and jumping from the client. How is that reconciled on the server? How are you accounting for lag? How do I cheat so I don't keep getting killed by better players? ( ;

Excellent questions :P
Please remember this game is 3ish months old and very Alpha.

Quote

Shooting and jumping from the client. How is that reconciled on the server?

I have to implement a throttle so a user can't move more than X per frame hopefully preventing cheating.  (Not there yet)

Quote

How are you accounting for lag?

To account for lag, I rely on the information sent from the you the client. (There are a lot of problems here)

Quote

How do I cheat so I don't keep getting killed by better players?

Download an in browser script editor, figure out how to get into the Phaser game variable and make the bullets you shoot have a damage value of 100.

Also a non hacker strategy that works well against good players is P90(M4A1?) + RPG weapon selection.  Fly up in the air and drop down on your enemies, they never see it coming and the RPG one shots them.  Otherwise the P90 shoots fast enough to kill them.

In the attached screenshot someone did this by editing the size of their bullets for the RPG.

Screen Shot 2016-05-21 at 6.16.24 PM.png

Share this post


Link to post
Share on other sites

Game looks great and plays great, one thing I have noticed though is your developing on the live version. A few times I've jumped on I've seen black boxes around my character, then I refreshed and it went away.

Share this post


Link to post
Share on other sites
46 minutes ago, rgk said:

Game looks great and plays great, one thing I have noticed though is your developing on the live version. A few times I've jumped on I've seen black boxes around my character, then I refreshed and it went away.

I develop locally and push to the server.  There are some race conditions happening that I haven't nailed down yet.  Likely a sprite didn't load in time when I "started" the game.

Share this post


Link to post
Share on other sites
3 hours ago, GAME.WTF said:

Hi Michael,

I mean the waiting time for respawn was too long, waiting everytime you die is painful, you could just add a button "Respawn now" to respawn without waiting the whole timer

I've had a few people mention this now.  We'll definitely take it into consideration, thanks for the heads up!

Share this post


Link to post
Share on other sites

This looks really good.

Can you elaborate a bit on how you account for lag? How often do you actually send player positions back and forth?

Also, how do you load your level? Do you load the whole level at once, or do you partially load the areas the player sees?

Share this post


Link to post
Share on other sites

@Nicolai

I'll do my best to explain clearly, I'm new to this MMO game dev.

Networking

  1. Player pushes button and the game reflects their player's position immediately
  2. Every frame we send the player's current position to the server (60 times per second)
  3. Our server validates that data and then updates that player internally
  4. Our server has a loop that sends an update of all players 20 times per seconds
  5. When you receive the game loop event your local game now knows about new and disconnected players, creating and destroying sprites (ideally would be reusable sprites)
  6. It then updates all player positions by tweening them to their new x,y

Loading levels and changing levels

  1. We use Phaser's game state manager
  2. You load the game and start in "Boot" which loads basic game stuff that will never change depending on map or game mode (sounds, guns, etc.)
  3. You move on to the "Preloader" state which loads the map
  4. You move to the "Deathmatch" or "TeamDeathmatch" state which loads the gamemode and logic for the rules of play

Fair warning we are changing our methodology all the time and are open to suggestions.

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.