Recherche

FORUM AUTOUR ET HORS DU JEU DE ROLE » Customs

DreadCast Development Kit (DCDK)

Créé par Pelagia le 27 Février 2025 à 17:25

Visible par tout le monde
Nom du sujet
Visibilité du sujet 
Type de sujet
Poster
Pelagia Posté le 27 Février 2025 à 17:25 #1
Avatar
Chef d'entrepri.
Compte Premium
Voir mon EDC
AVERTISSEMENT : Ce development kit est à destination des développeurs de script uniquement. Il ne présente aucun intérêt pour les joueurs directement.

DreadCast Development Kit

(validé par Redline)

Genêse

Je travaille depuis quelques temps déjà à un nettoyage et une remise au goût du jour des divers scripts existants. Le DreadCast Script Manager allait dans ce sens. Du coup, force a été de constater qu'il n'est pas toujours simple de faire coïncider les scripts entre eux, sans quelques bases solides et communes.
Aussi, je propose cette fois deux choses : un dépôt Github mettant en commun les scripts de tous le monde pour faciliter le travail de dév/correction/amélioration, et un début de Development Kit pour faciliter le développement des scripts dans l'environnement de DC de manière propre et responsable.
__________


Un dépôt Github ?

Oui, et ça se passe ici : GITHUB
Il y a plusieurs intérêts à ça :
- une collaboration facilité et un versionning propre (c'est tout le principe de git après tout)
- un "déploiement" facile, puisqu'on peut synchroniser son dépôt greasyfork sur un dépôt Github.
- une décentralisation : j'ai ouvert le dépôt Github, mais si demain, j'arrête DC, les autres joueurs-contributeurs peuvent poursuivre leur travail sans problème.
Si ce n'est encore fait, je peux tout à fait passer le dépôt en "organisation" pour simplifier les choses. Si il y a des intéressés, n'hésitez pas à me MP à ce sujet ! ([Pelagia] en jeu)
__________


Un Development Kit ?

Encore oui ! Le DreadCast Development Kit (ou DCDK de son petit nom). Comme son nom l'indique, il se veut être une boite à outil pour développer facilement ses kits : composants UI (boutons, popup, menu, etc...), interface unifiée avec celle de DC (et facilité pour ceux qui se font des thèmes), fonctionnalités accessibles (ajouter une commande de deck, une commande de chat, importer un fichier Spreadsheet ou JSON, etc...), et d'autres choses.
Ce Development Kit est voué à évoluer et s'affiner bien sûr.
__________


Comment ça fonctionne ?

Assez simplement, un userscript permet d'en appeler d'autres dans l'en-tête. Dans un soucis de compatibilité, on fait attention à inclure une version spécifique, comme ceci :
// ==UserScript==
// @name Mon script génial
// @namespace Dreadcast
// @match https://www.dreadcast.net/Main
// @version 1.0.0
// @author Pelagia/Isilin
// @license https://github.com/Isilin/dreadcast-scripts?tab=GPL-3.0-1-ov-file
// @require https://update.greasyfork.org/scripts/507382/Dreadcast%20Development%20Kit.user.js?version=1533476
// ==/UserScript==

// Corps du script ...

Sachant que les TamperMonkey, GreaseMonkey, violentMonkey, &co, sont assez intelligents pour pratiquer la mise en cache. Si plusieurs scripts appellent un même script d'une même version, ils ne le font pas une fois chacun !

Le code du Development Kit est accessible sur Github et Greasyfork.

Le Development Kit lui même n'a pas de dépendance, mais profite du JQuery déjà intégré à DC (dans une version si vieille que j'en ai des frissons). Je sais, ce n'est pas bien propre, mais puisque c'est là, j'en profite !

Et concrètement, coder avec le Development, Kit, ça donne ceci :
$(() => {
if (Util.isGame()) {
console.log('Hello World!');

$(document).on('click', '#hello_world_setting', () =>
DC.UI.PopUp('hello_world_popup', 'Test', $('YES')),
);
} else if (Util.isForum()) {
console.log('Hello Forum!');
console.log(
DC.Chat.t('coucou', { bold: true, italic: true, color: 'ababab' }),
);
}
});

Ici, on affiche en console un message différent si c'est le jeu ou le forum. Et si on est en jeu, on crée une popup accessible depuis le bouton de config du script dans le DCSM (fonctionnalité propre au DCSM).
__________


Que peut faire le Development Kit ?

- Une série de fonctions pour le déboggage et le support (guard, deprecate, isXXX)
- Des fonctions pour récupérer le context (Jeu/Forum/EDC) et l'utiliser dans le script. Ce qui permet de coder un script inter-context (genre un script pour le forum avec son menu de paramétrage dans le Jeu)
- Des fonctions propres pour interagir avec le chat sans polluer les autres scripts (envoi de message et triggers avant/après envoi)
- gestion de la mémoire locale (via la mémoire userscript plutôt que le localstorage, pour une meilleure isolation des données en mémoire)
- l'application de CSS facilement et proprement
- modification du top-menu en jeu (ajout de menu, dropmenu, sous-menu, séparateurs)
- des composants UI (boutons, colorpicker, infobulle, checkbox, popup, sidemenu) dont le design est calqué sur celui de DC pour simplifier le theming
- des fonctions pour faciliter le chargement de fichier externe (spreadsheet, script dynamniquement, json, etc...)
- des fonctions pour le chat (mise en forme, ajout de commande)
- des fonctions pour les decks (afficher des messages, nouvelles commandes)

Un exemple concret de l'utilisation du Development Kit, c'est le DCSM. Le code est ICI.

Comme toujours, si il y a des questions, des commentaires, etc..., n'hésitez pas à me MP en jeu.
Odul Posté le 01 Mars 2025 à 13:05 #2
Avatar
Hacking Vaut
Compte Joueur
Voir mon EDC
Cool !
Kobal Posté le 01 Mars 2025 à 13:46 #3
Avatar
M. Clone
Compte Premium
Voir mon EDC
Excellente initiative !