[Hilfe] Spiel + Server

destroyaa

Mitglied
Hallo Liebe VB Gemeinschaft ;P


Also ich hab mal angefangen ein Textbasiertes Spiel zu programmieren.
Ihr kennt sicher Browsergames ( http://www.droidwars.de z.B ), ich möchte es so aufbauen. Man kan bauen, forschen, etc...

Aber es soll so werden, was ein Browsergame auszeichnet - Das man es nicht alleine Spielt.

Ich habe einen Server, und ich möchte das die leute die das Spielen, z.B wen 10 Leute spielen, das von den 10 Gamern den Wert von der Label1.caption zu meinen Server geschickt werden und dort in eine Datenbank gespeichert werden. Also der Server läuft von 0-24 Uhr und 360 Tage die Woche.

Bitte um baldige rückmeldung

Mit freundlichen Grüßen - AleX
 
Ich würde mal sagen, dass Visual Basic für so ein Vorhaben höchst ungeeignet ist.
Wenn es ein Browsergame werden soll, dann PHP, Flash oder Java.
Man könnte es zwar auf einem Client-Server Prinzip baiseren lassen und es mit Visual Basic umsetzen, nur ist das ziemlich schwer (ich weiß ja nicht wieviel Erfahrungen du in dem Bereich Netzwerkprogrammierung hast).
 
Es soll ja grad ned mit PHP gemacht werden...


Wieso is VB ungeeinget? Also so ein Textbasiertes Spiel müsste scho gehen zumindest im Singleplayer und dan den endpunktestand ins internet stellen oder?
 
Also hier mal ein wenig vom Code


Code:
' ############ Bäcker ###########################
Private Sub Bäcker_Bau_Click()
bäckerTimer.Enabled = True
End Sub

Private Sub bäckerTimer_Timer()
Gold.Caption = Gold.Caption - 100 'Kosten für die Production
        
    bäckered.Visible = True 'IN bau Schrift Sichtbar
    
        If bäckered.Visible = True Then  ' WEn "inbau" sichtbar ist ...
            Bäcker_Bau.Enabled = False
        End If
  bäckerTimer.Enabled = False            '... bäckertimer1 Disable ...
  bäckerTimer1.Enabled = True                  ' ... bäcker.Timer1 Enabled
End Sub



Private Sub bäckerTimer1_Timer()
wie_bäcker.Caption = wie_bäcker.Caption + 1         'Farm hinzufügen
        Bäcker_Bau.Enabled = True                         ' Bau button Enabled
    bäckered.Visible = False
    bäckerTimer1.Enabled = False
End Sub







' ############ FARM ###########################
Private Sub Farm_Bau_Click()
    farm.Enabled = True
End Sub

Private Sub farm_Timer()
    Gold.Caption = Gold.Caption - 100 'Kosten für die Production
        
    farmred.Visible = True 'IN bau Schrift Sichtbar
    
        If farmred.Visible = True Then  ' WEn "inbau" sichtbar ist ...
            Farm_Bau.Enabled = False
        End If
        farm.Enabled = False            '... bau button disable
  farm2.Enabled = True                  'Farm2.Timer Enabled
End Sub


Private Sub farm2_Timer()
    wie_farm.Caption = wie_farm.Caption + 1         'Farm hinzufügen
        Farm_Bau.Enabled = True                         ' Bau button Enabled
    farmred.Visible = False             ' Bau button Visible = False
    farm2.Enabled = False
End Sub


Private Sub Label24_Click()

End Sub

Private Sub Form_Load()

End Sub

' ################## MÜHLE ###########################
Private Sub Mühle_Bau_Click()
                        'If Gold.Caption <= 0 Then
    mühleTimer.Enabled = True
                                    'Else
                             'MsgBox "nicht genügend Geld!"
                                     '   End If
End Sub




Private Sub mühleTimer_Timer()
 Gold.Caption = Gold.Caption - 500 'Kosten für die Production
        
    mühlered.Visible = True 'IN bau Schrift Sichtbar
    
        If mühlered.Visible = True Then  ' WEn "inbau" sichtbar ist ...
            Mühle_Bau.Enabled = False
        End If
        mühleTimer.Enabled = False            '... Timer Enabled = false
  mühleTimer1.Enabled = True                  'Farm2.Timer Enabled
End Sub

Private Sub mühleTimer1_Timer()
 wie_mühle.Caption = wie_mühle.Caption + 1         'Farm hinzufügen
        Mühle_Bau.Enabled = True                         ' Bau button Enabled
    mühlered.Visible = False
    mühleTimer1.Enabled = False
End Sub








    '       !
    '        SONTIGES 
    '       !






            ' PFÄNUNG WEN GELD UNTER 0

Private Sub geldtimer1_Timer()                          '1.Warnung
    If Gold.Caption < 0 Then
         nachlab.Caption = "Du bist im Minus, 30sekunden noch und dir werden 2 Gebäude Gepfändet, ausserdem bekommst du 2000G!"
             geldtimer2.Enabled = True
                 geldtimer1.Enabled = False
        
End If
End Sub


Private Sub geldtimer2_Timer()                                          '2.Warnung + Pfänung
    nachlab.Caption = "Das Imperium hat dir eine Farm & eine Mühle genommen!"
            wie_farm.Caption = wie_farm.Caption - 1
            wie_mühle.Caption = wie_mühle.Caption - 1
                    Gold.Caption = Gold.Caption + 2000
                        geldtimer2.Enabled = False
                            geldtimer1.Enabled = True
                            

              'PFÄNDUNG ENDE
End Sub

Private Sub Timer1_Timer()
Timer2.Enabled = True
Timer1.Enabled = False
End Sub

Private Sub Timer2_Timer()
If wie_farm.Caption = 1 Then
Weizen.Caption = Weizen.Caption + 10

End If
End Sub



-- Wie findet ihr die Bisherige arbeit? :)
 
