Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Tutto e di + - Server C++ o C#?
Forum - Tutto e di + - Server C++ o C#?

Pagine: [ 1 2 ] Precedente | Prossimo
Avatar
Thejuster (Admin)
Guru^2


Messaggi: 2298
Iscritto: 04/05/2008

Segnala al moderatore
Postato alle 19:27
Giovedì, 30/06/2016
Buonasera ragazzi.

Mi era sorto un dubbio mentre riguardavo i miei sorgenti di MMORpgmaker.

Un server scritto in Qt C++ può essere più veloce di un server C# .NET?

Chiedo questo perché seppur il server possa essere in c++ deve comunque comunicare con un client (Applicazione) .net

il server esegue poche query dal db sql locale quando richiesto, e mantiene in memoria le posizioni dei player
tramite una lista.

ovviamente, per vedere che i player si muovano, il client è in constante comunicazione con il server.

(non sò se possa essere il metodo migliore)

Voi cosa consigliate?

Questo è un piccolo test che ho fatto tempo fà

https://www.youtube.com/watch?v=vIkgkQ9FPpg


per chi invece è interessato a come procede il progetto
questo è l\'ultimo video di presentazione che ho fatto

https://www.youtube.com/watch?v=EyQ2NFVxOi4


Ultima modifica effettuata da Thejuster il 30/06/2016 alle 19:44


https://mire.forumfree.it/ - Mire Engine
C# UI Designer
PM Quote
Avatar
Snogar (Normal User)
Pro


Messaggi: 145
Iscritto: 09/01/2012

Segnala al moderatore
Postato alle 20:37
Giovedì, 30/06/2016
Se posso fare una critica al video di presentazione ...preferirei che ci fosse un commento parlato e non la musica che è \"a parer mio\" solo fastidiosa  ...nel complesso complimenti per il lavorone che hai portato avanti. :k:

PM Quote
Avatar
TheDarkJuster (Member)
Guru^2


Messaggi: 1620
Iscritto: 27/09/2013

Segnala al moderatore
Postato alle 22:34
Giovedì, 30/06/2016
Quanti player possono essere connessi allo stesso server contemporaneamente?
Perchè mysql?
Io non userei la tecnologia .net per la creazione di un server, perchè precluderei l\'utilizzo di un server con piccoli VPS linux (i meno costosi).
Se scrivi un web server in C++ che usi sqlite avrai un server molto comodo da utilizzare e configurare, e funzionerà anche su ambienti linux.
Visto il basso costo dei vps con linux molte persone potranno eseguirne uno, aumentando la diffusione del gioco/motore!

Sinceramente non userei Qt perchè significherebbe aggiungere dipendenze (di grandi dimensioni) inutilmente.

Fai un server piccolo e veloce.

Crea il progetto con CMake e controlla la compilazione con clang (su linux) e vs su windows. Aggiungi come libreria l\'amalgamation di sqlite e buon lavoro!

PM Quote
Avatar
Thejuster (Admin)
Guru^2


Messaggi: 2298
Iscritto: 04/05/2008

Segnala al moderatore
Postato alle 9:39
Venerdì, 01/07/2016
@Snogar
Grazie snogar in effetti ci lavoro da tanti anni sopra,
ed quasi giunto alla conclusione.

Il video si e venuto penoso, ma sicuramente ne farò altri.




@TheDarkJuster

ho scelto mysql perche\\\' e molto facile da da usare, e posso realizzare
pannelli di controllo direttamente da un webserver.

DarkJuster, io ho provato a dare un occhiata ad un progetto colossale.
un server scritto in C.

Tanto tempo fa\\\'  giocavo ad un gioco chiamato ragnarok.
Quel server, riusciva a mantenere dai 700 fino ai 1000 e pu\\\' giocatori.

non ho mai capito bene con quale sistema o organizzazione hanno agito,
ma fatto sta che era incredibilmente performante.

ora il problema puo\\\' essere questo.

Anche in quel gioco, i player li vedevi muovere in tempo reale, e fare azioni tipo sedersi,
gesticolare, o molte altre funzioni.
Come cavolo si fa a gestire questo gran numero di situazioni?

ad oggi rimango ancora sconcertato.

https://github.com/eathena/eathena

Il server in realta\\\'  aveva 3 applicazioni

Login-Server
Character-Server
Map-Server

il Character server, comunicava con il login server
il Map Server comunicava con il Character server.

entrambi erano intercomunicanti.

