Boatrace - Netgame
Verbessertes Menu

Hallo,
ich habe das Menu umsgestaltet.
So kann man jetzt über einen Button im Hauptmenu
das Einstellungsmenu öffnen.
Nur das Haupt/Startmenu:
Das über den Settings button eingeblendete Einstellungsmenu:
Die Einstellungen können über SaveSettings gespeichert, bzw. LoadSettings geladen werden.
Wegen des VServer Problems mit TCP bin ich am Überlegen,ob ich Boatrace komplett auf UDP umstelle.
Die einzigen Änderungen wären im Chat und beim Einloggen.
Beim Chatwürde es auch nichts machen, wenn mal Daten verloren gehen,
beim Einloggen -> Senden der Map leider schon.
Werde mir das bis zum nächsten Eintrag nochmal überlegen
Wers mal mit mir Testen will,
einfach in den BlitzBasic IRC oder in Thunders MaxNet kommen.
(Wenn ich da grad nicht on bin, PN.)
lg,
count-doku
ich habe das Menu umsgestaltet.
So kann man jetzt über einen Button im Hauptmenu
das Einstellungsmenu öffnen.
Nur das Haupt/Startmenu:
Das über den Settings button eingeblendete Einstellungsmenu:
Die Einstellungen können über SaveSettings gespeichert, bzw. LoadSettings geladen werden.
Wegen des VServer Problems mit TCP bin ich am Überlegen,ob ich Boatrace komplett auf UDP umstelle.
Die einzigen Änderungen wären im Chat und beim Einloggen.
Beim Chatwürde es auch nichts machen, wenn mal Daten verloren gehen,
beim Einloggen -> Senden der Map leider schon.
Werde mir das bis zum nächsten Eintrag nochmal überlegen

Wers mal mit mir Testen will,
einfach in den BlitzBasic IRC oder in Thunders MaxNet kommen.
(Wenn ich da grad nicht on bin, PN.)
lg,
count-doku
Problem mit TCP und VServer

Hallo Leser,
für die die Dachten, das Projekt sei vllt. tot, ihr habt euch getäuscht!
Ich habe in den letzten Wochen viele Fortschritte gemacht, leider
hänge ich jetzt aber vor einem Problem.
Neuerungen:
-Bäume
Es gibt 3 Arten von Bäumen,
2x Kleinere Laubbäume
1x Buschartigen Baum
Weitere Bäume folgen noch, vorallem ein Nadelbaum.
-Wasser steigt und sinkt jetzt im Takt zur Wellentex.
-Die Boote der anderen sind jetzt endlich auf der richtigen Höhe.
-Es gibt eine xxx logged in! und eine xxx logged out! Nachricht.
Leider ist es jetzt so,
dass wenn ich den Server auf Pummelies VServer laufen lasse,
und die RemoteVerbindung zu ist, der Server zwar empfängt,
aber nich antwortet.
Bei geöffneter RemoteVerbindung ist dieses Problem nicht da.
Ich werde dies mal mit Pummelie, besprechen, vllt. finden wir eine Lösung.
Die UDP Verbindung geht immer. Nur TCP hat da Probleme.
Sobald das Problem beseitigt ist,
gibt es den ersten großen Test.
Grüße,
Count-Doku
für die die Dachten, das Projekt sei vllt. tot, ihr habt euch getäuscht!
Ich habe in den letzten Wochen viele Fortschritte gemacht, leider
hänge ich jetzt aber vor einem Problem.
Neuerungen:
-Bäume
Es gibt 3 Arten von Bäumen,
2x Kleinere Laubbäume
1x Buschartigen Baum
Weitere Bäume folgen noch, vorallem ein Nadelbaum.
-Wasser steigt und sinkt jetzt im Takt zur Wellentex.
-Die Boote der anderen sind jetzt endlich auf der richtigen Höhe.
-Es gibt eine xxx logged in! und eine xxx logged out! Nachricht.
Leider ist es jetzt so,
dass wenn ich den Server auf Pummelies VServer laufen lasse,
und die RemoteVerbindung zu ist, der Server zwar empfängt,
aber nich antwortet.
Bei geöffneter RemoteVerbindung ist dieses Problem nicht da.
Ich werde dies mal mit Pummelie, besprechen, vllt. finden wir eine Lösung.
Die UDP Verbindung geht immer. Nur TCP hat da Probleme.
Sobald das Problem beseitigt ist,
gibt es den ersten großen Test.
Grüße,
Count-Doku
Frameunabhängig

