EulerHobeln
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
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)
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.
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...)
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?
Spiel Layout
Das klassische Spiel soll implemntiert 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?