Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

Lars

Frischling

  • »Lars« ist der Autor dieses Themas

Beiträge: 14

Wohnort: Hamburg

Beruf: Musiker / Fotograf

  • Private Nachricht senden

1

14.02.2012, 18:59

Projekt U-Boot-Simulator, Die Herausforderung

Hallo Community,

ich möchte mich und mein Projekt kurz vorstellen: Ich bin Lars aus Hamburg, 45 und ich arbeite an einem etwas verrücktem Projekt. Wie der Titel schon sagt, möchte ich mir einen U-Boot-Simulator bauen. Ähnlich wie sich einige 'Freaks' aus der Flightsimulatorscene ein Cockpit in die Bude gebaut haben, möchte ich so etwas ähnliches mit einer 'U-Bootzentrale' machen. Es wird nur ein wenig aufwendiger, da es dafür nicht wie in der Flightsimulator-Scene eine entsprechende Software sowie Hardware gibt. Also muss ich da selbst ran. Ich bin gelernter Fernsehtechniker und programmiere seit etwa 20 Jahren in C++ (Hobby). Vor etwa drei Monaten habe ich nun mit dem Projekt angefangen. Grob erklärt, soll später in einem Wohnwagen oder einem Raum meiner Bude diese 'U-Bootzentrale' eingebaut werden. Sie wird aus mehreren PC's (etwa 10) bestehen, auf denen dann die entsprechenden Programme laufen (Sonar/Radar/ESM-Konsolen...). Ich habe ein Video auf YouTube gestellt, was dieses Projekt erklärt und auch schon einige Ergebnisse zeigt.

Hier der Link zu dem Video: http://youtu.be/V10vgSUl9xU

Fertig gestellt habe ich bisher die meisten grafischen Ausgaben wie Sonar, Radar, ESM u.s.w. Programmiert wurden diese in C++ / SFML 2.
Glücklicherweise habe ich Zugriff auf die Datenbank von dem U-Bootspiel Dangerous Waters. Allein dies ist eine riesige Hilfe, da in dieser Datenbank alle Schiffs / U-Boot / und Lufteinheiten inkl. aller Daten enthalten sind (über 1000). Auch die ganzen Sensoren, Waffentypen e.t.c sind darin gespeichert.

Bisher hatte ich keine grossen Probleme mit der Programmierung, was sich aber seit einigen Tagen geändert hat :( ...

Zur Zeit versuche ich mich an der Einsatzkarte, die mir noch etwas Kopfzerbrechen bereitet. Danach soll es dann an die Gameloop gehen.

So, das war erst Mal viel Text zu meinem Projekt. Ich werde sicher demnächst Hilfe für dieses Projekt benötigen und würde mich freuen, wenn es hier ein paar Leute gibt die mich mit ein paar Tipps, Tricks und Denkanstössen unterstützen ;)

Gruß,
Lars

P.S. Wenn Ihr Fragen habt, immer her damit ;)

drakon

Supermoderator

Beiträge: 6 513

Wohnort: Schweiz

Beruf: Entrepreneur

  • Private Nachricht senden

2

14.02.2012, 19:37

Mal was anderes. ^^

Wie kommst du auf U-Boote? Heimliche Leidenschaft?

3

14.02.2012, 22:25

Ist auf jedenfall mal ein Projekt der anderen Art :)
Für mich wäre soetwas VIEL zu aufwendig, aber allein schon für die Idee und dann noch die Umsetztun Respekt :!:

Wäre super wenn du hier immer wieder mal Fortschritte (mit bildern :D ) posten könntest, wäre auch für mich spannend mal so ein Projekt zu verfolgen :thumbsup:
"Wer Angst hat, dass ihm seine Ideen geklaut werden, der scheint nicht viele zu haben. "

4

15.02.2012, 10:12

Ja, das ist sehr cool. Sag bescheid, wenn du damit im Fernsehn bist :)
Das Video schon beeindruckend, aber leider kenne ich mich mit der Thematik nicht so weit aus, keine Ahnung, was alle die Geräte machen. Aber der Satz am Ende ist geil!

