All Activity

This stream auto-updates     

  1. Past hour
  2. Its not, its just amount of work to make it right for your game is big. There always be people who complain about lags, and you have to be balanced about effort you spend on them. Suppose 100 people joined your game, and 10 had bad connection. 10 left. Now, in a month or two situation in network changes, and 9 from those 90 have lags, they leave, but those 10 previous guys don't join back just because their network became better Client prediction depends on you game, and if you have players very close (touching) and that affects gameplay - even slight lag will make experience bad. I made my IO game (gameofbombs.com) in 2012-2013 I was very lucky for it to be playable, i didnt know anything about networking experience of past games and i did it! Made it better in 2014-2015, and from 2017 I hired the only guy who understood my algorithms and he's making new version of engine that will have much less lags. Its going on for 3 years already and its very hard. Of course you can use nengi to start, but networking is very big and you dont stop there, you'll have to modify it for your game.
  3. Today
  4. I have written some advice about this on the last page of my JavaScript course, here: https://www.grelf.net/jscourse/publish.html See the 4th item on the page.
  5. Please bear with me, I am completely new to game networking. Any help and improvise in this question will be appreciated!!! I have been playing around with BJS (babylon.js) for a while now, wanting to make a real-time multiplayer game. I have been searching around the web about game networking, and read this: https://github.com/gafferongames/gafferongames/blob/master/content/post/what_every_programmer_needs_to_know_about_game_networking.md It gave me a clear idea of how should I go ahead. But in all the forums, I hear people saying game networking is very hard, not to waste time on it rn, and stuff. So I thought to give it a try. I used node.js for server with socket.io to communicate to the client back and forth. What I did was, when I receive the server's update about the location, I would compare that to the location of the client (which was predicted, or more like comprehended on the client side) to check whether the difference was under 0.1 (or any number). If it was not, I would redirect the player back to location sent by the server. (there is still some minor jitter in the gameplay) After doing the above, I felt it like a piece of cake. I felt on top of the world! But, I was still trying to figure out what people really meant by "hard". So after bit of more research, I found out nengi.js, a game networking engine for node.js. I noticed people comparing socket.io and nengi.js. Aren't they two different things? socket.io is used for bidirectional communication between client and server, and nengi.js is a game networking engine! This has created a huge confusion in my head. Could anyone please help me with this? Also, please clarify whether the process I did above for client prediction is correct or not? If you need anymore details/info, please let me know! Thanks a lot for reading through! Thanks in advance!
  6. Hello, I would like to add small update to the System Text in text.js in order to make it have New Lines like <br> and typewriter-effect like RPG dialogue. Demo. new game.SystemText('Lorem ipsum dolor sit amet,\nconsectetuer adipiscing elit. Sed posuere interdum sem.\nQuisque ligula eros ullamcorper quis,\nlacinia quis facilisis sed sapien.\nMauris varius diam vitae arcu.\nSed arcu lectus auctor vitae,\nconsectetuer et venenatis eget velit.'); if the text includes "\n", it become line breaks like <br> and user enable typing_effect = true; the text have typewriter-effect like RPG dialogue. First, render\text.js Add typing_effect varable. game.createClass('SystemText', 'Container', { ... /** Enable typewriter-effect @default false **/ typing_effect: false, i: 1, ... Add the following code, when user type "\n", it can do line break effect var lines = this.text.split('\n'); //Check New Lines for (var i = 0; i<lines.length; i++){ context.fillText(lines, 0, (i*this.size) ); _renderCanvas: function(context) { var wt = this._worldTransform; context.globalAlpha = this._worldAlpha; context.setTransform(wt.a, wt.b, wt.c, wt.d, wt.tx * game.scale, (wt.ty + this.size) * game.scale); context.fillStyle = this.color; context.font = this.size * game.scale + 'px ' + this.font; context.textAlign = this.align; //Add the New Lines like <br> and typewriter-effect like RPG dialogue. if(this.text == undefined){ context.fillText(this.text, 0, 0); }else{ if(this.typing_effect){ //Check If typewriter-effect is enable var lines = String(this.text.substr(0, this.i)).split('\n'); //Check New Lines this.i++; for (var i = 0; i<lines.length; i++){ context.fillText(lines[i], 0, (i*this.size) ); } }else{ var lines = this.text.split('\n'); //Check New Lines for (var i = 0; i<lines.length; i++){ context.fillText(lines[i], 0, (i*this.size) ); } } } } Main.js Enable typing_effect this.text.typing_effect = true; game.module( 'game.main' ) .body(function() { game.createScene('Main', { init: function() { var ths = this; this.text = new game.SystemText('Lorem ipsum dolor sit amet,\nconsectetuer adipiscing elit. Sed posuere interdum sem.\nQuisque ligula eros ullamcorper quis,\nlacinia quis facilisis sed sapien.\nMauris varius diam vitae arcu.\nSed arcu lectus auctor vitae,\nconsectetuer et venenatis eget velit.'); this.text.size = 50; this.text.font = 'serif'; this.text.color = '#ffffff'; this.text.typing_effect = true; //Enable typewriter-effect this.text.x = 10; this.text.addTo(this.stage); }, update:function(){ // this.text.text = 'Hello\nPanda'; } }); }); Could you update this @enpu? my code may be not good or more hardcode or not the best solution to achieve , Welcome to give me a feedback to improve my coding skill, Thanks text.js
  7. Hi, I have a bunch of Html5 games, some of them are greatly enjoyed and 2 more currently in development. Let me know what you're interested in doing. Retrobolt@hotmail.com
  8. Rubydesic

    Hitboxes

    The problem is, I want the Graphics object to be initially rotated, e.g. a slanted rectangle that straightens itself when hovered over (but the hit area remains slanted/same size). therefore, the hitArea that I need to set needs to be rotated?
  9. Tried below, but it did not work: http://cristian.sulea.net/blog/disable-browser-caching-with-meta-html-tags/
  10. Hi, When we upload a new version of our HTML5 game the new version is not shown until Internet browser cache is cleared? Does anyone know how to force the HTML5 game to disable caching? Perhaps a change to the index.html file? Let us know, thanks! Game is below: http://fallenangelsoftware.com/stuff/files/SpaceSwap/HTML5/index.html (game uses the AppGameKit Classic engine) Jesse
  11. Yesterday
  12. make a container, use your sprite as a child, and set "interactiveChildren=false" for container. Set hitArea for container as a rectangle. Animate sprite scale ( or width/height, same thing).
  13. Rubydesic

    Hitboxes

    I have a Graphics object that I'm checking mouseover events on. When hovered over, I want the object to get larger and rotate itself, but I don't want the hitbox to change. I'm not really sure how to achieve this, because getBounds returns a rectangle and not a polygon or something like that.
  14. Last week
  15. Hi all, I just wanted to let you know that Panda is still my primary game engine and I have no plans to abandon Panda. The absence of @enpu is unfortunate but don't forget that Panda is open source so most of the time, it is possible to fix minor issues yourself by having a look in the source code. Currently I have two large commercial projects powered by Panda and it is expected that these project will be running for at least several years. Don't forget that Panda by itself is a great engine and that it has a couple of features that not all other engines currently are supporting. Take hires support and the custom Panda GUI for example, these are just great! I will continue to read this forum on a regular basis. If there are questions that I can answer quickly, you can count on my support. Stephan
  16. Yes, told you it was going to be fun This is getting a bit out of my comfort zone ... our approach was using Nginx as the load balancer (with sticky sessions). PM2 approach works fine with this - with each NodeJS application instance running the service on a sequential port and sharing data between them with either a DB or Redis. The Nginx maps inbound requests to each server via internal-IP, and each instance via the port. So let's say 2 servers x 4 core = 8 instances with 8 ports. New user comes to IP:80, Nginx routes them to one of those 8, and remembers which one (so that Websockets can persist). Nginx configuration determines whether inbounds are round-robined or more elaborately determined - it's doing all the smart stuff automagically. It's certainly been solved before, so it's a matter of implementation rather than invention.
  17. box2d is too heavy. I prefer lightweight as P2, in my opinion, at most case, P2 should be best option.
  18. (1) Skeletal Animation Blending is performed by the GPU using pre-baked animation texture. (2) Automatically generated connecting path allows smooth transition between two distinct path animations.
  19. Did Phaser Editor have Code obfuscation function? Can it possible to export a phaser project that making the obfuscated code? Thanks https://phasereditor2d.com/
  20. Hi @Chelsea, I just signed and would like to know more about your platform.
  21. I'm actually having some issues with this topic. I have the following piece of code but for some unknown reasons the callbacks for progress and complete never get called and therefore the progress bar doesn't animate and I'm stuck on the boot scene...anyone can help? import {AbstractScene} from "../../Framework/Components/Core/AbstractScene"; import GameScene from "./GameScene"; export default class BootScene extends Phaser.Scene { private _progressBar: Phaser.GameObjects.Graphics; private _progressBox: Phaser.GameObjects.Graphics; constructor() { super({key: 'BootScene'}); } public preload() { this._progressBar = this.add.graphics(); this._progressBox = this.add.graphics(); this._progressBox.fillStyle(0x222222, 0.8); this._progressBox.fillRect(240, 270, 320, 50); this.load.on('progress', this._onProgress); this.load.on('complete', this._onComplete); } public create() { this.cameras.main.setBackgroundColor('#000'); } private _onProgress(value: number) { console.log(value); this._progressBar.clear(); this._progressBar.fillStyle(0xffffff, 1); this._progressBar.fillRect(250, 280, 300 * value, 30); } private _onComplete() { console.log('complete'); this._progressBar.destroy(); this._progressBox.destroy(); this.scene.add('GameScene', GameScene, true); } }
  22. I can't pass the scene. Becoz Smartfox server automatically throw's connection lost event to "checkConnection" class. R u understand what i am telling.
  23. get the scene instance from phaser scene class to your normal class by passing it through the constructor.
  24. Hi I am new to game development. I have an issue.. here is the screenshot of my game which I am developing. My screen is scrollable with phaser_kinetic scroller. When I scroll the sheets with numbers it should be masked from the white line and and disappear the part of group sprite which is crossing the line. How can I achieve that. I used graphics to mask. But the graphics also hides the background. I dont want background to be hidden.
  25. The site has a period of 60 days, which is twice as much as in other advertising networks. Therefore, adding another 10-14 days to this deadline is frustrating.
  26. BillyKane

    I'm back

    @enpu Are you work on Panda 3 development????
  27. They could be set that way but AFAIK there is no easy way to use them for compiling Phaser.
  1. Load more activity