Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
Welche Entwicklungsumgebung für einen Flugsimulator?
stefanpc81
myCSharp.de - Member



Dabei seit:
Beiträge: 24

Themenstarter:

Welche Entwicklungsumgebung für einen Flugsimulator?

beantworten | zitieren | melden

Hallo,

ich habe jahrelang jeweils eine HTM-Seite mit Javascript programmiert und konnte recht gut einen Flugsimulator aufbauen. Das Problem besteht nun darin, dass der Browser (IE 11 als auch Google Chrome) schnell in die Knie gezwungen wird (viele Berechnungen im Intervall 0.1 sec).
Nun stellt sich mir die Frage, ob ich mit C# besser davon käme. Was ich bräuchte, kommt gleich in einer kurzen Liste, ansonsten weiß ich nicht, ob ich das alles entweder mit der
"Entwicklung für die universelle Windows-Plattform" oder ".NET-Desktopentwicklung" (Windows Forms) besser programmieren kann?
1. wie in JS ein Intervall in min. 0.5 Sekunden-Schritten zur Berechnung in einer größeren Methode (Flugzeugposition und -lage, Treibstoffverbrauch, Geschwindigkeit etc.)
2. Arrays o.ä. die z.B. so aussehen:
Arrays für Flughafen-Code, Runway-Name, geografische Koordinate, Länge der Runway
Anhand der Array-Nummer werden z.B. die geografischen Koordinaten in eine andere einfache Variable eingetragen
3. Bevor der eigentliche Flugsimulator gestartet wird, sollen bestimmte Variablen aus einer Datei ausgelesen werden.
4. Grafische Darstellung von Bildern, Text und Linien auf veränderlichen x/y-Koordinaten auf einem Monitor im Cockpit; Stichwort GDI
5. Bilder an festen Positionen, die durch andere Bilder ersetzt werden können, also Taster, Hebel, Schalter (bei JS: mit ID, Name ansprechbar)
6. möglichst mit Tastatur- und Joystick-Eingaben (letzteres nur die x/y-Achse ohne Knöpfe).
7. Fast vergessen: Layer, also Ebenen, sind auch sehr wichtig.

Ich brauche kein 3D und auch keine Szenerie, die aus dem Cockpitfenster zu sehen sind.
Was meint ihr, mit welcher Umgebung geht das alles zusammen am besten?

Vielen Dank für wertvolle Hinweise!
Grüße
Stefan
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von stefanpc81 am .

Moderationshinweis von Abt (30.03.2018 - 13:22)

Es gibt absolut keine Notwendigkeit den gesamten Text fett zu schreiben.

private Nachricht | Beiträge des Benutzers
emuuu
myCSharp.de - Member

Avatar #avatar-4078.jpg


Dabei seit:
Beiträge: 285

beantworten | zitieren | melden

Du kannst dir mal die Unity-Engine anschauen, die hat bereits eine Einbindung in Visual-Studio. Diese wäre sogar dazu geeignet, dass von dir nicht gewünschte, 3D-Feature zu liefern.

Aber dennoch könntest du damit eine ansprechende Grafik mit haptischen Steuerelementen bauen.

Ansonsten schau dir mal das hier im Forum an Space Opera (C#, XNA)

Beste Grüße
emuuu
2+2=5 (für extrem große Werte von 2)
private Nachricht | Beiträge des Benutzers
Bradley
myCSharp.de - Member



Dabei seit:
Beiträge: 153

beantworten | zitieren | melden

Finde ich ja nett das mein ProjektThread als Beispiel heran gezogen wird.
Korrekterweise muss man sagen das ich aktuelle MonoGame verwende, da XNA leider seits Microsoft tot ist.

Also im Prinzip kann MononGame alles was du forderst. Vieles musst du dir erstmal einfach bauen.
MonoGame selbst versucht immer bei 60 FPS zu bleiben.
Wenn ich das richtig im Kopf habe läst sich das aber im entsprechenden Konstruktur einstellen.
private Nachricht | Beiträge des Benutzers
MrSparkle
myCSharp.de - Team

Avatar #avatar-2159.gif


Dabei seit:
Beiträge: 5.655
Herkunft: Leipzig

beantworten | zitieren | melden

Hi stefanpc81,

wenn du dich sowieso in eine neue Technologie einarbeiten mußt, dann kannst du dich auch gleich in WPF einarbeiten. Hier hast du den Vorteil, daß du mit DataBinding arbeiten kannst. Wie das funktioniert, ist in [Artikel] MVVM und DataBinding beschrieben, und das funktioniert auch für grafische Darstellungen. Du könntest also deine Kartenansicht durch eine Canvas realisieren, auf der dann die einzelnen Text- und Grafik-Elemente positioniert werden. Durch das DataBinding wird die Ansicht dann automatisch aktualisiert, sobald sich die Daten ändern.

Wenn es dir allerdings um die Performance-Probleme bei deiner JavaScript-Implementierung geht, dann könntest du auch dort ansetzen, ohne noch einmal mit einer neuen Technologie von vorne anzufangen. Die genannten Anforderungen sollten auch im Browser ohne Performance-Probleme möglich sein. Da gibt es sicherlich einiges zu optimieren, und du würdest bei dem Prozess eine Menge lernen.
Weeks of programming can save you hours of planning
private Nachricht | Beiträge des Benutzers