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

CenTroniX

Frischling

  • »CenTroniX« ist der Autor dieses Themas

Beiträge: 8

Wohnort: Zwischen 6502 und Z80

  • Private Nachricht senden

1

22.04.2010, 02:14

Einsteigerfragen - (Modell)Eisenbahn-Simulation erstellen (--- gelösst ---)

Hallo,

ich bin im Bereich der 3D-Spiele-Programmierung völlig neu.
Ich habe mich in den letzen zwei Jahren mit Netzerkprogrammierung und der Programmierung von (Fern)Steuerungssoftware beschäftigt - u.a. Bots (incl. Controlprogrammen für verteilte Bot-Rudel) für Online-Spiele wie z.B. Darkorbit - allerdings nur zum lernen, meine Bots habe nicht das Licht der Öffentlichkeit erblickt.

Nun möchte ich gerne eine Modellbahn-Simulation erstellen, die spezielle Anforderungen erfüllen soll, die ich so bei den bereits erhältlichen Programmen nicht finden kann.

Die Simulation soll wie ein Onlinegame als Client/Server-System aufgebaut sein, so das mehere Spieler auf eine virtuellen Modellbahnalgae agieren können, quasi eine virtueller Modellbahn-Club, dessen mitglieder auf der ganzen Welt verteilt sein können.

Die ganze Ablauflogik wird auf dem Server laufen und die Anzeige für jeden Spieler auf dem ensprechenden Spieler-Rechner stattfinden, so das jden Spieler seine induviduelle Sicht auf das Spielgeschehen hat.
Den Clients werden also nur am Anfang die Welt-Daten übermittelt und dann im Spielverlauf die Verändeungen dieser Daten mitgeteilt.
Das Client-Programm muss dann diese Daten verarbeiten und mittels der Grafik-Engine auf den Bildschirm des Spieler-Rechners darstellen.

Frage: Mit welcher Grafik/Game-Engine ist das wohl am besten realisierbar, was ist ungeeignet bzw. Oversized. Was kann ich alles von einer entsprechenden Engine erledigen lassen (Physik, Licht, Wetter, Sound, Benutzereingaben usw.) und was muss ich auf deren Wegen lösen? Kann ich die 3D-Modelle (Loks, Wagen, Häuser usw.) z.b. mit Blender oder einen anderen freien Software erstellen und in einer entsprechenden Engine nutzen? Bleibt als Programmiersprache für die Clients nur C++ oder ist auch VB.net denkbar? In VB.net kenne ich mich im Moment am besten aus und bisher habe ich den wechsel zu C/C++ gescheut, bzw. er war nie notwendig. In der Vergangenheit bin ich immer gut mit Assembler (8-Bit Prozessoren 6502/Z80/6809E/8085), Turbo Pascal, Clipper und eben VB.net ausgekommen.

Ob mein Projekt je einen komerziellen Status erreichen wird ist fraglich, allerdings für mich im Moment auch nebensächlich, es würde mich aber freuen wenn ich ich oder eine Gruppe von Leuten damit in einigen Jahren (das Projekt wird Zeit brauchen) etwas Geld verdienen könnten. Ich selbst bin nicht darauf angewiesen mir dem Projekt Geld zu verdienen. Ich habe spass am Programmierien und mit reizen Herausforderungen und das ist im Moment genug anreizt für mich.
Gerade im Bereich der grafischen Darstellung und Modellerstellung wäre ich für Hilfer sehr Dankbar, das dies nun nicht mehr Schwerpunkt ist und das anderen wahrscheinlich viel besser können. Mein Schwerpunkt ist die (Fern)Steuerungsprogrammierung, daher auch die Beschäftigung mit den Bots in den letzten 12-24 Monaten. Bisher habe ich für rudimentäre graphische Statusausgaben GDI+ und SDL (SDL.net) benutzt, beides von VB.net aus.

Warum dieses Projekt? Nun, einerseits interessiert mich die Aufgabe an sich (ujnd ich habe viel zu viel Zeit ....), andererseits haben alle mir bekannten (Modell)Eisenhbahn-Simulationen gerade im Bereich der Steuerung (manuell oder programmierter Automatikbetirieb) sehr große Schwächen, so das die Spielspass arg geschmälert wird.



