Blitz User Chat - BUC
Multithreading in BUC?

An BUC selbst ist in letzter Zeit nicht viel passiert, dafür aber an der Idee.
Ich teste im Moment die Verwendung von FastPointer, mit erstaunlich guten Ergebnissen.
Da kommt der Gedanke nah, das Multithreading für BUC zu nutzen.
Jedenfalls beim Server wird dieses auch (testweise) vorkommen.
Ein kleines (Test-)Nebenprojekt von mir (Nur kleine Punkte, die man in einer 800x600 großen 2D Welt steuern kann), was ich bald zum testen raus gegen werden, empfängt alle Daten (Koordinate, Spieler usw...) per TCP. Das ganze in Echtzeit. Ähnlich wie bei UDP wird das Prog beim senden und empfangen dabei nicht angehalten, da der ganze Netzkram vom neben Thread abgehalten wird, dieser wird dabei auch nur passiv gesteuert (keine Netzbefehle im Main-Thread, bei Koordinatenänderung wird automisch gesendet).
Ich teste im Moment die Verwendung von FastPointer, mit erstaunlich guten Ergebnissen.
Da kommt der Gedanke nah, das Multithreading für BUC zu nutzen.
Jedenfalls beim Server wird dieses auch (testweise) vorkommen.
Ein kleines (Test-)Nebenprojekt von mir (Nur kleine Punkte, die man in einer 800x600 großen 2D Welt steuern kann), was ich bald zum testen raus gegen werden, empfängt alle Daten (Koordinate, Spieler usw...) per TCP. Das ganze in Echtzeit. Ähnlich wie bei UDP wird das Prog beim senden und empfangen dabei nicht angehalten, da der ganze Netzkram vom neben Thread abgehalten wird, dieser wird dabei auch nur passiv gesteuert (keine Netzbefehle im Main-Thread, bei Koordinatenänderung wird automisch gesendet).
Es passiert noch was...

Tja, ich habe zwar hier schon ein Weilchen nix mehr geschrieben, das muss aber nicht heißen, das nicht kräftig an BUC gearbeitet wurde
Der TCP-Bereich des Server's ist so gut wie fertig, es muss nurnochhgetestet und verbessert werden - der UDP-Bereich wird jetzt von Count-Doku anschließen.
Beim Clienten hat sich in meinem Bereich so gut wie nichts getan, dagegen arbeitet man auf Grafischer Seite fleißig an der Oberfläche
Beim Host System stehe ich momentan vor der Wahl, entweder ich verwende das System, das jeder Client sich zum Masterserver verbinden:
oder aber, ich lasse es über Getway's laufen, je nach Clientanzahl, über eine variable Menge... :
Der Vorteil der Getway's liegt auf der Hand ... - das ganze System verteilt die Last, und ein flüssigeres Chatten ist bei mehreren Clients möglich - Die Masterserver Methode dagegen ist nicht so komplex...
--
Wenn ihr der Entscheidung beitragen wollt, könnt ihr gerne einen Kommentar dazu posten...

Der TCP-Bereich des Server's ist so gut wie fertig, es muss nurnochhgetestet und verbessert werden - der UDP-Bereich wird jetzt von Count-Doku anschließen.
Beim Clienten hat sich in meinem Bereich so gut wie nichts getan, dagegen arbeitet man auf Grafischer Seite fleißig an der Oberfläche

Beim Host System stehe ich momentan vor der Wahl, entweder ich verwende das System, das jeder Client sich zum Masterserver verbinden:

oder aber, ich lasse es über Getway's laufen, je nach Clientanzahl, über eine variable Menge... :

Der Vorteil der Getway's liegt auf der Hand ... - das ganze System verteilt die Last, und ein flüssigeres Chatten ist bei mehreren Clients möglich - Die Masterserver Methode dagegen ist nicht so komplex...
--
Wenn ihr der Entscheidung beitragen wollt, könnt ihr gerne einen Kommentar dazu posten...
Und es kommt immer ein bisschen was dazu :D

Ja, es geht weiter, diesmal gibt es ein bisschen was über die Windows Oberfläche zu sagen.
Diese läuft vollkommen selbst gestaltbar in einen *.bcr-Script ab.
Hier ein kleines Beispiel, zum erstellen eines Fensters, und dem setzen eines Label's auf dieses:
Code: [AUSKLAPPEN]
Im Grunde geht die Oberflächengestaltung dem Ende zu, und es dauert nicht mehr lang, und das lustige Netzwerk-Zeug's ist an der Reihe
Eine kleine Übersicht über die eingebauten TCP funktionen, könnt ihr hier lesen:
Code: [AUSKLAPPEN]
Ansonsten, gibt es ein paar Symbole zu "bestaunen" die im Programm vorläufig verwendet werden:
Ränge:
Ping-Symbol für die Windows Oberfläche:
Smilys made by Count-Doku, gibt es auch schon, doch weiß ich jetzt nicht, ob ich die schon zeigen darf, darum lass ci hes erstmal
Diese läuft vollkommen selbst gestaltbar in einen *.bcr-Script ab.
Hier ein kleines Beispiel, zum erstellen eines Fensters, und dem setzen eines Label's auf dieses:
Code: [AUSKLAPPEN]
CreateWin
Test Fenster
400
300
DSK
DSK
0
1
CreateLabel
Dies ist ein Testlabel
400
14
Test Fenster
400
300
DSK
DSK
0
1
CreateLabel
Dies ist ein Testlabel
400
14
Im Grunde geht die Oberflächengestaltung dem Ende zu, und es dauert nicht mehr lang, und das lustige Netzwerk-Zeug's ist an der Reihe

