Hitboxes and Networked games

Started by
4 comments, last by itay9 3 years, 11 months ago

Hello all,

I have created a working PoC of my networked game, and I've reached the state to improve old pieces of code to a refined state, Getting to the point I'm now reworking the way that I check hitboxes and collision detection.

Note: my game's server runs inside game's engine so it has direct access to all objects at it's current scene.

In the PoC I've disregarded animation collision with another objects, and in order to calculate hits I checked at the server which objects were hit. (also in my particular case it's more complex as I have a rather diverse skill system and not the classic FPS shooter example)

I aim to achieve a fluid combat system, and I thought of going wither 1 of the below approaches:

Trusted Client:

  1. The client will relay to the server which object's the animation, the server will perform a minor check to make sure that the input is valid (no wallhacks, distance, or such) b
  2. Remote clients who play these animation will only play visual related data and wait for the server's decision about the result

Authoritative Server with access to the animation:

  1. Since the server runs in the scene it can receive events from different timestamps of the skill's animation, other objects events (depends on the skill really)

Keeping the PoC's approach and tweaking it

Which option would you go for? I can give an example and a demo of what I have, and what I aim to achieve if that will be of any help.

Thanks

Advertisement

If your goal is to make a game that looks good with the minimal amount of work, trusted client is the way to go.

If your goal is to make a game that you will actually spend money and effort marketing and operating, and which lots of other players will pay money for and spend time on, you should go with the authoritative server.

enum Bool { True, False, FileNotFound };

@hplus0603

hplus0603 said:

If your goal is to make a game that looks good with the minimal amount of work, trusted client is the way to go.

If your goal is to make a game that you will actually spend money and effort marketing and operating, and which lots of other players will pay money for and spend time on, you should go with the authoritative server.

I do hope to make money of the game, though it is definitely not an MMO game. I don't want a game with a cash shop or stuff like that, I appreciate the “old school” type of games like Skyrim where the player has a lot to experience and thus the replay-ability is great.

On the same note, I do want the gameplay to be fluid, in such a case would you recommend sticking with the trusted client?

How much money will you reasonably make on the game? How much will you charge? Will the model be competitive, or cooperative? How big is your team?

If your team is very small, and your challenge is going to be “get a fun game finsihed and shipped,” then trusted-client can be fine. If the game is co-op, then trusted client just means that people who hack will just modify their own experience, which may be fine. You could even call those “mods” and have a feature for choosing mods in matchmaking.

If you have a reasonably funded team and want to build an online versus type of game, with actual copmetitive gameplay, and you already know that you will be able to ship a working, fun, game, then you need to go for authoritative server.

enum Bool { True, False, FileNotFound };

Thank @hplus0603 as always, I will go with the trusted-client approach as you said, it is the easiest to perform and cheats won't ruin other players game.

This topic is closed to new replies.

Advertisement