Ich fände noch ein paar technische Details interessant. Wieso brauchst du 10 Rechner? Ansich könnten die Programme doch alle parallel auf einem Rechner laufen? Oder bekommst du mit den Anschlüssen Probleme? Wie ist das eigentlich gedacht, du erwähnst was von alten Joystickteilen, werden die dann über den Standard Joystick Anschluss angeschlossen, oder irgendwie sonst?
Und wie willst du den Sound umsetzen? Brauchst ja vermutlich schon ein paar dicke Subwoofer in deinem Wohnwagen, aber besten so, dass die ganze Kiste ein bisschen wackelt, wenn es knallt. Oder geht das meiste eh über Kopfhörer (in den Filmen gab es jedenfalls immer einen, der mit nem Kopfhörer gelauscht hat, was draußen so passiert).
Lieber dumm fragen, als dumm bleiben!

MitgliedXYZ

Alter Hase

Beiträge: 1 369

Wohnort: Bayern

  • Private Nachricht senden

5

15.02.2012, 16:27

Cooles Projekt, aber was mich mal interessieren würde: Wenn du schon von Anfang an planst mehrere Rechner für deinen Simulator zu nutzen, wie willst du diese Synchronisieren? Oder soll Radar & Co. nur nebenbei als eine Art Film im Hintergrund ablaufen?

- NACHTRÄGLICH HINZUGEFÜGT: -
Hab mir mal dein Video angeschaut und bin begeistert! Du hast dir wirklich schon viele Gedanken gemacht und auch schon viel getestet. Anscheinend bist du auch ein guter Programmierer, das mit der Verwertung alter Joysticks und das Ansprechen von den externen Displays ist schon mal eine tolle Leistung. Bin mal gespannt wie es bei deinem Projekt weitergeht und hoffe das du uns über Fortschritte in diesem Forum informieren wirst.

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »MitgliedXYZ« (15.02.2012, 16:36)


Lars

Frischling

  • »Lars« ist der Autor dieses Themas

Beiträge: 14

Wohnort: Hamburg

Beruf: Musiker / Fotograf

  • Private Nachricht senden

6

15.02.2012, 20:01

Hallo,

ich bin doch beeindruckt, dass dieses Projekt ein paar Leute interessiert ;)

Also los:
Ich weis nicht mehr genau wie ich zu dem Hobby U-Boote gekommen bin. Ich erinner mich noch, dass ich als Kind aus einer Plastikflasche ein U-Boot gebaut habe. Diese ist aber nie weider aufgetaucht :cursing: ... Dann halt viele Bücher. Von Da Vinci über den Brandtaucher, 1 WK, 2. WK, Kalter Krieg bis in die Moderne. Alles gelesen was es so gibt. Als Fotograf natürlich auch viel U-Boote besichtigt und fotografiert. (www.ubootbilder.de).

Mir ist durchaus bewusst, dass es sich um ein Riesenprojekt handelt und nur sehr schwer alleine umzusetzen ist. Allerdings werde ich überwiegend Hilfe in der Programmierung benötigen. Alles andere (Technik) ist für mich kein Problem. Mal schauen ob es in zwei Jahren wirklich fertig ist...

Zu den technischen Fragen:
Alle Programme auf einem PC ist aus folgenden Gründen nicht machbar:
Der Simulator besteht aus mehreren Konsolen, in denen die Bildschirme der technischen Geräte (Radar/Sonar...) eingebaut werden. In diese Konsolen kommen dann auch die ganzen Schalter/Taster e.t.c. für die Bedienung. Nun gibt es aber mehrere Monitore für eine Konsole, wie in den unteren Beispielbildern zu erkennen ist. Hier mal eine (unvollständige) Auflistung: (Ich verzichte auf U-Boot-Technische-Detailangaben) ,)

Breitbandsonar: Zwei Bildschirme
Schmalbandsonar: Zwei Bildschirme
Active-Sonar: Zwei Bildschirme
Radar, ESM, Active Intercept, DEMON: jeweils ein Bildschirm
Waffenleitung (Torpedos, Raketen...): Ein Bildschirm
Maschienenraum: Zwei Bildschirme


(Link)

Diese Konsolen werden ziemlich genau nachgebaut. Unten kommen die PC's rein.

Wir sprechen hier also bisher von 14! Monitoren. Übrigens werde ich wegen dem 'feeling' Röhrenmonitore verwenden ;-)
Ausser vielleicht im Maschienenraum.

