Laden...

In Mono: zwei Programme in einer Solution: Kann man zusammen und getrennte Builds machen?

Erstellt von burli70 vor 6 Jahren Letzter Beitrag vor 6 Jahren 1.421 Views
B
burli70 Themenstarter:in
57 Beiträge seit 2016
vor 6 Jahren
In Mono: zwei Programme in einer Solution: Kann man zusammen und getrennte Builds machen?

Ich möchte ein Spiel programmieren, das aus einem Server und einem Client besteht. Ich möchte wissen ob es möglich ist, in Mono(develop) ein Projekt anzulegen, in dem beide Teile vereint sind und entweder beide zusammen in eine Ausführbare Datei compiliert werden oder der Server einzeln.

Wird der Server einzeln compiliert verhält er sich wie eine Konsolenanwendung und startet direkt, werden beide zusammen compiliert startet zunächst ein Prozess für ein Hauptmenü und von da aus werden dann bei Bedarf Client und Server als unabhängige Prozesse gestartet.

Ich möchte erst mal nur wissen OB das geht. Das WIE kommt später

T
2.224 Beiträge seit 2008
vor 6 Jahren

Ich würde bei einer Client/Server Architektur den Code strikt trennen.
Alleine die Wartung, Erweiterung und Anpassung der beiden Komponenten ist dann wesentlich übersichtlicher und einfacher.
Mach am besten eine Server Konsolen Anwendung und eine Client App.

Je nachdem worauf dein Spiel aufbaut, also fertige Libs, kann der Aufwand ggf. gering sein ggf. sogar relativ entfallen.
Wenn du aber das Ganze von Grund auf entwickeln willst, mach eine saubere Trennung von Client und Server.

T-Virus

Developer, Developer, Developer, Developer....

99 little bugs in the code, 99 little bugs. Take one down, patch it around, 117 little bugs in the code.

B
burli70 Themenstarter:in
57 Beiträge seit 2016
vor 6 Jahren

Code wird schon vollständig getrennt. Ich greife also vom Client nicht auf den Code vom Server zu oder umgekehrt

Es soll nur möglich sein, beides in ein ausführbares Programm zu compilieren um zB bei einem Single Player Spiel nicht zwei Programme starten zu müssen.

Andererseits kann das auch der Client machen. Der kann ja bei Bedarf den Server auch als externes Programm starten

T
2.224 Beiträge seit 2008
vor 6 Jahren

Wenn es nur darum geht eine Singleplayer Spiel lokal zu starten, dann kannst du ggf. den Server im Client als eigenen Thread starten.
Im Idealfall hast du dann eine Server Instanz die eben im zweiten Thread die Daten direkt, ohne TCP/UDP Verbindung, entgegen nimmt.
Dann sparst du dir den Umweg.

Alternativ kannst du aber auch beim Starten des Clients im Singleplayer direkt eine lokale Server Instanz starten.
Dann musst du diese im Client beim beenden aber auch sauber runterfahren.

T-Virus

Developer, Developer, Developer, Developer....

99 little bugs in the code, 99 little bugs. Take one down, patch it around, 117 little bugs in the code.

B
burli70 Themenstarter:in
57 Beiträge seit 2016
vor 6 Jahren

Ich hatte ja im ersten Thread schon geschrieben, dass Client und Server als unabhängige Prozesse laufen sollen.

Gibt es so was wie bedingte Compilierung? Also wenn beim Compilieren bestimmte Flags gesetzt werden wird nur ein Teil compiliert oder ein anderer Teil dazu genommen?

T
2.224 Beiträge seit 2008
vor 6 Jahren

Klar gibt es sowas.
Nennt sich Präprozessor Anweisungen.
Damit kann man die bedingte Kompilierung umsetzen.

Dann kannst du deinen Server und Client Code mit entsprechenden Abfragen kompilieren lassen.
Ich würde aber, da beides ja in der gleichen Anwendung laufen soll, eher über Programm Parameter den Server starten.
Z.b. mit "/server" o.ä. um eben die Server Komponente zu starten.
Dann kannst du in einem Code mit einer einfachen Prüfung den Server starten oder eben den Client laufen lassen.

T-Virus

Developer, Developer, Developer, Developer....

99 little bugs in the code, 99 little bugs. Take one down, patch it around, 117 little bugs in the code.