@destroyaa: ich würde sagen, dass ist nicht gerade effizient, wenn du für jedes Gebäude einen eigenen Timer+Code erstellst! Du solltest eine Prozedur schreiben, die alle Gebäude verwalten kann, unabhängig ob es ein Bäcker oder eine Farm ist. Denn was machst du, wenn du ein neues Gebäude in dein Spiel einbauen möchtest? Dann musst du ja neuen Code schreiben und vielleicht an anderen Stellen sogar Code ändern!
Ich würde das so angehen: du definierst einen eigenen Variablen-Typ, der verschiedene Informationen enthalten kann. Dann erstellst du ein Array, dass so groß ist wie der Spieler gerade Gebäude hat. In dem Array sind dann alle Informationen zu allen Häusern:
Code:
Private Type Gebäude
	Name As String
	BauzeitRest As Integer
	Kosten As Integer
	Bild As IPictureDisp
	FertigGebaut As Boolean
 
End Type
 
Dim AlleGebäude(1 To 1000) As Gebäude
 
Private Sub TimerGebäude_Timer()
 
Dim intCounter As Integer
For intCounter = LBound(AlleGebäude) To UBound(AlleGebäude)
'verbleibende Bauzeit aller unfertigen Gebäude herunterzählen:
If Not AlleGebäude(intCounter).FertigGebaut Then 
  AlleGebäude(intCounter).BauzeitRest = AlleGebäude(intCounter).BauzeitRest - 1
  'Prüfen, ob das Gebäude fertig gebaut ist:
  If AlleGebäude(intCounter).BauzeitRest = 0 Then
	   AlleGebäude(intCounter).FertigGebaut = True
	   '.....vielleicht noch was anderes mit dem fertigen Gebäude tun....
  End If
End If
'----------
Next
End Sub
Dieser relativ kurze Code macht jetzt nichts weiter als die

Ich hab jetzt hier die Anzahl der Gebäude auf 1000 begrenzt....man kann die Begrenzung aber durch ein variables Array entfernen.
 
Zuletzt bearbeitet:
Zurück