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

23.06.2009, 23:57

XNA - C#

Hi, hat jemand erfahrungen mit XNA, oder kennt gute Tuts...

Ich hab ne ganze weile mit MDX gearbeitet, höre aber immer mehr das XNA watt kleinet bissgen besser sein soll.

Danke für ein wenig hilfe für einen XNA neuling... :D

TrommlBomml

Community-Fossil

Beiträge: 2 117

Wohnort: Berlin

Beruf: Software-Entwickler

  • Private Nachricht senden

2

24.06.2009, 00:09

cna ist ziemlich gut da du einen guten, schnellen und konfortablen einstieg in spieleprogrammierung bekommst. du hast recht mächtige werkzeuge womit man eigentlich alles machen kann was das herz begehrt.

mein tipp: anschauen, probieren und gucken ob die art zu programmieren was für dich ist!

3

24.06.2009, 00:53

Jap, XNA ist wirklich ziemlich gut! XNA kann man betrachten wie ein zwischending aus Engine und API. Es bietet alles was Direct3D9 9.0c kann an und zusätzlich noch eine sehr ausgebaute Hilfsfunktionen sammlung. Beispielsweise für Kollisionsabfragen hast du eine riesen ansammlung von Funktionen, außerdem baut es auf einem BasicEffect System auf (was ich in meinem Framework ein wenig abgeguckt hab) auf, welches schon viele nützliche Shader techniken beinhaltet wie Perpixel Lighting etc ... . Der Code ist sehr gut gestaltet, ein echt geniales Design und einen imensen umfang an funktionalität. Kurz und knapp: XNA verbindet einfachheit und flexibilität in einer perfekten balance!

Leider hat das ganze auch so eine Nachteile. Da XNA auf C# aufbaut ist es in manchen sachen ein wenig langsammer als C++ und man kann die EXE so zu sagen Decompalieren, wodurch deine Programme/Spiele praktisch immer Open Source sind.

Wie TrommlBomml schon sagte ist XNA optimal um in der Spieleprogrammierung ein zu steigen und auch für etwas größere Projekte kann man es auch mitlerweile verwenden, solange das Spiel nur auf Windows oder XBOX laufen soll.

XNA sollte man auf jeden fall mal testen, aber mein persöhnlicher favorite ist und bleibt C++ mit OpenGL/DirectX!

4

24.06.2009, 07:57

ich denke ich werde XNA mal durchnehmen. Ich hab auch gesehen das bestimmte Funktionen schon da sind, anstatt alles auf "zu Fuss" zu Programmieren. Einerseits schön da schnell aber andererseits abhängig von festen werten(warscheinlich). Ich arbeite mich mal rein.

Danke für die Ausführlichen Antworten... :o

WhiteMike

Alter Hase

Beiträge: 507

Wohnort: Ulm

Beruf: Schüler

  • Private Nachricht senden

5

24.06.2009, 12:22

Zitat von »"Deppomat"«

Jap, XNA ist wirklich ziemlich gut! XNA kann man betrachten wie ein zwischending aus Engine und API. Es bietet alles was Direct3D9 9.0c kann an und zusätzlich noch eine sehr ausgebaute Hilfsfunktionen sammlung. Beispielsweise für Kollisionsabfragen hast du eine riesen ansammlung von Funktionen, außerdem baut es auf einem BasicEffect System auf (was ich in meinem Framework ein wenig abgeguckt hab) auf, welches schon viele nützliche Shader techniken beinhaltet wie Perpixel Lighting etc ... . Der Code ist sehr gut gestaltet, ein echt geniales Design und einen imensen umfang an funktionalität. Kurz und knapp: XNA verbindet einfachheit und flexibilität in einer perfekten balance!

Leider hat das ganze auch so eine Nachteile. Da XNA auf C# aufbaut ist es in manchen sachen ein wenig langsammer als C++ und man kann die EXE so zu sagen Decompalieren, wodurch deine Programme/Spiele praktisch immer Open Source sind.

Wie TrommlBomml schon sagte ist XNA optimal um in der Spieleprogrammierung ein zu steigen und auch für etwas größere Projekte kann man es auch mitlerweile verwenden, solange das Spiel nur auf Windows oder XBOX laufen soll.

XNA sollte man auf jeden fall mal testen, aber mein persöhnlicher favorite ist und bleibt C++ mit OpenGL/DirectX!


Erstens wollte ich aus Interesse nachfragen, ob es für XNA nicht irgendwelche Projekte gibt, die die Funktionalität auch auf beispielsweise Linux anbieten. Für C# selbst gibt es ja sowas.

Und dann wollte ich ebenfalls aus Interesse nachfragen, ob man auch bei Java damit rechnen muss, dass die Projekte quasi OpenSource sind, weil dort ja ebenfalls eine Runtime verwendet wird.

Mit freundlichen Grüßen,
WhiteMike

6

24.06.2009, 12:53

Zitat

