Il 16 giugno 2019, il forum e le risorse diventeranno in sola lettura. Clicca qui per maggiori informazioni

[Release] Lag Efficient Sorting System

Oggi vi mostro come diminuire al minimo il lag causato dai sorting system che sono una delle cause principali del lag/calo di fps.
Prima di tutto dovete capire che i sorting system sono molto laggosi a causa della gran quantità di redstone ma soprattutto a causa degli hopper. Normalmente gli hopper non causano problemi al gioco ma in particolari condizioni possono essere "letali", queste condizioni sono quando l'hopper cerca di trasferire un item in un altro inventario (chest,hopper,dropper etc..) completamente pieno poiché ad ogni tick del gioco quest'ultimo hopper cercherà di mandare i suoi item dentro a quest'altro inventario fallendo ovviamente.
Questa casistica si divide in altre 2 possibilità:

  1. L'hopper cerca di mandare degli item che sono già contenuti nell'altro inventario (es: cerca di mandare un lingotto di ferro dentro a una chest completamente piena di lingotti di ferro): in questo caso lagga ma non troppo.
  2. L'hopper cerca di mandare degli item non contenuti nell'altro inventario (es: cerca di mandare un lingotto di ferro dentro ad una chest completamente piena ma che non contiene nessun lingotto di ferro): questo è il caso peggiore di tutti e bisogna assolutamente evitarlo!
Per evitare queste casistiche che sono molto frequenti in un sorting system bisognerà bloccare gli hopper con un segnale di redstone, ciò evita che l'hopper cerchi di mandare ad ogni tick i suoi item nell'altro inventario.
Quindi ho costruito 3 diversi design :
[img][Immagine: Uqo9G6t.png][/img]
Questo è completamente silenzioso anche se un po' più ingombrante degli altri, come potete vedere gli hopper sono tutti bloccati e si sbloccano solo quando il sistema si attiva.
[img][Immagine: mBm1CCq.png][/img]
[img][Immagine: ivnAWjS.png][/img]
Questi altri 2 sono più compatti ma fanno rumore.
Un altra cosa da tenere a mente è l'overflow del sistema ovvero quando tutti gli hopper saranno completamente pieni!
Il sistema riesce a gestire questa evenienza poiché la parte superiore è esattamente uguale a quelli standard però noi non vogliamo avere degli hopper completamente pieni NON bloccati dalla redstone e questo potrebbe succedere per quelli in alto che fanno passare gli item tra tutti i vari sorter.
Per evitare ciò alla fine della linea di hopper in alto bisognerà mettere un "inceneritore" che si liberi degli item in eccesso che potrebbero bloccare il sistema:
[img][Immagine: J2sm51o.png][/img]
Molto semplice ed efficace e poco laggoso.
Se proprio vogliamo ottimizzare il lag all'estremo possiamo mettere dei dropper sopra alla linea di hopper più alta.
Questi dropper serviranno a far sì che gli hopper non "controllino" sempre se c'è un item da prendere sopra di loro poiché vedranno che c'è un inventario vuoto e quindi nulla da prendere:
[img][Immagine: tcAFebS.png][/img]
Spero di esservi stato utile soprattutto se avete problemi del genere col vostro sorting system ^^.
Molte di queste informazioni le ho preso da questo video!
[Immagine: Daxter_by_MelonPiranha1.gif~c200]
23/06/2018, 18:20NotMadMatt ha scritto: Oggi vi mostro come diminuire al minimo il lag causato dai sorting system che sono una delle cause principali del lag/calo di fps.
Prima di tutto dovete capire che i sorting system sono molto laggosi a causa della gran quantità di redstone ma soprattutto a causa degli hopper. Normalmente gli hopper non causano problemi al gioco ma in particolari condizioni possono essere "letali", queste condizioni sono quando l'hopper cerca di trasferire un item in un altro inventario (chest,hopper,dropper etc..) completamente pieno poiché ad ogni tick del gioco quest'ultimo hopper cercherà di mandare i suoi item dentro a quest'altro inventario fallendo ovviamente.
Questa casistica si divide in altre 2 possibilità:

  1. L'hopper cerca di mandare degli item che sono già contenuti nell'altro inventario (es: cerca di mandare un lingotto di ferro dentro a una chest completamente piena di lingotti di ferro): in questo caso lagga ma non troppo.
  2. L'hopper cerca di mandare degli item non contenuti nell'altro inventario (es: cerca di mandare un lingotto di ferro dentro ad una chest completamente piena ma che non contiene nessun lingotto di ferro): questo è il caso peggiore di tutti e bisogna assolutamente evitarlo!
