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

14.11.2011, 00:30

Die richtige Programmiersprache für mein 2D Multiplayer Spiel

Hallo Zusammen,

ich hoffe ich habe meinen Beitrag in der richtigen Kategorie eröffnet, falls nicht bitte ich ihn zu verschieben.


Ich beabsichtige ein kleines Brettspiel für den Pc Umzusetzen.

Vom Umfang der Spielregeln kann man sich etwa Siedler von Cathan oder etwas weniger vorstellen.

Die Grafiken werden in 2D gehalten sein.


Nun geht es daran die richtige Software zur Programmierung zu finden.


Wichtigste Bedingung: Ich möchte einen Online oder Netzwerk-Multiplayer Modus mit bis zu 4 Spielern einbauen, habe so etwas allerdings noch nie programmiert.
Die Programmiersprache/Software sollte in dieser Hinsicht also möglichst zugänglich sein, ideal wäre es wenn sich hierzu auch einige gute Tutorials finden lassen.

Ich habe kurze Erfahrungen mit den Programmiersprachen Action Script 3, C++ und Java (Kleinere Spiele und Menüs Programmiert, aber eben ohne Multiplayer).


Ich bin für jede Hilfe dankbar :-)

Architekt

Community-Fossil

Beiträge: 2 481

Wohnort: Hamburg

Beruf: Student

  • Private Nachricht senden

2

14.11.2011, 00:36

Sowohl C#, C++ und auch Java eigenen sich dafür.
Hier ein Artikel aus unserem Wiki: https://www.spieleprogrammierer.de/wiki/…grammiersprache
Der einfachste Weg eine Kopie zu entfernen ist sie zu löschen.
- Stephan Schmidt -

Schorsch

Supermoderator

Beiträge: 5 145

Wohnort: Wickede

Beruf: Softwareentwickler

  • Private Nachricht senden

3

14.11.2011, 00:47

Wenn du schon ein bisschen mit Java gespielt hast, dann versuch dich doch damit noch ein bisschen. Wenn du damit schon Menüs etc geschrieben hast ist das ja schon mal etwas. Ich vermute mal dafür hast du Swing oder vergleichbares benutzt? Damit kannst du ja auch schon kleine Spiele basteln. So Buttons können ja Grafiken bekommen und wenn es ein rundenbasiertes Spiel ist, was solche Spiele ja normalerweise sind, dann sollte sich das vielleicht auch damit umsetzen lassen. Dann hast du nicht zu viel neues was du lernen musst. Lass den Netzwerkteil erst mal komplett weg. Ich möchte dir da nichts vormachen, aber das ist wirklich nichts was man schnell gelernt hat. Du kannst ja einfach mal Versuchen eine Anwendung für einen Chat zu schreiben und dann dort eine Netzwerkfähigkeit einbauen. Ist für den Anfang mehr als genug zu tun.
„Es ist doch so. Zwei und zwei macht irgendwas, und vier und vier macht irgendwas. Leider nicht dasselbe, dann wär's leicht.
Das ist aber auch schon höhere Mathematik.“

Nox

Supermoderator

Beiträge: 5 272

Beruf: Student

  • Private Nachricht senden

4

14.11.2011, 01:52

Naja, wenn du auf entsprechende Bibliotheken zurückgreifst, ist auch Netzwerk keine Hexenkunst, allerdings gibt es unglaublich viele Fallstricke dabei zu beachten (nicht umsonst sind viele Mehrspielermodi so fehlerverseucht). Ich selbst bin kein Fan von Java und C++ ist gerade für kleinere Spiele eher overkill, aber durchaus spannend wenn du die Muse hast dich durchzubeisen. Wenn du mit Java gut zurecht kommst, dann bleib dabei; Ansonsten scheint C# eine sehr interessante Alternative zu sein. Ich selbst habe in letzter Zeit Python sehr zu schätzen gelernt, allerdings kann es gut sein, dass man gerade als nicht so fortgeschrittener schnell an die Leistungsgrenze kommt, weil mit Python schnell Sachen konstruiert sind, die zwar wunderbar funktionieren, aber überaus inperformant sind (was aber für ein Brettspiel eig kein Problem darstellen sollte).
Wenn dir der Mehrspieler wirklich am Herzen liegt und es nur darum geht den Spielstand vom Server auf die Clients zu projezieren, dann könnte meine Lib Syncsys ggf ganz interessant für dich sein. Sie ist allerdings nur für C++ und Python im Moment direkt benutzbar. Außerdem sind einige Teile weniger "nativ" bzw. simpel gehalten, dafür aber durchaus geeignet um beliebig viele Objekte von einem Server auf Clients zu projezieren.
Alternativ kann ich ENet oder IrrNetLite (ein Wrapper um ENet, der die Bib um einige sehr praktische Klassen erweitert) empfehlen, wobei diese Libs nur aufs reine "Nachrichtenübermitteln" ausgelegt sind und daher wesentlich niedriger Ansetzen als Syncsys.
Wie es für Java mit entsprechenden Alternativen ausschaut, weiß ich leider nicht.
PRO Lernkurs "Wie benutze ich eine Doku richtig"!
CONTRA lasst mal die anderen machen!
networklibbenc - Netzwerklibs im Vergleich | syncsys - Netzwerk lib (MMO-ready) | Schleichfahrt Remake | Firegalaxy | Sammelsurium rund um FPGA&Co.