Erstens wollte ich aus Interesse nachfragen, ob es für XNA nicht irgendwelche Projekte gibt, die die Funktionalität auch auf beispielsweise Linux anbieten. Für C# selbst gibt es ja sowas.


XNA selbst wird warscheinlich nicht auf Linus laufen, da es ja schließlich auf DX und der WinAPI basiert. Slebstverständlich könnte man sich einen wrapper sschreiben, der für windows XNA verwendet und für Linux halt OpenGL, ob das aber besser wäre als wenn man direct Direct3D benutzt ist fragwürdig.

Zitat

Und dann wollte ich ebenfalls aus Interesse nachfragen, ob man auch bei Java damit rechnen muss, dass die Projekte quasi OpenSource sind, weil dort ja ebenfalls eine Runtime verwendet wird.


Von Java habe ich keine Ahnung, kann mich nurnoch an einer ganz netten Diskussion aus dem xnamag.de Forum erinnern, wo es darum gin, und wie man seinen Code schützen kann. Beispielsweise wurd empfohlen sich ein gewisses programm runter zu laden was die variablenamen praktisch und nach voll ziehbar macht, ebenso wie die Funktionsnamen, klassen, etc ..., dann wird zum beispiel aus CreateImage() plötzlich Ac4hGOU84hG(). Demnach sollte das die beste Möglichkeit sein sich vor den so genannten "Obsuvugatoren" (Das Wort werd ich wohl nie schreiben können) schützen!

Das war übrigends auch der Hauptgrund warum ich von XNA & C# auf Direct3D/OpenGL & C++ umgestiegen bin.

VuuRWerK

Frischling

Beiträge: 59

Wohnort: Dresden

Beruf: Softwareentwickler

  • Private Nachricht senden

7

24.06.2009, 19:11

@WhiteMike: C# ist plattformunabhängig! Was Du meinst ist Mono und das ist eine plattformunabhängige Implementierung des .NET-Frameworks. Es wird an dieser Stelle immer wieder gern C# mit .NET zusammengeworfen aber es sind 2 Paar Schuhe ;)

@Deppomat: Obfuscator (engl. für Verdunkler) ;)

Aber um das ganze noch ein wenig aufzumischen :) Es gibt auch Disassembler für Binaries und Tools die aus dem ASM dann C++ generieren. Der Code hat zwar dann gar nix mehr mit dem zu tun was man selber geschrieben hat aber man hat wieder C++, was denkt ihr wie die ganzen Cracker an die Sache rangehen (wobei diese meist schon den ASM verändern).

Gut Schuß
VuuRWerK ;)
http://german-bash.org/212445
"C makes it easy to shoot yourself in the foot; C++ makes it harder, but when you do it blows your whole leg off." - Bjarne Stroustrup

8

24.06.2009, 22:43

Nunja, ein Game zu Disassemblen, also dann auch zu verstehen was gerade gemacht wird dauert nen wenig, und wenn man es wieder in c++ umwandelt kann man den Code sowieso in die tonne hauen.

In C# kann man die variable Namen etc, wiederherstellen, und somit kann man praktisch eine 1 zu 1 Kopie vom original Code.

WhiteMike

Alter Hase

Beiträge: 507

Wohnort: Ulm

Beruf: Schüler

  • Private Nachricht senden

9

27.06.2009, 18:38

Zitat von »"VuuRWerK"«

@WhiteMike: C# ist plattformunabhängig! Was Du meinst ist Mono und das ist eine plattformunabhängige Implementierung des .NET-Frameworks. Es wird an dieser Stelle immer wieder gern C# mit .NET zusammengeworfen aber es sind 2 Paar Schuhe ;)


Ich hab nicht geschrieben, dass C# nicht plattformunabhängig ist.

Zitat von »"VuuRWerK"«


Aber um das ganze noch ein wenig aufzumischen :) Es gibt auch Disassembler für Binaries und Tools die aus dem ASM dann C++ generieren. Der Code hat zwar dann gar nix mehr mit dem zu tun was man selber geschrieben hat aber man hat wieder C++, was denkt ihr wie die ganzen Cracker an die Sache rangehen (wobei diese meist schon den ASM verändern).


Kann man aus ASM wirklich C++ wiederherstellen? Ist es nicht nur bis C möglich?

Mit freundlichen Grüßen,
WhiteMike

drakon

Supermoderator

Beiträge: 6 513

Wohnort: Schweiz

Beruf: Entrepreneur

  • Private Nachricht senden

10

27.06.2009, 18:58

Ich bezweifle einmal, dass C++ sinnvoll rekonstruiert werden kann. Alleine schon die Verwendung von templates können, denke ich, kaum rekonstruiert werden.

Bis zu einem gewissen Grad können bestimmt Hochsprachen erzeugt werden aus dem Assembler Code, aber das da viel gescheites dabei rauskommt bezweifle ich. Da wird wohl eher der Assemblercode selbst studiert.

Werbeanzeige