Autor Beitrag
FizzKhalifa
Hält's aus hier
Beiträge: 2



BeitragVerfasst: Mo 13.07.15 22:44 
Ich habe ein kleines Programm geschrieben, mit welchem man Tic Tac Toe spielen kann. Dieses möchte ich nun um eine Mehrspielerfunktion erweitern.
Ich bin mir jedoch nicht sicher wie man so etwas am Besten realisieren kann. Ich hatte vor meinen Raspberry Pi als Server laufen zu lassen und das Spiel dann über eine Datenbank zu steuern.
Es sollen dadurch alle zur Zeit eingeloggten Spieler angezeigt werden können und Spiele gestartet werden können. Die Spiele sollen dann auch vom Server verwaltet werden.

Nur welche Datenbank wäre für so etwas geeignet?
Oder habt ihr noch andere Vorschläge zur Realisierung?

Schon mal vielen Dank für eure Antworten!
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4764
Erhaltene Danke: 1052

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: Di 14.07.15 08:17 
Hallo und :welcome:

da würde ich dir eine embedded database, also z.B. SQLite empfehlen (für C# System.Data.SQLite - unter Downloads mußt du dann das für dein System benötigte "Release Package" herunterladen oder noch besser gleich die NuGet-Packages benutzen).

Die größere Aufgabe stellt jedoch die Netzwerkfunktionalität dar, d.h. die Client-Server Kommunikation. Weißt du denn schon, wie du diese umsetzen möchtest?
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4701
Erhaltene Danke: 991


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: Di 14.07.15 10:25 
Was ist den der Server auf dem RasPi? Windows 10 IoT damit da eine .Net Applikation laufen kann? Ein Mono Umgebung? Was nicht .Net-mäßiges? Abhängig davon könnte sich eine bestimmte Datenbank besser eignen (ganz einfach weil sie dieses Setup explizit unterstützt).
FizzKhalifa Threadstarter
Hält's aus hier
Beiträge: 2



BeitragVerfasst: Di 14.07.15 19:08 
Also ich wollte das eigentlich, insofern das möglich ist, mit dem Client eine Verbindung über einen ddns Service zu meinem Router aufbauen und entsprechende Ports dann an den Raspberry Pi weiterleiten. Kann man denn solch eine Verbindung mit SQLite aufbauen?

Auf dem Raspberry Pi läuft Raspbian (Debian Variante) und ich habe noch ein virtuelles x86 System drauf, mit dem ich über Mono problemlos .NET laufen lassen kann. Die Frage ist eigentlich nur, was am praktischsten realisierbar wäre, bzw. was am Besten mit C# funktioniert.
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4764
Erhaltene Danke: 1052

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: Mi 15.07.15 09:38 
Mir scheint, dir sind die technischen Zusammenhänge noch nicht klar. Eine Datenbank baut keine Verbindung zu einem anderen System auf, sondern dient nur zum Abspeichern von Daten (Informationen).
Die konkrete Architektur für dein System kann ich aus der Ferne schlecht beurteilen. Du brauchst auf jeden Fall ein Programm, welches dauerhaft auf dem Server läuft (egal ob direkt unter Raspbian [falls dieses Mono unterstützt] oder eben in einer virtuellen Maschine). Dieses Programm kommuniziert einerseits dann mit den Clients (mittels TCP/IP) und zum anderen dann mit einer Datenbank (ob diese lokal oder auf einem anderen Server liegt wäre dabei technisch egal). Für den Anfang könntest du auch ohne Datenbank auskommen und die Infos ersteinmal im Speicher oder einer Text- bzw. XML-Datei ablegen.

Für den Anfang lies dir mal die Tutorials aus unserer C#-Library dazu durch:
TcpClient: Asynchrones und Synchrones verbinden
TcpListener: Asynchrones und Synchrones verbinden
sowie für einfaches XML-Serialisieren Mit XmlSerializer Objekte als XML speichern und laden
C#
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 561
Erhaltene Danke: 65

Windows 10, Kubuntu, Android
Visual Studio 2017, C#, C++/CLI, C++/CX, C++, F#, R, Python
BeitragVerfasst: Mi 15.07.15 10:55 
Für Networking kann ich dir auch die Lidgren Network Library empfehlen. Die nimmt dir doch einiges an Arbeit ab was Verbindungsaufbau und Aufrechterhaltung angeht.

_________________
Der längste Typ-Name im .NET-Framework ist: ListViewVirtualItemsSelectionRangeChangedEventHandler