Génération procédurale de la map

Bonjour,

Vous vous demandez peu être ou j’en suis avec la génération procédurale de la map pour CatchChallenger.

Bien qu’il reste des mois de travails, pour avoir juste une map de base, cela avance.

Les villes sont là, certaine avec des bâtiments complexe. C’est basé sur des template statique sont seront fait dynamiquement plus tard.

Les routes ne sont que des lignes droites. Je travail sur la répartition des espéces.

Répartition des espéces
Répartition des espéces
Overworld avec 3 villes
Overworld avec 3 villes

Cela m’as permit de voir certain bug et noté une serie d’amélioration a faire.

 

Minimap
Minimap

Je continue à explorer d’autre piste comme le deep learning et machine learning pour la génération automatique.

J’améliore mes compétances en d’autre domaine (bioinformatique, physique quantique, fibre optique, …), pour mon enrichissement personnel.

Je prépare aussi la conférence que je doit donner sur les télécommunications en bolivie. (hackmeeting 2017)

CatchChallenger ces derniers temps

Bonjour,

 

Status des serveurs et nombre de joueurs

Map avec les info de debug, fait via les diagramme de voronoi
Map avec les info de debug, fait via les diagramme de voronoi
Map sans les debug et avec les plantes
Map sans les debug et avec les plantes

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Je pas mal travailler sur un certain nombre de points sur CatchChallenger, qui en passant a plus de 5ans.

Pour commencer les bots, il joue automatiquement et permettent donc pour moi d’avoir une charge proche de ceux des joueurs. Ce qui me permet de tester et benchmarker mieux les serveurs.

J’ai amélioré le monitoring, il est plus sensible et permet de tester des chaines complète de connexion et de style de jeu via les bot mais aussi divers mécanismes de jeux pour s’assurer qu’il n’y as pas de bug dans les serveurs. J’ai en passant recu divers chose pour mes odroid, dons plusieurs afficheur LCD, dons un que vous pouvez voir en photo.

Je remercie confiared qui est une entreprise d’innovation en technologies en bolivie, dons le secteur d’activité principale tourne autour des serveurs et datacenter. Qui as fourni des meilleurs serveurs de teste mais aussi la connectivité IPv6 avec des IPv6 publique pour connecté ces serveurs. Actuellement elle fourni des VPS, avec des cms préinstaller, il est prévu que CatchChallenger en serveur simple soit proposé à coté des autres cms. L’entreprise vas aussi ouvrir ces offres de hosting. Donc potentiellement il y aura des serveurs CatchChallenger clef en main. Les eMMC (SSD orienté Odroid) ont été installé dans leur machines.

Comme vous pouvez le voir plus haut, je travaille aussi sur la génération de map. Dans le but de compenser les manques de contenu et de ces mises a jour. Facilité le travail des mapper en ayant des map préfabriqué. Mais cela permet aussi de varier les expériences de jeu. Cela peu être associer a un système de note pour ne garder que les meilleurs contenu.

Les concours de CatchChallenger seront ouvert a la suite de cela, pour donner une base une base de programmation pour les segment visé, avec des prix a gagner.

Bye, je retourne coder.

 

DDOS a 1Tbps!

Salut,

Je viens d’avancé sur les bots, ce qui m’as permit de lancé une attaque DDOS de 1Tbps sur mon cluster locale de odroid c2 (boucle locale: localhost), 5.2Gbps par odroid c2 par coeur. Ou 100 000 joueurs sur un rpi1 ou pentium 1/2 a 200Mhz. (Cela est approximatif et vas dépendre de comment jouent les joueurs)

Les serveurs fonctionnais sans ralentissement visible coté client (et avec les pires réglages). Ce qui est un nouveau records mondiale et confirme les chiffres suivant: 10 Millions de joueurs possible par serveur pour un serveur moyen.

CatchChallenger n’est pas encore optimisé a fonds, mais cela n’as pas d’importance. Il faut environs 10 000x plus de puissance offensive que défensive.

Quand on affronte 2 bots ou botnet vs Waf avec des IA, une qui cherche à défendre (essayant de trier vrai visiteur et bot) et l’autre à attaquer (essaye de simuler la charge visiteur mais avec les actions ralentissant le plus possible le temps de réponse générale du serveur, avec webkit), les 2 bots se mettent au niveau jusqu’as un point d’équilibre qui ne permet pas de distinguer un bot d’un visiteur et n’est pas différentiable d’un gros coup médiatique.

Bye

Khronos ouvre ces testes de conformité OpenGL

Bonjour,

Je voulais faire cette article il y as longtemps. Lorsque l’on fait un standard, un certain nombre de points sont important pour une acceptation naturel (non forcé par un monopole).

  • Que le standard soit ouvert: que tout le monde puisse utiliser ce standard sans payer de brevet (garantie d’interoperabilité)
  • Quel la documentation soit ouverte: Pour éviter les sur-cout lié au reverse engineering
  • Favorable: Que le code ou la lib soit ouverte pour pouvoir l’étudier, vérifier et corriger
  • Les testes de conformité pour savoir si cela respecte bien la norme

Il existais déjà les testes de conformité pour vulkan, maintenant les testes de conformité pour OpenGL sont sortie.

Je remerci Khronos pour ce geste. Cela vas permettre une propagation rapide du standard, car tout les drivers open sources vont pouvoir vérifier leur conformité.

Note: Même si maintenant la plus part des drivers sont OpenGL 3+ sous Linux, il y as encore des problèmes de performance, des problèmes divers sur le hardware qui viens juste de sortir. Et un manque de support natif, open source et intégré de OpenCL, Vulkan.

 

L’efficacité énergétique des medias de stockages

Bonjour,

Je vais parler de l’efficacité énergétique dans les systèmes de stockages. Ici je vais faire de grosses approximations. Merci pour votre compréhension.

Énergie

L’aspect le plus évident c’est que si il y as moins de consommation énergétique, les machines tire moins sur les factures d’électricité. Cela permet d’avoir moins d’émission de chaleur, ce qui allonge la durée de vie de ces derniers.

Les pics de consommations crée des problèmes divers tel que la difficulté sur les systèmes embarqué de lancé le hdd par manque de puissance, … cela oblige de concevoir le buffer avec la consommation max qui peu être trés différente de la consommation réel.

Les performances

Le système d’exploitation considere une données écrite quand elle à été envoyé au hdd. Car même en cas de coupure, le hdd doit avoir assez d’énergie accumulé pour écrire ce qu’il as dans le buffer. Plus le disque est performant, plus le buffer pourra être grand. Plus le buffer sera grand, plus le disque pourra minimiser les changements de place de la tête de lecture pour optimiser ces déplacements.

Ce qui est intéressant dans les SSD et la nouvelle génération 3D XPoint c’est que l’énergie consommé est contante et bien plus basse. Ce qui permet de faire des buffers bien plus gros, ce qui dans ces proportion permet aussi de de plus écrire simplement plein de petit bloque mais de les groupes en super bloques (optimisation des technologie flash et augmentation de leur duré de vie).

 

Il faut encore adapter un certain nombre de couche logiciel pour prendre en compte certaine particularité comme le multi-queue. Mais l’impact énergie<->performance est relativement transparent.

Prepared statement in C

Hello,

I have not found any real code to prepared statement in C for PostgreSQL.

Then I have do it:
prepared_statement.c on CatchChallenger code

Prepare, mean: fix, optimise and cache the execution plan, this prevent any change to execution plan and improve the security too

Cheers,

PS: inspired by http://zetcode.com/db/postgresqlc/

Datacenter sur GPU

Bonjour,

Avec l’arrivé de HSA, de CPU avec beaucoup de coeur, l’exploitation de GPU via des binaires, … et pour ne pas avoir de point de congestion, il deviens intéressant de mettre non pas toutes les vm sur tout les CPU, mais les vm sur un groupe de CPU définit, cela améliore la localité des données réduit la bande passante inter-coeur (seul les CPU proche communique), réduit les changements de contexte (moins de bande passante mémoire et une meilleure mise en cache dans le L1/L2 du cpu) et limites les ressources de la vm sans surcharge d’un ordonnanceur devant gérer les taches en compétitions.