Forse per alleggerire il carico di istruzioni, hanno preferito utilizzare dei server separati ma intercomunicanti in locale. puo\\\' darsi che il trucco sia proprio questo non saprei proprio.

Fatto sta , che chiunque abbia provato a realizzare un mmorpg, con C# ed XNA ha sempre fallito per via del lag e delle basse prestazioni.

non so\\\' se ora realizzarlo in c++ puo\\\' servire a qualcosa.
Ma credo che bisogna ottimizzare di piu il codice e studiare per bene come spendere il minor numero di risorse per ottenere le massime prestazioni.

Che poi sono molto fissato sulle prestazioni.
Sopratutto se ti tratta di un engine.

Questa screen esprime il mio sconcerto

http://i1379.photobucket.com/albums/ah133/Iplay_Ragnarok/s ...

a questo gioco la sigla MMORPG gli si addice sicuramente
(Massive Multiplayer Online Role Play Game)

Ultima modifica effettuata da Thejuster il 01/07/2016 alle 9:57


https://mire.forumfree.it/ - Mire Engine
C# UI Designer
PM Quote
Avatar
GN (Member)
Guru


Messaggi: 772
Iscritto: 30/04/2011

Segnala al moderatore
Postato alle 11:26
Venerdì, 01/07/2016
Testo quotato

Postato originariamente da TheDarkJuster:
Io non userei la tecnologia .net per la creazione di un server, perchè precluderei l\\\'utilizzo di un server con piccoli VPS linux (i meno costosi).


Piccola precisazione, che io sappia utilizzando Mono (http://www.mono-project.com/) le applicazioni .NET possono girare abbastanza tranquillamente su Linux (tantopiù se sono solo a riga di comando come un server, mi ricordo di aver letto alcuni tutorial per rendere applicazioni .NET compatibili con Linux usando Mono e i problemi erano principalmente sulle GUI WinForms, adesso comunque mi sembra che sia migliorato anche su questo fronte). Il progetto sembra oramai molto maturo, fra l\'altro era un po\' che non mi informavo e guardando la home adesso ho notato che è anche sponsorizzato da Microsoft.
Sul fatto che poi un\'applicazione nativa che viene realmente compilata in linguaggio macchina (e non in un linguaggio intermedio) sia più performante non c\'è dubbio.

PM Quote
Avatar
Thejuster (Admin)
Guru^2


Messaggi: 2298
Iscritto: 04/05/2008

Segnala al moderatore
Postato alle 12:24
Venerdì, 01/07/2016
Si basta scrivere nelle opzioni di compilazione il flag MONO
e poi andare nelle cartella di mono ed eseguire la conversione manualmente


mono Applicazione.exe



https://mire.forumfree.it/ - Mire Engine
C# UI Designer
PM Quote
Avatar
Template (Member)
Pro


Messaggi: 177
Iscritto: 09/12/2015

Segnala al moderatore
Postato alle 14:25
Venerdì, 01/07/2016

PM Quote
Avatar
TheDarkJuster (Member)
Guru^2


Messaggi: 1620
Iscritto: 27/09/2013

Segnala al moderatore
Postato alle 16:12
Venerdì, 01/07/2016
Io non adoro mono: aggiunge overhead in entrambi gli aspetti: complessità dell\'applicazione e spazio su disco.

MySQL è uguale: prende tantissimo spazio su disco e aggiunge complessità.

Esistono OTTIMI strumenti per gestire db sqlite, quindi in questo caso non c\'è alcun vantaggio per preferire mysql.

Per quanto riguarda la parte tecnica: usa solo socket UDP e per gli eventi più importanti implementa un controllo di correttezza.
Usare esclusivamente socket e/o stream TCP è una pessima scelta in ambito giochi online.

PM Quote
Avatar
Thejuster (Admin)
Guru^2


Messaggi: 2298
Iscritto: 04/05/2008

Segnala al moderatore
Postato alle 16:22
Venerdì, 01/07/2016
non saprei su sqlite.

ho letto questo

When Not To Use SQLite

Multi-user applications:
If you are working on an application whereby multiple clients need to access and use the same database, a fully-featured RDBM (e.g. MySQL) is probably better to choose over SQLite.

Applications requiring high write volumes:
One of the limitations of SQLite is the write operations. This DBMS allows only one single write*operating to take place at any given time, hence allowing a limited throughput.


https://mire.forumfree.it/ - Mire Engine
C# UI Designer
PM Quote
Pagine: [ 1 2 ] Precedente | Prossimo