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

1

29.08.2014, 17:45

C# WPF für Animationen geeignet?

Hi,
momentan sitzt unser Team (2 Leute. Designer und Coder.) an unserem ersten Spiel, und haben auch schon die Oberfläche mit Photoshop und das Grundgerüst mit C# WPF (Visual Studio) gebastelt.
Nun stehen wir von einem Rätsel zum Thema Animationen. In den Foren habe ich schon einige Dinge gefunden, was leider noch nicht meine Frage beantworten konnte.
Ist WPF für Animationen geeignet oder sollten wir lieber umschwenken. Haben den großen Fehler gemacht mir WindowsForms anzufangen und möchten nicht nochmal so einen Anfänger Fehler machen. Und wie sollten die Animationen am besten erstellt werden? Bei der Erstellung eines GIFs ist der Verlust zu groß (Animation wird wegen Transparenz unschön). Theoretisch könnten Einzelbilder heraus-gerendert werden. Eventuell kann uns da jemand helfen. Da wir beide Hobby-Entwickler in unserer Freizeit sind und uns alles selbst aneignen, stehen wir leider meist direkt vor dem Offensichtlichen und erkennen es nicht.
Wir danken sehr für eure Zeit und Hilfe.

Sacaldur

Community-Fossil

Beiträge: 2 301

Wohnort: Berlin

Beruf: FIAE

  • Private Nachricht senden

2

29.08.2014, 18:28

Kommt darauf an, was du/ihr mit Animationen meinst/meint. Wenn man mit WPF arbeitet, dann sind das in der Regel Übergänge (Interpolationen) von Position, Rotation, Skalierung, Farbe etc.
Das was ihr wollt sind vermutlich die in Spielen üblichen, framebasierten Animationen. Grundsätzlich dürfte sowas möglich sein, indem laufend das Darzustellende Bild durch ein anderes ersetzt wird.

Je nach Spiel, welches ihr machen wollt, ist WPF evtl. nicht für euer Vorhaben geeignet. Die gesamte Darstellung ist, soweit ich das mitbekommen habe, sehr auf gutes Aussehen und nicht auf Performance ausgelegt. Mit WPF ist es also nicht unwahrscheinlich, dass ihr ziemlich schnell an ein paar Grenzen stoßt, obwohl der Rechner nicht zu schlecht ist.
Hier im Forum wurden immer mal wieder diverse Frameworks für C# genannt, wie MonoGame, SFML.Net, SDL.Net etc., welche wahrscheinlich für euer Vorhaben schon wesentlich besser geeignet sind. Ggf. könnte auch eine Engine, wie bspw. Unity für euch interessant sein.
Spieleentwickler in Berlin? (Thema in diesem Forum)
---
Es ist ja keine Schande etwas falsch zu machen, als Programmierer tu ich das täglich, [...].

3

29.08.2014, 18:49

Vielen Dank für die schnelle Antwort.
Ich dachte mir schon das wir auch mit WPF nicht das richtige genommen haben. Aber der Programmierteil ist ja relativ schnell neu zu machen.
Unity kommt leider nicht in Frage, da wir keine Lizenz dafür haben. Und die kostenlose Version wegen der kommerziellen Restriktion nicht nutzbar.
Denke mal das wir und dann mal diverse Frameworks ansehen werden.
Wonach sollte ich am besten Googlen um ein Tutorial für Framebasierte Animationen zu finden? (orientiere mich standardmäßig an den Adobe Guides)
Persönlich kann ich locker Sprites/Frames/Gifs erstellen. Aber ich stelle mir die Frage, was als Format am Ende rauskommen soll um es als Animation im Game zu verwenden. Möglich ist das ich Transparenzen entferne und GIFs nehme. Würde ich aber schade finden, da man beispielsweise nicht mehr durch Rauch hindurch sehen kann.

Sacaldur

Community-Fossil

Beiträge: 2 301