Les GPU ont facilement 4000 coeur, mips I-Class I6500 aura 384 coeur, donc nous allons vers des hébergements moins puissant en mono-coeur, mais plus puissant en multi-coeur, ce qui ne vas pas sans crée des problèmes quand les personnes demandes pourquoi leur site (mal optimisé) est plus lent (sur une page).

Je suis encore sur le développements des concepts:

http://catchchallenger.first-world.info/wiki/Virtual_machine_on_GPU

Par exemple un noyau maitre (GNU/Linux) et des noyaux esclaves gérant leur zone (hdd via 3gp ou NFS, …).

Voir cela comme un réseau locale de serveurs, répartir la charge de tout les sites sur tout les serveurs pour essayer d’exploiter tout les cpu n’as pas de sens, il faut envoyer toutes les données sur tout les serveurs, les traiter, les fusionner, … changement de site, tout recharger, saturation du réseau, …

C’est mieux de mettre un groupe de site par serveurs.

C’est la même chose en local dans un GPU, un serveur multi socket. Sans parler des études démontrant que la bande passante mémoire par cpu diminue pour avoir plus de cpu.

Nvidia gp104 gpu die

En programmation en multi-CPU, on utilise en générale des verrous/entier atomiques, ce qui deviens rapidement pénalisant et empêche l’exploitation du multi-coeur.

Si par contre la base de donnée est sur un coeur et l’application (page web php?), ce sont des queues nativement qui sont utilisé (Socket TCP, Socket Unix) ce qui permet d’éviter les blocages pour attente de la mémoire principal. Les taches (traitement sur les données) sont vraiment indépendante, et une tache pas codé (php lent) ne ralenti pas le hardware.

L’exploitation du multicoeur au niveau de l’hébergement n’est pas la même que au niveau du logiciel. Elle demande un minimum de bon sens. Certain diront: je veux tout les CPU sur toutes les machines virtuelle, même si le prix est peu de performance… d’autre: je veux pas optimiser mon site web, le hardware doit me donner plus de puissance, …

L’exploitation commercial de ces concept ce traduit en bolivie avec l’ouverture de mon datacenter avec 50 serveur pour commencer avec une architectures traditionnelle, mais surement l’exploitation de mips I-Class I6500, GPU ou Cavium ThunderX. Le tout en linux et 100% libre, sans routeur administrable mais avec tout les functions de ces derniers via la virtualisation vm et réseau et du PaaS (VPS). Au programme IPv6, tunneling + compression, pearing et industrialisation maximum comme ovh.

Zstandard 1.0

Bonjour,

La version 1.0 de Zstandard (ou zstd) est sortie. Elle se définie elle-même avec:

Zstandard est un algorithm de compression temps réel, fournissant de haut ratio de compression. Il offre une large gamme de compromis compression/vitesse, tout en étant soutenu par un décodeur très rapide (voir benchmarks). Il offre aussi un mode spécial pour les petites données, appellé compression par dictionaire, et peu crée un dictionaire depuis n’importe quel échantillon. La bibliotéque Zstandard est fourni comme logiciel libre sous la license BSD.

Le ratio de compression est proche de zlib qui est la référence en terme de compression. Elle est développer depuis longtemps par l’entreprise Facebook. Mais elle as des vitesses de compression et décompression bien meilleur que zlib. Ce qui pour moi la place comme bonne concurrente pour être le standard de compression des 30 prochaines années. De meilleur standard de compression veut dire une meilleur qualité de navigation et moins de ressources serveurs, et donc moins de coût pour Facebook et tout autre entreprise utilisant ces standards.

Son ouverture et interopérabilité avec une liste impressionnante de language vont participer fortement à son utilisation. Son utilisation pour le streaming est bonne car la compression est très efficace sur les petit contenu de données.

Je ne prévois pas changer CatchChallenger dans un futur proche, car bien que super, ce standard obligerai a refaire le packaging, le protocole, et la compression est peu utilisé dans le coeur du protocole de CatchChallenger (données vraiment trop petite ou non compressible).

Faite vous votre avis.