5

14.11.2011, 02:00

Danke für die schnellen Antworten.

Es handelt sich um ein Bachelor Projekt, Multiplayer ist Pflicht.

Falls sich Netzwerk oder Internetspiel garnicht umsetzen lässt, langt aber zur großen Not auch ein Hotseat Modus an einem Pc.

Aber wirklich nur zur Not, wollte den schon gerne einbauen.

Eignet sich Flash nicht sogar recht gut für diese Art Spiel? Habe da auch schon einige Multiplayer spiele gesehen in der Richtung.

Die Zeit, die mir zur Verfügung steht ist relativ Knapp bemessen, etwa 2 Monate.

Wirago

Alter Hase

Beiträge: 1 193

Wohnort: Stockerau

Beruf: CRM Application Manager

  • Private Nachricht senden

6

14.11.2011, 08:24

würde dir auch raten bei java zu bleiben wenn dus schon ein wenig kannst. zur not ist hier auch ein schneller umstieg auf C# denkbar da die syntax von java und c# sehr sher ähnlich ist.

mit flash lassen sich auch kleinere multiplayer-spielchen programmieren, ja.

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

7

14.11.2011, 08:39

Ein Brettspiel ist natürlich eine andere Kategorie als ein Echtzeit-Multiplayer-Spiel.
Hier brauchst du Latenz nicht zu beachten und kannst TCP benutzen, um sicherzustellen, dass alle Pakete ankommen.

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

8

14.11.2011, 09:07

David, sollte er sonst für ein Zeit-kritisches Spiel etwa UDP verwenden? Wenn ja, wie wird das Problem der fehlenden Pakete und der richtigen Reihenfolge dann gelöst und wie bekommt man trotz dieses Nachbaus dann noch immer mehr Performance als direkt TCP zu nutzen? Oder hab' ich Dich einfach nur falsch verstanden?
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

Schorsch

Supermoderator

Beiträge: 5 145

Wohnort: Wickede

Beruf: Softwareentwickler

  • Private Nachricht senden

9

14.11.2011, 10:02

Gibts da eigentlich ne Gesetzesmäßigkeit wie viele Antworten nen Thread brauch bis er Offtopic wird?;) Ne ich denke UDP ist halt ab dem Zeitpunkt sinnvoll, ab dem man nicht mehr alle Eigenschaften von TCP benötigt. Wenn nur die Reihenfolge wichtig ist, sollte sich das permformanter als TCP umsetzen lassen. Natürlich muss dann auch die Implementierung vernünftig sein. Da hast du schon recht, dass da vermutlich in vielen fällen TCP doch die bessere Wahl gewesen wäre.
Zum Thema direkt:
Wenn du nur knappe 2 Monate Zeit hast, solltest du allgemein gucken, dich nicht zu sehr zu überfordern. Guck erst mal, dass du das Grundlegende Spiel fertig kriegst. Entwickel es so, dass du hinterher möglichst einfach auf Netzwerk umrüsten kannst. Ich weiß nicht wie viel Erfahrung du jetzt allgemein hast, aber nimm dir für den Anfang nicht zu viel vor, da das schnell nach hinten losgehen kann.
„Es ist doch so. Zwei und zwei macht irgendwas, und vier und vier macht irgendwas. Leider nicht dasselbe, dann wär's leicht.
Das ist aber auch schon höhere Mathematik.“

DerMark

Treue Seele

Beiträge: 324

Wohnort: Emsdetten

Beruf: Softwareentwickler

  • Private Nachricht senden

10

14.11.2011, 10:09

Nox hat auf einer vorherigen Devmania mal einen Vortrag über Netzwerkprogrammierung gehalten, ich glaube ein Unterthema dabei war ob nun UDP oder TCP zu bevorzugen ist. Soweit ich mich noch zu erinnern glaube war er der MEinung (und konnte das wohl auch gut belegen) dass TCP nicht schlechter ist sondern in den meisten Fällen sogar super und schnell funktioniert. Eventuell kann er dazu ja etwas sagen, aber in dem Fall könnte man den SubThread ja von diesem hier entkoppeln ;)

Werbeanzeige