Kartenspiel programmieren?

4 Antworten

Geht eigentlich mit fast jeder Programmiersprache, also python, java, VB, C# oder C/C++


bennyschu 
Fragesteller
 30.12.2019, 16:00

erstmal vielen dank für deine antwort welche pogrammiersprache ist den am einfachsten bzw. schnellsten zu verstehen / lernen und eignet sich gut für solch ein vorhaben?

0

Geht eigentlich mit allem. Ich persönlich würde C# mit Visual Studio nutzen. Das ist recht einfach und übersichtlich - aber wie gesagt, ein simples Kartenspiel sollte mit allem ungefähr gleich schwer ein. Die einzige Hürde hier ist ja die Visualisierung.


bennyschu 
Fragesteller
 30.12.2019, 16:09

okay naja was heißt den visualisierung ich hab ja schon ein visuellen plan im kopf wie das alles aussehen soll und wie es funktionieren soll das zweite programm muss man halt mit dem spiel verbinden um neue karten als "admin" hinzuzufügen also sozusagen ein "verwaltungsprogramm" über das spiel selbst...

und dann halt das normale spiel so :D haha ich weiß ist dumm gesagt

0
bennyschu 
Fragesteller
 30.12.2019, 16:11

oder man spart sich das zweite programm und integriert das direkt im spiel aber nicht das dann normale spieler sich dann karten cheaten können oderso..

0
ShinyArmageddon  30.12.2019, 16:49
@bennyschu

Mit zwei getrennten Programmen sollte das gut funktionieren. Ich meinte nur, dass es beim ersten mal immer ziemlich nervig ist, eine graphische Nutzeroberfläche zu erstellen - bzw. auch Animationen und so etwas einzubauen.

Wenn man einmal einen Plan hat, wie die Programmstruktur aufgebaut sein soll (also wie man z.B. unter der simplen Eingabe von Daten eine neue Karte erstellen kann, welche bereits voll Nutzungsfähig ist ... je nach Art des Spieles unterschiedlich schwer oder nur teilweise umsetzbar), dann ist die meiste Arbeit halt neben dem Erstellen der Texturen, das Einsetzen dieser graphischen Elemente im eigentlichen Spiel.

Ich bin halt eher der Typ, der Speicherdokumente organisiert oder generell die Datenverarbeitung programmiert. Aber Sound und Grafik mochte ich noch nie. Simpelste Animationen oder graphische Elemente brauchen halt lange zum programmieren, ohne das inhaltlich was am Spiel geändert wird.

0

Wenn Du dir wegen der Programmiersprache unsicher bist: Müsste mit jeder Sprache gehen, für die es ein UI-Framework gibt, also die allermeisten großen Sprachen.
Spontan fallen mir da C#, Java, C++ ein, geht aber auch rein mit HTML/CSS und JavaScript und mit mehr Aufwand sicher auch mit C und jeder anderen Sprache auch.
Python kenne ich nicht, aber nach dem, was ich so gehört habe: Nimm lieber kein Python :D

Ich arbeite seit einigen Jahren mit C#, zwischendurch mal Java oder HTML/CSS/JavaScript und Ableger wie (SCSS oder TypeScript).
Ich persönlich würde immer zu C# raten. Web ist zwar schön und gut, aber sehr schnelllebig und komplex, was schnell verwirren kann. Java hinkt schon seit Jahren hinter C# hinterher (Java-Fanboys steinigen mich jetzt) und C++ ist ganz toll, wenn Du hardwarenahe arbeiten können möchtest, allerdings musst Du dann auch auf jede Kleinigkeit aufpassen, was auch den großen Spieleentwickler-Firmen nicht vollständig gelingt.

Bei C# hast Du WinForms (kann ich nur von abraten) oder WPF (das Grundkonzept ist ähnlich zu HTML und sehr flexibel), oder Du suchst wieder die Nähe zum Web mit ASP.NET, hast dann allerdings wieder die Komplexität vom Web.

Wie genau Du das nun aufbaust:

Ja, Ideen hab ich massig :D
Aber die sind alle zu umfassend, um sie hier in einer "kurzen" Nachricht zu beschreiben, besonders da ich davon ausgehen muss, dass Du den Großteil nicht verstehst.

