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

1

28.09.2014, 17:10

Empfehlung Sprache und Bibliothek für konkretes Projekt (kein blutiger Anfänger)

Ein herzliches Hallo an alle Interessierten da draußen. Es geht mal wieder um das leidige (und schon 100e Male gestellte Thema der Überschrift).
Um einiges direkt vorweg zu nehmen: Ja, ich habe das Wiki dazu gelesen und auch die Suchfunktion genutzt. Es soll hier auch keine allgemeine Empfehlung gegeben werden. Vielmehr hätte ich gerne verschiedene Meinungen zu meinem konkreten Ziel und dem entsprechenden Hintergrund. Daher hoffe ich, dass meine Anfrage gerechtfertigt ist und nicht mit einem "SuFu benutzen" abgewürgt wird.

Worum geht es also?
Ziel ist ein Netzwerkfähiges Kartenspiel, genauer nur Netzwerk, kein Singleplayer. Um es weiter zu präzisieren, möchte ich mich darin versuchen, dass Sammelkartenspiel Magic The Gathering umzusetzen. Wem das nicht allzuviel sagt, das Prinzip ist ganz ähnlich zu HearthStone, welches zur Zeit evtl mehreren bekannt sein dürfte.
Wie gesagt, es soll nur Netzwerk geben, alles in 2D. Es gibt schon ähnliche Sachen, Apprentice heißt z.B. eine bereits vorhandene Umsetzung. Alles in dem Bereich wird jedoch nicht mehr weiter entwickelt oder entspricht nicht meinem Geschmack oder funktioniert einfach nicht vernünftig.
Desweiteren würde ich mir für die Zukunft dann auch einen Team Modus vorstellen für 4 Spieler, 2 gegen 2 etc. Für den Anfang würde ich mich erst mal damit begnügen, nur Mana und Kreaturen zu implementieren, ohne Fähigkeiten etc. Grafikmäßig habe ich wenig Ambitionen, dass ist imo eh meist unrealistisch und zu aufwändig. Features > Grafik für mich.
Nochmal zusammengefasst : Grafisch einfaches 2D Kartenspiel, nur Online/Netzwerk. Natürlich nur privater Gebrauch, Lizenzen etc.

Zu meiner Person / Entwicklungshintergrund
Ich arbeite als Fachinformatiker Anwendungsentwicklung, 3. Lehrjahr und habe somit jeden Tag mit der Materie Programmierung zu tun. Beruflich arbeiten wir 95% mit C# im Bereich Prüf- und Messtechnik. Trotzdem würde ich mich nicht als Profi bezeichnen, gerade im Bereich Spieleentwicklung habe ich 0 Erfahrung. Mit C++ habe ich vor längerer Zeit mal gearbeitet, habe ganz zu Anfang mit C angefangen, dann C++ und jetzt eben C#.

Jetzt zu meiner Frage bzw. euren Meinungen: C# oder C++ für das obige Projekt, ich bitte um eure Meinungen.
Eigentlich würde natürlich erst mal alles für C# sprechen, da habe ich mehr Erfahrung, imo schnellere Entwicklung und viele eingebaute für mich nützliche Features (Remoting, Serialisierung, direkt Grafische Oberfläche etc.).

Warum also stelle ich diese Frage überhaupt?
Privat bin ich kein Windows User, sondern ehr in der Open Source Welt zuhause. Das OS meiner Wahl ist FreeBSD und hier sieht es bekanntlich mit C# ehr Mau aus. (Mono ist mir ein Begriff, aber trotzdem...) Ich habe zwar auch Win parallel installiert, aber wenn ich schon selber was entwickle, würde ich es natürlich auch gerne unter meinem "normalen" OS benutzen und vor allem auch entwickeln können.

Ich bin für jese Meinung dankbar. Auch Empfehlungen, welche Bibliothek dafür am geeignetsen wäre, sind mir durchaus willkommen. Ich hoffe, ich habe mir mit meinem Post halbwegs Mühe gegeben und warte freudig auf eure konstruktiven Meinungen.