Wohnort: Berlin

Beruf: FIAE

  • Private Nachricht senden

4

29.08.2014, 19:53

Gifs wird man in den meisten Umgebungen ohnehin nicht animiert laden können und man müsste sich am Ende ohnehin selbst darum kümmern, dass es animiert dargestellt wird. Grundsätzlich kann man einfach irgendwas nehmen, was die eigenen Anforderungen abdeckt und geladen werden kann, meist ist das bei Grafiken PNG, wenn keine Qualitätsverluste gewünscht sind (ist meistens bei 2D Spielen der Fall), oder JPEG.
Derartige Animationen sehen in der Regel so aus, dass man mehrere Frames hat, die nacheinander angezeigt werden. Es ist zwar möglich, jeden Frame in ein einzelnes Bild zu speichern, nur ist das i. d. R. weniger Performant, als ein einziges Bild zu verwenden, in welches die Frames optimal gepackt wurden.
Eine andere Möglichkeit, im 2D Bereich Animationen zu haben, wäre mit Hilfe skeletaler Animationen. Ein Objekt wird dabei in mehrere Teile aufgeteilt (Körper, rechter und linker Arm, rechtes und linkes Bein, Kopf, ...) und anhand der Verbindungspunkte, der Rotation des jeweiligen Einzelteils und ggf. weiterer Parameter (bspw. Verzerrungen) werden dann alle Einzelteile in der richtigen Reihenfolge an die richtigen Stellen gezeichnet.

Man kann mit der kostenlosen Unity-Version sein Spiel verkaufen, bis man (meines Wissens) 100.000 € eingenommen hat und danach muss man erst die Pro-Lizenz kaufen. Hat man aber erstmal solche Einnahmen erzielt, dürfte der Erwerb einer (oder in eurem Fall zweier) Lizenz(en) nicht weiter problematisch sein.
Spieleentwickler in Berlin? (Thema in diesem Forum)
---
Es ist ja keine Schande etwas falsch zu machen, als Programmierer tu ich das täglich, [...].

5

29.08.2014, 20:08

Vielen Vielen Dank für die Informationsreiche und sehr kompetente Antwort.
Wir werden Unity auf jedenfall nochmal überdenken. Werde dann meine Animation als PNG-Frames heraus-rendern.
Es ist nur etwas irritierend, dass es teilweise bis zu über 30 Frames pro Animation kommen kann. Arbeite mich dann in die Sprite Generierung ein.
Vielen Dank.

NyNooNyrox

Frischling

Beiträge: 38

Wohnort: Gänserndorf

Beruf: Mechatroniker

  • Private Nachricht senden

6

17.09.2014, 05:23

Hallo,

Falls ihr Unity nicht benutzen könnt, dann bleibt noch XNA übrig. Damit sollte das ganze auch relativ leicht funktionieren.
Ich selbst programmiere nur mit XNA und bin glücklich bis jetzt über diese Auswahl.

Ich kenne eure Lage. Ich wollte damals auch ein Spiel in WPF und Forms programmieren.
Nunja, geworden ist es am Ende nie etwas ^.^

Durch Zufall bin ich damals auf XNA gestoßen (siehe Riemers Tutorial) und habe mich damit beschäftigt.
Nach kurzer Zeit solltest du die Basics können und deine "Animationen" sollten dann nur noch in der Logik stecken ;D

Mit freundlichen Grüßen

Meine Aussagen mögen Sarkasmus und andere nicht wirklich ernst zunehmende Dinge beinhalten.
Aus diesem Grund übernehme ich keine Haftung wenn der Elefant aus der Kühltruhe fliegt.

hawkeye_de

Frischling

Beiträge: 70

Wohnort: Baden-Württemberg

  • Private Nachricht senden

7

21.09.2014, 09:32

