Managed DirectX mit VB.Net

  • VB.NET

Es gibt 18 Antworten in diesem Thema. Der letzte Beitrag () ist von Trade.

    Managed DirectX mit VB.Net

    Sehr geehrte Community,

    als aller erstes möchte ich mich bei euch bedanken :) . Auch durch eure Hilfe konnte ich vor 2 Jahren, als ich mir die Beiträge unregistriert durchgelesen habe, mit der VB.Net-Programmierung anfangen. Da ich bei meinem Problem nicht mehr weiter weiß, habe ich mich jetzt hier registriert.

    In der nächsten Zeit wollte ich mich mit der 3D-Spieleprogrammierung beschäftigen. In einem Thread habe ich gelesen, man solle sich mal SharpDX anschauen, doch da hatte ich schon Probleme, ein Device zu erstellen. Deshalb bin ich auf die DLLs von Microsoft umgestiegen. Leider habe ich bis jetzt noch kein passendes Tutorial / Beispielprojekt gefunden. Ich suche ein Tutorial, wo man in einer Welt Modelle einfügen kann und sich mit der Kamera bewegen kann. Zu beachten ist: Ich suche ein Projekt für VB.Net und nicht für C++! Ich würde mich sehr freuen, wenn ihr mir helfen würdet.

    Mit freundlichen Grüßen

    robottron45

    robottron45 schrieb:

    In einem Thread habe ich gelesen, man solle sich mal SharpDX anschauen, doch da hatte ich schon Probleme, ein Device zu erstellen.
    Naja, 3D-Spieleentwicklung ist auch kein Ponyhof. ;) Davon abgesehen ist SharpDX aber ja auch ein DirectX-Wrapper für verwaltete Anwendungen und das kann ja für mehr als nur Spieleentwicklung verwendet werden.
    Du kannst Dir daher mal noch MonoGame (ehem. XNA) anschauen, da Du dort schon alles kompakter bereitgestellt bekommst, was Du genau für Spiele brauchst und Dich nicht mehr um so viel kümmern musst. Um die Renderer für OpenGL, DirectX etc. wird sich nämlich intern gekümmert. Du kannst also bequem Deine Logik mit den vorhandenen Klassen implementieren, was aber natürlich auch nicht heißt, dass das absolut einfach ist.

    Grüße
    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:
    Also auf der Seite steht nichts von einer Vollversion.#
    Nur folgendes:
    ​MonoGame for Visual Studio (requires a 64bit version of Windows, VS2010, VS2012, VS2013 or VS2015, and the latest DirectX Runtime)


    Mfg.
    Conway's Game Of Life Monogame Sample: 80%

    Conway's Game Of Life Monogame Sample
    Keine Ahnung, aber warum hast Du überhaupt eine Testversion? Zieh Dir halt Community 2015 und alles ist gut. ;)

    Grüße
    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:
    Bitte lasst doch diese uralten DX9 assembiles außen vor. Die Links dazu brauchts einfach nicht mehr. Die älter als alt und nur noch eingeschränkt kompatibel. Von fehlender Unterstützung für DX10,11,... mal ganz abgesehen.


    Opensource Audio-Bibliothek auf github: KLICK, im Showroom oder auf NuGet.
    Ich würde dir raten, erstmal mit 2D anzufangen und einige kleinere Spiele oder eine Engine umzusetzen. 3D ist deutlich komplizierter und einfacher zu meistern, wenn man bereits Erfahrungen mit 2D hat. Wie meine Vorredner würde ich dafür MonoGame empfehlen.

    Wir haben übrigens auch hier im Forum bereits diverse eigene 2D-Frameworks vorgestellt bekommen. Die 3 verlinkten sind allesamt Open Source, da kannst du dir sicherlich ein bisschen was abschauen.

    Eine weitere Möglichkeit wäre eine "All-In-One-Engine" wie z.B. Unity3D oder Duality. Da hast du dann Komponenten und Editoren (bei Unity quasi ein ganzes Ökosystem) dabei. Ist dafür mMn. nicht so lehrreich.
    Danke an euch für die zahlreichen Antworten.

    TheTrust3343 schrieb:

    Also auf der Seite steht nichts von einer Vollversion.

    Ich habe bei mir MonoGame installiert, aber ich finde es nicht bei den Projektmappen-Vorlagen.

    Bluespide schrieb:


    Dieses Tutorial habe ich mir schon vor ein paar Tagen angesehen, ist aber nicht ganz hilfreich.

    enba schrieb:

    Ich würde dir raten, erstmal mit 2D anzufangen und einige kleinere Spiele oder eine Engine umzusetzen. 3D ist deutlich komplizierter und einfacher zu meistern, wenn man bereits Erfahrungen mit 2D hat. Wie meine Vorredner würde ich dafür MonoGame empfehlen.

    Mir ist es sehr bewusst, wie komplex das Thema 3-Dimensionalität ist, nur würde mir 2D für mein Vorhaben wenig helfen.

    Trade schrieb:

    Warum hast Du überhaupt eine Testversion? Zieh Dir halt Community 2015 und alles ist gut. ;)

    Leider haben jegliche Versuche VS2015 Communtiy fehlgeschlagen. Der Installer kommt zu einem Punkt und macht nicht weiter. :(


    Mit freundlichen Grüßen
    robottron45
    Wie @enba auch schon sagte, würde ich mir an deiner Stelle unbedingt mal Unity3D ansehen. Das deckt deine Wünsche alle mitsamt ab:
    - Modelle einfügen
    - Kameraführung
    - Code ist nicht VB.net jedoch ist C# möglich und wenn man VB.Net bereits beherrscht ist der Umstieg auf C# nur eine Kleinigkeit.

    Zusätzlich kann man die Spiele auf Dektop, Linux, Mac, Smartphones entwickeln.

    Unity gibt es in einer kostenlosen Variante, mit der man jedoch genau so professionelle Spiele entwickeln kann als wie mit der Pro (diese hat noch paar Zusatzfeatures).
    Bücher und Tutorials gibt es dazu auch mehr als genug.

    lg
    ScheduleLib 0.0.1.0
    Kleine Lib zum Anlaufen von Code zu bestimmten Zeiten
    Wenn du gerade mit der 3D-Programmierung anfangen willst und etwas extra-Zeit hast, würde ich dir empfehlen, grob an diese Tutorialreihe angelehnt einen eigenen kleinen 3D-Renderer zu entwickeln, um ein Verständnis dafür zu bekommen, wie 3D-Renderer grundlegend funktionieren (ich halte es einfach generell für sinnvoll, das Vorgehen der Technologie, welche man nutzt, grundlegend zu verstehen).
    Dann würde ich bei einem 3D-Spiel tendentiell gleich zu Unity greifen, was mit C# als Programmiersprache zwar nicht VB.NET 1:1 entspricht, aber von der Verwendung her sehr nah dran ist. Ansonsten würde ich zu einer Library wie MonoGame raten, welche zwar nicht so komfortabel wie Unity ist, mit der man aber trotzdem praktisch alles machen kann, auch in VB.NET soweit ich weiß.

    Grüße
    Stefan
    Das keine Vorlage vorhanden ist bei Monogame liegt daran das es nur eine Vorlage für C# mitbringt.
    Aber da es ein paar nette Personen in der Community von MonoGame gibt hat jemand dort eine VB.Net Vorlage erstellt.

    Mfg
    Conway's Game Of Life Monogame Sample: 80%

    Conway's Game Of Life Monogame Sample
    Also, ich habe nochmal vor zwei Tagen mein Glück mit VS2015 versucht, und ich konnte erfolgreich VS2015 Community installieren ;).

    TheTrust3343 schrieb:

    VB.Net Vorlage

    Leider erscheint die Fehlermeldung bei dem Dropbox-Link: "This account's links are generating too much traffic and have been temporarily disabled!"

    Mfg robottron45

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „robottron45“ ()

    Ich habe dann mal noch ne Frage, gibt es eigentlich vorgefertigte 3D-Engines?, sodass ich über VB.NET (oder wenn ich nicht daran vorbeikomme C#) ein 3D-Objekt z.B, mit

    Quellcode

    1. ​World.AddGameObject(GameObject)
    hinzufügen kann, und ich dem GameObject mit

    Quellcode

    1. ​GameObject.SetCoordinates(X, Y, Z)
    die Position ändern kann usw.

    Ich würde mich über weiterhelfende Beiträge freuen ;D
    Was ist denn mit MonoGame?

    Grüße
    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!:
    Bei MonoGame werden Objekte ja mit

    VB.NET-Quellcode

    1. Me.cubeModel.Draw(Me.worldMatrix, Me.viewMatrix, Me.projectionMatrix)

    gezeichnet.

    Mir ist hierbei unklar, wie ich genaue Koordinaten festlegen kann. Die Matrizen habe ich mit dem Beispielcode

    VB.NET-Quellcode

    1. Me.worldMatrix = Matrix.Identity
    2. Me.viewMatrix = Matrix.CreateLookAt(New Vector3(5.0F, 5.0F, 5.0F), New Vector3(0F, 0F, 0F), Vector3.Up)
    3. Me.projectionMatrix = Matrix.CreatePerspectiveFieldOfView(MathHelper.PiOver4, GraphicsDevice.Viewport.AspectRatio, 1.0F, 100.0F)


    festgelegt.

    Mfg robottron45

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „robottron45“ ()

    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!: