Licence et sens moral

Besoin d'avis sur un cas précis

a marqué ce sujet comme résolu.

(Ce sujet n'ayant aucun lien direct avec la programmation, j'ignore si je l'ai posté dans le bon forum.)
EDIT: Tiens, je pensais avoir publié dans le forum "Programmation".

Bonsoir,

J'ai développé il y a quelques temps un petit projet destiné à un petit groupe de personne. Comme je ne visais pas un grand public, je n'ai jamais penser à le publier avec une licence précise. Et aujourd'hui je me demande alors quelle licence je pourrais choisir, et s'il est vraiment moral de publier en open-source.

Le problème

Mon programme permet de modifier les règles d'un jeu vidéo (qui n'est pas de moi) en lisant et en modifiant certaines valeurs dans la mémoire vive. Comme il existe un mode de jeu en ligne, j'ai donc publié deux versions.

  • Une version sans aucune limite. Principalement pour les personnes de confiance.
  • Une version qui bloque la modifications des règles lors du jeu en ligne. Cela permet d'éviter que le joueur triche injustement.

Chacune de ces deux versions est compilée avec comme simple différence une macro #define (je code en C++) qui donne (ou bloque) certains privilèges.

Publier en open-source ?

Je pensais alors publier mon programme en open-source. Tout d'abord parce que je supporte cette idée d'ouverture et de partage. Ensuite, la bibliothèque que j'utilise m'impose techniquement de publier en GPL (mais vu le faible nombre d'utilisateurs, j'imagine que ce n'est pas grave de ne pas respecter ce point).

Problème : il suffirait de copier le code source, de modifier la #define, et paf, l'utilisateur se retrouve avec la version sans aucune limite. Et donc n'importe qui capable de recompiler le code source peut techniquement tricher, ce que je ne voudrais évidemment pas.

Bien sûr, cela est très peu probable (d'ailleurs il existe déjà beaucoup d'autres moyens pour tricher à ce jeu en ligne). Mais jusqu'à maintenant, j'ai toujours évité de donner le code source à n'importe qui.

La question

Faut-il alors plutôt privilégier l'open-source et faire confiance à l'utilisateur ? Considérer qu'il est peu probable qu'il en profite pour tricher et que de toute manière il existe d'autres moyen le faire ?

Ou alors faut-il interdire l'accès aux sources et s'assurer qu'aucune triche n'ait lieu pour de simples raisons morales ?

Qu'en pensez-vous ? Que choisiriez-vous ?

+0 -0

Si la bibliothèque que tu utilises est sous GPL et non LGPL il me semble que tu dois publier ton programme sous GPL si tu le publies.

Les tricheurs en ligne c'est pénible, alors je publierais la version qui ne permet pas de tricher en ligne sans modification. Si quelqu'un est assez motivé pour contourner ça, tu n'y peux rien.

Comment est-ce que la triche en ligne fonctionne dans ton cas ? Est-ce évitable du point de vue de l'éditeur ? Si oui, tu pourrais les contacter.

EDIT: Fôthes.

+0 -0

L'autre à question à se poser, est-ce que ça aurait un réel intérêt de fournir ton code source au public ? Je suis très pro-libre, mais au final si c'est un soft personnel pour tricher vite fait que tu files à tes amis/famille, il n'a fondamentalement aucun intérêt à être publié sur le net.

+0 -0

Comment est-ce que la triche en ligbe fonctionne dans ton cas ? Est-ce évitable du point de vue de l'éditeur ? Si oui, tu pourrais les contacter.

Grimur

Le mode en ligne consiste à terminer un challenge le plus rapidement possible (pour info, le jeu en question est Rayman Legends). Pour tricher, cela reviendrait à modifier la règle correspondant au but à atteindre (par exemple passer de "atteindre 300m" à "atteindre 5m").

D'après ce que j'ai pu en déduire, le jeu se contente simplement d'envoyer un score au serveur, donc les développeurs devraient modifier tout le système de score pour éviter la triche. Mais malgré les différentes plaintes, UbiSoft semble fermer les yeux sur ce problème, en se concentrant principalement sur les versions pour console (là où la triche est impossible, ou du moins beaucoup plus rare.)

Le nombre de tricheurs n'ayant pas cessé d'augmenter (téléportation à la fin du niveau, envoie d'un faux score, etc…), je me suis dit que je pourrais publier le code source sans me sentir trop coupable. (Je crois que récemment, il y a un modo que l'on peut contacter afin qu'il supprime les tricheurs du scoreboard, mais ça fait un moment que je n'ai plus joué au jeu.)

Sinon, pour info la bibliothèque est Qt.

Je suis très pro-libre, mais au final si c'est un soft personnel pour tricher vite fait que tu files à tes amis/famille, il n'a fondamentalement aucun intérêt à être publié sur le net.

Phigger

Oui forcément, peut-être bien que je ne vais jamais ajouter de licence, mais cette question me tournait en tête, et j'avais envie d'avoir des avis sur ce cas.

Le principal avantage de publier en open-source serait de pouvoir donner l'accès au code source aux membres du projet, en ajoutant simplement un lien "télécharger le code source" à côté du lien de téléchargement, voir même avoir un dépôt git public. Pour le moment, je suis obligé de mettre le code source de chaque release dans un dossier privé, et je dois penser à mettre à jour les personnes autorisées à consulter. Mais bref, ça reste évidemment des petits détails.

EDIT: En fait, ce n'est pas un programme fait pour tricher, hein. ;) Et ce n'est pas vraiment pour mes amis, mais plutôt pour les joueurs expérimentés qui veulent s'entraîner.

+0 -0

Si la bibliothèque que tu utilises est sous GPL et non LGPL il me semble que tu dois publier ton programme sous GPL si tu le publies.

Grimur

De mémoire, la contamination de la GPL ne s'applique pas si on utilise une bibliothèque externe sous GPL — elle n'a court que si l'on modifie directement un logiciel sous licence GPL. Donc le problème ne se pose pas ici.

+0 -0

Au sujet de Qt :

Users can develop proprietary applications that dynamically link to the Qt libraries without having to release their application source code.

Qt: Making the right licensing decision

There are licensing issues in distributing applications embedding Qt code in a static link. While you are probably safe if your application is distributed according to the terms of a recognized free and open-source license, you should definitely check the licensing issue for proprietary or closed-source applications.

Building a static Qt for Windows using MinGW

Pour le moment, je compile tout en statique, donc je suis obligé de publier en GPL.

Ou sous licence CeCIll. ;) La CeCIll, c’est bon, mangez-en !

Sinon, pour ta question morale, je dirais que si l’éditeur est au courant qu’il y a des trous gros comme le Kazakhstan dans son système de sécurité et qu’il ne fait pourtant rien pour éviter la triche, alors ce n’est pas à toi de prendre à sa place la responsabilité d’éviter les tricheurs. :)

+3 -0

Mon programme permet de modifier les règles d'un jeu vidéo (qui n'est pas de moi) en lisant et en modifiant certaines valeurs dans la mémoire vive. Comme il existe un mode de jeu en ligne, j'ai donc publié deux versions.

L'OS t'envoie pas bouler quand tu essaies de faire ça ?

Mon programme permet de modifier les règles d'un jeu vidéo (qui n'est pas de moi) en lisant et en modifiant certaines valeurs dans la mémoire vive. Comme il existe un mode de jeu en ligne, j'ai donc publié deux versions.

L'OS t'envoie pas bouler quand tu essaies de faire ça ?

Au

Nope. Il y a par exemple des programmes comme l'éditeur héxadécimale HxD qui permettent également de lire/écrire dans la RAM de n'importe quel processus. Au pire, ça demande peut-être des droits d'admin, mais pas chez moi.

Pour faire cela, tout repose principalement sur trois fonctions qui proviennent directement de l'API Win32 : OpenProcess, ReadProcessMemory et WriteProcessMemory. Je ne pense pas que ça vaut la peine d'en écrire un article, si ?

Bah pourquoi pas ? C'est peut-être basique pour toi mais pas pour tout le monde. Écrire un article détaillé sur comment tu écris dans la mémoire du processus, pourquoi l'OS t'envoie pas bouler et comment tu as déterminé quoi modifier pour obtenir tel effet peut être sympa. En tout cas ça m'intéresserait de lire ça et je ne pense pas être le seul.

NB sur la GPL : Elle est très contaminante. Ce lié à une lib GPL même dynamiquement te contamine normalement. Sauf que GPL ne veut pas dire "je publie les sources sur un site internet". L'auteur a l'obligation de fournir les sources :

  • qu'aux personnes à qui il a distribué le logiciel: par exemple un logiciel développé en GPL en interne dans une entreprise et utilisé uniquement en interne n'a aucune obligation de fournir les sources au reste du monde. Donc techniquement il n'y a que les personnes à qui il a donné les binaires qui peuvent les réclamer.
  • Il doit les fournir si on lui demande, il n'a pas d'obligation de les mettre sur internet.

Techniquement tant qu'il envoie les sources par mail/courrier/pigeon a un de ces utilisateurs quand celui-ci lui demande, il respecte la GPL.

Bah pourquoi pas ? C'est peut-être basique pour toi mais pas pour tout le monde. Écrire un article détaillé sur comment tu écris dans la mémoire du processus, pourquoi l'OS t'envoie pas bouler et comment tu as déterminé quoi modifier pour obtenir tel effet peut être sympa. En tout cas ça m'intéresserait de lire ça et je ne pense pas être le seul.

Grimur

(Tu n'es pas le seul.)

@AmauryPi : Il me semble que si justement, et c'est là le gros frein de la GPL ^^

Phigger

Ah, au temps pour moi, il me semblait qu'en cas de lien dynamique la GPL ne contaminait justement pas.

+0 -0

Bon, j'ai donc pris la décision d'appliquer une licence GPL. Merci à tous pour vos conseils. :)

Bah pourquoi pas ? C'est peut-être basique pour toi mais pas pour tout le monde. Écrire un article détaillé sur comment tu écris dans la mémoire du processus, pourquoi l'OS t'envoie pas bouler et comment tu as déterminé quoi modifier pour obtenir tel effet peut être sympa. En tout cas ça m'intéresserait de lire ça et je ne pense pas être le seul.

Grimur

C'est envisageable oui, mais ça risque de manquer cruellement de contenu, à moins que je n'aille chercher pas mal d'infos complémentaire çà et là. Mais si j'ai le temps un jour, peut-être bien que j'essaierai de rédiger un truc. A voir.

Ce lié à une lib GPL même dynamiquement te contamine normalement. Sauf que GPL ne veut pas dire "je publie les sources sur un site internet". L'auteur a l'obligation de fournir les sources : …

Depuis la GPLv3 il n'y a pas une clause d'obligation de distribution qui s'ajoute ?

Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte