CONNEXION
  • RetourJeux
    • Tests
    • Soluces
    • Previews
    • Sorties
    • Hit Parade
    • Les + attendus
    • Tous les Jeux
  • RetourActu
    • Culture Geek
    • Astuces
    • Réalité Virtuelle
    • Rétrogaming
    • Toutes les actus
  • RetourHigh-Tech
    • Actus JVTECH
    • Bons plans
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTECH
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch
    • Xbox Series
    • Overwatch 2
    • FUT 23
    • League of Legends
    • Genshin Impact
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • PS4
  • One
  • Switch
  • Wii U
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Etoile Abonnement RSS

Sujet : [Dev Diary] KNIGHT (serveur)

DébutPage précedente
1234
Page suivanteFin
Ulfberht[plus] Ulfberht[plus]
MP
Niveau 7
30 décembre 2016 à 13:17:05

D'autant plus que si le jeux est petit et communautaire tu peux instaurer un système de délation pour permaban pour les cheaters.

[[sticker:p/1jnc]]
LGV LGV
MP
Niveau 22
30 décembre 2016 à 14:39:48

Pour comprendre, il faut s'interesser au comment du pourquoi -

- certains cheats ne demandent aucun echanges de donnees du client vers le serveur : c'est dans cette categorie qu'on retrouve les wallhacks (ressources gpu / vram, etc.), aimbot (ram, pixels, etc.) et consorts. On peut rendre ca plus dur difficile (relocate en permanence, etc.) mais il n'y a pas de parade miracle. Aucune archi client/serveur ou host/peers ne permet de resoudre cela car ce n'est pas a ce niveau que se situe la faille. Au mieux on peut essayer de detecter une performance du joueur hors du commun sur les stats de jeu

- dans les modes non competitifs avec bcp de joueurs (typiquement mmo pve), bcp des donnees ne sont pas validees par le serveurs pour des raisons de logistique (charge serveur, cout, bande passante, etc.). Ce sont ces donnees uniquement qui sont attaquables et Ici on trouve les flyhacks, teleport, speedhack, etc. C'est considere comme une solution acceptable, car le fait qu'un joueur triche ne modifie pas l'experience de gameplay des autres (non competitif) et on peut toujours infliger des sanctions par la suite si on detecte des abus a posteriori

- la ou c'est vraiment important, c'est pour les modes de jeu competitifs, i.e. du pvp generalement en arenes plus petites (petits groupes de joueurs : champs de bataille restreint dans un fps, un moba, un match mmo pvp, etc.). Dans cette situation, c'est la que le plus de validation serveur est necessaire. Restent tous les cheats de la premiere categorie (aimbots, etc.), mais generalement les jeux recents valident toutes les donnees de gameplay, notamment les deplacements

- Reste le cas particulier du pvp de masse (e.g. les RvR ou McM des MMOs), qui sont un peu un hybride de tout ca

Bref, il faut retenir qu'il est toujours possible de tricher, qqsoit l'architecture choisie. Certains hacks sont purement cote client ; quant aux actions de gameplay, celles non validees par l'autorite serveur sont les plus vulnerables. Choisir la bonne archi sert surtout a rendre plus difficile certains types de triche.

Message édité le 30 décembre 2016 à 14:43:58 par LGV
lokilok lokilok
MP
Niveau 10
30 décembre 2016 à 16:05:59

Le 30 décembre 2016 à 12:21:06 florent6262100 a écrit :
Si son système (utiliser par la plupart des jeux) ne permettais pas de cheaté, comment tu explique qu'il y a autant de cheater dans les jeux ? Comment tu explique que par exemple GTA (qui utilise ce système) a autant de mecs qui ce téléportent ?
Et pourquoi il doivent justement développé des anti cheat pour contrer ça ?

Parce que ce système est cheatable ni plus ni moins, perso dans les vieux mmorpg utilisant ce système, j'ai jamais vue personne ce téléporter :-)

Bah je vois pas comment c'est possible, si le client envoie uniquement une action ("se déplacer vers le nord-ouest" par exemple) à partir de là un speedhack ou un teleport hack est impossible à développer.

Après je ne parlais pas des cheat côté client, je parlais bien uniquement des cheats permettant de se déplacer plus vite/se téléporter/tuer tous les joueurs de la map en une fraction de seconde etc etc.

Message édité le 30 décembre 2016 à 16:06:13 par lokilok
Ulfberht[plus] Ulfberht[plus]
MP
Niveau 7
30 décembre 2016 à 17:33:14

- certains cheats ne demandent aucun echanges de donnees du client vers le serveur : c'est dans cette categorie qu'on retrouve les wallhacks (ressources gpu / vram, etc.), aimbot (ram, pixels, etc.) et consorts. On peut rendre ca plus dur difficile (relocate en permanence, etc.) mais il n'y a pas de parade miracle. Aucune archi client/serveur ou host/peers ne permet de resoudre cela car ce n'est pas a ce niveau que se situe la faille. Au mieux on peut essayer de detecter une performance du joueur hors du commun sur les stats de jeu

