• Content Count

  • Joined

  • Last visited

About Buizerd

  • Rank

Contact Methods

  • Website URL
  • Twitter

Profile Information

  • Gender

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. So it's been almost exactly a year since my last update. Ninja.io is still under development! The UI has been significantly overhauled. New weapons, maps and sounds have been added. I've also added 'Party mode', allowing players to create public and private games. Since adding party mode, the game has seen a significant increase in the number of players. Unfortunately, the number of concurrent players fluctuates enormously throughout a 24 hour period. From a low of around 20-30 CCU in the early morning to peaks of over 250 players in the evening. (European time) This made me reluctant to add additional server capacity, as it seems like a waste for at least half of the time. I've opted to increase the capacity today to 5 servers, as lag proved intolerable at 60+ players/server. Additionally, the Discord has gained thousands of members, but most are inactive, and a 'real' community has yet to form. Either way, the highscore system is going to be overhauled completely, but right now the focus will be on performance, as it appears that a lot of players have difficulty rendering the game fullscreen. As always, questions, ideas and suggestions are welcome!
  2. Well, client->server updates are limited to ~30/second. Equally, the server updates the clients at ~30hz. Since the actual physics sim updates at 60hz, every step inbetween is dead reckoning. I've already made it so that clients only send keyboard and mouse input to the server. The reason you're seeing more traffic is because the direction that players are aiming at will have to be updated based on current mouse position. For a shooter like this it's critical that the direction the player is facing is updated at a high rate. In order to reduce network traffic, floating point values in 'update' packets are compressed to 3 bytes, rather than the usual 8 byte precision. This is possible because maps are typically small and large coordinates are not needed. Information about newly spawned objects(bullets, players, items, etc) is currently sent as JSON because it offered increased flexibility. Sending this as some minimized binary format just like the 'update' information could serve to reduce bandwidth usage and perhaps improve client performance. I just haven't got around to doing this yet. Both the client and game server(Node.JS) are written in Javascript. The accountserver is written in PHP.
  3. Press H to display controls. There you can switch between AZERTY and QWERTY layout. I've updated the graphics library today. It includes an optimization that improves the rendering speed of the map. In addiction, I've throttled down the miner which should improve performance on slower systems. Unfortunately, since the server is located in Western Europe, latency is inevitable for many players outside the region.
  4. Maybe. As you can probably tell I'm mostly a software dev and not much of a designer. Feel free to message me about your ideas.
  5. I have no idea. I literally get no response from miniclip or any similar company whenever I email them about a possible partnership. Advertisers are not interested because the number of players that I have is below a certain threshold(20k/day or something). I regularly have thousands of players a day and 80/90 simultaneous players, but apperently that is not even 1/10 of the amount required? Due to the nature of running a physics engine the game is probably more costly than most to run. Hence I can only support ~100 clients with current server capacity, which is apparently way below the threshold where potential partners bother to respond. So the main issue is that I cannot afford to pay for increased server capacity out of my own pocket. I'm stuck with a crappy server. I literally have to drop players during peak hours. The game can't grow to a size where advertiserse might be interested. As a last resort I've added a Monero miner to help pay for server capacity. This does not even begin to cover the full cost, but at least it helps a little. I'm reluctant to sell in-game assets since that would turn players into actual customers, which generates expectations that I cannot assure can be met by me working my hobby project over the weekend. </rant>
  6. Hey, it's been a while since my last update. Here's what's been going on. The ninja.io website has had a couple of upgrades. I've added player profiles and a ranking system. Players are now ranked based on their K/D ratio, which is weighted as a function of kill count, maxed out at 1k. In addition, numerous fixes and updates have been made to both the client and server to improve stability. Kinematic object animations have been added, allowing moving platforms and rotating structures. Also, new maps have been added. The number of players has recently been increasing. Peak moments now approach 100 simultaneous players, and there have been thousands of new subscribers. I'm still looking for sponsors or advertisers. This has proven to be far more difficult than I expected. If anyone has suggestions, please let me know. I'm willing to devote a lot of time towards developing this game, but it cannot grow without generating income to allow for increasing server capacity needed to host the game. Thanks!
  7. Thanks! You can now test the new dev version. Major changes include the addition of sound effects, weapon & item updates, UI changes, AZERTY keyboard support, weapon tweaks, library updates and numerous bugfixes. Keep in mind that the server is located in Europe, so players from other continents might have latency issues. I've been distracted by other things, but finishing this project ASAP has become a main priority of mine again.
  8. I'm planning to add configurable controls and various keyboard presets. Physics are updated by both server and client at 60 hz. Positions, rotations and forces calculated by the server are leading and they are synced with client at 30hz. Yes, the math is non-deterministic. I also reduce floating point precision to 3 bytes before sending across the network to save bandwidth. This will inevitably desync the client and server a little, but since they are synced at 30hz this is generally barely noticeable. One remaining problem is the case where a client player will stop running a fraction short of a steep cliff/edge, while the server considers the player to be past the tipping point, so on the server he falls off, while on the client he remains standing. During the following server updates, the player will then feel like he's being 'pulled' off the cliff, since the server is still leading. This can lead to some rubberbanding and jittery movement in some cases. Another situation where minor glitches might occur is when very fast moving objects like bullets strike a small object like a hand grenade. So the client might consider it a hit, causing a ricochet off the grenade, while the server considers it a miss. The nade will then briefly appear to tumble before being corrected by the server updates. Bullets might occasionally end up being 'eaten' by the target without doing damage, even though the client might register a hit. To say that I greatly underestimated the difficulty of synchronizing a multiplayer physics game like this would be an understatement Needless to say there's still plenty of room for improvement here.
  9. Ninja.io is a fast paced, 2D multiplayer shooter inspired by games like Soldat, Unreal Tournament and N-game. Currently implemented game modes include Capture the Flag and Deathmatch. It uses the Box2D physics engine to enable convincing rigid body simulation. Players can make various moves including backflips, rolls, proning, running, flying and crouching. The game is still under active development and I'm willing to devote a great deal of time to finishing this project. I've made a test server available and you can join it by following these steps: - Go to ninja.io - Play as Guest - Enter a username - Join CTF or Deathmatch. - Select primary and/or secondary weapon Press H to display table of controls. Decrease the size of the browser window in case it runs slow. I've noticed that some laptops and older systems have trouble maintaining adequate fps. It is currently not possible to register a username, but I've been making progress on an account and highscore system. The game server is currently located in Europe. I plan on running additional servers on other continents and for the site to serve as a gateway to the nearest game server when players join in order to minimize latency. 2 European and 3 North American servers are available. Any thoughts, feedback or suggestions would be much appreciated! Thanks. Edit - 15-12-2017: New version! Sound effects have finally been added, weapons & items have been updated & tweaked, libraries have been updated and many improvements have been made along with numerous bugfixes. Edit - 15-05-2019: Several versions later: lots of new stuff! Running in Pixi.js v5 now. Party mode has been added, several new maps, new weapons, new sounds, new UI, new account/profile management (WIP), new FX! More to come! I'm currently finishing the implementation of the account system and I'm working on several new maps. More updates will follow soon!