Per evitare queste casistiche che sono molto frequenti in un sorting system bisognerà bloccare gli hopper con un segnale di redstone, ciò evita che l'hopper cerchi di mandare ad ogni tick i suoi item nell'altro inventario.
Quindi ho costruito 3 diversi design :
[img][Immagine: Uqo9G6t.png][/img]
Questo è completamente silenzioso anche se un po' più ingombrante degli altri, come potete vedere gli hopper sono tutti bloccati e si sbloccano solo quando il sistema si attiva.
[img][Immagine: mBm1CCq.png][/img]
[img][Immagine: ivnAWjS.png][/img]
Questi altri 2 sono più compatti ma fanno rumore.
Un altra cosa da tenere a mente è l'overflow del sistema ovvero quando tutti gli hopper saranno completamente pieni!
Il sistema riesce a gestire questa evenienza poiché la parte superiore è esattamente uguale a quelli standard però noi non vogliamo avere degli hopper completamente pieni NON bloccati dalla redstone e questo potrebbe succedere per quelli in alto che fanno passare gli item tra tutti i vari sorter.
Per evitare ciò alla fine della linea di hopper in alto bisognerà mettere un "inceneritore" che si liberi degli item in eccesso che potrebbero bloccare il sistema:
[img][Immagine: J2sm51o.png][/img]
Molto semplice ed efficace e poco laggoso.
Se proprio vogliamo ottimizzare il lag all'estremo possiamo mettere dei dropper sopra alla linea di hopper più alta.
Questi dropper serviranno a far sì che gli hopper non "controllino" sempre se c'è un item da prendere sopra di loro poiché vedranno che c'è un inventario vuoto e quindi nulla da prendere:
[img][Immagine: tcAFebS.png][/img]
Spero di esservi stato utile soprattutto se avete problemi del genere col vostro sorting system ^^.
Molte di queste informazioni le ho preso da questo video!

Ottima guida.
[Immagine: uWZxaCw.png]

[Immagine: za6lQK6.png]
@NotMadMatt utilizzare della redstone per rimuovere lag causato dalla redstone. Il solo pensiero mi fa crepare Asd.
Mettilo nella sezione delle guide. (Modificato 24/06/2018, 14:13 da Xraffaele9004X.)
___
Server consigliato:

🌟 Astronaucraft 🌟
(Minigame creati da zero)

❤️ Discord   →   Click ❤️
❤️ Post        →   Click ❤️
 ___
24/06/2018, 14:13raffaele9004 ha scritto: @NotMadMatt utilizzare della redstone per rimuovere lag causato dalla redstone. Il solo pensiero mi fa crepare Asd.
Mettilo nella sezione delle guide.

Beh in linea di massima è proprio così poiché alcuni componenti della redstone fanno laggare molto più di altri come per esempio la redstone dust attiva con la potenza max di 15.
In generale se si può evitare di usare la redstone dust è sempre meglio farlo!

EDIT:

Per rimuovere pure il lag prodotto dai light updates delle redstone torch si può piazzare una zucca luminosa al posto del secondo blocco di ferro accanto agli hopper.
Mi raccomando deve essere per forza la zucca luminosa e non la glowstone o la sealanter che non conducono!
[img][Immagine: XbT5VVx.png][/img] (Modificato 24/06/2018, 15:16 da SamosTheSage.)
[Immagine: Daxter_by_MelonPiranha1.gif~c200]
Personalmente preferisco un sistema più generalizzato.

Crei dei segmenti di storage divisi e poi fai in modo di bloccarli separatamente quando il sistema si riempie.
Per l'aspetto estetico è più carino, e non richiede continui update come i tuoi design.
A che pro tenere bloccati e sbloccare per ogni item gli hopper quando da vuoti non producono troppo lag, e girando un solo item non causano picchi di lag quando pieni.
A occhio il sistema proposto da te prevede uno slot blocker e uno slot con gli item da sortire. Quindi una volta pieno gli item passano oltre e basta. Ma un hopper con item diversi all'interno causa moolta lag, mentre un overflow protection non funzionerebbe in un design tileable come vorrebbe essere il tuo ( se ho capito bene ). Quindi un sistema con un singolo sorter per sezione di storage che non necessita di overflow prot e inoltre blocca tutti gli hopper quando si riempie ( ovvero quando lo storage è pieno ) causa minore lag.
In almeno 3 design di quelli proposti puoi togliere la redstone ed usare gli observer per farlo lag friendly e tileable.
Inoltre e da non sottovalutare: hai mai valutato il lag update causato dalle torce? Continuando col mio pensiero se non è scorretto la lag sarebbe notevole in un sistema ampio a causa di tutti gli on/off delle torce.

