Introduzione a Sphere

Da Tomo della conoscenza - UOShards Wiki.

Jump to: navigation, search

E' questa la domanda piu' comunemente associata a Sphere :)

Sphere, il fu TUS, il fu GreyWorld ... e' l'ultimo della dinastia degli emulatori prodotti dalla MenaSoft, una simpatica facciata per Menace l'attuale unico developer dell'emulatore :)

L'emulatore affonda la sua nascita nella nebbia dei tempi... e' uno dei primissimi emulatori per Ultima Online mai scritti... ed e' anche uno dei primi mai utilizzati in Italia :)

Al momento esistono due versioni (molto vetuste aggiornate a UO:R) marchiate come "STABLE RELEASE": la 0.51a e la 0.55i. Entrambe programmate in C++, utilizzano per la customizzazione un linguaggio di scripting proprietario chiamato SphereScript (SCP) sviluppato dalla stessa MenaSoft.

La differenza tra le due... oltre ad esserci un core diverso (quello della 0.51a e' decisamente + snello e' veloce) e' il linguaggio di scripting che sulla 0.55i e' piu' potente e aggiornato (ed offre + feature).

Le due versioni, nonostante esse siano marchiate "STABLE", hanno un considerevole numero di bug e di feature mancanti che vanno sistemate prima di avviare uno shard (sia via script, sia utilizzando DLL di fixing esterne che chiudono ogni possibile exploit).

Il suo punto di forza e' anche il suo punto di estrema debolezza, lo scripting interpretato. E' un linguaggio semplice e intuitivo, facile da impare e da usare. Con esso e' semplice costruire cose semplici... ma quando dovrete fare qualcosa di complicato... vi sentirete decisamente frustrati :D

Ed e' lo stesso linguaggio interpretato che e' la causa primaria del rallentamento del server :) Infatti essendo il core strutturato per:

# Esegui un "tick" su tutti gli Object. Questo comporta il decremento del TIMERD
    * Se TIMERD = 0 allora esegui il timer trigger e le default action. Genera il danno ed esegui gli altri trigger.

# Leggi i dati da i client.
# Determina l'azione da eseguire in base ai dati raccolti (attacca, esegui azione di dafult, esegui script etc).
# Se c'e' un output per i client, mandaglielo.

Da come facilmente si nota... essendo molte cose (quali AI ecc..) integrate nel core ed estremamente veloci... si deduce che la causa primaria di rallentamenti sono gli script stessi :) Quindi per tenere un server in ottimo stato bisogna essere davvero bravi a progettare script complessi che utilizzino meno tempo di calcolo possibile :) (per approfondimenti se ne puo' parlare con comodo piu' avanti)


Naturalmente con il passare del tempo... dopo un grande periodo di latitanza... lo sviluppo dell'emulatore e' ripreso giungendo ad oggi ad una "TEST RELEASE" marchiata 99zd...

Come tutte le nuove release della serie 99z... ha il supporto quasi completo di AoS (mancano le mosse speciali e l'house system)... un nuovo linguaggio di scripting estremamente piu' potente... e molte migliorie (nuovo core, nuova gestione delle connessioni, nuovo network code) che lo mettono quasi al passo con gli emulatori di nuove generazione, recuperando quel notevole gap tecnologico che ha ottenuto nel tempo :)

Naturalmente queste nuove versioni aprono la strada alla nuova "STABLE RELEASE" che dovrebbe essere la famosissima 1.0 ... che a detta dello sviluppatore dovrebbe essere pronta "in two months"... parole che secondo la mia esperienza vanno prese con le pinze... molto probabilmente uscira un "STABLE RELEASE" prima o dopo completa e con molti bug-fix che non sara' la 1.0 ma qualcosa di molto vicino :)

Aggiornamento: La 1.0 ufficiale non verra' rilasciata mai piu' l'ultima disponibile e' la 1.0RC13


Ultimamente e' nato uno spin-off della 55i chiamato 55 Evolution Version. Il sorgente e' ampiamente modificato da Kell & Zorm, aggiungendo numerose features lungamente richieste e ottimizzando il codice per velocizzare Sphere, il supporto di clients piu' recenti. Dopo essere giunta alla 0.55R 4.0.3, un accordo ufficiale ne ha sancito la pubblicazione e sviluppo con il beneplacido della Menasoft sotto il nome di 0.56.

La 0.56 contiene tutti gli avanzamenti delle 0.55r (funzioni di scripting migliorate/piu' supporto per le espansioni/- bug) e svariate migliorie (leggere i [url=http://sphere.uozone.net/index.php?title=Revisions_changelog]changelog[/url] per maggiori info). L'ultima 0.56 e' la 0.56b che sebbene sia marcata come beta e' di gran lunga stabile e migliore di tutte le versioni in circolazione.

Parallelamente e' in sviluppo una versione chiamate 0.57 che contiene/conterra' pesanti modifiche all'engine interno (script compilati, nuovo network engine ecc...)


Naturalmente in questo forum cercheremo di darvi un generico supporto...

Per quanto riguarda la 0.51a l'esperto e' Nessuno

Per quanto riguarda la 0.55i/0.55r/0.56/0.99 l'esperto lo faccio io :P


Ultime versioni:

  • Windows stable: 0.51a - 0.56a - 1.0RC13
  • Linux stable: 0.53 - 0.55R4.0.2
  • Windows current: 0.56b
  • Linux current: 0.56b

Link utili:

Tutorials:


Articolo originale a cura di Furio raggiungibile qui
Personal tools