Vai al contenuto

Emax

Founder
  • Discussioni

    996
  • Registrato il

  • Ultima visita

  • Minicoin

    303 [Dona]

Contenuti creati da Emax

  1. Emax

    Fan art

    A me ispirano un sacco! ma poi le colorerai / digitalizzerai?
  2. Emax

    Sviluppo iniziale del modello del giocatore

    © Hypixel Studios

  3. Emax

    Sviluppo iniziale della Zona 1

    © Hypixel Studios

  4. Emax

    Sviluppo iniziale della Zona 2

    © Hypixel Studios

  5. Emax

    Sviluppo iniziale della Zona 3

    © Hypixel Studios

  6. Emax

    Sviluppo iniziale della Zona 1

    © Hypixel Studios

  7. Emax

    Ragni nella Zona 1

    © Hypixel Studios

  8. Emax

    Incontro tra Zona2 e Zona1 (Postcard #16)

    La luna è stupenda Le luci sono stupende La transizione fra i biomi è stupenda Tutto è stupendo Dateci il gioco mortacci vostra
  9. Emax

    Incontro tra Zona2 e Zona1 (Postcard #16)

    An explorer travels the moonlit borderland where two zones meet…

    © Hypixel Studios

  10. Emax

    Badge Telegram

    Wops, mi sono dimenticato di dirti che una volta collegato ci vuole qualche momento prima che venga visualizzato! Infatti ora vedo che hai il badge!
  11. SPOILER: roba tecnica che forse non interessa a nessuno Ciao a tutti, era da un po' che volevo fare questo post per parlare del codice intravisto nel trailer di Hytale, nello specifico al secondo 112, dove possiamo vedere un player che sta creando uno script da applicare ad un mob (un Goblin). Partiamo dall'interfaccia, la cosa che si nota subito è che l'editor si chiama "Trigger Editor", per i neofiti della programmazione si intende trigger una funzione che ascolta un particolare evento, per chiarificare: Un evento può essere una qualsiasi cosa programmata nel gioco, ovvero l'inizio della pioggia è un evento, un mob che muore è un evento etc, in poche parole qualsiasi azione (anche non del player) all'interno del mondo di gioco può essere considerata un evento. Un trigger è un particolare codice che ascolta un determinato evento e richiama una funzione Una funzione è un insieme di codice che fa qualcosa Uno script è un insieme di funzioni Poi abbiamo diversi campi: Name abbastanza chiaro, è il nome dello script che stiamo creando. Script Type: CUSTOM questo è davvero interessante, custom significa che stiamo facendo uno script personalizzato, ma quali altri tipi di script possono essere presenti? Tick Speed (millis): -1 per me questo è abbastanza chiaro, indica ogni quanti millisecondi lo script deve essere eseguito, pensatela così mettiamo il caso di fare uno script che toglie la pioggia nel mondo, se non impostassimo questo valore lo script verrebbe eseguito una volta sola, ma ovviamente avrebbe poco senso poiché con il passare del tempo in gioco la pioggia tornerebbe, ora pensiamo allo stesso caso dove lo script viene eseguito ogni secondo… addio pioggia! nel caso dello screenshot il valore è impostato a -1 ovvero lo script deve essere eseguito una sola volta poiché verrà richiamato automaticamente quando si verificherà un evento di cui è in ascolto (in questo caso collisioni con altre entità). Links lavoro di fantasia perché non abbiamo nessuna informazione, ho tre teorie per il significato di questo valore Script collegati, ovvero il nome degli script collegati a questo. Eventi collegati, ovvero il nome degli eventi collegati a questo script. Link Web, ovvero il link del sito web del proprietario dello script. Flags potrebbe indicare qualsiasi cosa, in genere in informatica per flags si indica un insieme di proprietà necessarie per fare qualcosa, ad esempio potrebbe indicare che questo script può essere eseguito solo quando piove, ovvero la pioggia potrebbe essere una proprietà necessaria per attivare lo script Preview del mob essendo questo script un trigger associato al mob nell'editor c'è l'anteprima del suddetto, questa cosa è davvero interessante, perché far vedere il mob nello script? ovvio perché dallo script possiamo modificare il modello del mob, mi spiego magari ci danno la possibilità da script di aggiungere o togliere pezzi al mob, Goblin a 3 teste in arrivo! Infine i pulsanti sotto, sono abbastanza chiari, ci permettono di caricare/salvare/eseguire/cancellare lo script. Arriviamo al pezzo forte, il codice nell'editor! var GameMode = com.hypixel.hytale.protocol.Gamemode; var Player = com.hypixel.hytale.server.core.entity.entities.Player; exports = { onCollide : function(entity) { if (entity instanceof Player) { entity.setGameMode(GameMode.Adventure); // Sets the mode to adventure } } } // www.hytale.it/supersecretpage exports = { onCollide : function(entity) { if (entity instanceof Player) { entity.teleport(0,0,0); // Moves player to origin } } } // www.hytale.it/supersecretpage Analizziamolo linea per linea (tanto non abbiamo niente da fare nel frattempo) Intanto salta subito all'occhio che si tratta di JavaScript! sicuramente la scelta del linguaggio di scripting è stata molto difficile, ne esistono tanti ma i più gettonati sono JavaScript e LUA, scelta che a mio parere sembrerebbe confermata da quello che già sappiamo ovvero che il server di Hytale sarà scritto in Java e il client in C# e cos'hanno in comune questi due linguaggi di programmazione? hanno delle ottime librerie per interpretare JavaScript. Proseguiamo dunque all'analisi del codice, vi dico già da subito che il codice è sbagliato, immagino ne abbiano messo uno a caso come placeholder per il trailer, ma comunque vale la pena di darci un occhio! farò del mio meglio per essere chiaro! (Spoiler: non ci riuscirò) var GameMode = com.hypixel.hytale.protocol.Gamemode; var Player = com.hypixel.hytale.server.core.entity.entities.Player; Le prime due linee sono degli import, ovvero importano delle funzioni dalle classi del gioco, in questo caso viene importata la classe del giocatore e la gamemode (che sospetto sia un enumerazione), interessante vedere la struttura dei package (l'alberazione del codice nelle cartelle), che suppongo sia speculare fra client e server visto gli script vengono eseguito da entrambi i lati. Prima incoerenza: la sintassi dell'import è errata. Seconda incoerenza: se notate la classe del player si trova dentro un package di nome server, il che non ha molto senso visto che il player è presente anche in single player. exports = { onCollide : function(entity) { if (entity instanceof Player) { entity.setGameMode(GameMode.Adventure); // Sets the mode to adventure } } } Questo blocco di codice esporta una funzione al di fuori dello script per essere richiamata dal gioco, in questo caso la funzione è un trigger che viene attivato quando il mob (Il Goblin) collide con un entità, dopodiché viene verificato che l'entità sia un giocatore e a quest'ultimo viene cambiata la modalità di gioco in avventura. exports = { onCollide : function(entity) { if (entity instanceof Player) { entity.teleport(0,0,0); // Moves player to origin } } } Successivamente viene esportata questa funzione che è identica a quella sopra ma con una piccola differenza invece di cambiare la modalità di gioco al giocatore (gioco di parole) lo teletrasporta a una posizione specifica ovvero X0, Y0, Z0. Terza incoerenza: in JavaScript il blocco export può essere dichiarato una volta sola per script. Quarta incoerenza: è stata dichiarata due volte una funzione con lo stesso nome "onCollide" altra cosa non permessa. Siamo arrivati alla fine dello script, in poche parole sembra quando il Goblin entri in contatto con un giocatore questo venga messo in modalità avventura e venga teletrasportato a delle coordinate specifiche. pensandoci un secondo questo sembra più il comportamento di un portale che di un mob... In conclusione non sappiamo ancora niente del linguaggio di scripting che verrà usato in Hytale, io sono estraneamente fiducioso che alla fine terranno Javascript, vista la popolarità e il quantitativo di tutorial presenti, però non ci metterei la mano sul fuoco
  12. Emax

    Badge Telegram

    Ciao, sei sicuro di aver collegato il tuo account Telegram con il portale? In caso ti sia dimenticato puoi farlo qui: https://hytale.it/telegram/
  13. Emax

    Architettura (Postcard #15)

    Architects and artisans have an important role to play in the adventure to come…

    © Hypixel Studios

  14. Pienamente d'accordo quando dici che questo sarà un gioco della community, non vedo l'ora di mettere le mani sul server e iniziare a implementare tutte le modalità di gioco che ci vengono in mente
  15. Emax

    La data di uscita di Hytale

    Sezione sbagliata, qui ci si presenta.
  16. Emax

    Palude (Postcard #14)

    It’s time for our first postcard of 2021! At this bend in the river, the swamp gives way to an altogether more mysterious stretch of forest...

    © Hypixel Studios

  17. Emax

    Snowday

    Questa mi era scappata, non mi è arrivato il feed, il video è stupendo la musica ancora di più, l'ambientazione è qualcosa di inarrivabile
  18. Emax

    Snowday

    © Hypixel Studios

  19. Emax

    Buon Natale!

    © Hypixel Studios

  20. Emax

    Cammelli nella Zona 2 (Postcard #13)

    Fierce winds and blistering heat are no match for these hardy - albeit adorable - creatures…

    © Hypixel Studios

  21. Emax

    Statua Kweebec

    © Hypixel Studios

  22. Emax

    Placca ufficio Hypixel

    © Hypixel Studios

  23. Emax

    Alba nel deserto

    © Hypixel Studios

×
×
  • Crea nuovo/a...