Nun zu den Joysticks:
Es gibt diverse (kostspielige) Lösungen um externe Schalter oder Taster mit dem PC abzufragen. Dafür gibt es Interfacekarten, USB-Lösungen u.s.w. Diese kosten aber richtig Geld. Alleine meine Waffenleitkonsole benötigt wohl so locker 30 Taster und Schalter... Insgesamt werden im Simulator so ca. 300 Taster/Schalter/Drehregler verbaut. Irgendwann hatte ich die Idee, dass mit alten Joysticks zu machen. Ein PC kann über USB 127 Joysticks ansteuern (glaube ich jedenfalls gelesen zu haben). Also auf allen Flohmärkten vorzugsweise 12-Taster Gemapads aufgekauft. Platine ausgebaut und einfach an den Kontakten, wo eigentlich die Joysticktaster angeschlossen sind meine Schalter und Taster angeschlossen. Funktioniert tadelos. Wie Ihr wisst ist es ein leichtes, Joystickzustände aus einem Programm aus abzufragen.... DirectX, SFML haben das alle an Bord...

Zum Sound:
Auf jeden Fall natürlich 5.1! Wenn hinten links die Bombem eines RBU-6000 Werfers ins Wasser fallen und (hoffentlich) weit hinter mir explodieren, dann soll dies auch hinten links zu hören sein. Ich bin mir noch nicht sicher wie genau ich das mache, aber zwei Lösungsansätze habe ich schon:

1. Ein PC übernimmt die komplette Soundsteuerung, die für alle zu hören ist, wie z.B. Pings, Explosionen, Schiffe, Umgebungsgeraüsche, Wale u.s.w. Die Gameloop oder auch die anderen Stationen die 'öffentlichen' Sound erzeugen schicken über Netzwerk z.B. den Befehl: 'SOUND1267' und der Sound-PC spielt den dan mit ab...
2. Über ein simples Mischpult werden alle entsprechenden Soundausgänge auf die 5.1.-Soundanlage gemixt.

Das 'lauschen' am Sonar wird grundsätzlich über Kopfhörer gemacht, aber auch ein zuschalten auf den Lautsprecher der Zentrale ist möglich.

Synchronierung der PC's
Ja das wird noch interessant. Bisher ist mein Plan folgender:
Auf einem Rechner (wird wohl der Maschinenraum) läuft die Gameloop. Klar, die berechnet alles was zum Simulator gehört:
Alle Einheiten (Schiffe, U-Boote, Flugzeuge, Helis...)
Schadensystem des eigenen Bootes. Reaktorprobleme, Luftdruck fällt aus, die Kaffeemaschiene des alten geht kaputt u.s.w.
Wetter und alles andere...

Die einzelnen Konsolen wie Sonar/Radar u.s.w. müssen gar nicht im eigentlichen Sinne synchron laufen, sondern die holen sich einfach je nach Bedarf die Daten über das Netzwerk ab (ein mal pro Sekunde reicht locker). Dazu wird jeder PC über TCP mit dem Gamelooprechner verbunden. So was habe ich zwar schon etliche mal programmiert, aber nie für Spiele. Aber letztendlich übertrage ich einfach festgelegte Strukturen mit den Daten... so weit mein Plan dazu. Aber vielleicht hat ja einer der Profis unter Euch einen Tipp, wie es am besten gemacht wird...

Die Gameloop ist auch das, wo vor ich am meisten Respekt habe. Mal schauen, jetzt erst noch meine Einsatzkarte und dann gehts an die Gameloop.

Sonstiges was mir gerade so einfällt:
Ich habe NICHT den Anspruch, eine 100%-Simulation zu schreiben. Das schafft man alleine wohl auch nicht. Es war bei Simulationen auch schon immer so eine Sache, den Mittelweg zwischen Spaß/Spielbarkeit und Realismus zu finden. Da ich es gar nicht erst wage, eine KI entwickeln zu wollen, werde ich dieses durch Scripts ersetzen. Also einfach in der Art: Einheit A entdeckt Einheit B, also soll Einheit A 'dies und das' machen. Aber spätestens da werde ich mich wohl mal an Euch wenden :D Weil ich keine Ahnung habe wie man so etwas programmiert... oder nur so eine Ahnung...

Da der Simulator etliche technische Teile benötigt, habe ich schon vor Monaten begonnen, alle meine verwandten, Freunde und bekannte zu 'nerven', darunter viele Techniker. Nun habe ich den Dachboden voll mit Schaltkästen, Monitoren, Rohren, Anzeigegeräte, Meßgeräte,
Oszilloskope und diverse andere Bauteile. Bis jetzt hat mich der Spaß nur Zeit gekostet. Hier mal exemplarisch ein paar Geräte, die in irgendeiner Weise von mir verbaut werden (stehen zufällig gerade noch hier in der Bude):


