Search Unity

  1. Megacity Metro Demo now available. Download now.
    Dismiss Notice
  2. Unity support for visionOS is now available. Learn more in our blog post.
    Dismiss Notice

Games [WIP] CombatZone - Multiplayer 2d Top Down Shooter

Discussion in 'Projects In Progress' started by asyncrobot, Jan 26, 2021.

  1. asyncrobot

    asyncrobot

    Joined:
    Jan 21, 2018
    Posts:
    10
    Hi,

    I am working on a game called CombatZone and I wanted to open this topic as a devlog. It has been about 4 weeks that I started to work on this project. My aim is to release this as a browser game and then make it available for mobile platforms.

    Week 1
    - Implemented a simple library to make WebSocket work on WebGL and standalone build.



    Week 2
    - I selected a colour palette and made simple graphics using Inkscape. Here is the link to the palette. I don't use any other colours but changing the brightness when needed.
    - Implemented simple movements and camera follow.
    - Implemented the first network model.
    - Players can join the game



    Week 3
    - Made the first map as seen from the videos.
    - Improved the camera movement
    - Implemented the network model. Decided to keep the map fully static and included in the game binary. Only dynamic objects are serialized to the client.



    Week 4
    - added crosshairs and basic UI elements
    - Started to implement team-deathmatch as the first game mode.
    - Keeping the network model simple. All inputs are sent to the server and results are sent back to the clients.



    I will update this topic in the future.
     
    Last edited: Jan 30, 2021
  2. asyncrobot

    asyncrobot

    Joined:
    Jan 21, 2018
    Posts:
    10
    Week 5 & 6

    - Visuals are almost the same, but lots of work was done.
    - Implemented client-side prediction. Player inputs are executed in the client immediately and merged with the results that are coming from the server. Currently, when two players collide, it is a bit jittery.
    - Added interpolation for the player and the other objects. Network updates are sent 20 times per second.
    - Got it working on an actual server. Video is recorded with the game running on the remote server. Websocket-sharp was not sending data immediately, which caused some problems. I managed to get it disabled.
    - The most tricky part is how bullets are handled. I tried making projectiles both on the server and on the client, but it ended up being more unresponsive. In the current implementation, bullets are handled as ray cast (hitscan) on the server, and it is drawn as a projectile on the client to add some delay.
    - Bullet prediction has some issues currently. When the user shoots, a bullet is created on the client, moving at a low speed. When the hitscan is done on the server, the server sends the bullet information to the client. When the client receives that information, the bullet speeds up and hits the target with the server's information.
    - Sometimes bullets hit on the client, but it is not considered as “hits”. In most cases, it is okay. In the future, I can improve this behaviour.
    - Working on these problems made me realize how difficult it is to make network gameplay.

     
  3. asyncrobot

    asyncrobot

    Joined:
    Jan 21, 2018
    Posts:
    10
    Week 7

    - Mostly worked on the client-server bullet and reload synchronization issues.
    - Made a couple of visual updates this week. Team thunder and team fire have flags now.
    - I worked on the logo. This one seems nice but sometimes it feels a bit Halloween style.
    - I am planning to implement different team deathmatch game modes. Such as capture the flag, hold(conquest) area.
    - I need to decide if there are going to be player classes or not.


     
  4. asyncrobot

    asyncrobot

    Joined:
    Jan 21, 2018
    Posts:
    10
    Week 8

    - Added player character animation
    - Customizable players. Currently, all colours are random.
    - Generic pickable item support
    - Health pack items.



     
  5. asyncrobot

    asyncrobot

    Joined:
    Jan 21, 2018
    Posts:
    10
    It has been more than 20 days since my last update. The game is starting to look like a game. I think I will implement a co-op game mode and then work on the game levels. There are still lots of features I want to implement, but I can only do the essential ones :)

    Week 9 & 10 & 11
    • Added different guns (pistol, machine gun, uzi and sniper)
    • Added player score panel
    • Implemented game level loading logic
    • Made a simple mini-map by zooming-out on the current level. Also hid the players to avoid cheating
    • Implemented first game mode which is the classic capture the flag
    • The WebGL version is also working.
     
  6. asyncrobot

    asyncrobot

    Joined:
    Jan 21, 2018
    Posts:
    10
    This turned into a monthly update thread :) It has been more than a month since the last update.

    What's new?
    • Implemented COOP map with zombies as a low-stress level. It should be more fun to play with other players.
    • I plan to cycle maps in the following order; "capture-the-flag", "team-death-match" and "zombie-coop".
    • Each round will take around 5-6 minutes. I need to test the round time before release.
    • Handled a couple of SSL-related features.
    • Started to test on an actual Linux server with WebGL build on the browser side.
    • The WebGL build size is 6.5 MB after brotli compression.
    I am hoping to release the game next month on the website.

     
  7. asyncrobot

    asyncrobot

    Joined:
    Jan 21, 2018
    Posts:
    10
    Hello from another almost monthly update :)

    What's new?
    • I had major problems with SSL and websocket-sharp. I had some stability issues when used with SSL, so I switched to SuperSocket's Websocket implementation.
    • Also had a couple of other SSL issues so I had to put a nginx reverse proxy to handle the SSL handshake. The communication between nginx and game servers are unencrypted regular websockets.
    • Implemented grenade feature
    • Added the first version of team balancing
    • Deployed to the server and I will make the game public soon. I hope that it gets some players initially.


    If you want to test the game, here is the link;

    https://combatzone.io