Hallo,
nun zum 2ten Eintrag von heute...
Ich habe gerade den Client vollkommen Frame-Unabhängig gemacht.
Der Server läuft weiterhin mit einem Timer.
Die Kamersicht, der Nebel und die Größe der Skybox wurden angepasst.
Ein erster Test mit Pummelie lief auch erfolgreich,
da jetzt die Koordinaten, von jedem Spieler bei jedem Spieler
ankommmen.
Also, freut euch,
auf die Version 0.1.
Grüsse,
count-doku
nun zum 2ten Eintrag von heute...
Ich habe gerade den Client vollkommen Frame-Unabhängig gemacht.
Der Server läuft weiterhin mit einem Timer.
Die Kamersicht, der Nebel und die Größe der Skybox wurden angepasst.
Ein erster Test mit Pummelie lief auch erfolgreich,
da jetzt die Koordinaten, von jedem Spieler bei jedem Spieler
ankommmen.
Also, freut euch,
auf die Version 0.1.
Grüsse,
count-doku
Die Skydome

Hallo liebe Leser!
Heute Morgen habe ich nach langem Suchen endlich eine geeignete Textur für
die Skydome gefunden.
Ich hatte erst Krischans BlitzSky versucht einzubauen,
dies hat aber nicht gut geklappt, weil die BlitzSky lib
schon eine eingebaute Kamera und Tastenbelegung hat.
Ich hätte so alles erst suchen und ändern müssen,
außerdem tuts eine "normale" Skydome ja auch.
Des weiteren sinkt das Boot jetzt leicht ins Wasser ein.
Für die, die sich letztes Mal über die Kamerasteuerung beschwert haben,
gibt es heute das besondere i Tüpfelchen: 3 versch. Kameramodi:
1: Bootsteuerung mit WASD :: Kamera unabhängig davon mit Maus
2: Bootsteuerung mit WS :: Kamera und Bootdrehung mit der Maus
3: Bootsteuerung mit WSAD :: Kamera unabhängig mit Maus
Aber mit AlignToVector
dreht sich die Cam langsam wieder zum Boot.
Die 3. Steuerung, hat noch leichte Bugs...
Wieder ein paar Bilder:
Einen Download gibts auch, allerdings
kann ich gerade keinen Server laufen lassen.
Ihr könnt es aber auch so testen,
einfach erst in der Config.ini
Host2=pummelie.de
ändern in:
Host2=127.0.0.1
Danach dann einmal Server-Start.bat starten.
Der Server läuft jetzt.
Jetzt die Datei Client-Start.bat öffnen.
Der Client öffnet sich, und verbindet sich
zu euerm lokalen Server.
Vllt. kann ich heute Nachmittag nochmal einen Server bei mir oder auf pummelie.de laufen lassen.
lg,
count-doku
EDIT:
Ja, irgendwie wurde Download nicht klickbar.
Also hier nochmal:
http://sites.google.com/site/c...=0&d=1
Und ich habe jetzt auch einen Server am laufen.
Dafür muss dann natürlich in der Config.ini
Unter
[Client]
Host2=pummelie.de
stehen...
Danach dann einfach wieder Client-Start.bat starten.
Heute Morgen habe ich nach langem Suchen endlich eine geeignete Textur für
die Skydome gefunden.
Ich hatte erst Krischans BlitzSky versucht einzubauen,
dies hat aber nicht gut geklappt, weil die BlitzSky lib
schon eine eingebaute Kamera und Tastenbelegung hat.
Ich hätte so alles erst suchen und ändern müssen,
außerdem tuts eine "normale" Skydome ja auch.
Des weiteren sinkt das Boot jetzt leicht ins Wasser ein.
Für die, die sich letztes Mal über die Kamerasteuerung beschwert haben,
gibt es heute das besondere i Tüpfelchen: 3 versch. Kameramodi:
1: Bootsteuerung mit WASD :: Kamera unabhängig davon mit Maus
2: Bootsteuerung mit WS :: Kamera und Bootdrehung mit der Maus
3: Bootsteuerung mit WSAD :: Kamera unabhängig mit Maus
Aber mit AlignToVector