(Link)

Schaltkasten. Man beachte die 'geilen' Drehtaster um Zahlenwerte einzustellen. Super geeignet für Torpedokurs, Lauftiefe e.t.c. ;)
Ein guter Kumpel von mir arbeitet in einer Firma die solche Elektroanlagen wartet :love:


(Link)

Messgerät, Osszi. Aus dem Messgerät werden wohl die Drehschalter ausgebaut und für das Sonar verwendet (Frequenzumschaltung).
Das Gehäuse wird dann für andere Zwecke benutzt.


(Link)

Das Links ist was ganz tolles. Ein Datenschreiber mit oben liegender Displayanzeige. Damit könnte man z.B. Tiefenangaben der Konvergenzzone oder andere Dingen während der Fahrt mit plotten.

Apropro plotten. Funksprüche werden natürlich ausschließlich auf einem ratternden Nadeldrucker ausgegeben.

Übrigens habe ich natürlich auch ein Seerohr geplant. Hierfür wäre es der HAMMER, wenn einer von Euch mir bei der 3D-Prgrammierung
helfen könnte. Ich habe mir schon mal OGRE, Irrlicht und OSG (OpenSceneGraph) angeschaut. OGRE habe ich noch am ehesten kapiert, auch weil dafür viele Tuts zu haben sind. Aber das ist für mich als 'nicht-spiele-programmierer' schon so die 'Meisterklasse'...
Die 3D-Modelle sind übrigens keine Problem. Die sind in dem Spiel Dangerous Waters vorhanden und sollten benutzt werden können.
Und nein, es ist keine Brücke geplant - obwohl mit ein paar Beamern und Leinwänden....TRÄUM....

Ich könnte noch eine glatte Stunde weitertippern, aber ich glaube das reicht erst Mal als Abendlektüre :rolleyes:

Nun muss ich morgen erst mal Jobtechnisch nach Österreich. Aber nächste Woche kann ich die ganze Woche weiterarbeiten...

Danke für Euer Interesse,
Lars

7

15.02.2012, 20:58

Die Fragen zur Programmierung sollten kein Problem sein, hier sind einige kompetente Leute unterwegs. Mit deinen 20 Jahren Erfahrung wirst du auch in der Lage sein, Fragen präzise zu stellen und mit den Antworten gut arbeiten zu können (etwas, das gerade Anfängern schwer fällt und Zeit braucht, bis man es kann).

Der Netzwerkteil sollte ansich nciht so schwer sein. Wenn der Hauptrechner die Simulation verwaltet und die einzelnen Geräte die Daten nur auf utnerschiedliche Art ausgeben (was wohl die einzig sinnvolle Architektur ist), brauchst du ja bloß in regelmäßigen Abständen einen Broadcast mit den aktuellen Daten übers Netzwerk zu schicken. Oder halt jedem Anzeigegerät genau das, was es braucht. Dann muss die Spiellogik aber schon wissen, welche Geräte verbunden sind, was irgendwie die Abhängigkeiten erhöht, aber bevor man sich überlegt, wie etwas verschickt wird, sollte man wohl erst genau planen, was überhaupt verschickt werden muss. Wenn das mit dem Broadcast klappt, könnte ich mir das aber durchaus als elegante Lösung vorstellen.
Ansonsten ist zwar Netzwerkprogrammierung generell ein fortgeschrittenes Thema, aber es sollte in diesem Fall ja nicht sehr schwer sein. Vor allen Dingen, weil du mit etwas Glück nur in eine Richtung kommunizieren musst und du dank schnellem LAN auch nicht wirklcih Ressourcen sparen musst.

Achja: Sound würde ich genau so angehen: Die Spiellogik berechnet die Simulation und kennt damit alle Umgebungssounds. Also braucht ansich auch nur die an das Surroundsystem angeschlossen werden. Die verschiedenen Anzeigegeräte können ja trotzdem eigene Lautsprecherchen haben, aus denen es dann piepst, oder rauscht. Somit hast die eine schönere Trennung, daraus resultierend weniger Arbeit mit Netzwerk und Verwaltungskram und das Piepsen der Geräte kommt auch aus selbigen, ist also räumlich viel genauer, als es über ein Surroundsystem möglich wäre. Und auf die paar Lautsprecher kommt es bei deiner Hardwaremenge eh nicht mehr an :)