Effectivement !
Par contre on peut faire un jeu où le cheat n'apporte presque rien ou un jeu qui fait appel à l'intelligence en temps réel du joueur.

Par exemple, dans world of warships, n'importe quel bon joueur peut esquiver des tirs d'aimbots en anticipant et en tournant son bateau au bon moment (un tir prend entre 1 et 10 seconde pour atteindre sa cible). Dans ce jeu, aucun cheat ne permet d'avoir un niveau compétitif.

Je pense aussi qu'un jeu qui a une bonne courbe de progression sans frustrations n’attirera pas les cheaters.

florent6262100 florent6262100
MP
Niveau 9
01 janvier 2017 à 15:50:52

C'est exactement ça LGV, Rien n'est infaillible, un cheat est toujours possible, il faut juste le restreindre au maximum

Quand a ça lokilok, ce n'est pas possible pour du mmo, ça voudrait dire avoir une simu serveur, qui va gérer la physique et renvoyer la position au joueur, c'est une conso hallucinante, c'est bien pour du petit jeu, ou alors du jeu par match de X personnes (genre fps etc)

Et pour le reste, vous faites des généralités, vous parlez de compète etc, alors que c'est juste un petit rpg, sans bien de but de triche, la seule triche qui serait "utile" a un cheater, c'est:

  • le give d'objets (qui sera impossible sachant qu'il faudrait modifier les fichiers serveurs pour ça, ce qui n'est pas faisable sous l'archi que j'utilise),
  • la modification des damages (ce qui sera aussi impossible pour la même raison),
  • le tp (ce qui est actuellement presque impossible, car ça kick instant le joueur dès que le serveur reçois une donnée trop loin de son ancienne)
  • le kill de joueurs (qui sera impossible sachant que le joueur n'enverra pas directement les dégats au mob/joueurs, mais qu'il dira au serveur "j'attaque lui" et que le serveur va check l'écart de position, et envoyer les damages a la dite entité, et ensuite envoyer au joueur présent dans la zone que X reçois X damages)
hself hself
MP
Niveau 7
01 janvier 2017 à 16:29:17

Mois le client en sait/fait, moins t'aura de problèmes.
Si j'étais toi, j'écouterai les conseils de LGV...

[collax] [collax]
MP
Niveau 10
01 janvier 2017 à 17:05:35

Quand a ça lokilok, ce n'est pas possible pour du mmo, ça voudrait dire avoir une simu serveur, qui va gérer la physique et renvoyer la position au joueur, c'est une conso hallucinante, c'est bien pour du petit jeu, ou alors du jeu par match de X personnes (genre fps etc)

Sinon, tu peux faire la simulation sur le client et le serveur (si c'est possible), le client envoie seulement ses actions, le serveur notifie les autres client et envoie une confirmation au premier client (et envoi tout les x temps des données pour effectuer des corrections sur les simulations des clients).
Par contre ca peut être complexe à implémenter.

florent6262100 florent6262100
MP
Niveau 9
01 janvier 2017 à 17:23:04

Sachant que je suis entrain de dev un serveur thirdparty, je n'ai aucune simu derrière, donc je ne peux pas quoi qu'on en disent ...

florent6262100 florent6262100
MP
Niveau 9
03 janvier 2017 à 18:44:50

Actuellement je suis entrain de mettre en place le système de spawn des mobs, assez complexe a expliquer mais en gros, je stock les spawns dans la DB
Ensuite je créer une liste dans le serveur et j'y fait spawn les mobs (avec leurs pos, id, charid, etc ...) pour pouvoir envoyer chaque entité autour de chaque joueur

voilà voilà :-)

florent6262100 florent6262100
MP
Niveau 9
04 janvier 2017 à 14:07:29

Alors, En arrivant au spawns, je suis tomber sur un problème que je n'avais pas assez anticiper.

Comment check si le joueur est dans la zone du mob, si la position du joueur est sur une autre appli ?
Erf !

Du coup, au lieux de faire deux appli distinctes, j'en ai tout simplement fait une sur plusieurs threads !

ça ne m'a pas pris beaucoup de temps a implanter le serveur de position sur le serveur normal (ayant utilisé la même architecture), je le passerait sur un autre thread plus tard, je vais d'abord m'occuper des spawns de mobs :)

Je vais jouer avec les threads sur l'appli, histoire de faire quelque chose sans lagspikes (pointes de lag/micro freezes)

https://www.noelshack.com/2017-01-1483535218-unity-2017-01-04-14-05-18.png

Ulfberht[plus] Ulfberht[plus]
MP
Niveau 7
04 janvier 2017 à 16:16:10

Bien joué ça :oui:

Ton journal de dev est toujours aussi interessant à suivre.

florent6262100 florent6262100
MP
Niveau 9
04 janvier 2017 à 16:33:48

Merci :-)