Dimmi te se ho frainteso qualcosa.
Player Tecnico

Redstoner e Farmer

Taggatemi o potrei non vedere il messaggio.
24/06/2018, 16:17BaccoShow ha scritto: Personalmente preferisco un sistema più generalizzato.

Crei dei segmenti di storage divisi e poi fai in modo di bloccarli separatamente quando il sistema si riempie.
Per l'aspetto estetico è più carino, e non richiede continui update come i tuoi design.
A che pro tenere bloccati e sbloccare per ogni item gli hopper quando da vuoti non producono troppo lag, e girando un solo item non causano picchi di lag quando pieni.
A occhio il sistema proposto da te prevede uno slot blocker e uno slot con gli item da sortire. Quindi una volta pieno gli item passano oltre e basta. Ma un hopper con item diversi all'interno causa moolta lag, mentre un overflow protection non funzionerebbe in un design tileable come vorrebbe essere il tuo ( se ho capito bene ). Quindi un sistema con un singolo sorter per sezione di storage che non necessita di overflow prot e inoltre blocca tutti gli hopper quando si riempie ( ovvero quando lo storage è pieno ) causa minore lag.
In almeno 3 design di quelli proposti puoi togliere la redstone ed usare gli observer per farlo lag friendly e tileable.
Inoltre e da non sottovalutare: hai mai valutato il lag update causato dalle torce? Continuando col mio pensiero se non è scorretto la lag sarebbe notevole in un sistema ampio a causa di tutti gli on/off delle torce.

Dimmi te se ho frainteso qualcosa.

Un sistema generalizzato deve far uso delle shulkerbox poiché ovviamente non avendo dei sorter fissi non manda gli item dove vuoi te quindi in ogni caso ne dovresti costruire un altro che ti separa le varie shulkerbox e te le mette in delle chest con quegli item. Inoltre è MOLTO più complicato da costruire e non ne vale troppo la pena a meno che tu non abbia una mob farm che produce una quantità esegerata di drop.
Il design che ho proposto ha l'overflow protection perché anche se si riempono al massimo gli hopper coi sorter il segnale arriva al max a 3 e non sconfina in quello accanto.
L'unica cosa a cui non avevo pensato è che quando è pieno il sorter disabilita pure le torce che bloccano gli hopper e quindo si ricrea lag, su quello ci dovrei lavorare ancora un po'.
Gli update delle torce in realtà fanno laggare solo per il light update che producono ma mettendo delle zucche luminose si evita questo problema.
Ti linko un video di quello che dicevi tu per farti vedere la mole del sistema che vorresti avere: clicka qua
@BaccoShow
[Immagine: Daxter_by_MelonPiranha1.gif~c200]
@notmadmatt

Il sistema proposto è "vecchio" se mi passi l'espressione.

Ora come ora una fila di dropper alimentati ad observer con all'inizio di ogni segmento di chest un singolo sorter che prende l'item che passa se combacia con quello che ha e lo manda nel suo segmento di storage è un sistema molto più efficiente.
Gli shulker finiscono liberi nelle casse.
Gli aspetti positivi sono: nessuna corrente, nessun lag dato da item che scorrazzano per il circuito di acqua, nessun problema di chunk loading e unloading con gli item.
Il sistema si chiude da solo una volta pieno.
Parlando di palla, il sistema sfrutta il suo concept per lo shulker boxes sorter, non so se lo hai visto.

Quello di cui parlo è un sistema che riempie le shulker e uno che le divide nei segmenti. Io ho parlato di dividerle nei segmenti, non di riempire le shulker.
Player Tecnico

Redstoner e Farmer

Taggatemi o potrei non vedere il messaggio.
@BaccoShow

Quindi intendi uno storage come questo qua --->https://www.youtube.com/watch?v=UW_6R_fQLxI ?
Anche in quello vieni fatta più o meno la stessa cosa ovvero di bloccare gli hopper con delle torce dietro.
Però si blocca quando è pieno il che è una cosa a cui non avevo pensato.
Però ripeto quei tipi di storage sono fatti apposta per riuscire a contenere una quantità di drops molto elevata, io ho voluto puntare sulla semplicità.
Comunque nei prossimi giorni cercherò di correggere quell'errore e utilizzare la fila di dropper che è molto utile!
[Immagine: Daxter_by_MelonPiranha1.gif~c200]
Si qualcosa di simile, ma loro usano un sistema di blocco delle chest generale, non diviso per segmenti. Se pensi alla diversa quantità di drop per item di una witch farm non lo useranno mai dal momento che alcuni storage si riempiranno subito altri no. Ma di sicuro hanno ridotto di molto il lag.

