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

11

02.07.2014, 04:34

C# hat nichts mit C und C++ gemeinsam, außer ein paar grundlegende Syntaxregeln. C# ist managed, C und C++ sind native, werden also direkt in Maschinencode übersetzt. Wenn du C++ noch nicht kannst, wäre es evtl. ratsam zuerst mit C# anzufangen und erst mal mit Unity oder sowas was zu machen und dann später auf C++ umsteigen. So sollte man schneller Ergebnisse sehen können, aber das ist nur meine Meinung.

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

12

02.07.2014, 06:48

Verstehe nicht, wieso Unity beim Programmieren lernen stören sollte? Finde das widerspricht sich nicht!
Wenn Du die Bewerbungsgespräche gehalten hättest, die ich mit reinen Unity-Entwicklern bisher gehalten habe (also mit Leuten, die mit Unity eingestiegen und dabei geblieben sind), würdest Du das nicht sagen. Bei bisher allen davon gab es grobe Mängel im Verständnis für alles, was unter der Haube passiert und für gute Architektur. Bei Entwicklern, die C# "ungebunden" gelernt haben, ist mir dies allerdings nicht begegnet. Und ja, ich gebe den Strukturen und Patterns von Unity die Schuld dafür, sowie die Script-artige Verwendung von C# in Unity.
Es ist sicher eine Engine mit vielen Möglichkeiten (auch wir setzen Unity letztlich in der Firma ein), aber sie ist scheinbar nicht gerade hilfreich, was Clean Code, Architektur und Verständnis für die Sprache C# angeht.

Ich bin daher natürlich nicht sooo glücklich darüber, dass wir Spieleprogrammierer.de eigentlich in Unityprogrammierer.de umbenennen müssten, da es quasi jedem Neuling hier empfohlen wird, unabhängig davon, welche Sprache er eigentlich lernen wollte und was genau sein Ziel ist.

SFML, LibGDX und Cinder wurden schon genannt, SDL2 wäre noch eine mögliche Bibliothek für schöne native Entwicklung.
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]

Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von »BlueCobold« (02.07.2014, 06:58)


BitShift

Frischling

Beiträge: 39

Wohnort: Leverkusen

Beruf: Informatiker Anwendungsentwicklung

  • Private Nachricht senden

13

02.07.2014, 12:56

[...]Ich mag es, das Potenzial einer Maschine voll auszunutzen - eigentlich liebe ich die Kommandozeile, aber eben nicht für Spiele - und will Programme schreiben, die ohne unnötigen Ballast auskommen.[...]
Ich vermisse generell ein paar Angaben:

- Für welche Plattform willst du entwickeln?
- Bist du mehr an der Technik oder an der Contententwicklung interessiert?

Als was mehr Richtung "native" geht steuert mehr in Richtung Engineentwicklung, gerade mit deinem "Will alles von Grund auf können" Ansatz. Damit wirst du auf absehbare Zeit kein größeres Projekt zu Stande bringen (IMO).

Je plainer die Sprache, desto mehr Arbeit steckst du in Grundlagenzeug wie Speichermanagment und Abstraktion verschiedener Dinge wie z.B. Audio- / Grafikhandling.

Wenn du dich z.B. auf Windows als Spieleplattform festlegen willst, kannst du deine Auswahl automatisch einschränken. Es wird dann kompliziert, wenn du "Irgendwann mal vielleicht" auch Multiplattform entwickeln willst, dann bekommst du mit einer selbstentwickelten Lösung echte Zeitprobleme.
java.lang.SignatureMakesNoSenseException: de.signatureHandler.java
caused by: User is too dumb to create a correct signature.

14

02.07.2014, 13:21

Soo Leute. Vielen Dank erstmal für alle Kommentare!

Ich habe mich nun entschieden, mit C++ und SFML weiterzumachen. Unity und C# laufen ja nicht weg ;)

@BitShift: Ich will plattformübergreifend programmieren. Zunächst für Windows, aber in ferner Zukunft vielleicht auch mal für Linux oder Smartphones.
Die Technik reizt mich, und ich will auch Programme schreiben, die nichts mit Spielen zu tun haben. Zum Beispiel mal ein Plugin oder was in Richtung Netzwerk. Du hast Recht, was Engines und Zeitmanagement angeht. Ich finde nicht, dass man das Rad immer wieder neu erfinden muss, aber ich will darin eingreifen können, wenn ich finde, dass gewisse Features für meine Zwecke anders sein sollen als geliefert. Es geht mir auch um Content - Sound und Grafik sollen ja eine große Rolle spielen, und ich lege da großen Wert auf Qualität, von der ich weiß, dass ich sie in zehn Jahren nicht erreichen könnte, wenn ich alles von Null selbst neu aufbaue. Das können bezahlte Fulltime-Profis viel viel besser als ein Hobbyist. Ich würde mir zum Beispiel nicht zutrauen, in die ganze Sache mit Shadern und Antialiasing und Partikel und so tiefer einzusteigen als für die Basics nötig. Warum auch, wenn es da schon gute Sachen gibt?

Darum C++ mit SFML, was ein mitelfristiges Ziel wäre, darin kleine Spiele zu programmieren. Ein Mini-RPG mit Rumlaufen auf einer Weltkarte und Zufallskämpfen, oder ein Kartenspiel-Klon. Wenn ich das draufhabe und es Zeit wird, was anspruchsvolleres zu machen, kann ich ja immer noch C# lernen und auf eine mächtigere Engine wechseln.

Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »shelley« (02.07.2014, 13:39)


