
Originally Posted by
elarn
Non è ben progettato? Mi sa che allora di altri mmorpg ne hai provati pochi. Come videogioco è sicuramente tra i migliori.
Se sei un ingegnere informatico neolaureato o cmq senza esperienze professionali, di programmazione sai giusto le basi teoriche, vista la poca pratica che viene concessa nelle nostre università (purtroppo nelle università italiane si fa tanta teoria e poca pratica) e infatti dai discorsi che fai si evince benissimo la tua poca esperienza in fatto di lavorazione di un algoritmo.
Le procedure non possono essere assolutamente utilizzate in un software come quello di DAoC perchè è bassato sul multiprotocollo. Una parte lan-seriale per connettere tra di loro i server in una rete detta a grappolo (con un server-switch centrale che smista le connessioni al momento del login/cluster) e una parte tcp/ip-direct connect per i CLIENT che si connettono alle macchine. IN questa maniera i software sviluppati sono due, divisi, ma che devono essere "connessi" tra di loro (sto cercando di usare un linguaggio semplice) al momento dell'avvennuto login. Per questo non devi immaginarli come due software divisi, piuttosto come una spina dentro la presa. Il dialogo tra due client connessi via rete è OBBLIGATO alla modularità del codice, altrimenti, se si dovesse procedere per procedure (scusa il gioco di parole) i due programmi (sia client/che server) dovrebbero contenere la stessa esatta quantità di righe di codice poichè il client non è in grado di elaborare autonomamente i dati inviati dal server se non ha un riscontro "logico" nel proprio sistema. Riassumendo: se fosse per procedure, io potrei aprire daoc con un disassemblatore qualsiasi e troverei tutte le procedure di gestione del gioco, al punto che potrei riscriverlo completamente e farlo diventare un cyberpunk o altro ancora. Insomma avere il motore nelle mie mani. (purtroppo in questo caso daoc peserebbe decine di gb). Nel caso dei moduli, è il server che gestisce tutto il funzionamento e invia mini-pacchetti di dati al client che si limita ad un'operazione di traduzione dell'algoritmo.
Parlandoci chiaro è lo stesso sistema di funzionamento di ftp, telnet, mud, e altri 300 software che funzionano tramite rete. Aggiungo infine che gli americani, per esperienza diretta, sono circa 6-7 anni avanti a noi in quanto a programmazione, visto che nelle loro scuole iniziano già dai primi anni del college a fare ciò che io ho fatto in anni di gavetta sul posto di lavoro. Dubito seriamente che ricorrano a sistemi antiquati e puramente didattici come quello procedurale.
Riguardo poi al discorso di "un programmatore deve sapere subito fixxare" mi dà l'idea che tu non abbia mai visto un'azienda di progettazione informatica, neanche dallo spioncino della porta di casa.
In un'azienda non c'è IL PROGRAMMATORE, ma ci sono diversi specialisti che si occupano di un microcodice, cioè di un modulo o una serie di moduli limitati ad una sfera specifica del software in cantiere.
Che significa? Significa che se io progetto le connessioni remote, poco o niente saprò del motore grafico, del sistema gestione e salvataggio personaggi etc.etc.
Ora dovresti anche sapere che i motori grafici, soprattutto i d3d e opengl, (l'ultimo nel caso di daoc), sono una delle branche della programmazione più complesse e difficoltose poichè da realizzare in una struttura sorgente non PLAIN ma che fa sviluppare il sistema pixxelling in 3d. Si parla anche di programmazione vettoriale o polivettoriale. Che significa questo? Che difficilmente un'azienda di 300 persone come la Mythic potrà permettersi di avere in sede quella 15ina di specialisti necessari a seguire direttamente tutto il funzionamento del motore grafico, del pathing e di tutto ciò che concerne l'interazione client/server a livello grafico.
Questo perchè la grafica digital/3d è forse la materia più preziosa e costosa in questo mondo dal 1999. (In un recente progetto a cui ho partecipato, lo sviluppo di un manichino 3d per simulare l'arredamento delle vetrine dei negozi è costato quasi 10 milioni di vecchie lire, tanto per rendere l'idea). Infatti credo che il motore della mythic sia concessionario. Ovvero loro ne han comprati i diritti assoluti da un'altra azienda/agenzia/industria specializzata in questo settore e si rivolgono a loro periodicamente per il controllo e la manutenzione, oppure prendono "a tempo" degli specialisti (molto costosi) perchè vengano ad operare in sede.
Questo è lo standard e ti spiego economicamente anche xkè: i programmatori si pagano a tempo, non a lavoro fatto. Ogni ora di grafico 3d presente in sede ti costa uno sproposito e noi tutti sappiamo che non c'è sempre bisogno di un intervento del genere. Generalmente un mmorpg necessita di aggiustamenti "script-oriented".
Quindi, ripeto, SICURAMENTE sarebbe bello che lo correggessero, ma evidentemente le loro priorità economiche/aziendali/dirigenziali prevedono che questa serie di bug che voi dite (che per altro mi pare limitata a pochi casi) sia contenibile tranquillamente con un pò di "giurisprudenza" senza dover mettere mano ad un portafoglio.
E meno male che è così. Se si dovesse operare scelleratamente per ogni bug/problema/richiesta della clientela, il 900% delle aziende fallirebbero in un secondo e noi non potremmo neanche giocare a daoc.
Ci deve essere un giusto equilibrio tra "programmabile" e "rispettabile".
Spero di essere stato esauriente e di non aver offeso nessuno.
Aggiungo una nota importante: mi sembra (e mi ci metto dentro anche io) abbastanza sciocco stare a disquisire su questi argomenti. Di fatto non c'è nessuna questione: il gioco è programmato così, nel bene e nel male, e non sta noi a dire se siano giuste o meno le regole in poste dalla casa madre. Quando premiamo accept tutti i giorni le accettiamo e dobbiamo rispettarle oppure, come ho sempre detto, basta schiacciare cancel account e comprare un altro gioco.