NB: a ilmango piacciono le porte, le usa molto spesso ^^

PS: quello che non mi piace è che gli hopper siano sempre bloccati e si sblocchino quando passa l'item.
Inoltre devi necessariamente usare dei slot blocker per impedire l'overflow, quindi hai item diversi nello stesso hopper, che è ciò che causa la maggior lag.
Player Tecnico

Redstoner e Farmer

Taggatemi o potrei non vedere il messaggio.
25/06/2018, 12:01BaccoShow ha scritto: Si qualcosa di simile, ma loro usano un sistema di blocco delle chest generale, non diviso per segmenti. Se pensi alla diversa quantità di drop per item di una witch farm non lo useranno mai dal momento che alcuni storage si riempiranno subito altri no. Ma di sicuro hanno ridotto di molto il lag.

NB: a ilmango piacciono le porte, le usa molto spesso ^^

PS: quello che non mi piace è che gli hopper siano sempre bloccati e si sblocchino quando passa l'item.
Inoltre devi necessariamente usare dei slot blocker per impedire l'overflow, quindi hai item diversi nello stesso hopper, che è ciò che causa la maggior lag.

Forse ho capito cosa intendi, una cosa del genere? -->https://www.youtube.com/watch?v=XQCc7QywrCI


Comunque ho revisionato un po' il mio e alla fine sono riuscito a creare questo che gestisce l'overflow bloccando l'hopper col sorter, purtroppo ho dovuto usare per fora altra redstone dust ma almeno sono sicuro che tutti gli hopper siano bloccati e non creino lag.
[Immagine: zHx63Ki.png]
PS: Se non intendevi il design del link soprastante puoi farmi vedere cosa intendi che ne sarei molto interessato ^^ (Modificato 25/06/2018, 14:41 da SamosTheSage.)
[Immagine: Daxter_by_MelonPiranha1.gif~c200]
Tipo il design che mi hai proposto della witch farm storage di scicraft.

Mentre loro usano un hopper blocker generico ( se vedi bene tutti i repeater sono orientati verso l'elevatore ) io mi preoccupo di bloccare un singolo storage di item senza bloccare gli altri.
La logica dietro il loro design sta nell'impedire che quando un singolo segmento si riempie l'intero sistema vada in tilt col successivo shulker box, infatti tutto si blocca e la box procede fino all'inceneritore.

Ora, a noi serve uno storage a singolo item o a shulker box? Immagino il primo caso.
Quindi ci servono molti hopper con dentro lo stesso item separato per impedire che ci siano item diversi nello stesso hopper, ma al contempo dobbiamo impedire che una quantità superiore a 46 item ( altrimenti il 47esimo entrerebbe nel secondo slot e a lungo andare romperebbe il sorter ) finisca nel circuito per poi essere preso dall'hopper. Questo vuol dire usare un sistema lento non ad acqua ma che copra le richieste di sorting e storaging di una farm molto veloce.
Il che con il sistema sopra descritto è impossibile a meno che non si usi un chunk loader unito ad uno storage temporaneo, ma il tutto non ha ragione di essere.

Piuttosto un item sorter classico con shulker boxes filler annesso che poi mandi le boxes ad un secondo storage è più logico. Richiede una minima quantità di hopper con dei blocker, è localizzato ad una farm quindi non sempre attivo.

Gli item sorter come quelli di scicraft per OGNI item di gioco sono carini ma causano un lag assurdo, come dimostrato dal fatto che hanno abbandonato quella porzione di mappa perchè ingiocabile. Meglio storage singoli per genere di risorse che usino le shulker boxes per ridurre al minimo la lag.
Player Tecnico

Redstoner e Farmer

Taggatemi o potrei non vedere il messaggio.
Discussioni simili
Risposta di SamosTheSage
10/04/2019, 14:32
Risposta di SamosTheSage
04/02/2019, 16:19
Risposta di CommandLeo
03/02/2019, 12:23
Risposta di SamosTheSage
24/11/2018, 17:18

Utente(i) che stanno guardando questa discussione: 1 Ospite(i)