Die 3. Steuerung, hat noch leichte Bugs...
Wieder ein paar Bilder:
Einen Download gibts auch, allerdings
kann ich gerade keinen Server laufen lassen.
Ihr könnt es aber auch so testen,
einfach erst in der Config.ini
Host2=pummelie.de
ändern in:
Host2=127.0.0.1
Danach dann einmal Server-Start.bat starten.
Der Server läuft jetzt.
Jetzt die Datei Client-Start.bat öffnen.
Der Client öffnet sich, und verbindet sich
zu euerm lokalen Server.
Vllt. kann ich heute Nachmittag nochmal einen Server bei mir oder auf pummelie.de laufen lassen.
lg,
count-doku
EDIT:
Ja, irgendwie wurde Download nicht klickbar.
Also hier nochmal:
http://sites.google.com/site/c...=0&d=1
Und ich habe jetzt auch einen Server am laufen.
Dafür muss dann natürlich in der Config.ini
Unter
[Client]
Host2=pummelie.de
stehen...
Danach dann einfach wieder Client-Start.bat starten.
Schönes Anfahren... / Einen Namen / DEMO!

Hallo,
In den letzten Tagen habe ich schon einiges fertig gekriegt.
Das Boot (ein Speedboot) fährt schön weich an, und wird bis zur Maximalgeschwindigkeit immer schneller.
Beim loslassen der Taste bremst es durch die Reibung, bis es steht.
Rückwärtsfahren geht auch.
Leider klappt das mit dem Übertragen der Spielercoords nicht so ganz, sodass nur immer die alten Spieler die neuen sehen, die neuen nicht aber die alten.
Da muss ich nochmal nach der Ursache suchen...
Einen Namen habe ich mir auch überlegt.
Da man im Spiel warscheinlich ein Bootsrennen fahren muss,
nenne ich es (sehr kreativ) Boatrace
Aber es gibt schon eine Demo (es kann sein, das man manchmal nicht verbinden kann. Dann läuft der Server grad nicht.)
Gesteuert wird mit WSAD und der Maus.
Chatleiste mir Tab öffnen und schliessen.
Leertaste öffnet/schliesst die Minimap.
Zum Spielen einfach die Client-Start.bat öffnen..
Bilder:
Minimap, die Karte wurde automatisch erzeugt.
Eine Insel+Boot
Download:
https://www.blitzforum.de/upload/file.php?id=8793
Lg,
Count-Doku
PS. Wie ihr seht, ist das Boot noch nicht so schön..
Suche deswegen einen Modellier.
In den letzten Tagen habe ich schon einiges fertig gekriegt.
Das Boot (ein Speedboot) fährt schön weich an, und wird bis zur Maximalgeschwindigkeit immer schneller.
Beim loslassen der Taste bremst es durch die Reibung, bis es steht.
Rückwärtsfahren geht auch.
Leider klappt das mit dem Übertragen der Spielercoords nicht so ganz, sodass nur immer die alten Spieler die neuen sehen, die neuen nicht aber die alten.
Da muss ich nochmal nach der Ursache suchen...
Einen Namen habe ich mir auch überlegt.
Da man im Spiel warscheinlich ein Bootsrennen fahren muss,
nenne ich es (sehr kreativ) Boatrace
Aber es gibt schon eine Demo (es kann sein, das man manchmal nicht verbinden kann. Dann läuft der Server grad nicht.)
Gesteuert wird mit WSAD und der Maus.
Chatleiste mir Tab öffnen und schliessen.
Leertaste öffnet/schliesst die Minimap.
Zum Spielen einfach die Client-Start.bat öffnen..
Bilder:
Minimap, die Karte wurde automatisch erzeugt.
Eine Insel+Boot
Download:
https://www.blitzforum.de/upload/file.php?id=8793
Lg,
Count-Doku
PS. Wie ihr seht, ist das Boot noch nicht so schön..
Suche deswegen einen Modellier.
Modell fertig, Demo kommt (leider) noch nicht

