📖 Le Contexte : "L'excellence en circuit fermé"
Le monde de FiveM est saturé de serveurs "copier-coller". PakeTekos prend le contrepied total : 90% du code est propriétaire, développé spécifiquement pour garantir une expérience unique et une maîtrise totale de la performance.
Bien que le projet soit actuellement en phase de MVP (Minimum Viable Product), chaque brique logicielle est pensée pour l'évolutivité. Pour soutenir ce développement massif, j'ai dû créer mes propres outils de production, dont certains modules génériques ont été extraits pour être partagés avec la communauté.
🛠️ L'Écosystème : Entre Propriétaire et Open Source
PakeTekos n'est pas qu'un script, c'est un écosystème. Si le cœur du gameplay reste privé, j'ai fait le choix d'ouvrir certaines briques techniques qui redéfinissent le workflow de développement sur FiveM :
- tk-ui (Open Source) : Ma solution de "Developer Experience" (DX). Ce pont permet d'utiliser Nuxt/Vue.js pour les interfaces in-game avec un workflow moderne (
npm run dev), permettant de coder les UI sans même lancer le jeu. - Le Core PakeTekos (Propriétaire) : Un ensemble massif de scripts gérant l'économie, la persistance des entités et les interactions sociales, représentant le cœur de la valeur du projet.
- tk-engine (Open Source) : Un moteur ECS (Entity Component System) en TypeScript. Il sert de base pour créer des mini-jeux ultra-performants (comme tk-coppertheft) intégrés directement dans les interfaces NUI.
- tk-phone (Exemple Premium) : Une démonstration de ce que permet ma stack : un smartphone réactif, fluide et modulaire, conçu comme une application web de pointe.
🎯 Mon Rôle : Architecte Système & Lead Developer
En tant que créateur du projet, je jongle entre la maintenance du "Core" privé et l'évolution des outils publics. Mon travail se concentre sur la transition d'une base QBCore modifiée vers un framework 100% propriétaire plus léger (C# / Lua).
1. Développement d'Interfaces (NUI)
Grâce à tk-ui, j'ai pu industrialiser la création d'interfaces complexes. Cela permet d'offrir un HUD et des menus "zéro latence" qui respectent l'identité visuelle premium du serveur.
2. Gestion de l'état persistant
J'utilise MariaDB pour orchestrer une ville où rien ne s'efface. Chaque véhicule, chaque objet et chaque historique de personnage est sauvegardé avec une logique de base de données optimisée pour le temps réel.
🧠 Sous le capot : Architecture & Défis Techniques
Le plus gros défi sur un monde ouvert multijoueur est de simuler une ville "infinie" avec des ressources limitées.
⚙️ L'Optimisation par le "Client-Side Ownership"
Pour gérer des systèmes gourmands comme les véhicules permanents sans écraser le CPU du serveur, j'ai implémenté une logique de délégation intelligente via OneSync :
- Culling & Virtualisation : Les véhicules ne sont instanciés physiquement que lorsqu'un joueur entre dans un périmètre de 200 unités.
- Délégation de calcul : Le serveur assigne dynamiquement la "propriété" de l'entité au client le plus proche. C'est ce client qui gère la physique et synchronise les changements d'état vers la DB via le serveur, optimisant ainsi la bande passante globale.
- Résilience : Ce modèle permet d'avoir des centaines de véhicules "persistants" sur la carte tout en maintenant une fluidité constante pour les joueurs.
🔭 La Vision et la Suite
PakeTekos est mon laboratoire personnel. Les prochaines étapes incluent :
- La migration totale vers un framework "from scratch" pour éliminer toute dépendance tierce.
- L'intégration de NPCForge pour animer la ville avec des PNJ conscients de leur environnement.
- L'enrichissement de la suite tk- pour continuer à professionnaliser les outils mis à disposition des autres développeurs.
Note : Si l'univers de PakeTekos est strictement privé, mes outils de développement et mes moteurs de jeux (tk-engine, tk-ui) sont le reflet de mon expertise technique et sont consultables sur mon GitHub.