Eine kleine Übersicht über die eingebauten TCP funktionen, könnt ihr hier lesen:
Code: [AUSKLAPPEN]
Byte:Befehl:
1 Nachricht empfangen und zu jedem Senden
2 Verschlüsselte nachricht empfangen, und zu jedem senden
3 Nachricht empfangen und an bestimmte Person senden
4 Verschlüsselte Nachricht empfangen und an bestimmte Personen senden
5 Channelliste senden
6 Nutzer dem Channel hinzufügen
7 Nutzer dem Channel abziehen
8 Channel erstellen
9 Channel löschen
10 Infos über einen Nutzer abfragen
11 Eigenen Rang abfragen
12 Rang eines Nutzers ändern
13 Den Chat verlassen
14 Abfragen, ob Dateiübertragung erlaubt ist
15 Einen Dateitransfer beantragen
16 Bytes (anzahl) an bestimmten Nutzer übertragen
17 ServerDatum abfragen
18 ServerZeit abfragen
19 aktuelle Programmversion abfragen
20 Einloggen (Nutzname und Passwort senden) um Chatrechte zu bekommen
1 Nachricht empfangen und zu jedem Senden
2 Verschlüsselte nachricht empfangen, und zu jedem senden
3 Nachricht empfangen und an bestimmte Person senden
4 Verschlüsselte Nachricht empfangen und an bestimmte Personen senden
5 Channelliste senden
6 Nutzer dem Channel hinzufügen
7 Nutzer dem Channel abziehen
8 Channel erstellen
9 Channel löschen
10 Infos über einen Nutzer abfragen
11 Eigenen Rang abfragen
12 Rang eines Nutzers ändern
13 Den Chat verlassen
14 Abfragen, ob Dateiübertragung erlaubt ist
15 Einen Dateitransfer beantragen
16 Bytes (anzahl) an bestimmten Nutzer übertragen
17 ServerDatum abfragen
18 ServerZeit abfragen
19 aktuelle Programmversion abfragen
20 Einloggen (Nutzname und Passwort senden) um Chatrechte zu bekommen
Ansonsten, gibt es ein paar Symbole zu "bestaunen" die im Programm vorläufig verwendet werden:
Ränge:





Ping-Symbol für die Windows Oberfläche:






Smilys made by Count-Doku, gibt es auch schon, doch weiß ich jetzt nicht, ob ich die schon zeigen darf, darum lass ci hes erstmal

Es geht weiter...

Hallo!
Heute hat Pummelie an der WinGUI gearbeitet und das Scriptsystem fertig gestellt.
Dieses umfasst nun:
-Speichern aller Namen und ihres Wertes aus einer .bcs Datei in einen Type
-GetVar -- Auslesen des Wertes zu einem Namen
-RenameVar -- Umbenennen eines Namens
-ChangeVar -- Ändern eines Wertes
-CreateVar -- manuelles Hinzufügen einer Variable
-Runscript -- Ausführen einer .bcr Datei.
Ich habe die Grafischer Oberfläche (quasi nur GUI) abgeschlossen.
Gadgets:
-Panel, einfacher farbiger Hintergrund
-Button
-RadioButton, kann man Gruppen zu ordnen, in jeder Gruppe maximal einer aktiv
-CheckBox
-TextField, mit blinkendem Cursor
-Labels, ein einfacher Text
Der Button hat 3Bilder, die automatisch der Textgröße angepasst werden,
normal,zeigen und klicken.
Der Radiobutton kriegt wenn er aktiviert ist einen 2farbigen Punkt und die CheckBox einen grünen Haken.
Das Textfeld besteht aus 2Bildern, die auch an die Textgröße angepasst werden.
Es gibt ein Bild für normal und eins für gerade am Schreiben.
Ein Bild sagt mehr als 1000 Worte:
Und hier ein Ausschnitt einer .bcs Datei:
Code: [AUSKLAPPEN]
Bis zum nächsten Eintrag,
count-doku
PS. Ich werde trotz diesem neuen Projekt an Boatrace weiterarbeiten.
Heute hat Pummelie an der WinGUI gearbeitet und das Scriptsystem fertig gestellt.
Dieses umfasst nun:
-Speichern aller Namen und ihres Wertes aus einer .bcs Datei in einen Type
-GetVar -- Auslesen des Wertes zu einem Namen
-RenameVar -- Umbenennen eines Namens
-ChangeVar -- Ändern eines Wertes
-CreateVar -- manuelles Hinzufügen einer Variable
-Runscript -- Ausführen einer .bcr Datei.
Ich habe die Grafischer Oberfläche (quasi nur GUI) abgeschlossen.
Gadgets:
-Panel, einfacher farbiger Hintergrund
-Button
-RadioButton, kann man Gruppen zu ordnen, in jeder Gruppe maximal einer aktiv
-CheckBox
-TextField, mit blinkendem Cursor
-Labels, ein einfacher Text
Der Button hat 3Bilder, die automatisch der Textgröße angepasst werden,
normal,zeigen und klicken.
Der Radiobutton kriegt wenn er aktiviert ist einen 2farbigen Punkt und die CheckBox einen grünen Haken.
Das Textfeld besteht aus 2Bildern, die auch an die Textgröße angepasst werden.
Es gibt ein Bild für normal und eins für gerade am Schreiben.
Ein Bild sagt mehr als 1000 Worte:

Und hier ein Ausschnitt einer .bcs Datei:
Code: [AUSKLAPPEN]
;Gui elemente
GUI_butnormal = button_normal.png
GUI_butover = button_over.png
GUI_butclick = button_clicked.png
GUI_buttext = 0
GUIblocktime = 100
GUIblinktime = 500
GUI_butnormal = button_normal.png
GUI_butover = button_over.png
GUI_butclick = button_clicked.png
GUI_buttext = 0
GUIblocktime = 100
GUIblinktime = 500
Bis zum nächsten Eintrag,
count-doku

PS. Ich werde trotz diesem neuen Projekt an Boatrace weiterarbeiten.

In den Startlöchern

Was schon ein Weilchen geplant war, wird jetzt einfach vorgezogen.
Nach BlitzUDP und BlitzTCP sollte das Gemeinschaftsprojekt von Count-Doku und mir folgen.
Nun da wir es als sinnlos anerkannten, BlitzTCP noch zu erstellen, wobei dessen Neuerungen doch eh in dieses Gemeinschaftsprojekt eingeflossen wären, starten wir es einfach Heute
Bei diesem Gemeinschaftsprojekt handelt es sich um einen Chat der die Features von BlitzUDP und BlitzTCP verbindet.
Ein paar Fakten:
Code: [AUSKLAPPEN]
Nach BlitzUDP und BlitzTCP sollte das Gemeinschaftsprojekt von Count-Doku und mir folgen.
Nun da wir es als sinnlos anerkannten, BlitzTCP noch zu erstellen, wobei dessen Neuerungen doch eh in dieses Gemeinschaftsprojekt eingeflossen wären, starten wir es einfach Heute

Bei diesem Gemeinschaftsprojekt handelt es sich um einen Chat der die Features von BlitzUDP und BlitzTCP verbindet.

Ein paar Fakten:
Code: [AUSKLAPPEN]
- Es wird so wenig wie möglich Hardcode geben, fast jeden Text kann man in den eigen's dafür angelegten *.bcs Dateien verändern
- Es kommt ein Scriptsystem zum Einsatz, mit dem der geneigte Nutzer sich sein Programm ein wenig Gestalten oder Aufwerten kann
- Man kann zwischen Windows Gui (BlitzTCP) und Grafischer Oberfläche (BlitzUDP) wählen
- UDP und TCP kommen beide im Verbund zum Einsatz, genaueres verraten wir aber noch nicht...
- Screens gibt es noch nicht, es kann aber nichtmehr lange dauern, bis hier die ersten auftauchen
- Ein Teilnehmer kann nicht wie es in BlitzUDP der Fall war einen Server eröffnen, das geht absofort alles über pummelie.de
- Es kommt ein Channelsystem zum Einsatz
- Es kommt ein Scriptsystem zum Einsatz, mit dem der geneigte Nutzer sich sein Programm ein wenig Gestalten oder Aufwerten kann
- Man kann zwischen Windows Gui (BlitzTCP) und Grafischer Oberfläche (BlitzUDP) wählen
- UDP und TCP kommen beide im Verbund zum Einsatz, genaueres verraten wir aber noch nicht...
- Screens gibt es noch nicht, es kann aber nichtmehr lange dauern, bis hier die ersten auftauchen
- Ein Teilnehmer kann nicht wie es in BlitzUDP der Fall war einen Server eröffnen, das geht absofort alles über pummelie.de
- Es kommt ein Channelsystem zum Einsatz