Man kann nicht pauschal sagen, dass WPF nicht geeignet wäre ein Spiel zu entwickeln. Als Gegenargument nenne ich nur ein auf Steam verfügbares Spiel, welches mit WPF entwickelt wurde: Gridiron Solitaire

Es kommt vielmehr darauf an, was man entwickeln möchte....für die meisten Spiele würde ich es auch nicht nehmen. Ich selber entwickle eine U-Boot Simulation. Um Karten, Anzeigen etc. darzustellen, ist es sehr gut geeignet und es gibt wohl auch kaum ein besseres UI Framework. Ausserdem hat man ein Bitmap-Control zur Verfügung, welches auch für low-level, high-performance rendering geeignet ist. (z.b. via unmanaged code).
"Große Geister besprechen Ideen; durchschnittliche Geister besprechen Ereignisse; kleine Geister besprechen andere Leute"

-Admiral USN Hyman Rickover, Vater des 1. Atom U-Boots "Nautilus"

Sacaldur

Community-Fossil

Beiträge: 2 301

Wohnort: Berlin

Beruf: FIAE

  • Private Nachricht senden

8

21.09.2014, 12:05

Viele denken bei "Spiel" (bzw. 2D Spiel) bereits an etwas sehr konkretes, wie ein Jump'n'Run, Shooter, Strategiespiel o. ä. Dadurch denkt man auch schon an diverse Anforderungen, wie das rotierte, skalierte oder anders transformierte Darstellen von Grafiken, Partikel-Effekte, Darstellung von (idealerweise texturierten) Polygonen, Shader und das alles natürlich performant (bspw. durch Hardwarebeschleunigung) und leicht zugänglich. Bei WPF denkt man allerdings an grafische Oberflächen, eventuell auch an diverse Vorteile von WPF (Data Binding, Animationen, Styles, ...), aber wahrscheinlich eher(/gar) nicht an die Umwege, die man bei WPF gehen kann, um händisch sein Zeug zur Anzeige zu bringen, oder an Spiele, die auch großteils ausschließlich aus einem UI bestehen können.

Auch habe ich nicht ausgeschlossen, dass WPF für bestimmte Arten von Spielen verwendet werden kann, nur hat der Ersteller des Themas sich noch nicht weiter dazu geäußert, was sein Spiel mal werden soll. Ich gehe aber einfach mal davon aus, dass es kein Spiel sein wird, bei dem ausschließlich UI ausreichen wird.
Spieleentwickler in Berlin? (Thema in diesem Forum)
---
Es ist ja keine Schande etwas falsch zu machen, als Programmierer tu ich das täglich, [...].

9

22.09.2014, 09:23

Wenn es dir um eine Animationsklasse geht, kannst du dir vielleicht den folgenden Artikel im SFML wiki (c++ und für sfml, sollte aber ohne weiteres übertragbar sein) durchlesen.
SFML c++ Animations

Beste Grüße,
Laguna
Portfolio runvs.io | Gamejolt | itch.io | PEWN | Twitter

10

05.10.2014, 19:03

Hey,
tut mir leid das ich einige Zeit inaktiv war, aber die Arbeit und das Lernen hat mich alles andere total vergessen lassen.
Wir haben erneut über eure Vorschläge nachgedachte und kamen zu dem Entschluss, dass wir jetzt doch mit Unity arbeiten sollten.
Auch wenn noch keine Lizenz besteht, so können wir bei einem 2D-Spiel auf das gröbste zugreifen.
Die Idee oder beziehungsweise das Genre ist nicht wirklich definiert. Es wird eine zwei Spieler Entwicklung für einen PC. Die Mechanik dahinter ist sehr simple. Doch das Anspruchsvolle sind die sich im Hintergrund befindlichen Animationen. Dafür verwenden wir nun Sprite-sheets, welche ich in Photoshop erstelle.
Ich werde euch einen Download-link zur Verfügung stellen, wenn die Alpha Version fertig ist.
Danke für die Antworten

Werbeanzeige