endel

Members
  • Content count

    38
  • Joined

  • Last visited

About endel

  • Rank
    Advanced Member

Contact Methods

  • Website URL
    http://endel.me
  • Twitter
    https://twitter.com/endel

Profile Information

  • Gender
    Male
  • Location
    Hamburg, Germany

Recent Profile Visitors

969 profile views
  1. Hey everyone! I've just released version 0.5.0 of Colyseus! If you haven't heard of it, it's a multiplayer game server for Node.js that has been designed to be really easy to develop real-time multiplayer games as a solo developer. Read more details of this release here: https://medium.com/@endel/colyseus-html5-multiplayer-games-made-simple-v0-6-0-alpha-update-d5d0e5eba4a0 Repository URL: https://github.com/gamestdio/colyseus Cheers!
  2. Babylon.js licensing, pricing

    BabylonJS uses Apache License 2.0, you can do pretty much anything: https://tldrlegal.com/license/apache-license-2.0-(apache-2.0)
  3. Hi @Arcanorum, There are two 2d physics libraries I can think of. You can include both of them on Node.js, and also run in the client, if necessary: P2: https://github.com/schteppe/p2.js MatterJS: https://github.com/liabru/matter-js I believe you can simulate only the physics in the server (movements, collisions, etc), not including the whole engine (Phaser) in it. Cheers!
  4. @iiceman hey! alright. I see you're using your client's data and trying to replicate it to all clients. Depending on the kind of game you're making, this could be fine - it's very likely, though, that all clients will be seeing a completely different state of the game. Ideally, you should only send the action the clients are trying to perform to the server, validate and then process them on the server. For position update, the clients should send the command "move forward", for example. And then the server calculates it based on the data it already has, and updates the room state. When the room state is changed, the changes will be broadcasted to all clients - and only then the entity will actually move. In authoritative server implementations like this, it's important to never trust the client. Most of the game loop will be implemented on the server (movements, collisions, actions, etc), even though some of them can be present in the client as well as some sort of prediction when it's necessary. The clients are usually just a dumb representation of the data coming from the server. Hope this helps, and please let me know if you have any questions regarding the usage of Colyseus Cheers and happy holidays!
  5. @iiceman hey! this issue has been reported already, you just need to set NPM_CONFIG_PRODUCTION environment variable to false on Heroku. EDIT: If you want to try out the client v0.6.0 alpha, I've recently added a new feature that simplifies listening to changes coming from the server: https://github.com/gamestdio/colyseus.js#listening-to-room-state-change The boilerplate is using v0.5.x that doesn't have it. @Raggar about client prediction, it very much depends on the experience you want your players to have. Sometimes, simply interpolating values in the client is enough. wilds.io just interpolate player's positions, for example. Getting slightly out of sync is not really a big deal when it doesn't influence the gameplay directly. If every player is kinda delayed, nobody will ever be ahead in time. For really fast objects then it might make sense to apply some sort of client-side prediction. So I'd recommend evaluating the kind of objects you have, and which ones really makes sense to apply prediction or not. Cheers!
  6. How do you guys do multiplayer

    Hey @Nicolai, I'm using Colyseus for my prototypes. It was designed to be really easy to integrate server and client. JavaScript client: https://github.com/gamestdio/colyseus.js Server: https://github.com/gamestdio/colyseus I'm currently working on a multiplayer racing game that I plan to release by mid of next year. I'd be glad to support you with yours if you have any question. The beauty is that you can code both client and server using TypeScript, which is quite handy. Cheers!
  7. Hi. Your boilerplate has inspired me to have a go at a multiplayer game. My experience so far is only with static sites.  I have forked the boilerplate repo and cloned it locally. Having made some changes to reflect the name of my game I pushed it to my github here https://github.com/dragonmaths/nine-clone-morris

    Following the instructions here https://devcenter.heroku.com/articles/getting-started-with-nodejs#introduction

    I have successfully got to the stage of creating the app but on trying to push it I got a load of error messages after this point.

    remote:        sh: 1: tsc: not found
    

    Prior to all this I had tried cloning the boilerplate and using the deploy button but the deployment never finished. I also tried the steps on the the original clone and got the same error message.

    When and if you get the time perhaps you could give me a suggestion where I'm going wrong.

    My node is 3.9.2 and npm 3.10.9.

    Should you need any further information please let me know.

    Thanks in advance

    John

    1. endel

      endel

      Hi John, that's great :)

      Brian had the same issue recently: https://github.com/endel/babylonjs-multiplayer-boilerplate/issues/1

      You can also set the "NPM_CONFIG_PRODUCTION" environment variable to "false" through Heroku's administration panel.

      Don't hesitate to open issues on GitHub if you have any issues.

      Good luck in your game! :)

      Cheers!

    2. JohnK

      JohnK

      Thanks for the information, next time I have a problem I will check the issues first. Soory not to get back to you sooner but when I set the

      "NPM_CONFIG_PRODUCTION" environment variable to "false"  I came up with a timeout problem (I am dragonmaths) and didn't want to reply and say all is well and neither did I want to mention the problem here as I had found out about using issues on github and so wanted to use that.

      Anyway all my issues so far you have resolved and I appreciate both the boilerplate you have contributed and the help you have given to me and others .

      I expect I will come across new problems as I further learn about multi-user sites and heroku.

      Once again thank you for your help

    3. endel

      endel

      You're welcome! <3 Good luck with your game! Don't hesitate if you need help regarding multiplayer. I'm currently working on some updates for Colyseus. I hope to release them by the end of December. Cheers!

  8. Hi @inteja. Oops, that was my mistake. The fix is quite simple, though. I've updated the project already. You can pull with git or update your local version manually. I couldn't test it on Windows, but it should work fine. Please feel free to open issues on GitHub if something goes wrong, I'd be happy to support you. Cheers!
  9. Hey guys, I've created a template project using BabylonJS + Colyseus, and made it available here: https://github.com/endel/babylonjs-multiplayer-boilerplate There's a button to deploy your own in the README. Here's the live demo: https://babylonjs-multiplayer.herokuapp.com/ It's basically a simple BabylonJS example from the website, connecting to a Room on Colyseus. If you open the developer tools you'll see a new log appearing for each user visiting the page. Feel free to ask if you have any question and good luck with your games
  10. Sure, I'll do my best. I'll create a boilerplate integrating both libraries and hopefully post it here tonight
  11. That's great news. Would be a great opportunity to test out Colyseus for multi-player communication, if you haven't already. The project has been completely rewritten in TypeScript recently. Feel free to post questions on GitHub and Gitter if you struggle with something.
  12. Wilds.io - Multiplayer hack'n'slash

    Awesome. Thanks for sharing your experience I'm making an open-source game server called Colyseus (https://github.com/gamestdio/colyseus), which by now I only used for some prototypes in game jams, and extrapolating data is exactly what I'm trying to achieve right now. I'm trying not to over-engineer but applying lag compensation techniques can be kinda messy. Hope your game become a huge thing!
  13. Wilds.io - Multiplayer hack'n'slash

    That's amazing. Did you made everything by yourself? Great work! Smart move to separate the sprite sheet of the legs and arms to allow rotating them separately. What was your biggest challenge on making it multiplayer? Keep it up!
  14. Hi there! For those who are interested in making multiplayer games, I'm trying to create some simple ones to demonstrate how to use Colyseus as your game server. Here's the first one: https://tictactoe-colyseus.herokuapp.com (mobile friendly) Source-code: https://github.com/endel/tic-tac-toe Thanks for checking out!
  15. How to keep attributes on objects?

    Taking three.js as an example: they have a plain "userData" object on every Object3D. Using pixi.js you could do the same thing on DisplayObject's.