# Online Spiel Proggen



## ..ooOOipOOoo.. (19. November 2001)

Hoi!

Ich habe ein Problem:

Ein Bekannter von mir will ein RPG Proggen (in 3D). Die Grundzüge hat er schon fertig. 
Nur die Netzwerk Fähigkeit fehlt im mom praktisch komplett, denn es gibt ein Problem.
Weder er noch ich haben jemals ein Netzwerkbasiertes Spiel in 3D programmiert. Jetzt müssten wir wissen, wie man am besten die Kommunikation zwischen Server und Client abwickelt.

Ich hatte die Idee, dass im Prinzip solche Message vom Server an den Clienten verschickt werden:

ITEM:BEER:2353:263:22

wobei das vor dem ersten ':' (also ITEM) die Art der Infortmation der Message angibt (in diesem Fall soll der Client ein Item Positionieren), danach welches Item (oder was auch immer, in diesem Fall eine Flasche Bier) unddie ltzen drei Zahlen die x,y,z Koordinaten.

Um die Messages zu verkleinern, könnte man die ASCII-Ketten auch durch Zahlen ersetzen , zB

0:23:2344:2343:-12

Wobei die Null für ITEM steht und die 23 für BEER. Die letzen drei Zahlen wieder die x,y,z Koordinaten.

Hat einer von euch schonmal ein aufwendiges Netzwerkspiel geproggt? Wie habt ihr das gemacht?

Gruesse

..ooOOipOOoo..


----------



## Thomas Kuse (19. November 2001)

versucht mal die packages die ihr so verschicken wollt etwas größer zu machen! ich denk mal so an die 200 zeichen vielleicht!

das dürfte sich dann a uf dauer sehr an der geschwindigkeit bemerkbar machen!aber ansonsten is das schon ganz ok so, wie du dir das gedacht hast!

das problem dabei ist letztlich nicht die kommunikation zwischen 2 pc's, sondern bei >2

aber für 2 müsst ihr das ja auch erstmal machen!

es gibt da zwei gute angriffspunkte für verbindungen:
1. multi-client-system
2. peer-to-peer

beim ersten berechnet der server das aufwendige zusammenspiel zwischen den rechnern , dabei schickt man eigentlich nur die vorgenommenen aktionen am client!

die berechung, was wo wie passiert klärt dann der server und schickt es an seine clients weiter!
---
beim zweiten sind beide gleichberechtigt und schicken sich nur gegenseitig die position und die aktion weiter, so dass sich die rechner nur darüber austauschen, was sie BEIDE angeht, also schüsse, laufrichtung...

der rest wir auf beiden pcs separat verarbeitet!


----------



## ..ooOOipOOoo.. (19. November 2001)

*thx erstmal*

Hoi!

Ich dachte mir ein multi-client system aufzubauen 8also Server erledigt Rechenaufgaben) um manipulierten Clients vorzubeugen.

Mom ist es noch sehr offen, was aus dem Spiel wird, ob nun nur Singleplayer (sehr unwarscheinlich, aber wenn das mit der Netzwerkanbindung nicht klappt, dann halt so) oder eher wie Diablo (also kleine Gruppen gegeneinander und zusammen) oder sogar online RPG (wie Ultima Online, wobei ich letzeres bevorzugen würde) 

Deshalb ist die Performance äußerst wichtig. Wie du siehst werden nicht 2 sondern 200 PC möglicherweise beteligt sein. 

Falls du noch ein paar gute Tips hast (anscheinend hast du dich damit schoneinmal beschäftigt), dann wären wir dir sehr dankbar!

Gruesse

..ooOOipOOoo..


----------



## Thomas Kuse (19. November 2001)

also ich hab eigentlich noch nie das programmieren von spielen bevorzugt, die als ausschlaggebendes element die grafik besitzen!

bin eher ein logischer programmierer und interessier mich zum beispiel auch für netzwerk-programme!

womit proggt ihr euer game? mit borland oder mit visual?
in borland könnte ich euch eingige funktionen anbieten (nich heute..muss erst rausssuchen) aber mit visual kennt sich holy besser aus!

