EulerHobeln: Unterschied zwischen den Versionen

Aus II-Wiki
Zur Navigation springen Zur Suche springen
(NET Infos geändert)
K
Zeile 59: Zeile 59:
  
 
=== .NET-Umsetzung ===
 
=== .NET-Umsetzung ===
Eine Umsetzung als Client und Server auf dem .NET Framework gibt es nun. Beide sind noch konsolenbasiert. Im nächsten Schritt werden beide erst mal eine GUI bekommen.
+
Mit der Umsetzung als Client und Server auf dem .NET Framework ist begonnen worden. Beide sind noch konsolenbasiert. Im nächsten Schritt werden beide erst mal eine GUI bekommen.
  
Weitere Informationen zur Architektur gibts [[EulerHobeln:NET-Architektur|hier]].
+
Hierbei handelt es sich erstmal nur um die [[EulerHobeln:Protokoll|Protokoll]]-Implementierungen.
 +
 
 +
Sebbl macht dazu selber eine [[EulerHobeln:NET-Architektur|Dokumentation]] über seine Konzepte und Fortschritte.
  
 
=== Java-Client ===
 
=== Java-Client ===

Version vom 16. Januar 2006, 18:24 Uhr

EulerHobeln

Oder auch Vektor-Rennen. Ein beliebtes Papierspiel für zwischendurch.

Und wir wären nicht Informatiker, wenn wir nicht probieren würden, es selber zu schreiben.

Eine Anleitung für die wenigen, die dieses Spiel nicht kennen, gibt es hier

Konzept

  • Multi-Platform
  • mehrere Sprachen: C++ [evtl. Jan], Delphi [Markus], .NET (u.ä.) [Sebbl], Java [Peter], evtl. MIDP (Mobile Information Device Profile) für Java-fähige Handys
  • SDL unter C++ als Grafikbibliothek (ein einfaches Canvas reicht eigentlich)
  • Netzwerkfähig, große Nutzeranzahl (Rooms, Chat, ...)
  • viele Maps (Auswahl...)
  • große Maps (größer als dargestellt, scrollen)
  • Highscore im Internet/Intranet/aufm Server
  • SinglePlayer und Multiplayer (SinglePlayer heißt, Handy/Tastatur/Maus rumgeben zum nächsten Spieler..., kein Netzwerk)

Zusatz:

  • Animation, Qualm, Autos, Boxen, Reifenschaden, Slicks und Regenreifen, Motorsetup, Zeitlupen ;)
  • Computergegner mit vorberechneten Routen
  • Ganzes Spiel speichern als Demo zum wiederabspielen
  • Cheats ;)

Mitarbeiter

(selber eintragen)

  • Peter
  • Zoddltier (würde gern mitmachen, wenn der Hauptstädter nicht gleich in 2 Tagen alles fertig proggt und Zoddl nichts dabei lernen kann)
  • Imag (Ziel: .NET-Client und Server PC, Mobile, Handy und Smartphone auf Compact Framework)

Konkrete Ideen

Strecken

Die Strecken werden in sogenannten Maps gespeichert. Dazu entwerfen wir ein neues Dateiformat. Es besteht aus einer Zip-Datei mit folgendem Inhalt:

  • einer XML-Datei zur Beschreibung der Strecke (Name, Spieleranzahl, Rundenlänge, Credits, ...)
  • die Strecke als Bild, voraussichtlich PNG, weil die Kompression verlustfrei ist
  • die Metainformationen zur Strecke ebenfalls als Bild, selbe Größe, wobei die Pixelfarben die verschieden Streckenfunktionen repräsentieren
  • optional: Ein Thumbnail der Strecke zur Verwendung außerhalb des eigentlichen Spiels
  • optional: Eine XML mit berechneten Waypoint-Daten für eventuelle KIs
  • optional: Eine XML mit einer Farbtabelle für das Funktions-PNG, wenn abweichend von der Standardimplementierung
  • optional: weitere Addons (Sounds, Animationen, Texte,.....)

Offene Fragen

Wie stellen wir Brücken, Sprünge über Strecken usw. dar? Da sind dann 2 Metainfos pro Pixel... (Diskussionsbedarf!!!)

KI

Das ist was für Herrn Filzhuth. Ich dachte da so an Tiefensuche oder sowas.

Der Algorithmus muss nicht ins Spiel integriert werden, weil man zu jeder Map Waypoints speichern könnte. Ideen?

Umsetzung als MIDlet

MIDlets sind Java-Applikationen für Mobile Devices. Dafür gibts es sogar 3D-Implementierungen.

Aber es ist nicht wirklich vergleichbar, deswegen schieb ich das mal auf die lange Bank.

.NET-Umsetzung

Mit der Umsetzung als Client und Server auf dem .NET Framework ist begonnen worden. Beide sind noch konsolenbasiert. Im nächsten Schritt werden beide erst mal eine GUI bekommen.

Hierbei handelt es sich erstmal nur um die Protokoll-Implementierungen.

Sebbl macht dazu selber eine Dokumentation über seine Konzepte und Fortschritte.

Java-Client

Es gibt schon einen. Mit dem will ich das Netzwerk-Protokoll entwerfen.

Mit der neusten SWT (Grafik-lib von Java) kann man sogar OpenGL einbinden, was ich aber nicht vorhabe.

Warum sollte es einen Java-Client geben, wenn die SDL auch auf allen Platformen läuft?

Mhm, gute Frage. Ich hab Lust das in Java zu schreiben. Im Endeffekt ist mir nur das Applet eingefallen, also als Webapplikation. K.A.

Außerdem interessiert mich der Vergleich bei beiden Systeme in Hinsicht auf die Implementierung. Also als Feldstudie.

Was der Existierende kann, steht hier.

Netzwerk Layout

Wenn die Zeit da ist, würde das wie bei der HalfLife-Engine (oder verleichbaren) machen. Jeder Client kann dann als Listenserver arbeiten, im P2P-Mode. Oder über einen dezidierten Server (dedicated server).

Protokoll erster Wahl ist TCP. Wir haben (überhaupt) keinen hohen Echtzeitanspruch, so dass UDP nicht notwendig ist. (Das freut die FEM-Leute)

Ein nettes Detail wäre, das man vom Server nicht vorhandene Maps nachladen kann. Die Version sollte per Checksumme verifiziert werden. (Server schickt Chksum, Client hasht selber und vergleicht...)

Hier muss ich nochmal was zu sagen:

Der Client soll SinglePlayerfähig sein. Also alle Kontrollstrukturen beinhalten. Der Server soll nur die Infos verarbeiten, kontrollieren und weitergeben. Aber er ist nur Kontrollinstanz, nicht entscheidende Instanz. D.h. der Client berechnet selber wo er hin muss.

Man könnte für Handys diese Berechnung dem Server überlassen, aber nur, wenn die Handys keinen Singleplayer-Mode haben. Weil im SinglePlayer brauch man das wieder.

Diskussion

Sollte es z.B. wie bei Yahoo-Games einen Raum mit Spiel-Tischen und einem Mainchat geben ODER wie bei vielen MP-Games bestimmt der Server die Map?

Erstmal nicht, also nur Server mit laufender Map -- Omega 18:28, 6. Jan 2006 (CET)

Spiel Layout

Das klassische Spiel soll implmentiert werden. Es können aber noch weitere Spiel-Modes erfunden werden. Hier sind kreative Ideen gefragt.

Demo Feature

Das wird auch erst ab Version 2 machbar sein. Wär aber interessant ein Konzept zu entwerfen, wie man sowas speichert.

Intro

Querdenker Entertaiment? Ideen?