cs108 Programmieren II

BOOTCAMP
       Eyeballs
Einführung
Spielidee: Jump'n'Run mit „Capture the Flag“-Elementen, 2 Teams




                                     c




                     Programmieren II (cs108) - Bootcamp          2
Programmieren II (cs108) - Bootcamp   3
Programmieren II (cs108) - Bootcamp   4
Einführung

                            Aufteilung in:




zeitunkritische (und singuläre) Daten           zeitkritische (redundante) Daten

➢
    Logindaten                                  ➢
                                                    Eingabedaten
➢
    Menüinformationen                           ➢
                                                    Spieldaten
➢
    Manche spielflussrelevante Daten                   ➢
                                                         Spielerposition/Status
      ➢
        z.B. Flaggeninformationen,                     ➢
                                                         Punktestand
      ➢
        Power-Ups




                         Programmieren II (cs108) - Bootcamp                       5
Netzwerkkommunikation TCP

             MENÜ



    Client                         Asynchrone
                                  Kommunikation
➢Sendet im Menü gemachte
 Eingaben
➢Ändert den Menüzustand nach
                                                                Server
 Serverantwort
➢Sendet Nachrichten
                                              ➢Verarbeitet die empfangenen
                                               Informationen, veranlasst
                                               Zustandswechsel auf Client
                                              ➢Verwaltet die Spiele/Spieler

                                              ➢Leitet Nachrichten weiter



                     Programmieren II (cs108) - Bootcamp                      6
Netzwerkkommunikation UDP




    Client                           Asynchrone
                                    Kommunikation
➢Sendet sämtliche Eingaben
➢Zeigt die empfangenen Spiel-

        daten an                                                  Server
                                                ➢Verarbeitet die Eingabedaten
                                                ➢Aktualisiert den Spielstatus

                                                ➢Kontrolliert die Regeln

                                                ➢Sendet die Spieldaten




                       Programmieren II (cs108) - Bootcamp                      7
Umsetzung der Netzwerkkommunikation
                TCP
NetPackage                                                          Daten
Typ - Parserinformation
 xxNetObject

      Daten                                                        Handler/
                                                                    Parser


Serialisierung                   Netzwerk
                                 Netzwerk                       Deserialisierung
                               (LAN/WAN)
                                (LAN/WAN)

     Socket                                                         Socket



                          Programmieren II (cs108) - Bootcamp                      8
Umsetzung der Netzwerkkommunikation
                UDP
 DatagramPacket
 Adresse - IP-Information                                            Daten
  byte[]
  Typ - Parserinformation

    Daten
    byte[] toByte()
                                                                    Handler/
                                                                     Parser

                                      Netzwerk
                                      Netzwerk
                                    (LAN/WAN)
                                     (LAN/WAN)


DatagramSocket                                                    DatagramSocket


                            Programmieren II (cs108) - Bootcamp                9
Zum Thema textbasiertes Protokoll
*************************************************************************************************
printing variables of an instance of lib.gameObjects.PlayerObject at (PlayerObject.java:445)
*************************************************************************************************
* map = lib.gameLogic.Map@814013
* typeIDCounter = 2
* typeID = 1
* idCounter = 1
* id = 3
* playerName = test
* deathCounter = 0
* team = 1
* vX = 1.2
* vY = 10.0
* flag = 0
* lastFlag = 0
                                                 Variable Typ ist in
* timeToWait = 0
* maxHealth = 100                                lesbarem Format,
* health = 100
* powerUp = 0
* speed = 300.0
                                                 übermittelte Daten
* jumpingPower = 15.0
* inAir = true                                   können detailliert
                                                 ausgegeben werden
* status = STANDING
* lastStatus = null
* KEY_RIGHT = true
* KEY_LEFT = false
* KEY_UP = true
* KEY_ACTION = true
* weaponRange = 600
* weaponSpeed = 600T




                                        Programmieren II (cs108) - Bootcamp                         10

CS108 Bootcamp Eyeballs

  • 1.
  • 2.
    Einführung Spielidee: Jump'n'Run mit„Capture the Flag“-Elementen, 2 Teams c Programmieren II (cs108) - Bootcamp 2
  • 3.
  • 4.
  • 5.
    Einführung Aufteilung in: zeitunkritische (und singuläre) Daten zeitkritische (redundante) Daten ➢ Logindaten ➢ Eingabedaten ➢ Menüinformationen ➢ Spieldaten ➢ Manche spielflussrelevante Daten ➢ Spielerposition/Status ➢ z.B. Flaggeninformationen, ➢ Punktestand ➢ Power-Ups Programmieren II (cs108) - Bootcamp 5
  • 6.
    Netzwerkkommunikation TCP MENÜ Client Asynchrone Kommunikation ➢Sendet im Menü gemachte Eingaben ➢Ändert den Menüzustand nach Server Serverantwort ➢Sendet Nachrichten ➢Verarbeitet die empfangenen Informationen, veranlasst Zustandswechsel auf Client ➢Verwaltet die Spiele/Spieler ➢Leitet Nachrichten weiter Programmieren II (cs108) - Bootcamp 6
  • 7.
    Netzwerkkommunikation UDP Client Asynchrone Kommunikation ➢Sendet sämtliche Eingaben ➢Zeigt die empfangenen Spiel- daten an Server ➢Verarbeitet die Eingabedaten ➢Aktualisiert den Spielstatus ➢Kontrolliert die Regeln ➢Sendet die Spieldaten Programmieren II (cs108) - Bootcamp 7
  • 8.
    Umsetzung der Netzwerkkommunikation TCP NetPackage Daten Typ - Parserinformation xxNetObject Daten Handler/ Parser Serialisierung Netzwerk Netzwerk Deserialisierung (LAN/WAN) (LAN/WAN) Socket Socket Programmieren II (cs108) - Bootcamp 8
  • 9.
    Umsetzung der Netzwerkkommunikation UDP DatagramPacket Adresse - IP-Information Daten byte[] Typ - Parserinformation Daten byte[] toByte() Handler/ Parser Netzwerk Netzwerk (LAN/WAN) (LAN/WAN) DatagramSocket DatagramSocket Programmieren II (cs108) - Bootcamp 9
  • 10.
    Zum Thema textbasiertesProtokoll ************************************************************************************************* printing variables of an instance of lib.gameObjects.PlayerObject at (PlayerObject.java:445) ************************************************************************************************* * map = lib.gameLogic.Map@814013 * typeIDCounter = 2 * typeID = 1 * idCounter = 1 * id = 3 * playerName = test * deathCounter = 0 * team = 1 * vX = 1.2 * vY = 10.0 * flag = 0 * lastFlag = 0 Variable Typ ist in * timeToWait = 0 * maxHealth = 100 lesbarem Format, * health = 100 * powerUp = 0 * speed = 300.0 übermittelte Daten * jumpingPower = 15.0 * inAir = true können detailliert ausgegeben werden * status = STANDING * lastStatus = null * KEY_RIGHT = true * KEY_LEFT = false * KEY_UP = true * KEY_ACTION = true * weaponRange = 600 * weaponSpeed = 600T Programmieren II (cs108) - Bootcamp 10