Hallo,
ich habe ein Bootmodell gemacht, es eingebaut usw.
Läuft auch alles ganz gut.
Die demo gibts noch nicht, weil:
Die Kollision noch nicht ganz klappt.
Manchmal noch Verbindungsprobleme auftreten.
Ich noch eine Detailtex übers Terrain machen will.
Eine Liste:
grün=Fertig eingebaut.
gelb=fast fertig, noch kleinere Bugs
rot=Noch im Aufbau, Planung
Chat
Hmap Generator
Tex Generator
Nebeleffekt
Wellentex
Client Minimap
Kollision
Verbindung(UDP)
Hmap für Wellen
Übertragung der Player Coords
Minimap fürn Server
Was mir so einfällt
Guten Abend,
count-doku
ich habe ein Bootmodell gemacht, es eingebaut usw.
Läuft auch alles ganz gut.
Die demo gibts noch nicht, weil:



Eine Liste:
grün=Fertig eingebaut.
gelb=fast fertig, noch kleinere Bugs
rot=Noch im Aufbau, Planung
Chat
Hmap Generator
Tex Generator
Nebeleffekt
Wellentex
Client Minimap
Kollision
Verbindung(UDP)
Hmap für Wellen
Übertragung der Player Coords
Minimap fürn Server
Was mir so einfällt

Guten Abend,
count-doku
Insellandschaft

Hi,
heute haben Matthias und ich den Inselgenerator fertig gestellt.
Dieser erzeugt aus ein paar Brushes eine Heightmap + Textur + Minimap.
Vielleicht muss ich mit den Farbabstufungen noch ein wenig spielen, aber ansonsten siehts gut aus.
Bild:
Jetz mache ich noch ein Plane oder noch eine Heightmap fürs Wasser.
Dann noch ein Schiffchen modellieren und ich gebe die erste Demo raus.
lg,
count-doku
heute haben Matthias und ich den Inselgenerator fertig gestellt.
Dieser erzeugt aus ein paar Brushes eine Heightmap + Textur + Minimap.
Vielleicht muss ich mit den Farbabstufungen noch ein wenig spielen, aber ansonsten siehts gut aus.
Bild:
Jetz mache ich noch ein Plane oder noch eine Heightmap fürs Wasser.
Dann noch ein Schiffchen modellieren und ich gebe die erste Demo raus.
lg,
count-doku
3D running!

Hallo,
heute habe ich beim Client eine 3D Map eingebaut.
Ist zwar noch nicht textuiert, aber man sieht schon die Höhen.
Diese Map wird durch einen HMap Generator erzeugt, welcher aus verschiedenen vordefinierten
Inselformen eine Insellandschaft generiert.
Die Position des Clients wird auch übertragen und beim Server in einer Minimap dargestellt.
Wenn das Terrain textuiert ist, gibts auch Pics.
Morgen werde ich es dann textuieren, die Spielerdaten auch an andere Spieler übertragen lassen usw.
Vllt. erstelle ich heute Abend auch noch ein kleines Bootmodell.
lg,
count-doku
heute habe ich beim Client eine 3D Map eingebaut.
Ist zwar noch nicht textuiert, aber man sieht schon die Höhen.
Diese Map wird durch einen HMap Generator erzeugt, welcher aus verschiedenen vordefinierten
Inselformen eine Insellandschaft generiert.
Die Position des Clients wird auch übertragen und beim Server in einer Minimap dargestellt.
Wenn das Terrain textuiert ist, gibts auch Pics.
Morgen werde ich es dann textuieren, die Spielerdaten auch an andere Spieler übertragen lassen usw.
Vllt. erstelle ich heute Abend auch noch ein kleines Bootmodell.
lg,
count-doku
Schon der 3. Eintrag heute :wink:

Hallo!
Ich habe heute mit Hilfe von Toasty und Matthias richtig was geschafft.
Der Server kriegt eine Minimap von der Karte auf der die Spieler spielen,
die Spieler sollen dort dann mit Pixeln eingezeichnet werden.
Momentan ist der Chat zwischen Server und den Clients schon voll einsatzfähig.
Morgen werde ich dann einbauen, das der Client auf einer Hmap laufen kann und die Daten per UDP
an alle anderen Spieler übertragen werden.
Und der server umrechnet wo auf seiner Minimap der Pixel sitzen muss.
Gute Nacht,
Count-Doku
Ich habe heute mit Hilfe von Toasty und Matthias richtig was geschafft.
Der Server kriegt eine Minimap von der Karte auf der die Spieler spielen,
die Spieler sollen dort dann mit Pixeln eingezeichnet werden.
Momentan ist der Chat zwischen Server und den Clients schon voll einsatzfähig.
Morgen werde ich dann einbauen, das der Client auf einer Hmap laufen kann und die Daten per UDP
an alle anderen Spieler übertragen werden.
Und der server umrechnet wo auf seiner Minimap der Pixel sitzen muss.
Gute Nacht,
Count-Doku
Neu strukturiert

