(Prozess Verteilung auf verschiedene Komponenten) VB Community Version

  • VB.NET

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

    (Prozess Verteilung auf verschiedene Komponenten) VB Community Version

    Schönnen guten Morgen
    Ich weiß nicht genau ob das Thema eha zu -> Schnittstellen/–Hardwareprogrammierung Passt aber.

    Ich habe Folgende Frage und zwar;
    Wenn ich ein Programm schreibe (Ein Spiel)
    Und es Peer Kompiler Laufen lasse merke ich oft
    das Meinche dinge nicht ganz Flüssig laufen :?
    Zb wenn ich Laufe und dabei Eine Funktion ausführe
    das Picture Boxen durch die gegen Fliegen und nach einer
    Berührung der seiten Fenster Despawnen Sprich sie werden gelöscht
    damit sie weniger Leistung des Pcs mit sich reißen können.
    So meine frage ist hier bei wen ich alles gleich zeitig mache Sprich laufen und die Funktion benutze
    (Option Strict On Befehl ist dabei Aktiv und schein kein Problem mit der Programmierung zu haben)
    Geht meine CPU direkt auf ca 30% hoch und das darf eigentlich nicht sein kann man die Auslastung reduzieren ?
    Mir wäre es wichtig dies mit einen vereinfachten code zu bewerkstelligen der gut erklärt ist da ich aus meinen Fehlern Lernen möchte.
    Bei den Komplizierten Codes Blicke ich fast nie durch o.o

    Danke in Voraus :)

    Ps mir geht es instinktiv eha um die Auslastung der CPU zu verringern
    oder eine Möglichkeit sie auf eine Wichtigeren Komponennte zu Übertragen.
    Sprich (Grafik anzeigen zb auf die Grafikkarte zu übertragen und zb Hintergrund Prozesse die Cpu zu nutzen)
    Hoffe man konnte alles verstehen weil oft mals gefragt wird bei mir was eigentlich die frage ist oder ob man ein code bekomme
    um das Problem besser zu Analysieren doch mir geht es eha mehr ums Theoretische als die Praxis :)

    Liebe Grüße
    VBGameCoder

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

    Mit Controls programmiert man keine Spiele, denn es sind halt Controls und keine GameObjects. Dazu kommt, dass GDI+ komplett auf der CPU rendert, weshalb auch die Auslastung so hoch ist. Am besten ist es, wenn du einfach eine Fertige Enigne (z.B. MonoGame, Sharpex2D oder Unity (nur C#) nimmst.
    natürlich kannst du auch mit z.B. SharpDX bzw. SlimDX eine eigene, auf DirectX basierende Engine schreiben, aber das ist nicht ganz so trivial, wie man sich das evtl. vorstellt.

    VB1963 schrieb:

    Sorry, was hat deine Überschrift VB Community Version mit deiner Frage zu tun?
    Auf alle Fälle hängt das Auslastungsproblem nicht mit der Version zusammen, sondern nur von deinem Code...
    Richtiges Threading hilft da schon weiter...


    Es gab die Version nicht zu Auswahl daher dachte ich schreibe es dort rein
    Threading sagst du ? okay dann werde ich mich mehr darüber informieren danke dir :)

    VB1963 schrieb:

    Richtiges Threading hilft da schon weiter...


    Korrekt, wobei das beim Bewegen von PictureBoxen schwer wird. Da biste nur noch am invoken, was den Thread hinfällig macht.
    "Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben."

    Wie debugge ich richtig? => Debuggen, Fehler finden und beseitigen
    Wie man VisualStudio nutzt? => VisualStudio richtig nutzen

    ichduersie schrieb:

    Mit Controls programmiert man keine Spiele, denn es sind halt Controls und keine GameObjects. Dazu kommt, dass GDI+ komplett auf der CPU rendert, weshalb auch die Auslastung so hoch ist. Am besten ist es, wenn du einfach eine Fertige Enigne (z.B. MonoGame, Sharpex2D oder Unity (nur C#) nimmst.
    natürlich kannst du auch mit z.B. SharpDX bzw. SlimDX eine eigene, auf DirectX basierende Engine schreiben, aber das ist nicht ganz so trivial, wie man sich das evtl. vorstellt.

    SharpDX bzw. SlimDX Kling sehr interessant ich werde das mir mal anschauen danke :)

    Korrekt, wobei das beim Bewegen von PictureBoxen schwer wird. Da biste nur noch am invoken, was den Thread hinfällig macht.​

    Gebe es den eine andere alternative ? :)

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

    Ja eine richtige Game Engine. Da gibt es meist sogenannte "GameObjects". Das sind eben wie Controls auch Objekte. Es sind halt Objekte für ein Spiel, während Controls eben Objekte für eine grafische Oberfläche sind.
    Man kann mit Controls ein Spiel Programmieren, ebenso kann man mit GameObjects grafische Oberflächen umsetzen; die Teile wären dann halt zweckentfremdet...

    ichduersie schrieb:

    Ja eine richtige Game Engine. Da gibt es meist sogenannte "GameObjects". Das sind eben wie Controls auch Objekte. Es sind halt Objekte für ein Spiel, während Controls eben Objekte für eine grafische Oberfläche sind.
    Man kann mit Controls ein Spiel Programmieren, ebenso kann man mit GameObjects grafische Oberflächen umsetzen; die Teile wären dann halt zweckentfremdet...


    Aber das ist nicht sowas wie RPG Maker schrott oder ? ^^"

    Liebe Grüße
    VBGameCoder
    Nein. Eine Game Engine ist einfach eine (oder mehrere) Bibliotheken, welche dir wie die ​System.Windows.Forms.dll vorgefertigte Klassen, Funktionen etc. stellt, damit du dich auf dein Spiel konzentrieren kannst, und dir nicht noch groß Gedanken über das Erstellen des Fensters, das Ansprechen der Grafikkarte (via OGL, DX oder Vulkan etc.), eine Physiksimulation etc. machen musst. Die Engine bietet dir das alles schon, sodass du direkt anfangen kannst, dein Spiel zu programmieren.

    ichduersie schrieb:

    Nein. Eine Game Engine ist einfach eine (oder mehrere) Bibliotheken, welche dir wie die ​System.Windows.Forms.dll vorgefertigte Klassen, Funktionen etc. stellt, damit du dich auf dein Spiel konzentrieren kannst, und dir nicht noch groß Gedanken über das Erstellen des Fensters, das Ansprechen der Grafikkarte (via OGL, DX oder Vulkan etc.), eine Physiksimulation etc. machen musst. Die Engine bietet dir das alles schon, sodass du direkt anfangen kannst, dein Spiel zu programmieren.


    Wow das Klinig nice :)

    VB1963 schrieb:

    Sorry, was hat deine Überschrift VB Community Version mit deiner Frage zu tun?
    Trotz dieses Hinweises hast Du das nicht geändert. Bitte wähle doch einen aussagekräftigen Titel, der auch Dein Problem beschreibt, @VBGameCoder.

    Zum Thema: Es gab hier schon mehrere Game Engines, die von Nutzern vorgestellt wurden und mit denen man 2D-Spiele entwickeln kann. Schaue Dir dazu z. B. mal Sharpex2D von @ThuCommix oder GameUtils von @Artentus an. Das liefert Dir soweit alles, was Du benötigst. Du solltest halt etwas Erfahrung und Verständnis in Mathematik mitbringen, was aber bei 2D noch relativ angenehm 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 :!:
    Vollzitat entfernt. ~Trade
    Wäre das so angemessen ?
    Wusste nicht das wen es einer sagt
    gleich Bedeutet das es gesetzt ist das man es Ändern muss
    zu dem es auch von einem User geschrieben wurden ist und kein Sub :)
    daher dachte ich es zu beantwortet würde reichen :)

    LG VBGameCoder

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

    VBGameCoder schrieb:

    Wäre das so angemessen ?
    Mir ist zwar weiterhin rätselhaft, was die VS Community Edition damit zu tun hat, aber sonst ja. :D

    VBGameCoder schrieb:

    Wusste nicht das wen es einer sagt gleich Bedeutet das es gesetzt ist das man es Ändern muss
    So war das ja auch nicht gemeint. Aber es dient generell evtl. als Hinweis, den man beachten sollte, wenn man das ganze nachvollziehen kann. Hier hat es den Sinn, dass man evtl. als Dritter Deinen Thread leichter finden und zuordnen kann.

    VBGameCoder schrieb:

    zu dem es auch von einem User geschrieben wurden ist und kein Sub
    Das ist natürlich auch richtig. ;) Allerdings darf ein normaler User natürlich auch auf etwas hinweisen.

    Aber egal, ist ja niemand gestorben und dem Hinweis wurde ja jetzt nachgegangen. :)

    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 :!:

    Trade schrieb:

    GameUtils von @Artentus
    Liegt seit geraumer Zeit leider auf Eis, andere Projekte gehen vor und so. ^^

    Jedenfalls an alle, die sich den Code durchsehen wollen um was zu lernen: vorsichtig sein, ich bin selbst noch längst nicht mit allem zufrieden. Nehmt euch das auch selbst zum Beispiel und versucht gar nicht erst Perfektion beim ersten Versuch zu erreichen, indem ihr von mir abschreibt, das funktioniert sowieso nicht. Learning by doing ist angesagt.