I created multiplayer online game with p5js


#1

Hi everyone, I would like to share with community the game I created with p5js as a renderer. It is a realtime multiplayer game, similar to AgarIO and other games in that ecosystem.

You can try it out on http://owom.io

Feel free to ask any questions regarding tech, and any ideas on how the game might be improved are welcome!


Best Practices for Implementing Multiplayer
#2

#3

Thanks for sharing this!

It might be helpful to distinguish between charged bombs and ready-to-drop bombs. Right now, the UI indicates when bombs are fully charged, but not whether or not you can drop one – if you already have one dropped, you can’t. The latest bomb could be highlighted only if another bomb is not already deployed.

Interesting decision to drop the bomb in front of the player movement direction, rather than on top of the player or behind. Is that copied from AgarIO?


#4

Thank you for a great feedback!
Yes, the bomb part is confusing, there should definitely be some more indication whether or not a bomb can be deployed.
At first, I had a plan to let players deploy more than one bomb, somehow it complicated the logic and I decided not to include it in the first release.
Honestly, dropping bomb is an unhappy result of a position interpolation on the client. On the server bomb is assigned a player’s current position, and on the client it is rendered on that position right away, but the players movement is gradually interpolated to that position. This is why you always see bomb in front.


#5

New Feature! - Bomb Radar

More on the offical game subreddit


#6

What are you using for the server (software) backend? Did you build your own?


#7

Interesting. One idea if you wanted to work around that appear-in-front behavior, I imagine you could have the server respond with the current location of the requested bomb, and the client display instead show the bomb appear being “carried” in top of the player (in motion, not dropped yet) until it reaches that server bomb position – then it is “dropped.” This would all be client-side display – from the server perspective, everything stays the same, with a bomb appearing at the player current position.


#8

Yes, that’s a good plan. I will take some time to fix this. Thanks once more!


#9

Hi, I’m using nodejs on backend.


#10

Any chance you are open-sourcing the client and server?


#11

Yes, but not soon, since I’m quite busy with a few other things I’m working on. For client I’ve developed a small lightweight framework to boost development, which when ready will be released on github. As for the server, I can’t say.


#12

Cool game !! Nice sharing here, looking forward to check out he code :slight_smile:


#13

Cool game! While some vendor js files are not accessed in China.


#14

Hi, gaocegege probably google analytics and/or facebook/twitter social plugins are being filtered.


#15

Hey just checked out your game and I have couple of questions I hope you can answer for me:

  1. I checked your code using chrome console I see you use a vundled js file which is good I guess but I have got to ask why did not you obfuscate it? I can see you changed variable names to single letters but shouldn’t you obfuscate it better?

  2. How did you promote your game? Who did you contact with?

  3. Where did you get the .io domain? Was it free? If not how much do you pay for it? I am currently stuck with ithub pages which has been great so far but adding .github.io at the end is a little annoying.

  4. Are you using socket.io for communication? If not why?

  5. This one is not a question but more of a favor to ask can you check out my game it is a multiplayer space fighting game with the server running on heroku: https://extensionshoe.github.io/

Thanks in advance :smiley:


#16

@Extension_Shoe Can you provide a link to your post. I believe ppl should be commenting about your game in your post. You can always cross-link to this post if you think it is important.

I find your code a bit laggish. It could be server or it could be the way you handle your graphics as you are using a larger game space.

Kf


#17

Hi @Extension_Shoe!
Just tried out your game, It’s fun. Keep up the good work!

  1. JS bundle you see is a result of webpack optimize (uglifyjs) plugin working in production mode with default options. I’m really not concerned about hiding the code.
  2. I’m trying to post regularly on Twitter/Reddit/Youtube.
  3. You must buy one. io domains are ~35$/yr. Try Namecheap or GoDaddy.
  4. Yes.
    Cheers

#18

I’m currently working on a game development framework with wich Owom.io was developed.
Trying to simplify some things, add new features to it, generally polish the thing before actual release.
Here is my first video on the progress.
https://www.youtube.com/watch?v=p-gwhy8z3W0


#19

This is a cool game! I can’t wait until you make the backend code open source!


#20

Framework which powers owom.io is now available on NPM.
Feel free to play with it, and any feedback is much appreciated :slight_smile:
https://www.npmjs.com/package/froobit