Hallo,
ich habe jetzt das komplette Programm so umstruktoriert,
dass Server und Client in einer Code sowie .exe Datei sind.
Weitehin können sich jetzt mehrere Clients verbinden.
Dies läuft alles auch schon übers Internet und auch nur der Server muss die Ports freigeben.
Beim Client ist dies nicht notwendig...
Matthias Idee mit dem Bootrennspiel um Inseln hört sich gut an.
Werde mal gucken, was ich da so hinkriege.
Unten noch der Quellcode....
mfg,
count-doku
Da ich das ganze Opensource machen will, hier mal der Code:
->Main.bb BlitzBasic: [AUSKLAPPEN]
Die net_lib.bb:
BlitzBasic: [AUSKLAPPEN]
ich habe jetzt das komplette Programm so umstruktoriert,
dass Server und Client in einer Code sowie .exe Datei sind.
Weitehin können sich jetzt mehrere Clients verbinden.
Dies läuft alles auch schon übers Internet und auch nur der Server muss die Ports freigeben.
Beim Client ist dies nicht notwendig...
Matthias Idee mit dem Bootrennspiel um Inseln hört sich gut an.
Werde mal gucken, was ich da so hinkriege.
Unten noch der Quellcode....
mfg,
count-doku
Da ich das ganze Opensource machen will, hier mal der Code:
->Main.bb BlitzBasic: [AUSKLAPPEN]
;SERVER PORTS:
Global SERV_IP$="blitzudp.dyndns.org"
Const SERV_TCP_PORT=6523
Const SERV_UDP_PORT=6524
;-------------------------------------------------------------------------
Graphics 800,600,0,2
SetBuffer BackBuffer()
AppTitle "TCP/UDP Server"
Include "net_lib.bb"
Global Server.TServer
Global Client.TClient
Type TServer
Field ip$,int_ip,tcp_port,udp_port
Field tcp_stream,udp_stream
Field name$
End Type
Type TClient
Field ip$,int_ip,tcp_port,udp_port
Field tcp_stream,udp_stream
Field name$
End Type
If Input("Client? 0/1")=0
drawServer()
Else
drawClient()
End If
End
Function drawServer()
serv_Init()
Local timer=CreateTimer(30)
Local y=15
While KeyHit(1)=0
Cls
serv_UpdateLogin()
y=15
For Client.TClient=Each TClient
Text 1,y,Client\name+" connected."
Text 1,y+15,"IP: "+Client\ip
Text 1,y+30,"Int_IP: "+Client\int_ip
Text 1,y+45,"TCP Port: "+Client\tcp_port
Text 1,y+60,"UDP Port: "+Client\udp_port
y=y+(5*15)
Next
WaitTimer timer
Flip 0
Wend
For Client.TClient=Each TClient
CloseTCPStream Client\tcp_stream
Delete Client.TClient
Next
CloseTCPServer Server\tcp_stream
CloseUDPStream Server\udp_stream
End Function
Function drawClient()
clie_Init()
AppTitle "TCP/UDP :: IP: "+Client\ip+" :: Int_IP: "+Client\int_ip+" :: Ports: "+Client\tcp_port+" "+Client\udp_port
Local timer=CreateTimer(30)
While KeyHit(1)=0
Cls
Text 1,1,"Connected..."
WaitTimer timer
Flip 0
Wend
CloseTCPStream Client\tcp_stream
CloseUDPStream Client\udp_stream
End Function
Function serv_Init()
Server.TServer=New TServer
Server\ip=GetNetIP()
Server\int_ip=DottedToInt_IP(Server\ip)
Server\tcp_port=SERV_TCP_PORT
Server\udp_port=SERV_UDP_PORT
AppTitle "TCP/UDP :: IP: "+Server\ip+" :: Int_IP: "+Server\int_ip+" :: Ports: "+Server\tcp_port+" "+Server\udp_port
Server\tcp_stream=CreateTCPServer(Server\tcp_port)
Server\udp_stream=CreateUDPStream(Server\udp_port)
End Function
Function clie_Init()
Server.TServer=New TServer
Server\ip=HostnameToIP$(SERV_IP)
Server\int_ip=DottedToInt_IP(Server\ip)
Server\tcp_port=SERV_TCP_PORT
Server\udp_port=SERV_UDP_PORT
Client.TClient=New TClient
Client\ip$=GetNetIP()
Client\int_ip=DottedToInt_IP(Client\ip)
clie_UpdateLogin()
End Function
;-------------------------------------------------------------------------
;Login
Function serv_UpdateLogin(all_login=1)
Local new_client_handle
If all_login
new_client_handle=AcceptTCPStream(Server\tcp_stream)
If new_client_handle<>0
Client.TClient=New TClient
Client\tcp_stream=new_client_handle
Client\int_ip=TCPStreamIP(Client\tcp_stream)
Client\ip=DottedIP(Client\int_ip)
Client\tcp_port=TCPStreamPort(Client\tcp_stream)
Client\name=ReadLine(Client\tcp_stream)
If RecvUDPMsg(Server\udp_stream)=Client\int_ip
If ReadInt(Server\udp_stream)=1
Client\udp_port=UDPMsgPort(Server\udp_stream)
WriteInt Server\udp_stream,1
WriteInt Server\udp_stream,Client\tcp_port
WriteInt Server\udp_stream,Client\udp_port
SendUDPMsg Server\udp_stream,Client\int_ip,Client\udp_port
End If
End If
End If
End If
End Function
Function clie_UpdateLogin()
Client\tcp_stream=OpenTCPStream(Server\ip$,Server\tcp_port)
Client\udp_stream=CreateUDPStream()
If Client\tcp_stream=0 Or Client\udp_stream=0 Then RuntimeError "Could not connect!"
WriteLine Client\tcp_stream,"Test"
WriteInt Client\udp_stream,1
SendUDPMsg Client\udp_stream,Server\int_ip,Server\udp_port
Local timeout=MilliSecs()
While MilliSecs()<timeout+5000
RecvUDPMsg(Client\udp_stream)
If ReadInt(Client\udp_stream)=1
Client\tcp_port=ReadInt(Client\udp_stream)
Client\udp_port=ReadInt(Client\udp_stream)
Local connected=True
Exit
End If
Wend
If connected=False
RuntimeError "Timeout! Server didnt respond..."
End If
End Function
;-------------------------------------------------------------------------
Die net_lib.bb:
BlitzBasic: [AUSKLAPPEN]
Funktionssammlung
;Netzwerk/Internet Übertragung
Function HostnameToIP$(hostname$)
Return DottedIP(HostIP(CountHostIPs(hostname$)))
End Function
Function GetNetIP$()
Local rdLine$,ip$
Local ipstream = OpenTCPStream("www.tes-cheese.ch",80)
WriteLine ipstream, "GET /myip.php HTTP/1.0"
WriteLine ipstream, "Host: www.tes-cheese.ch"
WriteLine ipstream, ""
Repeat
rdLine$ = ReadLine(ipstream)
If Instr(rdLine$, "IP-ADDRESS: ") <> 0
ip$ = Replace(rdLine$, "IP-ADDRESS: ","")
Exit
EndIf
Forever
CloseTCPStream(ipstream)
Return ip$
End Function
Function DottedToInt_IP%(IP$)
a1 = Int(Left(IP$, Instr(IP$, ".") - 1)) : IP$ = Right(IP$, Len(IP$) - Instr(IP$, "."))
a2 = Int(Left(IP$, Instr(IP$, ".") - 1)) : IP$ = Right(IP$, Len(IP$) - Instr(IP$, "."))
a3 = Int(Left(IP$, Instr(IP$, ".") - 1)) : IP$ = Right(IP$, Len(IP$) - Instr(IP$, "."))
a4 = Int(IP$)
Return (a1 Shl 24) + (a2 Shl 16) + (a3 Shl 8 ) + a4
End Function
Gehe zu Seite Zurück 1, 2, 3 Weiter