Eigene Sharp-DX Engine - Feedback erwünscht

Alles Wissenswerte über Skripte, Browser, Makros, PhP, HTML...

Moderatoren: Moderatoren, Redakteure

Antworten
Benutzeravatar
NekuSoul
Beiträge: 483
Registriert: 06.03.2010 17:47
Persönliche Nachricht:

Eigene Sharp-DX Engine - Feedback erwünscht

Beitrag von NekuSoul »

Bild
Hier möchte ich einmal meine auf SharpDX basierende Engine vorstellen. :D Sie ist in C# geschrieben und darauf ausgelegt performancemäßig gut dazustehen und dabei trotzdem einfach benutzbar sein. Das ganze basiert wir gesagt auf SharpDX, einer OpenSource API die es sich zum Ziel gesetzt hat die DirectX-API für .NET verfügbar zu machen. Ich habe mich dabei für Direct2D entschieden welches sich später am besten für sogenannte "Pixelperfekte" Spiele wie etwa Cave Story eignet. 8) Momentan läuft es auch mit einer recht großen Anzahl an Objekten im fünfstelligen Bereich mit flüssigen 60 FPS auf einer IntelHD. Die FPS sind momentan nur durch VSync limitiert. Ohne VSync lande ich bei rund 300 FPS. 8O

Soweit zum technischen. Warum ich mich entschieden habe meine eigene Engine zu schreiben? Ganz einfach: Da C# meine bevorzugte Sprache ist bleiben mir für die Game-Entwicklung nur 2 Möglichkeiten: XNA oder Unity. XNA war Anfangs ganz nett vom Aufbau und ist sehr leicht zu lernen, allerdings geht die Performance bei vielen Objekten sehr schnell in den Keller. :( Zudem gibt es im Moment keine funktionierende Version für Visual Studio 2012. :? Wann und ob überhaupt eine neue Version kommt steht bisher noch in den Sternen. Wer schonmal mit XNA gearbeitet hat wird deshalb auch viele Parallelen zu XNA in meiner Engine finden. Und Unity? Angetest, schnell verworfen. Fühlt sich einfach viel zu "overpowered" für mein Vorhaben an. Dann wurde ich auf SharpDX aufmerksam gemacht und dann ist mir auch recht schnell die Idee gekommen eine Engine zu schreiben. :mrgreen:

Hier ist sie nun. Eine Probe gibt es auf Youtube, wo ich eine alte XNA-Demo in meine neue Engine portiert habe. Die Anwendung kann man sich hier herunterladen. Den aus lediglich 53 Zeilen bestehenden SourceCode gibt es hier.
Den SourceCode der Engine gibt es frei für alle auf GitHub.

So, und wer mir etwas gefallen tun möchte kann das: Ladet euch einfach einmal die Demo herunter und testet sie aus. Einzige Voraussetzung ist ein Rechner mit Windows Vista aufwärts. Jede Art von Feedback ist erwünscht. Besonders würde mich interresieren mit wie viel FPS es bei euch läuft und ob die Geschwindigkeit von der im Video abweicht. Wenn ihr die FPS messen wollt müsst ihr auf Dxtory zurückgreifen da Fraps kein Direct2D unterstützt. :?
Bild
Benutzeravatar
Scorcher24_
Beiträge: 15527
Registriert: 11.11.2004 14:31
Persönliche Nachricht:

Re: Eigene Sharp-DX Engine - Feedback erwünscht

Beitrag von Scorcher24_ »

Mach nen Game wenn du was machen willst, Engines gibts genug. Meine hab ich auch gecannt und mach jetzt was kreatives mit existierenden. Es ist einfach viel zu viel arbyte. Ich schreib noch hin und wieder daran, aber im Prinzip verworfen und ich mach das nur wenn ich mal Bock hab.
Aber was genau ist denn da jetzt eigentlich die Engine?

Nen paar tausend Objekte darzustellen mit DirectX oder OpenGL ist ja jetzt nicht das Problem, solange man batcht und optimiert. Wo ist die Spezialität? Ich dachte erst es ist ne Partikel Engine, aber das scheint ja nicht so zu sein. Die heutigen Füllraten sind so schnell, da sind die 300 FPS nicht wirklich beeindruckend, sorry^^. Ogre3D mit nen paar Millionen Vertices auf 250 FPS, das ist schon was anderes hehe.