Là je viens de mettre en place le système de spawn des mobs coté serveur.

J'ai mis au point un système qui fait que si il y a un joueur présent dans la zone ça spawn les mobs

Je m'explique:

Dans une boucle qui s'exécute toutes les 3 secondes (pour éviter le flood)

Un joueur est proche de la zone ?
Oui > (1)
Non > Supprime les mobs si ily en a au bout de X temps (n'est pas encore implanté)

(1) Les mobs de cette zone sont spawns ?
Oui > On envoie les données à tous les joueurs proches de cette zone
Non > On spawn les mobs et on envoie les données à tous les joueurs proches de cette zone

Et actuellement je fait la réception des données coté client, qui va spawn les mobs :-)))

florent6262100 florent6262100
MP
Niveau 9
04 janvier 2017 à 18:04:00

Le serveur s'occupe maintenant du spawn des mobs !
https://www.noelshack.com/2017-01-1483549285-unity-2017-01-04-17-53-25.png

N'oubliez pas que vous pouvez tester le jeu (quand le serveur est ouvert évidemment), avec ces bugs etc !

florent6262100 florent6262100
MP
Niveau 9
05 janvier 2017 à 14:55:07

Je suis actuellement entrain de convertir les mobs, pour qu'il soit gérer par le serveur plutôt que par le client !

-Adridu84- -Adridu84-
MP
Niveau 10
05 janvier 2017 à 18:46:02

Sympa tu avances :)
Je viens de mettre à jour ton jeu mais je pense que le serveur n'est pas ouvert, préviens moi sur skype quand c'est ouvert que je passe un coup :hap:

PS : Tu n'es pas tout seul sur ton topique je continu à lire tes actualités :ok:

florent6262100 florent6262100
MP
Niveau 9
05 janvier 2017 à 19:15:58

Merci :-)

Oui le serveur est fermer vue que je bosse dessus, je vais faire une mise a jour de ce qu'il y a actuellement et je met le serveur en route pour 19:45 environ ;)

florent6262100 florent6262100
MP
Niveau 9
07 janvier 2017 à 20:22:45

Okay, alors voulant créer le système de dégats (donc via serveur et non local comme avant), je doit d'abord faire le système d'items (via serveur aussi)

Tout ça étant déjà fait sur le proto, j'ai déjà la base même si la plupart de mes codes ne servent plus a rien :-)

Voilà, donc j'ai déjà ajouter le set de fermier de base + l'épée grossière de base + 3 boucliers histoire d'avoir de quoi tester niveau stats !

florent6262100 florent6262100
MP
Niveau 9
09 janvier 2017 à 14:44:22

Système de dégâts fait !
Avec prise en compte des stats, s'il vous plait :noel:

Pour l'instant il n'est pas parfait, mais j'ai déjà la solution au problème qui peux ce poser
Actuellement il fait:

  1. Le joueur envois l'événement d'envois de dégat a l'entité X
  2. Le serveur le reçois, calcule les dégats du joueur (avec son équipement etc, moins la def du mob)
  3. Il applique les dégats, et envois au joueurs autour les dégats reçus
  4. Les joueurs recevant le message créer l'affichage des dégats

Je vais replacer le 1 par "Le joueur envois sont état d'attaque au serveur, et attend X secondes avant d'appliquer les dégats"

Ce qui fait que les attaques ne seront plus cheatable, car actuellement si on envois l'événement en trichant, on peux faire du dégats sans cooldown
Mais là, n'oublions pas que c'est un PROTO, et que donc rien n'est parfait, mon but c'est que ça fonctionne avant de renforcer tout le bordel (biensûr, ce qui demande de GROSSES modifs, je ne les mets pas en attente, je le fait direct ...)

Voilà, Si quelqu'un lis encore, voilà ce que j'ai fait :-)

-Adridu84- -Adridu84-
MP
Niveau 10
09 janvier 2017 à 16:22:12

je lis.

DavidAaronson DavidAaronson
MP
Niveau 31
09 janvier 2017 à 17:42:35

Le 30 décembre 2016 à 13:17:05 Auteur blacklisté a écrit :
D'autant plus que si le jeux est petit et communautaire tu peux instaurer un système de délation pour permaban pour les cheaters.

[[sticker:p/1jnc]]

Mauvaise idée. Sur la plupart des jeux en ligne, on se fait traiter de cheater dès qu'on est bon et qu'on commence à battre la plupart des gens.

DébutPage précedente
Page suivanteFin
Répondre
Prévisu
?
Victime de harcèlement en ligne : comment réagir ?
La vidéo du moment