Gruß
Cr4ckerjack

xardias

Community-Fossil

Beiträge: 2 731

Wohnort: Santa Clara, CA

Beruf: Software Engineer

  • Private Nachricht senden

2

28.09.2014, 18:03

Ich denke C# mit MonoGame sollte fuer dich eine gute Option sein: http://www.monogame.net/ Ich weiss nicht wie es unter FreeBSD mit Mono/MonoGame aussieht, aber unter Linux laeuft es recht ordentlich.

Wenn du mit Mono nicht so gluecklich bist, dann ist eine uebliche empfehlung hier im Forum SFML mit C++. Aber generell wuerde ich sagen, dass Entwicklung in C++ aufwaendiger ist als in C#, insbesondere wenn du in C++ weniger Erfahrung hast. Ich denke nicht, dass dir der zusaetzliche Aufwand in C++ zu entwickeln irgendwelche signifikanten Vorteile bietet. Zumindestens nicht fuer ein Projekt wie du es anstrebst.

PS: Die Unity Game Engine koennte natuerlich auch noch erwaehnt werden. Dort wirst du auch weiterhin mit Mono/C# arbeiten koennen.

3

28.09.2014, 18:29

Erst mal danke für die Empfehlung, MonoGame war mir bisher kein Begriff. Sieht auf jeden Fall interessant aus, ist aber in den Ports von FreeBSD nicht enthalten. Ich werde mal versuchen, wie es mit dem Kompilieren der Quellen direkt von der Seite aussieht. Mono an sich habe ich installiert, das läuft so weit ganz gut.
Das ich damit generell unglücklich bin würde ich so nicht sagen, nur liegen imo zwischen Mono und dem .Net Framework bzw. zwischen MonoDevelop und Visual Studio Welten (logischerweise).
Direkt Vorteile erhoffe ich mir von C++ sowieso nicht, Geschwindigkeit ist eh (wie in 99% der Fälle sowieso) kein Kriterium und auch den Aufwand schätze ich selber höher ein.
Das Einzige, was mich eben wie schon gesagt reizt, ist die "native Unterstützung" der Sprache unter so ziemlich jedem OS (inkl. FreeBSD) wenn man es so nennen will. Wäre ich Windows User, würde sich für mich die Frage überhaupt nicht stellen, dann wäre meine Wahl ganz klar Visual Studio + C#. (VS bekomme ich netterweise durch die Schule, sogar in der Pro Version)
SFML läuft unter FreeBSD.

Für weitere Meinungen bin ich dankbar.
Wie würde man mit C++ die Netzwerkschicht implementieren? (Gibt es da eine Bibliothek, um direkt ein Objekt über das Netzwerk bereitzustellen ähnlich dem Remoting Konzept von C#?)

Irgendwelche speziellen Buchempfehlungen? (Bitte im Hinterkopf behalten, das es keinen Computergegener gibt und sich Grafik auch nur auf 2D beschränkt und ehr statisch werden wird. Vieles in dem bereich geht ja direkt auf KI oder grafische Aspekte wie Kollisionsabfragen o.Ä. ein...)

KeksX

Community-Fossil

Beiträge: 2 107

Beruf: Game Designer

  • Private Nachricht senden

4

29.09.2014, 10:21

Die SFML hat beispielsweise schon eigene Klassen für das entsprechende Arbeiten mit Sockets.

Zum Thema Buch:
Auch wenn du sagst du brauchst das alles nicht, denke ich dass Themen wie Kollisionsabfragen immer ein Thema sein werden, schließlich ist die Logik "befindet sich der Mausbutton beim Knopfdruck innerhalb des Buttons?" auch schon eine. Also wirst du da nicht drumherum kommen.

Dafür gibt es dann auch ein Buch, das ich wärmstens empfehlen kann:
https://www.packtpub.com/game-developmen…ame-development
WIP Website: kevinheese.de

Werbeanzeige