Unity ist natürlich mit Kanonen auf Spatzen schiessen und 2D ist damit imho sehr umständlich.
Was für ein Spiel möchtest du denn machen? GameMaker ist eine gute Wahl als Engine oder auch Torque2D. Wobei mir GameMaker besser gefällt, ich mit Torque aber auch 2 Spiele gemacht habe, die nicht veröffentlicht wurden bzw nur im Freundeskreis.

Wenn du mir mehr sagst könnte ich mal nen Prototyp mit GameMaker machen, dann siehst dass es geht.
Den kann man übrigens mit selbst geschriebenen Extensions erweitern :).
Benutzeravatar
NekuSoul
Beiträge: 483
Registriert: 06.03.2010 17:47
Persönliche Nachricht:

Re: Eigene Sharp-DX Engine - Feedback erwünscht

Beitrag von NekuSoul »

Scorcher24 hat geschrieben:Mach nen Game wenn du was machen willst, Engines gibts genug. Meine hab ich auch gecannt und mach jetzt was kreatives mit existierenden. Es ist einfach viel zu viel arbyte. Ich schreib noch hin und wieder daran, aber im Prinzip verworfen und ich mach das nur wenn ich mal Bock hab.
Aber was genau ist denn da jetzt eigentlich die Engine?
Joa, dein Game hab ich im Steam Workshop auch schon gesehen und gespielt. :wink: Ich weiß auch dass ich es mir einfach machen könnte, aber irgendwie habe ich mehr Spaß daran im Code zu wühlen und ein paar interessante Demos aufzubauen. Ob ich es wirklich eine Engine hätte nenne sollte habe ich mir auch überlegt, vielleicht wäre "Wrapper" oder"Framework" besser gewesen.
Nen paar tausend Objekte darzustellen mit DirectX oder OpenGL ist ja jetzt nicht das Problem, solange man batcht und optimiert. Wo ist die Spezialität? Ich dachte erst es ist ne Partikel Engine, aber das scheint ja nicht so zu sein. Die heutigen Füllraten sind so schnell, da sind die 300 FPS nicht wirklich beeindruckend, sorry^^. Ogre3D mit nen paar Millionen Vertices auf 250 FPS, das ist schon was anderes hehe.
Stimmt natürlich auch, jedoch beziehe ich das ganze eher auf XNA, welches bei ähnlichen Performance-Tests einfach zusammenbricht. Auf einer IntelHD wohlgemerkt. :?
Unity ist natürlich mit Kanonen auf Spatzen schiessen und 2D ist damit imho sehr umständlich.
Was für ein Spiel möchtest du denn machen? GameMaker ist eine gute Wahl als Engine oder auch Torque2D. Wobei mir GameMaker besser gefällt, ich mit Torque aber auch 2 Spiele gemacht habe, die nicht veröffentlicht wurden bzw nur im Freundeskreis.
Wie gesagt es sind bis jetzt eher kleine Konzepte. Im Moment versuche ich mich an einer Art Labyrinth, welches erst langsam durch entdecken sichtbar wird. Der erste Prototyp funktioniert soweit sehr gut und auch hier besteht der Sourcecode aus sehr wenigen Zeilen, weshalb ich auch so zufrieden bin. Hier ein Screenshot:Bild
Wenn du mir mehr sagst könnte ich mal nen Prototyp mit GameMaker machen, dann siehst dass es geht.
Den kann man übrigens mit selbst geschriebenen Extensions erweitern :).
Der Prototyp steht ja schon, aber die Extensions machen mich neugierig. Die begrenzte Funktionalität hat mich bisher in den zugegebenerweise recht kurzen Ausflügen zum GameMaker gestört. :(
Bild
Benutzeravatar
Scorcher24_
Beiträge: 15527
Registriert: 11.11.2004 14:31
Persönliche Nachricht:

Re: Eigene Sharp-DX Engine - Feedback erwünscht

Beitrag von Scorcher24_ »

So begrenzt ist GameMaker nicht. Das macht nur den Anschein wenn man nur die Drag and Drop Sachen benutzt. Benutzt man aber Code, kann man mit GameMaker auch komplexe 3D Spiele machen. Gibt auch GMOgre, ein Port der Ogre3D Engine nach GML, der Scriptsprache. GM ist grundsätzlich natürlich für 2D besser geeignet, aber im Prinzip gehts.
http://wiki.yoyogames.com/index.php/GML ... to_3D_Mode

Und wenns um Zeichenfunktionen für Fog of War etc geht, da gibts Surfaces in GameMaker.

Mein Rat: Lass XNA. Das wird nicht fortgeführt und ist ein sinkendes und totes Schiff. Es stand ja sogar im Raum dass Windows8 XNA (respektive .net) überhaupt nicht unterstützen soll.

Wenns schon C# sein muss, benutze MonoGame. Mono läuft auch auf Mac und Linux.
http://monogame.codeplex.com/
Benutzeravatar
NekuSoul
Beiträge: 483
Registriert: 06.03.2010 17:47
Persönliche Nachricht:

Re: Eigene Sharp-DX Engine - Feedback erwünscht

Beitrag von NekuSoul »

Okay, mir ist bei meinen recht kurzen Versuchen noch nicht aufgefallen dass man in GameMaker auch eigenen Code benutzen kann machen kann. Wär also eventuell nochmal einen Blick wert, auch wenn ich momentan recht zufrieden mit SharpDX+Engine bin.
Und zur Empfehlung von XNA wegzugehen: Wie ich im ersten Post bereits erwähnte, verwende ich kein XNA, sondern SharpDX welches einem die volle DirectX API unter .Net bietet. Den Wechsel habe ich ja erst vollzogen da Microsoft ja XNA einstellen möchte, bzw. dank fehlendem Support für VS2012 und dem Windows Store schon dabei ist.
MonoGame basiert unter anderem auch auf SharpDX, wobei SharpDX von sich aus bereits Mono unterstützen soll. Zudem gibt es auch eine Version für den Windows Store. Das Kuriose daran ist aber das Microsoft für Solitaire und co. (und viele andere 3D-Spiele im Store) selber auf SharpDX zurückgreifen. 8O
Bild
Benutzeravatar
Scorcher24_
Beiträge: 15527
Registriert: 11.11.2004 14:31
Persönliche Nachricht:

Re: Eigene Sharp-DX Engine - Feedback erwünscht

Beitrag von Scorcher24_ »

Okay, das habe ich dann missverstanden. Aber mit DirectX legst du dich halt auch auf Windows fest solange es keine OpenGL Implementierung von SharpDX gibt. Ist immer ein Risiko sich auf eine Platform zu binden, egal welche.

Ich erforsche grade Wege meine Games über HTML 5 online zu stellen und damit Geld über Kongregate und andere Seiten zu verdienen. Sobald ich ein solideres Game habe werde ich ein Gewerbe anmelden und das Risiko eingehen. OpenGL kann btw alles was DirectX auch kann.

Ich denke mal du hast einen anderen Fokus als ich, nimm meine Posts daher bitte mit einer Prise Salz, aber trotzdem solltest du drüber nachdenken imho :). Grade jetzt wo Smartphones/Tablets, egal ob Android oder iOS, so im kommen sind.

