Dieser Thread soll für mein nächstes großes Projekte dienen.
Schreibt, was Ihr an Netzwerkunterstützung benötigt und wie es aussehen soll und ich werde es in eine große allkönnende Lib zusammenbauen.
Ich fang an :P
UDP
nun seid ihr dran.
TCP
Ein "Dialog", wo man sich an einem Server anmelden kann/Server aussuchen kann usw...
Ein http-SERVER (mini, nur dass man halt html Seiten per GLBasic generieren kann - für einen Spieleserver)
Ein Bei-SPIEL!!! Was gaaanz einfaches. Wie wär's mit "Quake in 2D aber ohne Level"? Also - Schießen auf der Wiese.
Also html server hab ich ja das proof of concept gedings da. werde den dann in glb umsetzen.
Das Bei-SPIEL hmm ein pong mehr is leider nicht drin :(
aber ich werds für tcp und udp schreiben.
dialog hmm. DDGUI oder an was dachtest du?
nochn vorschlag:
RAW-Socket Befehle für extravagante
@Ocean: ich will ja nichts nachbauen. etwas eigenes das GLB auszeichnet soll es sein.
Dann mach :
Set_UDP_To_Game()
Get_UDP_From_Game()
Das isses :)
Was der Netzwerk Kram von anderen Sprachen unterscheidet?
Komplettes Kabinet, Einfache Message unterstützung und vieles vieles mehr.
Stand der Dinge:
Raw Socket Befehle (nochnicht alle aber die gängigen ^^)
Kabinet angefangen (erst 3 Befehle)
Aufruf fürs Kabinet dacht ich so:
AUTOPAUSE FALSE
LIMITFPS 30
LOCAL SERVER AS tConnection
LOCAL FTP AS tConnection
GLN_Init();
GLN_SelectNetwork(NL_IP);
INPUT iServer$,0,0
IF iServer$ = "s"
SERVER = GLN_CreateTCPServer(6666,"GLBasic","root","GLBasic")
ELSE
FTP = GLN_CreateTCPClient("127.0.0.1",6666,"root","root","GLBasic")
ENDIF
WHILE TRUE
IF SERVER.IsServer
GLN_AcceptTCPConnection(SERVER)
FOR x = 0 TO 15
PRINT SERVER.Clients[x],0,20+10*x
NEXT
ENDIF
PRINT GLN_GetErrorString$(GLN_GetError()),0,0
PRINT buffer$,0,10
SHOWSCREEN
WEND
Na ist das nicht einfach? *g*
Hier noch ein Screenshot von Server (oben) und client (unten)
Der server zeigt alle 16 möglichen Verbindungen an 0 = keine alles drüber = socketnummer; wenn ein client geschlossen wird wird diese position wieder auf 0 gesetzt und kan neu belegt werden.
Client zeigt... Nix ^^
[attachment deleted by admin]
Ein Multiplayer Schieß-mich-tot ist einfacher als PONG. Da hat man ja schräge Winkel.
Ausserdem muss man bei PONG auf 2 Spieler reduzieren. Bei Schieß-mich-tot ist's egal. Einfach rein damit.
na ich versuch mal hehe.
Ich brauch eine UniqueID. Wie berechnest du sie in deinem Lobby Code?
Hmmm... Wie wär's mir RND(0xffffffff) ? :D
hmm k
hab momentan die asc werte der login daten + rnd(50000)
aber ich denke da wird sich ganz fix ne zahl kreuzen.
OOPS ein Doppelpost *verzeiht mir*
RAW-Socket Befehle - DONE
HTTP-Server - 50%
TCP - 35%
UDP - 0%
Geilo.. wird dann ne DLL, richtig?
nööö bleibt rein glb falls jemand verbessern will.
Du machst Code öffentlich? :S
Krank/ Auf'm Kopf gefallen/ guten Tag heute ? :x
:good:
nach kurzer Pause:
CreateHTTPServer(Type tConnection, "www ordner", "index datei")
CreateTCPServer // erstellt nun ein type in type für clients.
Could anyone do a little resume (EN) on what is going on here... I'm so curious... Bye...
Thank you
Not only you but it sounds like it's something interesting.
The project is alive - But no time this week :)
ich kann doch kein englisch ^^
vacations?
Naja so was ähnliches mehr so hochzeit und arbeitslos hehe.