DarkcityRp

DarkcityRp

Un mode de jeu de rôle (Roleplay) persistant et ambitieux développé sur le moteur s&box. Incarnez un citoyen dans une métropole sombre où chaque interaction sculpte l'économie et la société.

La Vision : Un Sandbox Social Immersif

Au lieu de reproduire les schémas classiques du Roleplay (RP) sur des moteurs vieillissants, DarkcityRp a été conçu de zéro sur s&box (le successeur spirituel de Garry’s Mod). L’objectif n’est pas seulement de proposer des “métiers”, mais de simuler une société urbaine sombre et fonctionnelle.

Ici, la narration ne vient pas de scripts pré-écrits, mais de mécaniques systémiques : une économie gérée par les joueurs, un système légal complexe et des interactions physiques réalistes. Le jeu est conçu pour que la coopération ou le conflit entre les joueurs soit le principal moteur de l’histoire de la ville.

Piliers du Game Design

Pour concrétiser cette vision, le développement s’est concentré sur trois piliers fondamentaux, traduits par des systèmes de gameplay concrets :

1. Métiers et Économie

Les métiers sont le principal moyen de gagner de l’argent. Avec une grande variété de professions, chaque joueur peut expérimenter la vie qu’il souhaite mener.

  • Expérience impactante : Construit autour de l’interaction sociale, chaque métier offre une expérience unique au joueur.
  • Commerces gérés par les joueurs : Les boutiques ne sont pas de simples PNJ statiques. Les joueurs commandent leurs stocks, fixent les prix et gèrent leurs employés.
  • Persistance totale : Si vous cachez un sac d’argent dans une ruelle, il y restera après un redémarrage du serveur jusqu’à ce que quelqu’un le trouve.

2. Le Contrat Social Dynamique

Le système de loi et d’ordre est géré de manière organique.

  • Légalité vs Criminalité : Au lieu de rôles fixes (ex : “Voleur”), le jeu gère des actions. Voler est un acte, pas une profession. N’importe qui peut tenter un cambriolage, mais devra faire face aux conséquences légales (Garde à vue, Amendes, Prison).
  • Département de Police : Les agents disposent d’outils avancés : terminaux dans les véhicules, gestion des casiers judiciaires, radar et armement. Leur rôle est défini par des procédures codées dans le jeu.

3. Identité et Évolution

  • Personnalisation du personnage : Un système complet pour personnaliser l’apparence, le nom et l’histoire de son personnage.

Mon travail sur ce projet

Développer sur s&box (basé sur Source 2) offre des opportunités techniques uniques mais impose une architecture moderne. Mon expérience passée sur Unity m’a aidé, mais s&box est encore en développement et beaucoup d’aspects sont gérés différemment :

  • Système de véhicules : Système de conduite de véhicules entièrement réaliste.
  • Métier de coiffeur : Possibilité de personnaliser la coupe de cheveux des autres joueurs.
  • Casino : Machines à sous, poker, roulette.
  • Système de portes : Fonctionnalité fondamentale d’un jeu Dark RP. Système complet (achat, vente, verrouillage, déverrouillage, partage de clés).
  • Bris de glace : Les vitres se brisent de façon dynamique lorsqu’un joueur les frappe.
  • Commandes d’administration : Outils complets de modération pour l’équipe du serveur.
  • Écran de mort : Interface et logique personnalisées pour la réapparition des joueurs.
  • Médecin : Système complet de soin et de réanimation.

Les Défis de l’Accès Anticipé

Développer sur un moteur qui est lui-même en cours de développement (s&box) a été le défi principal :

  1. Instabilité de l’API : Facepunch (les développeurs de s&box) modifie régulièrement les systèmes internes et l’API C#. Cela a nécessité une veille constante et de lourdes phases de refactorisation du code pour adapter DarkcityRp aux nouvelles architectures du moteur (notamment lors de la transition vers le Scene System).
  2. Optimisation du Monde Ouvert : Gérer une carte urbaine dense avec une physique complexe sur tous les objets, des véhicules et des dizaines de joueurs simultanés nécessite une optimisation agressive (culling, LODs, gestion des ticks réseau) pour maintenir un framerate acceptable côté client et serveur.