Zum Thema Grafik: Ogre ist ja meiner Meinung nach am besten, obwohl ich mit keiner Engine viel gemacht habe. Zumindest gibt es einige ganz ordentliche kommerzielle Spiele, die Ogre verwenden (was mir von Irrlicht nicht bekannt wäre) und Open Scene Graph - nun, ich kenne einige, die es schonmal benutzt haben, und alle hassen es eigentlich. Dabei sind einige Ideen da eigentlich sehr schön, nur die Dokumentation ist irgendwie mies. Und es ist irgendwie ein 1-Mann Projekt, in Ogre ist die Community glaube ich lebendiger.
Da gibt es z.B. das hier, für Wasser:
http://www.ogre3d.org/addonforums/viewtopic.php?t=8391
Dann noch ein paar Modelle für die Schiffe rendern, paar Partikel für Explosionen und Wasserspritzer, und man ist ansich fertig. Naja, für Küstenregionen muss man sich dann noch was überlegen.

Das man Taster einfach so an Gamepads anschließen kann, wusste ich nicht. Ich hab mich auch nie wirklcih mit Hardwarebasteleien beschäftigt, aber das ist definitiv ein sau cooles Thema. Wenn du weiter gehen möchtest, wäre evtl. dieser Thread noch interessant, wobei du bei deinem Hitnergrund vermutlich das meiste schon kennst :D
http://zfx.info/viewtopic.php?f=9&t=2131…&hilit=hardware

Insgesamt ein sehr cooles Projekt. Eben kein MMORPG von 16 jährigen Träumern. Und mal etwas komplett neues. Wenn der Simulator fertig ist, würde ich gerne mal vorbei kommen :)
Lieber dumm fragen, als dumm bleiben!

MitgliedXYZ

Alter Hase

Beiträge: 1 369

Wohnort: Bayern

  • Private Nachricht senden

8

16.02.2012, 14:31

Ich hätte dann auch noch eine Idee zum Sound:
Wenn du ihn nicht von deinem Gameloop-Rechner ausgeben wilst, könntest du doch auch einfach jedem PC, der Ton ausgeben soll, per 3,5mm-Klinkenstecker an ein Mischpult (gebraucht gibts bei Ebay auch recht günstige) anschließen und an das Mischpult dann deine 5.1 Soundanlage. So musst du dich nicht mehr um die Geräusch-Synchronisierung kümmern.

Ach ja: Wiso benutzt du nicht für die 3d-Umgebung die Unity3d Engine? Die kann man sich doch auch in der Starter-Version gratis herunterladen und der große Vorteil von dieser ist, dass sie recht leicht zu benutzen ist und sehr viele Modelltypen (.fbx, ...) unterstützt.

9

16.02.2012, 15:21

Ach ja: Wiso benutzt du nicht für die 3d-Umgebung die Unity3d Engine? Die kann man sich doch auch in der Starter-Version gratis herunterladen und der große Vorteil von dieser ist, dass sie recht leicht zu benutzen ist und sehr viele Modelltypen (.fbx, ...) unterstützt.

Ja, aber es ist eine Game-Engine und keine Grafikengine, oder? Ich denke nicht, dass er den gesamten Simulationsteil in UnitySkripten programmieren möchte, nur um dann die 3D Szene vom Periskop rendern zu können.
Lieber dumm fragen, als dumm bleiben!

MitgliedXYZ

Alter Hase

Beiträge: 1 369

Wohnort: Bayern

  • Private Nachricht senden

10

16.02.2012, 15:37

@
Jonathan_Klein

Stimmt, daran habe ich nicht gedacht.

Falls du noch U-Boot-Modelle für deine Simulation suchst (ich weiß das du die von deinem alten Spiel benutzen willst, aber falls diese nur im falschen Format verfügbar sind, etc.), auf dem Google Sketchup-Portal http://sketchup.google.com/3dwarehouse/ gibt es viele Modelle von anderen Nutzern, auch einige detailierte Uboote, welche man herunterladen und per Plugin in verschiedene Formate (z.B. .obj) umwandeln kann.

Werbeanzeige