ich denke mal ihr solltet klein anfangen mit netzwerk-funktionen!

es gibt zwar die netten net-libraries, aber winsock oder ähnliches tuts ja erstmal auch!


----------



## ..ooOOipOOoo.. (20. November 2001)

Hoi!

1. ich selbst programmiere nicht aktiv. 
2. Schreibt er's nicht in C++ sondern in Delphi.

Es ging ja auch nur ums Prinzip, nicht um spezifischen Code. Netzwerkprogramme zu coden st kein Prob, es ging ja nur darum wie am besten so komplexe Datenstrukturen zu erschachteln und zu verschicken sind.

Danke erstmal für deine Bemühungen.

Gruesse

..ooOOipOOoo..


----------



## Kimble (12. Februar 2002)

*re*

hui,
Delphi -> is geil!!!
schau mal unter http://www.neobrothers.de die ham ein Spiel auch mit Netzwerk programmiert. Is OpenSource. 
Guck ansonsten mal unter http://www.games-net.de !
dort unter -> Artikel & Infos -> Netzwerkprogrammierung!


----------



## Piesbruhder (4. April 2002)

Es gibt n ziehmlich feines Buch darüber. Da wird als zweites
Beispiel ein MMORPG entwickelt. 
Ich hab es selber net. Es is englisch und sau teuer. Aber laut
Zerbie sehr gut. Mit 70Euro oder so musst du schon rechnen.
Der Autor heißt Todd Barron oder so ähnlich.

http://www.amazon.de/exec/obidos/ASIN/0761532986/ref=pd_sim_dp/028-6971102-9568512

hoffe ich konnte dir helfen. Also ich kauf mir das Buch bald!


----------



## Kimble (4. April 2002)

das Buch kann ich nur empfehlen!!!
Ich habs mir mal von 'nem Freund ausgeliehen, auch wenn's Englisch ist, ist es sehr leicht zu verstehen.
Und über die 77 € guckt man weg, wenn man das Buch gelesen hat!!!!

Am Anfang geht's nochmal um die Grundlagen und später dann um die Netzwerkprogrammierung. Allerdings sollte man sagen, dass es um C++ NICHT Delphi geht!!!
DirectX und Winsock wird alles erklärt!


----------



## ..ooOOipOOoo.. (8. April 2002)

Hoi!

Danke, aber das Buch habe ich mir schon lange gekauft 
Der Thread ist ja auch schon ziehmlich alt 

Und ich muss sagen: Das Buch ist wirklich gut geschrieben, auch wenn es nicht wirklich das hält, was es verspricht. Es vermittelt zwar sehr schön, die Netzwerkprogrammierung in C++ und wie die Windows Socket API funktinoiert und wie man sich derer bedient, dennoch werden viele Detailfragen, die aufkommen, wenn man tatsächlich ein Multiplayerspiel programmieren will nicht wirklich geklärt. Dennoch, das Buch ist seine 100DM (bzw rund 50 €) Wert.

Titel: Multiplayer Game Programming
Serie: Game Development Series
Autor: Todd Barron
Verlag: Prima Tech
ISBN: 0-7615-3298-6

Ich werde mir warscheinlich auch weitere Bücher aus der Serie kaufen (war wirklich interessant). Im moment probiere ich mich noch an der Umsetzung einer relativ einfachen Netzwerkengine, wobei die erste "Hack-drauf-los"-Implementierung schon fast fertig ist (aber auch nicht wirklich funktioniert  ). Als nächsten Schritt will ich einen schönen Plan mit UML usw und Konzeptschreiben ausarbeiten und das ganze schön fein säuberlich implementieren. Wenn ich sie fertig habe melde ich mich hier wieder (könnte aber durchaus noch ein paar Monate dauern *lol*). Bin sicher, dass so einige noch ein paar Verbesserungen beitragen können 
Übrigens, falls jemand noch weiterführende Literatur in Sachen Spielenetzwerkprogrannierung (speziell vielleicht sogar MMORPG) oder auch "nur" allgemeine MMORPG umsetzung kennt, (falls es in diesem Themenbereich überhaupt weitere Literaur gibt), dann her damit, ich brenne nur so darauf alle zu verinnerlichen 

Gruesse

..ooOOipOOoo..


----------



## Kimble (8. April 2002)

hi,
Bücher findest du dazu leider nicht oft. Im Deutschen schon gar nicht, und im Englischen musst du auch schon suchen, um ein gutes Buch zu bekommen.
Wenn du dir noch weitere Bücher kaufen willst, empfehl ich dir:
OpenGL Game Programming
Das Buch is, wie das was du hast, HAMMER!!!!  
hm, warum aber OpenGL un nich DirectX wie im Multiplayer Game Programming?
1. OpenGL is um einiges einfacher
2. kannst du die DirectX DirectPlay Schnittstelle genauso mit OpenGL benutzen wie auch DirectX Sound
Damit kannst du alles machen!

Wenn du fragen zum Netzwerk/OpenGL Programmieren hast, ich steh gern zur Verfügung alle Fragen zu beantworten.


----------



## ..ooOOipOOoo.. (8. April 2002)

Hoi!

Ich habe mir jetzt ersteinmal zwei Bücher bestellt, die etwas Grundsätzlicher die Spiele- (und speziell Rollenspiel-)entwicklung behandeln. Mal schaun was die bringen 
Bevor ich anfangen will 3D zu programmieren, will ich mich zuerst etwas mehr mit C++ beschäftigen, da ich in diesem Bereich noch Anfänger bin (zB habe ich nur eine sehr ungenaue Vorstellung, was Tamplates sind). Hauptsächlich geht es mir ja um das prinzipielle Umsetzen eines MMORPG.
Das Problem ist schließlich, dass so Themen, wie Map/Area-Clustering, Remote-Database-Server, Mirror-Server, Area-Transfer und was weiß ich, was es da im MMORPG bereich noch so alles gibt, ziehmlich heikle Sachen sind und jemand, der sich das erste mal damit beschäftigt, wird mindestens (und ich meine mindestens) für jedes dieser Themen 5 komplett neu entwickelte und umgesetzte Implementierungen aufbauen müssen, bis man überhaupt eine einigermaßen funktionierende Lösung gefunden hat (ich zB sitze im mom an der 4 Implementierung einer einfachen 3D-Netzwerkengine, und ich meine einfach, sie ist kaum komplexer, als ein Chat-Programm).
Mit der entsprechenden Literatur, die das ganze einfach mal behandelt, Zechniken erklärt oder einfach ein paar Tips hat, würde man sich sicher die eine oder andere Neu-Implementation ersparen können 
Falls ich mal iergendwann Professioneller-Spieleentwickler werd, schon ein/zwei MMOGs Implementierte habe und der absolute TCP/IP Stack-Crack bin, dann schreib ich mal ein Buch über sowas 8)

Gruesse

..ooOOipOOoo..


----------



## Kimble (8. April 2002)

hm, hast du Lust mit mir 'en OpenGL Grafikdemo zu programmieren?
Dabei lernst du ganz schnell wie man C++ einsetzt, nich nur in Dos Konsolen-Progrämchen. 
Wenn du Lust hast, sags mir einfach.
Tutorials findest du unter:
http://nehe.gamedev.net


----------



## ..ooOOipOOoo.. (8. April 2002)

Hoi!

Oh nee, danke  
Ich habe im mom so viel zu machen, das gibts garnicht  Abgesehen von dem Design einer Homepage und das schreiben der Scripts dazu, muss ich die bereits erwähnte Metzwerkengine fertig schreiben, dann noch eine ganze Hintergrundstory und Welt zu einem RPG mitentwickeln, das System zu jenem herbeizaubern und ein Konzept vorbereiten. Und wenn ich dann noch  Zeit finde, habe ich noch Schule und Freunde 
Aber ich komme so in 10 Jahren mal wieder drauf zurück  

Gruesse

..ooOOipOOoo..


----------



## Piesbruhder (11. April 2002)

Hi ooooipoooo!

Was sind das denn für Bücher. Hätte auch interesse. Kannst du mal
Amazonlink geben? das wäre nett!


----------