BitShift

Frischling

Beiträge: 39

Wohnort: Leverkusen

Beruf: Informatiker Anwendungsentwicklung

  • Private Nachricht senden

15

02.07.2014, 13:56

Das ist glaube ich keine schlechte Lösung, ohne selbst SFML zu kennen...
Wenn du C schon kennst, kennst du die üblichen Verdächtigen ja eh schon :-)

Ich komme von der XNA Ecke, und da mussten wir uns auch erstmal unsere eigene Spritestruktur und ein Framework entwickeln, im Rückblick haben wir selbst mit XNA-Nutzung den Aufwand dafür gewaltig unterschätzt (Irgendwie landet man schnell bei minimalen SceneGraphen ähnlichen Konzepten, und da liegen die Probleme immer im Detail).

Ich würde daher empfehlen, mit dem kleinstmöglichen, für dich interessanten Projekt zu beginnen und deine Implementierung anhand deiner konkreten Anforderungen aufzubauen (und NUR daran!).
java.lang.SignatureMakesNoSenseException: de.signatureHandler.java
caused by: User is too dumb to create a correct signature.

@zimmer

Alter Hase

Beiträge: 1 135

Wohnort: NRW Germany

  • Private Nachricht senden

16

02.07.2014, 15:39

…ich weiß , die meisten werden denken: jetzt kommt die Steinzeit" aber wenn Du was auf die Schnelle machen möchtest, probier doch die free Version von Gamestudio.
Alles wird in lite-c programmiert.
Wie ich verstanden habe ist das c nur ohne Datentypen und mit ein paar Engine Funktionen. Und es gibt auf der Seite den lite-c Workschop, danach kannst Du ein 2D game erstellen mit Schiebereglern und Buttons usw. Dann kann man auch einfach überfliegen.
Ich dnke Du konntest es an einem Wochenende schaffen einen Prototypen zu maxhen, c kannst Du ja schon.

NachoMan

Community-Fossil

Beiträge: 3 885

Wohnort: Berlin

Beruf: (Nachhilfe)Lehrer (Mathematik, C++, Java, C#)

  • Private Nachricht senden

17

02.07.2014, 16:18

Ich würde dir empfehlen einen Monat die Unrealengine zu bezahlen. Danach kannst du damit weiter arbeiten ohne was zu zahlen. Du kriegst nur keine Updates.
"Der erste Trunk aus dem Becher der Erkenntnis macht einem zum Atheist, doch auf dem Grund des Bechers wartet Gott." - Werner Heisenberg
Biete Privatunterricht in Berlin und Online.
Kommt jemand mit Nach oMan?

KeksX

Community-Fossil

Beiträge: 2 107

Beruf: Game Designer

  • Private Nachricht senden

18

02.07.2014, 18:20

Verstehe nicht, wieso Unity beim Programmieren lernen stören sollte? Finde das widerspricht sich nicht!

Es ist sicher eine Engine mit vielen Möglichkeiten (auch wir setzen Unity letztlich in der Firma ein), aber sie ist scheinbar nicht gerade hilfreich, was Clean Code, Architektur und Verständnis für die Sprache C# angeht.

Das stimmt schon, besonders was Clean Code angeht. Man darf nicht den Fehler machen sich den Code grundsätzlich von anderen Unity-Entwicklern abschauen! ;)
Aber das kann dir bei jeder anderen Lib auch passieren. Man muss halt Prioritäten setzen - entweder ich möchte schnell und zielorientiert ein Spiel machen, oder ich möchte fundamental Programmieren lernen und das möglichst effizient und qualitativ. Beides zu vereinbaren ist ein gemeiner Spagat, der oft im Frust endet und weder zum Einen, noch zum Anderen führt. Ich kann da aus Erfahrung sprechen - viel zu oft hab ich mich verleiten lassen, Schritt 43 vor Schritt 1 zu machen und bin auf die Nase gefallen :P

C++ und SFML sind aber eine feine Sache, da macht man auch nichts verkehrt denke ich. (Ich benutze es selber auch für einige Sachen)
WIP Website: kevinheese.de

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

19

02.07.2014, 18:21

Das sagte ich ja selbst auch. Nur generell tendiert die Standardantwort im Forum immer mehr zu "nimm doch C# und Unity", auch wenn das Ziel des Fragestellers eigentlich mal war C++ zu lernen.
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]

20

02.07.2014, 23:51

Hasst mich dafür ist mir egal :D

Bei mir war es so, dass ich angefangen hab C zu lernen, dann aber recht schnell auf C++ umgestiegen bin. Als ich dann beschlossen habe Spiele zu programmieren wollte (und will jetzt auch immer noch) Spiele PROGRAMMIEREN und sie nicht in einem Editor zusammenklicken ;)
Ja keine Frage es ist wesentlich aufwänderiger und komplizierter von "Grund auf" mit Allegro, SFML oder DirectX zu arbeiten, aber genau da liegt auch der gewisse Reiz. Man hat ein Problem und dann versucht man es zu lesen.

BTT: Wenn du wirklich Programmieren willst, nimm eine Grafikbibliothek (am Anfang lieber 2D) und leg los ;) Wenn du aber schnell ein 3D Spiel haben möchtest greif zu einem Programm wie Unity.
"Wer Angst hat, dass ihm seine Ideen geklaut werden, der scheint nicht viele zu haben. "

Werbeanzeige