Pufferfish Fork - Un Must Have

Pino

Appena registrato
Utente
10
7
Moon
www.pinodev.net
Avatar PinoOG
PinoOG
Scelta della Fork - Un tema ampiamente discusso

Ogni qual volta un server owner decidesse di aprire un server, andrà in contro alla scelta della fork(il server.jar) più adatto ed ottimizzato per le sue esigenze.

Dopo averli provati tutti, stressandoli ed eseguendo diversi test emulando un'ambiente di produzione(ambiente in cui il server è completo ed accessibile agli utenti), sono arrivato alla conclusione che la migliore di tutte è
Pufferfish.
Quando si va a valutare una fork, bisogna valutarla sui seguenti punti
1) Stabilità

2) Open Source
3) Ottimizzazioni
4) Aggiornamenti

5) Adozione

Pufferfish è attualmente la fork più stabile ed ottimizzata che puoi utilizzare in produzione ed ecco i motivi principali.
1 - Le Exotic Forks(Forks che apportano miglioramenti ed ottimizzazioni estreme come Mirai) sono altamente instabili, Pufferfish è l'unica che rimane al 100% stabile e che non causa corruzioni del mondo e bugs imprevisti.
Le principali cause di Lag nei server, derivano dal fatto che il server runna +/- l'80% dei processi sul singolo thread.
I principali processi più stressanti sono:
- Tracking delle Entità
- Ticking dei Chunks
- AI delle Entità(come quelle dei Villagers)
- Processi della redstone
- MobSpawning

2 - Tutte queste features sono state rese parzialmente async(ossia processate sugli altri thread e non sul principale) rendendo quindi più libero e performante il server ed i processi sul main thread. Ancora di più su Pufferfish+ (successore a pagamento di Pufferfish) sono state rese completamente async.

Alcuni esempi delle patch apportate da Pufferfish e che la rendono circa il 30% più veloce di Paper, lasciando però inalteratà la sua stabilità.
- Sentry Integration > Utile per tracciare accuratamente tutti gli errori che si possono presentare nel server
- Better Entity Performance > Alcuni check vengono fatti in async, migliorando le performance e l'impatto delle entità sul server
- Partial Asynchronous Processing > Alcuni processi pesanti vengono processati in async, lasciando libero il main thread
- 8x Faster Map Rendering > Renderizzazione delle Mappe 8x volte più veloce rispetto a Paper
- 30% faster hoppers > Gli hoppers rientrano nei meccanismi di redstone più pesanti ma al contempo tra i più usati dai giocatori del server, sono stati ottimizzati generando ben il 30% di performance in più rispetto a Paper
- Fast raytracing > Raytracing di alcune entità come i Villagers che nella loro AI utilizzano spesso viene processato in parte in async

Tutte le altre ottimizzazioni sono disponibili su
https://github.com/pufferfish-gg/Pufferfish#readme

3 - Il progetto è open source e gestito per la maggior parte da Kevin, una persona con il quale ho avuto il piacere di lavorare e la cui professionalità ed esperienza mi ha lasciato colpito.

4 - In termini di Adozione è una delle Fork più stabili ed usate in produzione da grandi Network, che hanno esigenze particolari. ~ Trusted by the Biggest.

Personalmente, io utilizzo in produzione Pufferfish+(a pagamento), ma con Pufferfish classic, disponibile gratuitamente, noterete da subito un ottimo miglioramento rispetto a Paper.

In commercio esistono una infinità di Fork che affermano di aver reso possibile l'Async Processing sui server, bhe posso affermare dopo averne provate una 20ina che tale processo è altamente impossibile senza causare una grande instabilità al server, come nel caso di Mirai o Petal.
Potremmo parlare di un ForkCeption!

img.png