Gruß,
CenTroniX
Ein Jahr vor Woodstock geboren, mein erstes Programm ist 1983 auf einem TI 99/4a entstanden.

Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von »CenTroniX« (23.04.2010, 20:22)


NachoMan

Community-Fossil

Beiträge: 3 885

Wohnort: Berlin

Beruf: (Nachhilfe)Lehrer (Mathematik, C++, Java, C#)

  • Private Nachricht senden

2

22.04.2010, 02:29

willkommen im forum.
ich finde die idee klasse.
deine vorstellung vom client/server ist schonmal richtig. hast du denn schonmal ein einfaches spiel geschrieben und weißt wie sie aufgebaut sind? das ist für das erste spiel schon ein sehr großes projekt.

zu 3d grafikengines: ogre und irrlicht werden hier oft empfohlen. allerdings würde ich persönlich erstmal alles in 2d lösen(mit der sfml oder so) und sobald der client und server läuft mit der 3d darstellung anfangen. die 3d modelle kannst du mit blender erstellen und mit ogre/irrlicht ohne probleme laden.

ich kenn mich mit VB.net zwar nicht so gut aus aber ich glaube nicht, dass du damit einen ausreichend schnellen client, der auch noch gut aussieht, schreiben kannst.
wenn du dich für c++ entscheidest hast du noch einen langen weg vor dir bis du sie gut genug beherrschst. ich glaube aber niemand der c++ kann bereut es sie gelernt zu haben.
beim einstieg in c++ helf ich dir auch gern über icq/msn(pm^^) weiter. (ich fühl mich gerade ein bisschen wie ein missionar xD)
"Der erste Trunk aus dem Becher der Erkenntnis macht einem zum Atheist, doch auf dem Grund des Bechers wartet Gott." - Werner Heisenberg
Biete Privatunterricht in Berlin und Online.
Kommt jemand mit Nach oMan?

CenTroniX

Frischling

  • »CenTroniX« ist der Autor dieses Themas

Beiträge: 8

Wohnort: Zwischen 6502 und Z80

  • Private Nachricht senden

3

22.04.2010, 03:36

Danke für das Willkommen.

Ja ich habe schon einmal einfache Spiele programmiert, allerdings ist das schon recht lange her. Das war noch zu HomeComputer-Zeiten (bei mir war es ein TI 99/4a und Atari 800XL) und später in Turbo Pascal 3.0-6.0, das ist nun gut und gerne 25 Jahre her.

Wie beschrieben habe ich mich in der letzten Zeit mit Bots und ensprechenden Controll-Programmen für die Stuerung ganzer Rudel (250+ Bots) beschäftigt, erst als Win32-Konsolenanwendung, dann mit Windows-Forms-GUI und abschließend mittels SDL.

Ich weiss das mein geplantes Projekt für einen Einstieg ziemlich heftigt ist, aber ich möchte ja an dem Projekt lernen und mit ihm wachsen. Auch meine Bots habe ich mehr als einmal komplett neugeschrieben - ich scheue diesen Aufwand nicht und wie bereits erwähnt habe ich ich sehr viel Zeit und lerne gerne. Mit dem Bot-Projekt habe ich VB.net, Windows-Programmierung und
Internet-Programmrung gelernt, wovon ich voher keiner Ahnung hatte. Also
"Learning by doing", wie man früher so gerne gesagt hat.

Geschwindigkeitsmässig sehe ich bei VB.net keine großen Probleme (ist nicht mit dem alten VB6 zu vergleichen), aber es muss einen .Net-Wrapper für die Engine geben. SDL konnte ich über SDL.net (in C# geschrieben) nutzen.

Der Anfang soll bei mir auch in 2D erfolgen, in Form eine symbolischen Darstellung zu Kontrollzwecken.
Die 3D-Darstellung wird dann der nächste Schritt sein und wird auch ein austauschbarer Teil sein.
Allerdings muss ich mich schon vor dieser Phase mit den Engines beschäftigen, da ich sicherlich div. Eigenschaften berücksichtigen muss über die ich bisher noch gar nicht bescheidt weiss.

Was ich auf keine Fall möchte, zumindest nicht innerhalb der nächten 5 Jahre, ist eine Grafik-Enige selbst zu erstellen. Für später, wenn der Rest einmal laufen sollte würde mich das aber schon interessieren, da hier dann sichgerlich große Optimierungen möglich sein können - wobei die bereits erhältlichen Engines natürlich auch weiter entwickelt werden.
Wichtig ist mir, das ich eine stabile/lebendige Engine wähle, die Zufuftssicher ist und eine gute Gemeinschaft hat, wobei eine deutschsprachige Gemeinschaft für mich besonders für den Einstieg sehr von Vorteil wäre (das habe ich bei SDL gemerkt, wo ich mich viel aus C# und C++-Code-Beispielen zusammen suchen müsste), aber ich wühle mich auch durch englischsprachige Seiten.

Ich würde den Umstieg auf C++ gerne vermeiden, zumindest im Moment, aber ich sehe auch das immer mehr .net-Wrapper für div. Engines eingestellt werden und nicht mehr auf dem aktuellen Stand sind, so ist es auch bei Irrlicht.
C++ würde ich auch erstmal "nur" für die Client benötigen oder eben Jemanden der mir diesen Teil abnimmt. Ich finde Grafik toll, aber mich interessiert mehr die Software dahinter, also die Steuererungs- /und Kommunikationssoftware. Den Server werde ich erstmal in VB.net erstellen. Ein spätere Portierung nach C++ und dann nach Linux ist aber wahrscheinlich (besonders wenn mein Projekt eine größere Zuspruch finden sollte) auch wenn das noch 2-3 Jahre Zeit hat.
Ein Jahr vor Woodstock geboren, mein erstes Programm ist 1983 auf einem TI 99/4a entstanden.

Nox

Supermoderator

Beiträge: 5 272

Beruf: Student

  • Private Nachricht senden

4

22.04.2010, 08:17

Ich würde auch erstmal von C++ abraten, wenn du da noch nicht so firm bist. Ich bin ja neulich auf Panda3D aufmerksam gemacht worden. Dabei handelt es sich um eine Engine, die eig sehr ordentlich aussieht und nativ C++ und Python unterstützt. Gerade Python soll fürs schnelle Entwicklen ganz gut sein. Vielleicht hilft ja ein Blick in diese Richtung :)
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

22.04.2010, 09:23

Ich glaube für deine Zwecke wäre 3D Gamestudio recht gut geeignet. Es ist sehr einsteigerfreundlich und einfach und du brauchst nur eine einfache Skript Sprache lernen um damit umgehen zu können, außerdem gibt es eine Menge Tutorials dazu. Wenn du vor hast in Zukunft mehr in 3D zu programmieren solltest du dich entscheiden, ob du es richtig machen willst (C++/C#) oder lieber bei den einfachen schnellen Methoden bleibst, die natürlich auch ihre Nachteile mit sich bringen.

http://3dgamestudio.de/

oder du nimmst halt DarkBasic (Solltest du ja eigentlich kennen als Basic Programmierer Oo):

http://www.thegamecreators.com/?m=view_product&id=2000
Ich weiß es dauert viel zu lange, aber ich habe echt nur Pech. Habe mir heute mal eben im Zeigefinger Nerv und Sehne durchtrennt. Dennoch kann es nicht mehr all zu lange dauern mit dem Tutorial. Außerdem kamen auch noch Prüfungen und dergleichen dazwischen.
Klatscht die Hopper an die Wand, Deutschland ist ein Raverland! :D

CenTroniX

Frischling

  • »CenTroniX« ist der Autor dieses Themas

Beiträge: 8

Wohnort: Zwischen 6502 und Z80

  • Private Nachricht senden

6

22.04.2010, 11:16

Nun ja, das 3D-Gamestudio mag eine Tolle Sache sein, ist aber wahrscheinlich ein in sich geschlossenes All-in-one-Paket. ich muss das eschechen auf dem Bildschirm (also das was die Engine anzeigen soll) von aussen über TCP/IP beeinflussen können, da auf den Spieler-Rechnern ja nur eine Client läuft und nicht das ganze Spiel.
Ich kann mich in meiner Einschätzung auch täuschen, vielleicht hat ja jemand genauere Informationen zu Hand.

EDIT: OK, es scheint ein API-Interface zumindest für C++,C# und Delphi zu geben, aber ob ich dort auch mit VB.net ran kommen habe ich auf den ersten Blick nicht erkennen können - wer weiss hier mehr?
Und leider würde ich wohl die Pro-Version (€ 799.-) genötigen, denn nur die bietet einen unbegrenzten Multiplayer-Modus. Allerdings habe ich keine Ahnung, ob das auch gilt, wann ich dir A7-Enige per API "füttere". Aber auch hier fallen mindestens € 189.- an, den erste die Commercial-Version unterstützt Shader usw. Das was die Grafik-Engine auf dem Bildschirm bringt saollte ja schon auf dem aktuellen Stand der Zeit sein und nicht den Eindruck eines 90er Jahre Spiels machen, denn gerade in Punkte Grafik sind die existierenden Eisenbahn-Simulationen auf einem ordentlichen Stand (EPP erst ab Version 7).

Diese ganze *Basic habe ich mir angesehen, bevor ich mich für mein Bot-Projekt für VB.net entschieden habe.
Diese ganze Basic-Dialekte sind in vielen Aspekten irgendwie "bähbäh", ich kann es nicht genauer sagen. In VB.net habe ich mich eingearbeitet und möchte diese Wissen nun nicht gleich wieder über Bord werfen.
Ich möchte auch keine Engine nutzen, die fest mit einer Sprache/Sprach-Dialekt/Entwicklungsumgebung verbunden ist, daher scheidet auch PureBasic aus.
Ein Jahr vor Woodstock geboren, mein erstes Programm ist 1983 auf einem TI 99/4a entstanden.

Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »CenTroniX« (22.04.2010, 11:43)


CenTroniX

Frischling

  • »CenTroniX« ist der Autor dieses Themas

Beiträge: 8

Wohnort: Zwischen 6502 und Z80

  • Private Nachricht senden

7

22.04.2010, 11:27

Ich würde auch erstmal von C++ abraten, wenn du da noch nicht so firm bist. Ich bin ja neulich auf Panda3D aufmerksam gemacht worden. Dabei handelt es sich um eine Engine, die eig sehr ordentlich aussieht und nativ C++ und Python unterstützt. Gerade Python soll fürs schnelle Entwicklen ganz gut sein. Vielleicht hilft ja ein Blick in diese Richtung :)
Ich bin zwar kein Freund von Scriptsprachen ( weiss allerdimngs nicht genau warum), aber mit Phyton wurde ja schon recht komplexe Systeme erstellt, wie z.b. der GameServer von EVE-Online (Stackless Phython). Daher denke ich, das es sich wohl wirklich lohnt mal in diese Richtung zu schauen. Nun habe ich keine Ahnung was für Windows-Entwicklungsumgebungen es für Phyton gibt. Aber vielleicht erstellt ich den GameServer auch gleich auf Linux, was ja eh in einer spätere Phase geplant war.

Also, danke für den erhellenden Hinweis.
Ein Jahr vor Woodstock geboren, mein erstes Programm ist 1983 auf einem TI 99/4a entstanden.

8

22.04.2010, 13:11

für phyton gibbet glaub ich was in Eclipse...

aber wenn du eventuell etwas geld übrig hast: torque und unity3d sind denk ich auch nicht ganz zu vernachlässigen. die nehmen viel arbeit ab, da da haufenweiße tools dabei sind. vielleicht gibts auch kostenlose "comunity" versionen davon, bin mir nicht sicher und hab keine lust, nachzusehen ;)

9

22.04.2010, 13:35

Ich weiß es dauert viel zu lange, aber ich habe echt nur Pech. Habe mir heute mal eben im Zeigefinger Nerv und Sehne durchtrennt. Dennoch kann es nicht mehr all zu lange dauern mit dem Tutorial. Außerdem kamen auch noch Prüfungen und dergleichen dazwischen.
Klatscht die Hopper an die Wand, Deutschland ist ein Raverland! :D

Tobiking

1x Rätselkönig

  • Private Nachricht senden

10

22.04.2010, 14:24

Das .Net Framework bietet doch schon eine gute Grundlage. Bis auf ein paar Eigenheiten lassen sich die Sprachen, für die es .Net Compiler gibt, recht gut mischen. Solange man auf native Bibliotheken verzichtet ist das ganze auch direkt unter Linux lauffähig. Was Performance angeht wird sich da zwar oft gestritten, aber es gibt durchaus Spiele die komplett in .Net geschrieben sind. Noch mehr Spiele gibt es, die für die Grafik und vielleicht noch ein paar andere aufwendige Berechnungen native Bibliotheken nutzen und für alles andere dann .Net.

Werbeanzeige