(Achtung Roman: Eine ToDo-Liste zum Einarbeiten, lass dich davon nicht erschlagen. Der Anfang ist schwer, aber es kann viel Spaß machen.)

Daher rate ich dir, lies ein gutes Buch für den Einstieg. Ich habe damals "Visual C# 2010" gelesen, den Nachfolger von 2012 gibt's online und kostenlos:
http://openbook.rheinwerk-verlag.de/visual_csharp_2012/
Der Nachfolger von 2015 ist leider kostenpflichtig, aber so viel kannst Du nicht verpassen, die paar relevanten Neuerungen kann man sich auch nachträglich selber aneignen.
Der wichtigste Punkt, der nicht mit drin steht, sind die Neuerungen mit .NET Core und .NET Standard. Hier würde ich empfehlen: Lies erst das Buch und dann, was Microsoft in der MSDN-Doku zu .NET Core und Standard schreibt. Die Unterschiede sind (ab Version 2) ziemlich gering, das Verständnis über die Zusammenhänge ist viel wichtiger, da die meisten neuen Frameworks darauf aufbauen.

Den Part über EntityFramework (ein OR-Mapper zur einfachen Nutzung von Datenbanken) kannst Du dir anschauen, allerdings gibt es teils deutliche Unterschiede zum Nachfolger namens EntityFramework Core. Lies also drüber und häng danach dieses Tutorial dran, dann müsstest Du alles drauf haben.

Den Teil zu ADO.NET brauchst Du nicht zwingend. Das ist sozusagen der Kern von jedem Datenbank-Framework (also auch dem EntityFramework), den musst Du nicht zwingend nutzen können, aber ich halte es für sinnvoll, das zu kennen und zu verstehen.

Serialisierung (XML, JSON, CSV, Binär, etc.) wäre die Alternative zu einer Datenbank und ist sehr schnell umgesetzt, da es Serialisierungs-Frameworks wie Sand am Meer gibt und Microsoft selber ein paar gute Frameworks mit liefert.

Die Parts WPF-3D-Entwicklung kannst Du wahlweise überspringen, wenn Du das nicht nutzen möchtest. Ich würde erst mit 2D beginnen, 3D kann schnell sehr komplex werden.

Sobald Du das alles durch hast, sieht die Welt schon ganz anders aus. Du wirst viele neue Fragen haben, aber noch mehr sollten sich geklärt haben. Das ist viel, das gebe ich zu, aber verglichen mit den Alternativen ist es eher einfach :)

Danach kommt der wirklich schwierige Part :P
Schau dir alles an, was Du zu "Design Patterns" findest und lies dich zu Best Practices ein.
Du wirst nicht alles auf einmal brauchen, aber wenn Du online nach Ideen für das Design eines Programms fragst, werden da immer wieder Namen von solchen Patterns auftauchen, es lohnt sich also, die Wichtigsten zu können und zu verstehen.
Du wirst früher oder später Fehler machen, die prinzipiell kein Problem sind, die aber später ordentlich Felsen in den Weg legen. Diese Patterns können dabei helfen, diese Fehler zu umgehen oder zu beheben, außerdem sind sie wertvolle Erfahrungswerte von "altgedienten" Entwicklern, über Jahre von der Community verfeinert.

Das ist aber nicht ohne Grund der schwerste Part, denn hier gibt es kein Richtig und kein Falsch, jedes Entwicklungsmuster kann genutzt werden, viele sollte man auch nutzen, aber sie könnten in einzelnen Fällen auch kontraproduktiv sein.
Das ist alles eine Frage der Situation und man muss es abwägen und nicht selten gibt's über diese Themen auch umfassende Diskussionen.
Nicht ohne Grund können sich erfahrene Entwickler sehr teuer bezahlen lassen ;)

============================

Alles in Allem solltest Du so lange lesen, bis Du der Meinung bist, das erste kleine Mini-Programm aufzubauen.
Das setzt Du dann auch mit einfacheren Programmen wie einem stumpfen Taschenrechner oder einer Address-Liste um, in die Du deine neuen Kenntnisse einfließen lassen kannst.

Irgendwann wirst Du auch in der Lage sein, deine eigene Idee umzusetzen, wann genau kann ich dir nicht sagen, aber vermutlich musst Du nicht alles durchgearbeitet haben.

Woher ich das weiß:Berufserfahrung

Probiere es in einfachere Schritten aufteilen.