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

26.08.2013, 14:00

Anfang mit C++ und DirectX

Hallo erst mal :)

Ich interessiere mich schon lange für die Spieleentwicklung bin aber bis jetzt noch nie dazugekommen ein eigenes Projekt zu starten.

Ich programmiere seit vielen Jahren in C# und auch C++ nachdem ich mich nun etwas informiert habe, (und ich muss gestehen dass ich blutiger Spielentwicklungsanfänger bin) denke ich es ist richtig wenn ich sage: "C++ und DirectX sind sicher viel Arbeit aber wer das kann hat auch alle Werkzeuge für alles denkbare :)"
[Bitte verbessern falls nötig!]

Ich habe gesehen hier im Forum gibt es auch eine Auswahl von Buchempfehlungen zu dem Thema. (Die ich mir mal genau ansehen werde :))


Nun zu meiner eigentlich Frage:

Wie gesagt würde ich gerne mal ein Spiel programmieren, und ich habe auch durchaus Lust mich tief in schwierige Themen einzuarbeiten. Ich persönlich denke das ich mit etwas Fleiß am mit C++ und DirectX am weitesten kommen würde, allerdings bin ich wie gesagt Anfänger. Hat wer Alternativen die vergleichbar sind?

Ich meine da gab es mal XNA was mir zugesagt hat, weil es C# tauglich war. Wird aber meines Wissens nicht mehr wirklich weiterentwickelt.
Unity habe ich gesehen. Ist meines Wissens eine Enginge die auf DirectX zurückgreift. (Quasi Kapselt)

Weiters frage ich mich ob es klug ist gleich mit (sollte ich mich dafür entscheiden) C++ und DirectX 11 anzufangen, habe in ein paar Foren gelesen, dass es empfohlen wird mit DirectX9 anzufangen da der Umstieg dann leicht sein soll und das noch "greifbarer" ist.



Kurzum Ich habe den Entschluss gefasst mich damit zu beschäftigen weiß aber nicht genau was wirklich Sinn macht :)
(Und hoffe auf Konstruktiven Input!)



Danke im Voraus

Bador



PS: Weil mir das gerade noch einfällt, ich habe keine Präferenzen bezüglich 2D oder 3D möchte alles können :)

KeksX

Community-Fossil

Beiträge: 2 107

Beruf: Game Designer

  • Private Nachricht senden

2

26.08.2013, 14:23

Das ist eigentlich ganz simpel:

Fängst du mit XNA an, dann programmierst du dir dein eigenes kleines Framework, das sehr schnell zu einem Spiel wird. Dir wird viel Arbeit abgenommen, aber du musst dich auch um vieles selber kümmern. Du kannst hier sehr schnell kleinere Spielchen basteln, aber für große Projekte wirst du als Neuling sehr lange brauchen.

Fängst du mit Unity an, wird dir sehr viel Arbeit abgenommen, noch mehr als bei XNA. Es gibt einen ausführlichen Editor, vorgefertigte Scripts und so weiter und so fort. Hier kannst du auch sehr schnell größere Projekte realisieren, da z.B. Sachen wie Level Design alle in Unity geschehen können und du nicht erst externe Tools benötigst.

Fängst du mit DirectX an, wird dir nur sehr wenig abgenommen und du musst fast alles, was dir bei XNA und co gegeben wird, selber schreiben. Du hast hier den längsten Weg bis zum Ziel, hast dann natürlich aber auch volle Kontrolle über das, was geschieht, und der Lernerfolg ist sicherlich der größte.

Ist dein Ziel später mal eine Engine zu schreiben? Willst du möglichst viel über die Technik hinter Spielen wissen? Dann lerne DirectX ohne Umwege.
Hast du eine Spieleidee und möchtest sie unbedingt schnell umsetzen? Nimm Unity ODER XNA(oder etwas ähnliches) - abhängig von der Idee und wie viel du tatsächlich in die Programmierung einsteigen willst.
Hast du zwar keine Spieleidee, möchtest aber trotzdem das entwickeln von Spielen lernen und dabei noch relativ großen Einblick in die Technik dahinter haben? Dann nimm XNA. Oder eine andere Library, mit der du leicht Spiele programmieren kannst. SFML, SDL, HGE... Da gibt es so viele.


Eins noch:
Ob du zuerst 2D oder 3D lernst macht faktisch keinen Unterschied, ich würde aber empfehlen, zuerst mit 3D anzufangen. Der Unterschied von 3D auf 2D fällt leichter, als der Umstieg von 2D auf 3D

Und als kleine Motivation sich auch mal zu trauen, nicht den augenscheinlichen schwierigsten Weg zu gehen:
http://scientificninja.com/blog/write-games-not-engines
WIP Website: kevinheese.de

Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von »KeksX« (26.08.2013, 14:31)


3

26.08.2013, 14:36

Hi,

und danke für die schnelle Antwort.

Mein Wunsch ist es irgendwann mal ein Strategiespiel zu entwickeln alla Command and Conquer.
(Das dies nicht innerhalb eines Tages oder Monats geschehen wird ist mir allerdings natürlich bewusst.)

Meine Intention dahinter ist nicht es so schnell wie möglich zu vollenden, sondern so viel wie möglich dabei zu lernen.
Also wird's letztendlich eine Engine werden, und natürlich auch die grafischen Elemente.
(Viel Arbeit also)

Habe aber auch nix dagegen vorher mit kleineren Projekten zu beginnen. (Es gibt wie gesagt kein Zeitlimit.)
[Wird wohl auch sinnvoll sein um Hintergrundwissen zu sammeln.]

Danke auf alle Fälle mal für den Input :)



lg

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

4

26.08.2013, 14:39

Makes Games, not Engines.
Wenn Du ein Spiel machen willst, mach das und bau keine Engine. Gerade, wenn Du noch keine Spiele gemacht hast bisher, ist eine Engine für ein eigenes Spiel völliger Overkill und ein großer Faktor, der Dein geplantes Spiel komplett killen könnte (weil sie ewig dauert bis zur Fertigstellung oder nicht das leisten kann, was Du eigentlich alles brauchst).
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

5

26.08.2013, 15:43

Hmm,

meinst du damit

  1. Eine fertige Engine zu verwenden (wie Unity) und sich um das Spiel kümmern
  2. Keine eigene Engine basteln, im Sinne von die benötigten Funktionen nicht extra zu kapseln und als eigenes "Packet" zu behandeln.
Wie gesagt ich will soviel wie Möglich lernen, ob das Spiel letztendlich fertig wird ist eigentlich (zwar wünschenswert) Nebensache.
Auf der anderen Seite warum das Rad neu erfinden ....

Ja schwierig :)
Ich werde mir auch das nochmal zu Herzen nehmen, danke für den Input.





lg

6

26.08.2013, 16:13

Ahh nachdem ich mir nun den von KeksX geposteten Link durchgelesen habe, denke ich weiß ich was du meinst.

Ich soll keine Engine bauen im generischen Sinne. Sondern die Funktionen für das jeweilige Spiel konkret implementieren.

lg

Werbeanzeige