Anyway, lass was hören was du machst, egal was. Ich helfe gerne mit Theorie wo ich kann. Mit C# direkt hab ich aber leider keine Erfahrung :D.
Übrigens, einige Seiten für Programmierer die wichtig sind:
http://stackoverflow.com
http://gamedev.stackexchange.com/
http://reddit.com/r/GameDev

Falls du die nicht kennst^^.
Benutzeravatar
NekuSoul
Beiträge: 483
Registriert: 06.03.2010 17:47
Persönliche Nachricht:

Re: Eigene Sharp-DX Engine - Feedback erwünscht

Beitrag von NekuSoul »

Über andere Plattformen habe schon mal nachgedacht. Smartphones etc. bin ich grundsätzlich eher abgeneigt, ich schleife lieber Laptops hinter mir her. :wink:
Einen Wechsel auf OpenGL könnte ich mir da schon eher vorstellen, sollte sich Linux sich demnächst mal auf meinem Laptop durchsetzen können, wenn Valve es denn wirklich schafft den Linux-Markt zu erobern.
Etwas kommerzielles habe ich momentan auch gar nicht vor, mir gefällt es einfach OpenSource etwas zu entwickeln. Mein bisher größtes Projekt bisher ist übrigens mein 3DS-Video-Converter mit ungefähr 20.000 Downloads und AFAIK der einzigste der noch aktiv weiterentwickelt wird.

PS: /r/Gamedev war mir bisher unbekannt, danke! Und viel Glück mit deinem Vorhaben :D
Bild
Benutzeravatar
Scorcher24_
Beiträge: 15527
Registriert: 11.11.2004 14:31
Persönliche Nachricht:

Re: Eigene Sharp-DX Engine - Feedback erwünscht

Beitrag von Scorcher24_ »

Open Source mache ich auch einiges:
http://code.google.com/u/Scorcher24@gmail.com/

Der converter sieht nice aus, aber ich bin mehr der C++ Typ :P.
Antworten