T4C, état des lieux

De T4C Tech
Révision datée du 23 avril 2017 à 21:02 par FunJp (discussion | contributions) (A protégé « T4C, état des lieux » : Vandalisme excessif ([Modifier=Autoriser uniquement les administrateurs] (infini) [Renommer=Autoriser uniquement les administrateurs] (infini)))
Aller à la navigation Aller à la recherche

(note: article en cours de rédaction)

"Tout va bien capitaine, le bateau coule normalement !"

Passé

(à rédiger)

- Jeu gratuit

- Jeu convivial

- Rencontres

- Bons souvenirs

Présent

(à rédiger)

- Nostalgie

- Envie que l'aventure continue - ou reprenne

- Main-mise de Dialsoft sur le jeu : impossibilité de rien faire sans eux

Dialsoft

La boîte-farce.

Les droits d'exploitation du jeu T4C sont détenus par la société Dialsoft Inc.

Renseignons-nous sur la société Dialsoft Inc. en consultant son site Internet : dialsoft.com.

Le site internet de Dialsoft fait très professionnel. On a véritablement l'impression de se trouver sur le portail d'une multinationale. L'animation Flash, la belle standardiste chinoise, les mots full service companyone stop solutioninternet presence en mettent plein la vue.

Nous sommes bien d'accord, le site mentionne bien la propriété du jeu T4C, il s'agit bien de cette société :

Dialsoft Releases06/29/2006: Dialsoft announces the acquisition of the Full T4C product line from Vircom. The 4th Coming is now maintained and updated by Dialsoft as of July 3, 2006. For More information please see www.the4thcoming.com

Les services proposés par cette société sont consultables ici. Examinons-les :

  • Installation de connexions ISDN (équivalent d'une ligne Numéris)
  • Développement d'applications Internet
  • Montage de réseaux locaux (n'importe qui peut le faire)
  • Installation de webcams (n'importe qui peut le faire)
  • Hébergement et conception de site web (n'importe qui peut le faire.)

Voyons de plus près les "applications Internet" que propose la société Dialsoft. La première chose qu'on observe, est que ceux-ci ont tous des noms impressionnants suivis d'un numéro de version qui force le respect :

  • Auto Responder for WG 3.2 - répondeur automatique d'e-mails pour l'environnement de BBS WorldGroup (pseudo-système d'exploitation archaïque. Enfin, plutôt un mélange entre "système d'exploitation" et "embryon de réseau", un peu comme ce qu'était CompuServe. A noter que tout comme CompuServe, WorldGroup n'existe plus depuis longtemps, les logiciels suivants sont donc aussi utiles pour un ordinateur moderne que des programmes pour Amstrad CPC-464.)
  • Anti Spam for WG 3.2 - anti-spam pour ce même logiciel
  • Worldgroup Messenger - messagerie instantanée (idem)
  • ActiveH Friends For WG 3.2 - gadget "liste d'amis" (id.)
  • ActiveH Calendar For WG 3.2 - gadget "calendrier" (id.)
  • ActiveH Photo Album For WG 3.2 - gadget "album photos" (id.)
  • ActiveH Autocopy - gadget pour copier un email (id.)
  • ActiveH Profile and Guestbook For WG 3.2 - gadget "profil" (id.)
  • Oltima 2000 Quest for the Holy Grail - jeu en mode texte pour l'environnement WorldGroup
  • DIAL-ASP for Worldgroup WG 3.2 and WG 3.3 - gadget de numérotation (id.)
  • ACTIVEH SIGNATURE EDITOR for WG 3.3NT - gadget d'édition de signature (id.)
  • WHOS ONLINE for WG 3.2NT ActiveH - gadget "qui est en ligne ?" (id.)
  • C.O.N.T.R.O.L. v5.0 Radius and Realtime system control - interface de compatibilité avec les domaines RADIUS (veuillez noter qu'en 2003, développer une interface de compatibilité avec les serveurs Radius pour WorldGroup serait comme essayer de raccorder une ferme de serveurs Google à votre Minitel.)
  • Frequently Used Globals v 0.93 - un gadget pour opérateur de canal pour WorldGroup, semble-t-il
  • MINE FIELD - un jeu de démineur au format texte (id.)
  • CHITCHATTERS v3.00 for WG NT ANSI global Teleconference - une sorte de client IRC
  • WEBBLASTER PRO 5.8 - logiciel de gestion de domaines, développé par un informaticien indien

La société Dialsoft vend donc, en 2009, à plusieurs dizaines de dollars pièce, des logiciels inutiles, en mode texte, pour un système d'exploitation obsolète qui date de 1986.

Qui compose cette société ? Regardons à la page contacts.

360 Littleton RoadParsippany, NJ 07054Toll Free: 800.888.8026 USA /CanadaIn NJ: 973.335.3523 Support and Sales InternationalFAX: 973.215.2094AIM: DIALSOFTMSN Messenger: Marc@jungle.net

Il s'agit d'une adresse personnelle au New Jersey (USA). On note que l'entreprise dispose même d'un contact sur AOL Instant Messenger et sur le réseau MSN. On en déduira donc que la base de clientèle de cette entreprise n'est pas large au point que ce soit dérangeant pour eux de répondre par MSN à chacun de leurs clients, individuellement.

Voici les adresses électroniques de contact :

General Information Marc@dialsoft.comSenior Developer Arash_aghlara@dialsoft.comAdministration Marc@dialsoft.com

On notera que le directeur de l'entreprise (Administration : marc@dialsoft.com) répond directement à ses clients et même aux prospects (General Information : marc@dialsoft.com). On en déduira donc que le directeur de l'entreprise a le temps de le faire.

Le terme "senior developer" laisse penser qu'il s'agit du responsable d'une équipe de développeurs. Il s'agit, au mieux, d'une exagération : Arash Aghlara est l'informaticien indien qui a développé quelques-uns des logiciels de Dialsoft (dont "Webblaster Pro").

Nous pouvons donc en déduire avec certitude que "Dialsoft Incorporated" est une société unipersonnelle, dirigée depuis son domicile par un citoyen américain aux compétences douteuses.

Le "catalogue de produits" de la société montre une absence ou en tout cas un retard irrattrappable en technologie (vendre en 2009 des logiciels de BBS, ce n'est... pas sérieux !), et le recours à des programmeurs freelancers, comme cet Arash Aghlara (est-il toujours employé aujourd'hui ?), pour développer ses produits les plus récents.

Les activités de M. Marc Frega, pompeusement titré Chief Executive Officer (CEO) de Dialsoft Inc tout comme votre serviteur pourrait se titrer Sorkvild, Président Directeur Général du Consortium International d'Exploitation du Serveur T4C Aegir (veuillez noter que tous ces titres sont sémantiquement exacts), semblent donc se concentrer sur l'investissement. Il achète la licence de logiciels à vendre, et espère leur trouver une base de clientèle pour amortir son investissement (exemples : Web Blaster Pro, et dans ce qui nous occupe, le jeu T4C).

En résumé : Dialsoft = 1 américain dans sa maison.

J'insiste pour que ce soit bien clair dans la tête de ceux qui me lisent, car il faut casser ce mythe une bonne fois pour toutes, Dialsoft n'a rien à voir avec Blizzard Inc. ou n'importe quelle société éditrice de jeux vidéos digne de ce nom, Dialsoft c'est un seul et unique pékin au fond de sa maison dans le New Jersey, qui ne sait plus programmer depuis des années, et qui tente d'acheter et de revendre des licences de logiciels sans aucun succès commercial visible pour le moment.

Voilà pour le cadre, voilà donc la personne qui détient tous les droits sur votre jeu favori.

La scène officielle

Marc Frega

L'investisseur naïf.

Vircom n'était pas totalement inconnu à Marc Frega avant qu'il ne décide de racheter les droits de T4C. D'après la page Wikipédia de WorldGroup (l'environnement réseau embryonnaire pour lequel Marc Frega développait des logiciels), Vircom aurait développé une pile TCP/IP pour permettre à ce BBS obsolète de se connecter à Internet. On supposera donc que c'est par ce moyen que Marc Frega a entendu parler d'eux. Il aurait ensuite appris que Vircom avait développé un MMORPG (T4C) qui a eu quelque succès en France, lequel était pour eux désormais un produit en fin de vie.

M. Frega a donc racheté les droits d'exploitation de T4C à Vircom pour 100 000 $ (approximativement 77 000 €).

Pour moi qui ai une certaine expérience dans le milieu du jeu vidéo, il s'agit d'un montant colossal. Par comparaison, mon ami et ancien collègue Markus "Count Floyd" Klinge, l'auteur des célèbres POD-Bots pour Counter-Strike, a vendu, au sommet de leur popularité, le code source de son IA à Gearbox Software comme base de travail pour la première ébauche de ce qui devait devenir les bots officiels pour Counter-Strike, pour 15 000 dollars (NDLR: Gearbox a ensuite abandonné le projet et c'est Michael Booth, de Turtle Rock Studios, qui a fini le travail. C'est lui l'auteur final de l'IA que ceux parmi vous qui jouent à Counter-Strike connaissent).

D'après nos informations, Marc aurait contracté un prêt bancaire sur trois ans pour cet investissement. Ce qui lui fait 2780 euros à rembourser par mois. On comprend qu'il ait, d'après l'expression off the record de Black Lemming, son chef de projet bénévole pour T4C v2, "les couilles dans un étau bancaire". Il semblerait qu'il commence tout juste à voir le jour financièrement, le remboursement de son investissement arrivant à sa fin.

Mais même en étant débarrassé du remboursement de son prêt, notre pauvre M. Frega n'est pas prêt de gagner de l'argent avec T4C. Il y a deux manières, dans le contrat passé avec Vircom, selon lesquelles Marc peut conduire l'exploitation des licences T4C.

  • Soit il cède des licences d'exploitation d'un serveur T4C valables 1 an, renouvelables, pour 10 000 $ l'année. Il y a eu tellement peu de candidats (1 seul à ma connaissance : Amalgame-Online pour son serveur généraliste Memoria) (à confirmer) que cette "source de revenus" n'est plus aujourd'hui sujette à promotion. Après renégociation avec Vircom, Marc loue désormais ses licences annuelles 3000 $, et propose aussi un hébergement de serveurs T4C sur ses propres machines payable au mois ou trimestriellement (à préciser).
  • Soit il cède des licences d'exploitation d'un serveur T4C accompagné du code source, valables 5 ans, renouvelables, pour 35 000 $. Le code source est utilisable et exploitable par le client seulement dans le cadre de son serveur et sur la durée de sa licence.

Clause des royalties à reverser à Vircom pour chaque licence cédée : quand Dialsoft cède une licence "code source" pour 35 000 $, Vircom en prend 50%. Vous avez bien lu. Malgré le fait que Dialsoft ait racheté les droits d'exploitation de T4C, une clause du contrat stipule qu'il faut encore reverser 50% du montant des licences revendues à Vircom.

(23:38) Dialsoft : 10 people a month ask me for free licenses
(23:39) Mestoph : is big
(23:39) Dialsoft : i dont care if i dont sell licenses. It would be nice but the reason it is so expensive is because we dont need alot of servers.
(23:39) Dialsoft : the more servers the less players on each server
(23:40) Mestoph : yes
(23:40) Mestoph : what price for a license ?
(23:40) Mestoph : 10000$ ?
(23:43) Dialsoft : yes
(23:43) Mestoph : ok
(23:43) Dialsoft : 5000 goes to vircm
(23:43) Dialsoft : vircom
(23:43) Mestoph : what ????
(23:43) Mestoph : 50% for vircom ?
(23:43) Mestoph : ....
(23:44) Mestoph : for life 50% ?
(23:56) Dialsoft : no
(23:56) Dialsoft : just until i sell 100000

Je ne me perdrai pas en conjectures sur le niveau de réflexion que doit tenir le gaillard qui est capable de signer un contrat pareil.

Bref ; confortablement entubé par Vircom, il a reçu un code source qu'il est incapable de comprendre. Dépassé devant ce code source, lui qui ne programmait que des gadgets de BBS, il s'est vite rendu compte qu'il lui faudrait de l'aide. Aussi a-t-il fait appel à la communauté des joueurs et à ses "talents" supposés. Il en a sélectionné quelques-uns, leur a fait signer un NDA dont voici le texte (en anglais), leur a donné quelques directives, dont celles de s'organiser ensemble et de voir ce qui pouvait être fait, et après s'être mis d'accord avec eux sur une feuille de route de développement les a laissé travailler.

Comme dans toute équipe de bénévoles quand les rôles et les responsabilités ne sont pas clairement définis et que les leaders n'ont pas le charisme suffisant pour se faire respecter (syndrôme du "tout le monde se croit plus malin que tout le monde"), il se produisit des conflits d'intérêt, ce qui donna lieu à des clashes et à un turnover assez important ; des gens partirent, d'autres les remplacèrent - ce qui occasionna à chacune de ces occasions de nombreuses fuites de code source et de matériel de travail - pour aboutir grosso modo à la situation que nous connaissons aujourd'hui : une équipe V2 rétrécie comme peau de chagrin, avec en "chef de projet" (qui n'est plus que le chef officiel de deux personnes, et officieusement d'aucune) un Loïc Jean-Fulcrand sous le pseudonyme de Black Lemming, en "développeur" l'inénarrable Carl Vachon, sous le doux surnom de Nightmare, et en "graphiste" un certain Sébastien Pelletier, se faisant appeler Heschal.

Voilà l'équipe qui développe T4C V2 aujourd'hui. Significativement, il n'y a plus que 3 personnes.

Carl Vachon (Nightmare)

Le mauvais programmeur imbu de lui-même, opportuniste et mégalomane.

Une mentalité de tricheur

Carl Vachon est un ancien administrateur de serveur T4C pirate. A noter qu'en 2002 administrer un serveur T4C pirate pouvait se réduire à utiliser un logiciel leaké, sans aucune connotation de développement ni de programmation parallèle puisque les proxies n'existaient pas. Comme on le voit sur cette capture d'écran qui date de 2002, Carl Vachon distribuait également des utilitaires et des logiciels de triche dont son "T4C Utils 1.0", et le fameux T4C Pak Process de Foxy.

On trouve mention de Nightmare à divers autres endroits, notamment en tant qu'auteur et contributeur sur des forums de triche comme par exemple ici sur TrainersCity où il est remercié à la fin du post. [1]

On le retrouve aussi tôt sur JeuxOnLine, en train d'essayer de refourguer un launcher vérolé au cheval de troie, comme en atteste ce fil exhumé des archives : [2]

Avec son compère TNT, il était très actif dans le domaine de la triche :

A ce niveau de notre recherche, il semble clair que faire entrer un individu pareil dans l'équipe de développement de la V2 c'est laisser le renard entrer au poulailler.

Et pourtant, ils l'ont fait.

Horreurs de programmation

A détailler (avec liens vers code source + articles wiki technique)

  • le netcode 1.60 (XOR incomplet, pak 666)

Voir l'information ici

  • le format DDA sans index

TODO: faire un paragraphe

Sorkvild dit :

l'espèce de pseudo-arborescence des images est très mal foutue

ChaotikMind dit :

ah oui les vsf c'etait mieux...

Sorkvild dit :

si tu es le client et que tu veux fetcher tous les sprites d'un même groupe ils pourront être dans 10 DDA différents
et c'est complètement con

ChaotikMind dit :

ah ca oui
y'a pas de groupage intelligent des données

Sorkvild dit :

en gros t'es obligé de tous les charger, peu importe les zones
voilà

ChaotikMind dit :

donc pas d'optimisation du cache

Sorkvild dit :

pas d'optimisation de la mémoire non plus

ChaotikMind dit :

enfin rien quoi;)

Sorkvild dit :

il aurait fallu fragmenter au maximum ces fichiers
et laisser un thread à part faire le chargement/déchargement des sprites dont on a besoin
dynamiquement

ChaotikMind dit :

waip waip
faudrait qu eje finisse ce code sur mon client
surtout la partie dechargement

Veuillez réaliser s'il vous plaît que si la gestion des graphismes avait été implémentée de cette manière, le client T4C.exe consommerait moins de 20 méga-octets de mémoire. A l'heure actuelle, le client Dialsoft 1.63 en consomme plus de 200 dès l'arrivée en jeu, et jusqu'à 450 en cours de jeu (mesures effectuées), ce qui pour un jeu de cette technologie est tout simplement monstrueux.

Admirez :

  • la double compression ZLib

Exemples à documenter

Selon leur taille certains Sprites sont compressés une seconde fois. un Sprite compressé en RLE se verra alors recompressé grâce à zlib (pour un gain assez discutable d'ailleurs), pour ceux déjà compressé avec zlib il en résulte évidemment une augmentation de la taille.

  • les textures inutilisées

Exemples et calculer la mémoire gaspillée

De nombreuses textures des anciennes version de T4C trainent encore dans les DDA, à cela vient s'ajouter de nombreuses erreurs de manipulation du fichier aillant entrainé la création de nombreux duplicata (d'ailleurs invalide) (un nettoyage de surface permet de gagner 20 mo sur les DDA)

  • le switch de 3 km

Coller screenshot IDA des adresses de 0x00503df0 à 0x00671c33 dans le dump du client T4C

  • aucune analyse du code en profondeur avant d'y ajouter sa touche

Coller exemples de modifs "temporaires" qui sont restées

Vol des codes sources

  • le firewall de NMS-Revolution a été développé par Eldian pour l'ancien serveur pirate Le Quatrième Age (arrêté depuis 2004), où Carl Vachon (Nightmare) a officié en tant que GM. Ce dernier a récupéré le code source du firewall pour le coller verbatim dans son serveur, sous son propre copyright.

Voici la preuve par l'image :

Le copyright est toujours présent sur les versions récentes (ici 1.70 beta). Ne cherchez pas la signification des chiffres sur le message du firewall, ils sont là pour impressionner et ne veulent strictement rien dire. Vous noterez d'ailleurs qu'entre la 1.60 (image précédente) et la 1.70 (celle-ci), le numéro de version du firewall a régressé. Concernant le sérieux de ces numéros de version, vous en déduirez ce que vous voudrez.

Et maintenant la preuve par le code source :

/* $Id: Server.cpp,v 1.11 2004/08/01 02:31:12 daniel Exp $ */
/***************************************************************************
	copyright			: (C) 2002 by Daniel Dufour
	email				: daniel.dufour@pandora.be
 ***************************************************************************/

#ifdef HAVE_CONFIG_H
#include <config.h>
#endif

#include <windows.h>
#include <iostream>
#include <fstream>
#include <stdio.h>
#include "SDL.h"
#include "Server.h"
#include "paramIO.h"
#include "Output.h"
#include "FWCommon.h"
#include "WinErr.h"

//#include "NetworkServerManager.h"

#define WAITTIME		5
#define LOGFILE			FIREWALLNAME".log"
#define XMLFILE			FIREWALLNAME".xml"

Vous noterez l'auteur : Daniel Dufour (Eldian). A noter qu'Eldian était, lui, un excellent programmeur.

Voici la réponse que Carl Vachon avait fait à l'époque où cette accusation était apparue sur JeuxOnLine.

"Je travail pour Dialsoft sur t4c, et les sources ont toujours restées confidentielles... et le resteront toujours pour ma part... Et l'autre sans dessin qui dit que j'ai supplié Daniel (Eldian) pour les sources du firewall, tout a été recodé a 100% et intégré dans le serveur... pourquoi utiliser un third party quand je peux coder directement dans le serveur... Peu importe comment notre relation c'est terminer Eldian sait très bien que je possède toutes ses sources comme lui possédait les sources de mes utilitaires... et il sait également que je n'ai et que je ne les donnerai jamais... J'ai beaucoup plus de jugement qu'une bande de jeunes morveux..." -- NightMareNMS

On voit mal comment il est possible de se contredire davantage. Notez sa rhétorique imparable : il a recodé à 100% un firewall en ayant sous les yeux les sources de celui qu'il n'a pas copié, et leur relation s'est mal terminée mais Eldian et lui se font mystérieusement confiance.

  • l'éditeur de maps officiel de Dialsoft est une copie de celui d'Eldian (afficher les sources + screenshots)
  • Le système d'échange (trade) a été développé par eAcceleration, et non par Dialsoft. En voici la preuve. Code source du serveur, fichier trade.h, début du fichier, le nom de l'auteur :
/** @author Maren Johnson
 *	@date 11-08-2004
 *	Trade.h
 */

Maren Johnson était un développeur d'eAcceleration qui travaillait sur leur version serveur. Autre preuve :

//MJ 12-09-2004

//look in the tradepack if it is shown
TradeUI* tradeUI = TradeUI::GetInstance();
if( tradeUI->IsShown() )
{
   tradeUI->m_givepack.ToHead();
   while( tradeUI->m_givepack.QueryNext() && !boFound )
   {
      if( tradeUI->m_givepack.GetObject()->dwID == lpBagItem->dwID )
      {
         boFound = TRUE;
         //MJLOG << "\r\nItem found in tradepack";
      }
   }
}

Autre preuve s'il en est, et nouvelle référence à Maren Johnson (fichier InventoryUI.h) :

/** Contains TradeUI class
 *	@author Maren Johnson
 *	@date 10-26-2004
 */

// InventoryUI.h

#if !defined(TradeUI_h)
#define TradeUI_h

#include "BoxUI.h"
#include "ButtonUI.h"
#include "GridUI.h"
#include "GraphUI.h"
#include "DropZoneUI.h"

Je considère cette question réglée.

Mentionner ses sources est une pratique déontologique fortement recommandée dans le milieu de la programmation. Si un programmeur est convaincu d'avoir utilisé dans son projet tout ou partie d'un code source écrit par quelqu'un d'autre sans mentionner son nom ni l'en remercier d'aucune façon, il se fait très, mais alors très mal voir, et les autres programmeurs finissent par le snober, ou pire le détester. Pour Carl Vachon, cette mesure de déontologie est légèrement différente : il ne faut pas mentionner les contributeurs, et au contraire il faut exagérer en collant son nom partout.

C'est simple : avec Nightmare, plus vous avez affaire à du code source volé, plus vous trouvez son effigie et les initiales "NM" partout.

La preuve par l'image :

Dans le scroller du client T4C, nulle trace des contributeurs d'eAcceleration. On me dira, "bon, il les a oubliés..." Passons.

Dans l'éditeur de maps de Dialsoft, par contre, qui rappelons-le est une reprise de celui d'Eldian, les clients de Dialsoft sont immédiatement agressés par un splash screen :

On chercherait à nous faire savoir que cet outil appartient bien à Dialsoft, mais que la personne qui est derrière est un certain "Nightmare". Soit. Une fois que l'écran de splash a disparu, ce n'est pas suffisant, il faut encore nous le rappeler dans le coin inférieur gauche de l'écran :

N'oublions pas de le rappeler dans chacune des boîtes de dialogue de l'application (au cas où l'utilisateur l'oublierait) :

Et au cas où on en douterait encore, il faut le mettre bien en évidence, par deux fois, dans les crédits :

Et surtout, quand nous intervenons publiquement, faisons savoir que c'est nous.

"Tremblez mortels. Le grand Nightmare vous parle."

On pourra noter, outre une propension évidente à faire son auto-promotion où d'aucuns diagnostiqueraient un syndrôme de manque de confiance en soi, que cette manie ne s'arrête pas aux relations publiques, mais intervient également dans les domaines où notre sujet d'étude est le seul à mettre son nez : dans son propre code source

Il est difficile d'avancer des hypothèses à cette monomanie. Tout se passe comme si Carl Vachon doutait qu'il fût quelqu'un de compétent, et voulait s'en convaincre lui-même. Peut-être des spécialistes en sciences humaines pourront-ils apporter un éclairage significatif sur ce comportement.

Jonathan Pelletier (Heschal)

Personnage immature, graphiste remarquable mais artiste discutable.

Jonathan Pelletier possède l'élocution d'un adolescent, sans parler de l'orthographe. C'est malheureux parce qu'il s'agit du membre de l'équipe V2 à s'exprimer le plus sur les forums publics (malgré qu'il annonce régulièrement que son message soit le dernier).

Lire un message de Heschal est une torture pour les yeux. Black Lemming dit de lui qu'il "parle la langue du Mordor". Peu de personnes sont capables de massacrer aussi impitoyablement l'orthographe et la syntaxe de la langue française.

Il est très regrettable que l'équipe V2 cautionne de telles interventions dont l'on gage sans risquer gros qu'elles portent préjudice à la crédibilité du projet dans son entier rien qu'à la forme, avant même d'en venir au fond.

Heschal est également un personnage ayant la manie des copyrights. Il s'arroge des titres pétaradants tel un directeur de studio graphique de renommée internationale. L'ennui est qu'à chacune de ses interventions, ce titre change.

HeschalBiosystems :

HeschalGP et HeschalDesign (lequel est le bon ?) :

HeschalGames :

etc.

(à rédiger)

- Absurdités dans ses graphismes : pont de pierre avec voûte en bois, bâtiments qui défient les lois de la physique, etc... (screenshots) = manque de contrôle et de validation de son travail

- Se ridiculise dès qu'il parle de technique

A noter que Jonathan Pelletier serait (à vérifier) de la même famille que Nadine Pelletier (Lune), GM et coordinatrice du serveur officiel NMS-Revolution, et accessoirement femme de Carl Vachon (Nightmare).

La V2, une affaire de famille ?

Loïc Jean-Fulcrand (Black Lemming)

Des bonnes idées, mais trop naïf (gentil) pour encadrer une équipe

- Affaire de l'émulateur Aegir et des soi-disant DLL

- Affaire du leak des codes sources de Dialsoft

- Affaire des retournements successifs de Nightmare

- Affaire du statut de consultant : n'importe qui peut l'être

Bilan

Absence de sérieux TOTALE des acteurs officiels : on dirait des enfants.

Le public français

Oeillères, censure et dévotion qui confine à la maladie mentale (ex: forums JoL)

Le public américain

Pragmatisme (communauté pirate très malhonnête mais prête à tout pour avoir des updates. Citer des exemples et des tarifs en dollar qu'on nous a proposés)

offre en 2006 : $200 pour les ET Aegir (wdatools+maptools+éditeurs), $5000 pour proxy complet (retrouver le mail) offerts par un américain ayant entendu parler du proxy sur ragezone

tentatives de hack à cause du refus.

offre en 2007 (? à confirmer ? demander à Cléo s'il s'en rappelle) : un programmeur de serveur officiel américain (GrapeVine ?) me propose une modification des WDATools en échange du code source du serveur 1.61. Je lui file la modification gratuitement. L'olibrius bien évidemment disparaît aussitôt dans la nature.

Le résultat

Résultat vis-à-vis du produit

Une communication basée sur la suggestion et la tromperie

La politique de communication de Dialsoft autour du développement de T4C s'apparente davantage à de la propagande mensongère qu'à une communication honnête.

Alors que la communauté attend un des communiqués clairs, rassurants et vérifiables, l'équipe de développement de T4C V2 a recours a des annonces tapageuses, racoleuses et bidonnées. (à faire : poster exemples)

Les captures d'écran censées illustrer le développement sont truquées. Par exemple comparez cet écran-ci :

posté peu après le changement d'interface apparu avec la version 1.60 (octobre 2006), où il était annoncé qu'une interface encore meilleure était en préparation, avec cet écran-là

posté très récemment (avril 2009) quand une joueuse sur les forums de JeuxOnLine a demandé quand le support de Direct3D serait réalisé. Vous remarquez que les dialogues dans la fenêtre des CC sont identiques. De toute évidence il s'agit de montages Photoshop bidonnés en capture d'écran de façon à faire croire à ceux qui les voient que l'équipe de développement dispose déjà d'un prototype jouable du jeu en Direct3D. Ce qui par extrapolation inviterait le brave chaland à penser qu'il y a des tas de choses secrètes et merveilleuses en préparation qu'on ne lui montre pas.

La vérité est qu'il n'en est rien. Il n'y a pas davantage de prototype Direct3D chez Dialsoft qu'il n'y avait d'interface V3 du temps de la 1.60 ailleurs que dans la tête d'Heschal. Et les poules auront le temps d'avoir leurs dentistes avant que ces gens-là vous proposent un T4C en Direct3D qui marche.

(en cours de rédaction)

Des fonctionnalités pompées sur les développements extérieurs

Voir ici. Rappel :

  • Le firewall NMS-R vient de L4A et l'auteur en est Eldian et non Nightmare
  • L'éditeur de maps officiel Dialsoft est une copie de celui de L4A dont l'auteur est Eldian
  • L'interface d'échange vient d'eAcceleration et l'auteur en est Maren Johnson et non Dialsoft

Liste non exhaustive.

Aucune correction de bug de sécurité

Tous les serveurs T4C officiels actuels sont duplicables. Les techniques sont connues pour faire rebooter, dupliquer ou tricher sur n'importe quel serveur officiel Dialsoft, y compris NMS-Revolution et son fameux "firewall" - avec une réserve pour Abomination depuis que Mestoph et Chaotikmind ont apporté leur aide à Black Lemming pour fiabiliser le code. Ne sachant pas les détails de leur intervention, je m'abstiendrai.

Voici le code source d'un rebooteur fait maison "Proof of Concept". Il a été testé une fois sur chaque serveur :

Mais les hackers / cheaters tierce partie ne sont pas en reste, puisque semble-t-il certains ont utilisé les informations de notre wiki à des fins tout aussi sournoises (ce qui est une bonne chose en soi, car les informations de notre wiki n'ont pas été mises en ligne pour que les tricheurs les utilisent, comme c'est le cas ici, mais pour forcer les développeurs officiels à enfin faire quelque chose pour sécuriser leur code - bon sang, toutes les solutions sont données) :

Celui-ci semble être codé en .NET et assez bien fichu (d'un point de vue technique, s'entend). Il fonctionne par hooking d'API et proxyfication. L'auteur semble en être Crystallin, responsable notoire de nombreux cheats pour T4C 1.25.

Il est donc, raisonnablement, impossible de dire que le T4C sauce Dialsoft, sous quelconque variante (NMS ou non), est à l'abri des tricheurs. La preuve en est faite, désolé au passage pour les groupies mais à un moment il faut faire quelque chose, et quand on ne sait pas faire, eh bien on demande.

Ajout de nouveaux bugs

Détailler

  • le gros bug du backbuffer dans le client officiel
  • le thread directinput lancé plusieurs fois
  • problème de safe threading
  • plantage à la sélection du personnage

configuration monstrueuse pour un jeu obsolète

Poster les estimations vues sur JoL

Pourquoi leurs modifications rendent le passage à Direct3D impossible

Direct3D, comme son concurrent OpenGL, est une API graphique de rendu volumique. On ne raisonne donc plus en termes de dalles ou de pixels mais en termes de surfaces, sur lesquelles il convient d'appliquer des textures.

Sous Direct3D, toutes les textures doivent êtres chargées dans la mémoire vidéo à la même résolution (16 bits par pixel, 24 bits par pixel, 32 bits par pixel...), car le firmware de la carte graphique est initialisé dans un mode de travail choisi par le programmeur et on ne peut pas en changer. La résolution de travail la plus rapide, la résolution "native" (car les bus physiques de la carte graphique ont, historiquement, des largeurs multiples de 32), est 32 bpp.

Or au format 32 bpp Direct3D l'ensemble des textures de T4C avec toutes celles que Dialsoft a ajoutées pèsera au minimum 2.5 Giga-octets dans la mémoire vidéo. (2 501 072 268 octets, en version 1.66 Dialsoft)

De plus, mais surtout, en Direct3D la taille de ces textures en mémoire vidéo est étendue a la plus proche puissance de 2. Ce qui fait que par exemple, toutes les jolies textures d'Heschal de 530 ou 580 pixels de large seront en fait chargées dans une texture de 1024x1024 soit une perte sèche de 100*(1-530²/1024²) = 73% de l'espace mémoire.

Non seulement les textures de Dialsoft en mémoire vidéo pèsent un poids qui les rend inchargeables dans n'importe quelle carte graphique présente ou à venir sur le marché avant quelques années, mais en plus elles gaspillent plus de la moitié de la mémoire.

Il y a actuellement plus de 92 000 textures indépendantes dans T4C en comptant celles rajoutées par Dialsoft qui ne respectent pas le format au multiple de 2 nécessaire à la conversion Direct3D.

Vous n'êtes pas près de voir T4C en Direct3D avec une équipe pareille, c'est le moins qu'on puisse dire.

Résultat hors production

Tous les codes sources et les binaires de Dialsoft sont dans la nature

En raison du turnover, en raison des clashes, en raison du chantage exercé par certains, en raison de l'inconscience affichée par d'autres, ou bien par intérêt, ou bien par vengeance, je suis à l'heure actuelle incapable de dire qui dans cette équipe, en incluant les anciens membres, a effectivement respecté son NDA. Tous les codes sources et les binaires faits par Dialsoft jusqu'à la version 1.70 sont dans la nature : il suffit de tendre la main.

  • Voici le code source du serveur 1.4 :

  • Voici le code source du client 1.5 :

  • Voici le code source du serveur 1.6 :

  • Voici le code source du client 1.6 :

  • Voici les binaires du serveur 1.50 :

  • Voici les binaires du serveur 1.60 :

  • Voici l'éditeur de WDA Dialsoft 1.60 :

  • Et son code source :

  • Voici l'éditeur de maps Dialsoft 1.60 :

Il en reste dans l'arborescence mais il n'est pas dans notre intention d'en faire une liste exhaustive ici.

Qui est le responsable de ce désastre ?

  • Et de un :

  • Et de deux :

  • Et de trois :

Mais il y en a d'autres. Ici ce sont seulement ceux qui ont eu la maladresse de laisser leur signature parce qu'ils ont leaké des binaires compilés avec les symboles de debug. Il y a pourtant des dizaines d'autres packages non signés, et ceux-ci, mis à part qu'ils sont sortis par un moyen ou par un autre de chez Dialsoft je n'ai strictement aucune idée d'où ils proviennent !

Croyez-le ou non, mais dans la communauté pirate ces codes sources ne sont pas utilisés. Pour plusieurs raisons.

  1. C'est illisible,
  2. C'est bugué,
  3. L'immense majorité de la communauté n'a pas les compétences pour s'en servir, "O Tempora, o Mores!"
  4. Ceux qui les ont ont déjà développé leurs propres outils depuis longtemps.

A noter également que les serveurs de développement de Dialsoft t4coperations.com sont connus et compromettables (ils hébergent un Terminal Server), leur adresse ayant maladroitement été postée sur les forums de JeuxOnLine par l'un des membres de la V2 dans l'URL d'une image.

Tout a filtré jusqu'à l'adresse de la machine privée de Marc Frega, qui est une machine Windows Vista hébergeant un serveur web sur le port 2002, un serveur SMTP, et à laquelle on peut se connecter via le bureau à distance à l'adresse marc.jungle.net.

Compromission avec certains membres de la communauté pirate

Une bonne partie de l'équipe de développement V2 s'est compromise en entretenant des liens et en échangeant des informations avec des développeurs pirates (MestophKrodJean Suifou...) sur un forum secret hébergé à l'adresse http://t5c.free.fr (merci à Mestoph de m'avoir révélé l'information et autorisé à emporter quelques pièces à conviction)

Voici les utilisateurs de ce forum :

Les preuves d'échange d'information sont innombrables : [3][4][5][6]...

A ce niveau de collusion se pose la question de savoir si la mise en open source du développement de T4C n'aurait pas été préférable. Cette éventualité avait été fortement appuyée par la communauté au moment du transfert de propriété de Vircom à Dialsoft mais refusée par les ayant droits (pour faire court, Marc Frega). On ne s'étonnera qu'à moitié que des membres de l'équipe de développement bénévoles, recrutés précisément parmi cette communauté, soient passés outre.

Chantage au développement et extorsion de fonds

Extrait d'une discussion entre Mestoph et un ex-membre de la V2.

X dit :

Je pense que c pas dialsoft le mensonge
faut pas croir
marc a eu peur de se retrouver seul
et nightmare lui a foutu le couteau sous la gorge
heschal pareil
il menacait de partir à chaque fois

Mestoph dit :

tu as des histoire a ce sujet ?

X dit :

Faut bien comprendre ça
plein

Mestoph dit :

je te log hein mais ton nom sera pas cité

X dit :

log à l'appui

Mestoph dit :

tu peut m'en donner stp

X dit :

Donc en gros, avant Nightmare, il y avait Carlos comme "frein", pendant des mois de bossais seul donc, avec carlos toujours absent. On a engagé The Destiny , après que je le test vite fait... mais assez pour ne pas prendre un Scotch n2
Donc là on avait une équipe déjà bien, mais carlos ne bloquait toujours (je raconte tout ca de mémoire...)

Mestoph dit :

Scotch c pas un bon codeur et c un pretencieux de toute facon

X dit :

Scotch c'est comme raziel
C'est des trucs qui servent à rien
fin ca c'est hs

Mestoph dit :

oui

X dit :

Donc là, ....
y'a Black Lemming qui a l'idée à la con
mais vraiment l'idée la + conne de sa vie
De contacter Nightmare au sujet des reboots niveau serveur, proxy et tout, car à l'époque nous pensiosn que c'etait nightmare qui avais codé tout ca, et non eldian

Mestoph dit :

Ben l'éerreur etait belle

X dit :

Et là j'ai vite compris que Nightmare était un heschal 2 le retour de la menace, malheureusement BL ne m'a pas écouter (et il m'a dit + tard avoir regretter),
Hum donc entre tout ça, Heschal nous pourrissais bien la vie (faudra que tu refoutes dans l'ordre mdr)
Et dès qu'on lui disais: "mais tu ne peux pas faire ça!"

Mestoph dit :

pas d esoucis

X dit :

il disait: "Ma kité ekip si vou pan d'akor"

Mestoph dit :

c sorkvild qui s'en chargera
MDR l'exemple

X dit :

Et allait pleurer chez marc... au final marc à PAYER et pas qu'une fois , plusieurs fois Heschal, donc le delire qu'il n'a pas été payé c'est n'imp. J'ai moi même été payé pour des modifs
(quand il y avait que moi qui bossais)

Mestoph dit :

Heschal a été payer par chantage ?
ainsi que NM ?

X dit :

Heschal m'a montré son vrai visage surtout quand il m'avait raconter, qu'a l'époque sur goa il racontait avoir le cancer pour que les gens l'aides dans le jeu.

Mestoph dit :

oui il etait stupid comme cela sur goa

X dit :

On peut pas dire ça, mais il a mis la pression sur marc, car marc avait peur de perdre toute l'equipe et que les gens diffuses les sources, marc ne cro

(NDLR: Je n'ai pas la suite de la discussion)

Ce qui est décrit ici s'appelle du chantage en vue d'extorsion de fonds. On voit donc se profiler la situation actuelle : toute exclusivité est pour NMS, les vrais patrons sont Carl Vachon et Jonathan Pelletier, et Marc Frega est impuissant au sein de sa propre société.

Elle est pas belle la vie ?

Remarquez que dans l'installeur du client NMS il n'y a pas une seule fois le mot Dialsoft.

Ce qui AURAIT DU être le résultat

  • T4C devrait tourner sur une machine quatre fois moins puissante, avec quatre fois moins de mémoire, et aucun temps de chargement (thread de chargement séparé)
  • Des mises à jour régulières, centralisées, paramétrables côté serveur
  • Aucun nouveau contenu avant la fin de l'audit, de la correction et de la fiabilisation du code
  • Une nouvelle base pour un T4C sain et sécurisé
  • Quatre fois plus de nouveautés : tout ce qui a été réalisé par la communauté pirate aurait pu l'être en dix fois moins de temps par la communauté officielle

L'avenir

3 choix

Soit continuer à supporter ce modèle et attendre

- Marre d'attendre, ou plutôt, marre de se faire enc**er.

Soit se proposer pour les aider au développement dans ce cadre officiel

- Impossibilité de bosser avec les acteurs actuels, surtout Nightmare et Heschal

Soit prendre le taureau par les cornes et mener du développement parallèle

- Implications : illégalité

Le choix d'Aegir

Base de travail

- Serveur 1.25 trafiqué par reverse-engineering

- Proxy robuste avec système de plugins qui supporte tous les développements : on développe T4C sans avoir besoin du code source

Résultats visibles par les joueurs

  • Sécurisation du code : crypto forte, plus aucun hack ne fonctionne
  • Système d'agonie à la mort du joueur
  • Emulation du coffre
  • Emulation du trade
  • Firewall anti-reboot
  • Nouvelle interface en overlay : liste d'amis
  • Nouvelle interface en overlay : feuille de puissances et résistances magiques du personnage
  • anti-AFK : dégroupage automatique
  • anti-plug : 10 secondes avant déco
  • suppression du bug de flood popos
  • suppression de l'affichage du level dans les groupes
  • Formatage automatique des noms des PJ
  • Chandelles droppées émettent de la lumière
  • Ecriture sur parchemins (nouvelle interface en overlay) - les PJ peuvent se constituer une bibliothèque
  • Robot proxy IRC pour communiquer avec les joueurs de l'extérieur du jeu
  • Emulation de la fenêtre de description des items
  • Les mobs avec skin humain peuvent tirer à l'arc
  • Système de mise au pilori
  • Nouvelle interface en overlay : les joueurs peuvent mettre eux-mêmes leur titre et leur info RP
  • Info RP consultable en jeu et sur le site
  • Affichage d'une description RP du joueur au clic droit
  • Les noms sur les CC sont triés par ordre alphabétique (modification mineure)
  • items "sonores" (par exemple, sifflet de la GR) qui permettent à des PNJ d'en appeler d'autres en émettant un son et en affichant la direction
  • Raccourcis CC
  • Messagerie hors-ligne : les joueurs peuvent whisper des personnages déconnectés
  • Système météo au sol automatique : 4 saisons (chute des feuilles en automne, neige au sol en hiver, fleurs au printemps...)
  • Effets météo aériens : moments de pluie, neige et brouillard visibles dans le jeu
  • Les joueurs peuvent reroller automatiquement leurs personnages tous les 3 mois

Résultats visibles par les GM

  • logs améliorés (vols, items rebutés, items vendus à PNJ)
  • Réécriture du système de verrouillage des portes, portes scriptables
  • Scriptage des caractéristiques possible
    • modif compétence vol : loguée, nécessité d'être au calme, impossibilité de voler en boucle
    • modif sorts de recall : nécessité d'être au calme avant d'incanter
  • scriptage des lieux possible
    • exemple : les séraphes dans les temples ennemis
  • Nouvelles commandes GM :
    • téléportations de zone
    • modification de la météo
    • modification du sanctuaire des joueurs
    • summon de mobs scriptables
    • recherche et ban d'IP
    • summon de masse d'objets (pour rendre des objets suite à un warp, par exemple)
  • Les PNJ sont scriptables
    • target.name - pour qu'un PNJ affiche le nom d'un joueur
    • target.title - pour qu'un PNJ affiche le titre d'un joueur
    • target.stat(valeur) - pour qu'un PNJ affiche la valeur d'une stat d'un joueur
    • target.viewflag(valeur) - pour qu'un PNJ affiche le flag d'un joueur
    • target.gold - pour qu'un PNJ affiche l'or porté par un joueur
    • target.xp - pour qu'un PNJ affiche l'XP d'un joueur
    • target.bankgold - pour qu'un PNJ affiche l'or en banque d'un joueur
    • target.bank_get(valeur) - pour qu'un PNJ retire de l'or en banque pour un PJ
    • target.bank_put(valeur) - pour qu'un PNJ place de l'or en banque pour un PJ
    • target.teleport(x,y,w) - pour qu'un PNJ téléporte un PJ sans bug (correction bug Vircom, autres commandes ignorées)
    • target.portalteleport(x,y,w)
    • target.setsanctuary(x,y,w) - pour qu'un PNJ modifie le sanctuaire d'un joueur
    • self.bluevoice(texte) - pour qu'un PNJ affiche une voix bleue à un joueur
    • self.localbluevoice(texte) - pour qu'un PNJ affiche une voix bleue autour de lui
    • self.eval(expression mathématique) - pour qu'un PNJ évalue une expression mathématique
    • admin.command(expression) - les PNJ peuvent passer toutes les commandes GM
  • Système météo scriptable : périodes de pluie, de brouillard, de neige selon le lieu et la saison, possibilité de définir des zones, des températures et des climats
  • Système de consultation de logs avancé (recherches à plusieurs critères, filtres)
  • Système d'intervention sur les PJ offline
  • Système de restauration automatique des PJ supprimés (et de retour en arrière individuel des PJ à n'importe quelle date)

Système de centralisation des développements

  • Tous les GM ont chez eux la dernière version des fichiers de contenu, de manière synchronisée
  • Aucun logiciel éditeur n'est nécessaire : les WDA sont intégralement représentés par une arborescence de fichiers texte dans des répertoires (copier/coller et modifications de masse possibles)
  • Décompilation et recompilation automatique des WDA
  • Chaque GM peut faire du mapping et modifier les cartes, l'éditeur est fourni avec la synchronisation
  • Chaque GM peut modifier les skins et les graphismes, l'éditeur est fourni avec la synchronisation
  • Chaque GM peut modifier les textes de n'importe quelle quête, y compris celles des DLL
  • Chaque GM peut déplacer, placer ou supprimer n'importe quel PNJ, y compris ceux des DLL
  • Création et mise en ligne du webpatch automatisée à chaque reboot
  • Backups automatiques

Conséquences

  • Pour les GM: Aegir : un serveur "turn on and forget"
  • Serveur peuplé, bonne ambiance et joueurs satisfaits
  • Toutes les modifications d'Aegir proposées aux développeurs officiels : aucun ne nous a rien demandé
  • A vous de comparer

Futur possible pour Aegir ?

- L'espoir de salut de T4C par les acteurs actuels de l'officiel est depuis longtemps évaporé

- Unique souhait : une licence, et ainsi la fin d'êtres considérés éternellement comme les bouc émissaires des échecs de la communauté officielle.

Futur possible pour l'officiel ?

- A eux de voir.

Pourquoi avoir écrit cet article ?

  • Parce qu'il se trouve dans cette communauté des joueurs remplis d'espoir à qui on continue de faire prendre des vessies pour des lanternes,
  • Parce que T4C n'est pas encore tout à fait mort mais que j'ai l'intime conviction que dans la direction où il va il le sera bientôt,
  • Parce que le projet V2 est en train de se faire noyauter par une petite équipe de personnes intéressées et sans scrupules et qu'ils sont en passe de réussir,
  • Parce que je ne supporte plus de voir que sur certains forums on laisse des incompétents pérorer sans qu'il y ait personne pour les reprendre,
  • Parce que je ne supporte plus de voir ces gens-là défendus par des groupies hystériques et fanatisées sous la bénédiction de modérateurs qui ne veulent rien savoir,
  • Parce que si ces gens-là doivent faire crever le jeu, j'aime autant que tous ceux qui deviendront leurs victimes connaissent leurs véritables bourreaux.

„Die Wahrheit triumphiert nie, ihre Gegner sterben nur aus.“ -- Planck

--Sorkvild 18 avril 2009 à 23:09 (MSD)