Show HN : Pumpkin, un serveur Minecraft moderne écrit en Rust
(github.com/Snowiiii)Pumpkin
Pumpkin est un serveur Minecraft entièrement construit en Rust, conçu pour offrir une expérience rapide, efficace et personnalisable. Il privilégie les performances et le plaisir des joueurs tout en respectant les mécaniques fondamentales du jeu.
Ce que Pumpkin cherche à accomplir
- Performances : exploiter le multithreading pour viser une vitesse et une efficacité maximales
- Compatibilité : prendre en charge les versions les plus récentes du serveur Minecraft tout en respectant les mécaniques de jeu de base
- Sécurité : faire de la sécurité une priorité en empêchant les vulnérabilités connues
- Flexibilité : offrir un haut niveau de configuration permettant de désactiver les fonctionnalités inutiles
- Extensibilité : fournir une base pour le développement de plugins
Ce que Pumpkin ne fera pas
- ne sera pas utilisé comme remplacement du serveur vanilla ou d'un autre serveur
- ne sera pas compatible avec les plugins ou mods d'autres serveurs
- ne fonctionnera pas comme un framework pour construire un serveur à partir de zéro
Important : Pumpkin est actuellement en développement actif
Fonctionnalités (en cours)
- configuration (toml)
- état du serveur / ping
- connexion
- paramètres du joueur
- registre (types de biomes, peintures, dimensions)
- marque du serveur
- liens du serveur
- paramètres du pack de ressources
- cookies
- monde
- rejoindre un monde
- liste des joueurs
- chargement du monde
- génération d'entités
- chargement des chunks
- génération du monde
- génération des chunks
- frontière du monde
- sauvegarde du monde
- joueur
- skin du joueur
- marque du client du joueur
- téléportation du joueur
- déplacement du joueur
- animations du joueur
- inventaire du joueur
- combat du joueur
- serveur
- plugins
- requêtes
- RCON
- inventaire
- particules
- chat
- commandes
- proxy
- Velocity
L'avancement actuel peut être consulté sur le projet GitHub
Résumé de GN⁺
Pumpkin est un serveur Minecraft développé en Rust, remarquable par l'importance qu'il accorde aux performances et à l'expérience utilisateur. Il se distingue par son optimisation des performances via le multithreading et par un renforcement de la sécurité, tout en offrant une extensibilité pour le développement de plugins. Il peut être utile à celles et ceux qui s'intéressent au développement de serveurs Minecraft, et comme il est actuellement en développement actif, on peut s'attendre à des mises à jour continues. Parmi les projets aux fonctionnalités similaires, on peut citer PaperMC et Spigot.
1 commentaires
Commentaires sur Hacker News
L’écart de performances dans les benchmarks est impressionnant. Cependant, les fonctionnalités de génération et de sauvegarde du monde sont absentes, alors qu’il s’agit d’opérations coûteuses. En particulier, la génération de chunks peut mettre à genoux un VPS peu puissant. Je serais curieux de voir une comparaison des performances quand ces fonctionnalités seront incluses et utilisées
Je me demande s’il existe des benchmarks pour ce projet. J’aimerais savoir à quel point il est plus rapide qu’un serveur vanilla
En tant que personne qui connaissait déjà ce projet, je suis heureux de le voir gagner en popularité sur Hacker News. (140 upvotes, c’est plutôt pas mal à mon avis)
J’ai récemment développé Pumpkin, un serveur Minecraft efficace et rapide entièrement écrit en Rust. N’hésitez pas à aller voir
Je me demande si le thread principal est partitionné par régions (comme Paper Folia) ou si les entités non bloquantes sont réparties sur leurs propres threads
Travail impressionnant, mais j’aimerais voir une implémentation haute performance qui prenne en charge beaucoup de mods Minecraft. Les serveurs Forge sont tristement connus pour leur lenteur avec les gros modpacks
J’attends que Minecraft soit rétroconçu avec son propre protocole afin que plusieurs implémentations de serveurs et de clients puissent fonctionner
Je vais essayer ce projet. Les performances du serveur vanilla pur sont très mauvaises. J’aimerais que Mojang améliore cela. La génération de nouveaux chunks est au moins multithreadée. J’aimerais qu’un support officiel existe pour des contrôles de base sur les serveurs SMP. Même des permissions élémentaires (placement, destruction, interaction) sur des zones définies par deux coordonnées d’angle seraient utiles. Avec un fichier de configuration de base, les demandes/mises à jour pourraient être gérées à l’aide d’autres outils. Cela pourrait être administré en jeu via un simple utilitaire en ligne de commande. Ce serait bien de ne pas être obligé de toujours utiliser uniquement une whitelist. Paper/Waterfall, etc. ont des plugins, mais c’est bien de rester sur du vanilla pur. Je maintiens des serveurs depuis longtemps
Je suis toujours étonné de voir comment les gens arrivent à faire ce genre de choses. S’il existe un article expliquant comment ce projet a été réalisé, je l’apprécierais beaucoup